5

There are a number of US Department of Defense (DoD) websites that I need to access on a regular basis (e.g., https://ataaps.csd.disa.mil/ and https://web.mail.mil) that Firefox issues a Warning: Potential Security Risk Ahead with error code SEC_ERROR_UNKNOWN_ISSUER. Looking a little further, it says "Peer’s Certificate issuer is not recognized."

There seem to be some obvious reasons why the DoD would want to issue its own certificates (cf. Why would an organization like the DoD prefer to use its own Root Certificate(s)?) including that this way they are in charge of the security and not someone else and the cost is small since they need certificates for other things.

My question is from the opposite end and is NOT why does the DoD issue their own certificates, but rather why Firefox does not trust certificates for US government sites by default?

The more practical question is as adding exceptions for all sites whenever they are encountered without doing even a cursory glance seems like a bad practice, is there a way to globally add an additional CA (???) to make Firefox recognize the US DoD (or whoever is the problem) as a certificate issuer? Does this have drawbacks and open my machine up for additional attacks?

  • This is a duplicate question: security.stackexchange.com/questions/147606/… – Filipe dos Santos Jan 10 at 16:04
  • 2
    Does this answer your question? Why would an organization like the DoD prefer to use its own Root Certificate(s)? – J.J Jan 10 at 16:05
  • 2
    "... is there a way to globally add an additional CA" - yes, Firefox can import new CA as trusted. See the certificate section in the browser settings. – Steffen Ullrich Jan 10 at 16:09
  • 1
    Those certificate are signed by a private, internal certificate authority (see previous comments). This private authority (like any other) could issue certificate for any website, even illegitimate or rogue ones. Would Chrome or Firefox trust this authority, it would allow the the DoD to issue certificate for any website, thus intercepting any HTTPS communication, defeating the purpose of secure communications. – A. Hersean Jan 10 at 16:10
  • @A.Hersean ah, that is the key piece and why my question is different. I will edit the question and hopefully you will provide a fuller answer. – StrongBad Jan 10 at 16:12
4

Certificates are a matter of trust. When you use the default certificate list from Firefox (resp. Chrome, resp ...), you trust the all the certificate issuers from that list to only issue certificates to legitimate sites (or persons) for legitimate purposes. Issuers should normally publish the policies that they use when delivering certificates, and the certificates references those policies through OIDs.

There is an important business behind certificates, and certificates issuers would prefere to avoid that governments start to use their own certificate authorities. Imagine a world where any citizen would have one personal certificate (or one for signature and authentication and one for encryption) on its national ID card or passport, and where all official sites would have a certificate issued by a governmental agency. Who would then buy certificates?

But there is another, maybe more fundamental reason. Since *Brave new world" from Aldous Huxley, or 1984 from George Orwell, we know that governments could try to bring us into privacy restricted paths. There is a political princip saying that anything and anyone should be controlled by someone else. Because of that, best practices recommend that a certificate issuer should be independant from the certificate user(*). Because this limits the risk for an organization (be it governmental or not) to issue and use hidden certificates just to be able to spy on encrypted channels. That's what some anti-malware software and corporate firewall do: they install a private certificate into the certificate lists of the system and well know browser to allow Man In The Middle attacks to be able to identify malwares in HTTPS channels. Well, the end user is more or less informed on it, and they certainly could not do the job they are payed for without it.

I know it, and trust my employer and the security team not to be too aggressive againt my own privacy, but I would not dare sending too private information that way.

Imagine know that all intelligence agencies from most countries could do the same and freely spy on any HTTPS channel, and ask yourself whether this is the world we want to live in. Read (again) 1984 if you hesitate...

I am not excessively confident that NSA and other main intelligence agencies cannot do that, but it is not a reason to blindly allow it, IMHO


(*) independance from a strong governmental agency can be relative... and independance between a company and its principal client is only theoric. That latter part largely contributes to the first one.

  • So what you are saying is if Firefox trusts the DoD as a CA, then the DoD could (would) violate that trust by issuing hidden certificates and perform MITM attacks on whatever sites they want. Given my level of trust in the DoD, it sounds like I am better off making exceptions on a per site basis. – StrongBad Jan 10 at 19:51
  • 1
    There have been instances of government's tampering with CAs. It happens, and there are countries that require citizens to accept a cert from their provider to enable mass surveillance and censorship. Good answer – Pheric Jan 11 at 4:15
  • @StrongBad not true at all. Wouldn’t make any more than the tiniest bit of difference in performing a MITM attack if the browser trusted the DOD CA. Really not sure why this answer has more upvotes than the other actual answer explaining the DOD cert environment. – skrap3e Jan 12 at 5:12
  • @lasersauce the other answers focus more on why the DoD signs their own certificates and I am more interested in the risks of adding the DoD as a trusted CA (although I didn't know those terms when I asked). – StrongBad Jan 12 at 13:23
  • @StrongBad the truth is there is little to no risk in installing their Root CA certificate, but unless you're planning on frequently visiting their sites why would you. I was about to go into a lengthy explanation as to why, but I'd rather not, just leave it to someone to actually explain a logical scenario where it would increase risk. – skrap3e Jan 13 at 4:31
2

The US DoD operates their own private PKI, complete with their own private CA root certificates. The reasons they do this are twofold. First, it's a cost measure. You may think that a $14 certificate isn't a big expense, but when you issue hundreds of thousands of certificates annually, those costs multiply fast. The other reason is most of their certificates are for internal use only, and are issued to private servers that are not intended for the general public to access.

This is no different than any other large business that maintains thousands of nodes and hundreds of thousands of certificates. (Actually, the DoD is different in that they issue millions of certificates annually. Each soldier carries a smart card - which has its own unique certificate. This smart card grants access to everything from remote doors to system logins to accessing their paychecks and bank accounts; and most all of those devices likely have certificates, too.)

Usually when a business operates their own PKI, they use a commercially trusted CA to sign the few certificates on their exposed servers that the general public is intended to visit. And the DoD is no different -- their recruitment site, https://www.goarmy.com, has a certificate issued by Entrust.

The reason they don't use a lot of externally signed certificates is simple: there is no need for anyone outside of the DoD to trust their internal servers. If you're not in the military, you probably would never be on the same network as most of their server certificates. And if you are in the military, you have the Army's root CA already pre-installed on your official computer.

If you have a military-issued Windows laptop, the Army will use a tool like Group Policy to install their private root CA certificates on every machine they own. IE, Edge, Safari, and Chrome all use the operating system's built-in trusted certificate store to manage their list of trusted certificates. So if you use IE, Edge, Safari or Chrome to browse to an internal site from a military laptop or phone, it will automatically trust the certificates that they placed in the system's trust store. Firefox, on the other hand, maintains its own trusted certificate store and doesn't use the system's cert store. So a default Firefox installation wouldn't include the Army CA root certificates. Nor would a private laptop. That's why you'd get this warning.

One way to fix it is to import the necessary DoD root CA cert into your Firefox's trusted certificate store. Then you'll have the trust you need, without having to examine every mouse click.

0

Why the Error?

A quick look at the certificate details shows that the top level of the path is "DoD Root CA 3". Otherwise, the details of this certificate show these connections are just as secure (in theory) as any commercial certificate. So, the only problem is that the top level of the authority chain is the Department of Defense which is not a "Trusted" Authority.

enter image description here

There are several possible reasons the DoD has chosen to operate as an untrusted authority:

1 - Becoming a trusted Certificate issuer is a VERY hard process. Browser companies have very strict requirements for how a central authority has to be registered and managed to make 100% sure that they are not being compromised. Until recently, self-signed certificates were often used to save money. If you need lots of certs like the DoD does, then you don't want to spend millions of dollars a year just buying certs from trusted authorities. You also don't want to spend millions of dollars on jumping through all the hoops you need to go through to become and retain your status as a Trusted Authority when the only person using these certificate is yourself.

While things like Let's Encrypt and AutoSSL now make this easy to do these things for free, if the DoD already has a solution that works, the time and cost of changing everything over may not be worth it.

2 - In the case of military or intelligence agency certificate authorities, there is also a chance that this is actually a more secure certificate than one issued by a security authority. Basically, to get that Authority status, you need to let a bunch of tech nerds from private outside companies into your systems to verify your methods. If an organization such as the DoD is using classified cyber security methods, then this would be considered a security breach to allow this process to happen.

To clarify: I am not referring to their authentication protocol, I mean that the inner workings of the building and network that houses the server would be classified. Allowing an outside audit would require allowing yourself to be footprinted. Every little piece of information from their techstack, their methods for access control, names of on-site personnel, etc are protected information in a secure facility that you don't just let people have access to lightly.

3 - In the case of a military or intelligence agency you may not trust "Trusted Authorities" because they are such major targets for hackers. If Comodo gets hacked, and the hacker realizes that comodo sells certs to the DoD, then that hacker can start intercepting classified government communications. Or the more likely scenario, China realizes that the DoD is using comodo; so, they spend millions of dollars using every intelligence trick in the book to place a loyal agent as an employee of Comodo so that they use that access to spy on the DoD.

As to the actual question of why browsers do not simply accept them as a trusted authority:

In short, it all boils down to reason #2 above. Browser companies never just give out trust that they have not verified, and the DoD does not just let a bunch of civilians poke around in what is one of their most critical security systems. If the DoD does not let them audit their work, the browser company is not going to make any assumptions just because the DoD should know what they are doing. Infact, a year or two ago Symantec (one of the largest and most reputable cybersecurity companies in the world) failed their audit and nearly lost the right to sell certificates as a Trusted Authority.

  • Agree with #3 but strongly disagree with #1 and #2. With the advent of let's encrypt, getting SSL certificates is now easy, free, and automatic. This easily scales for any number of certificates. Also, I see no reason to think that they are using classified cyber security methods. The methods needed to secure a certificate authority are more or less the same no matter who you are, and are more a matter of strict access control and logging than any sort of fancy tech. You make it sound like a spy novel, when it is really just a very mundane process. – Conor Mancone Jan 10 at 19:10
  • Do you have any evidence that the DoD considers it a security issue to go through the approval process, or is that just your suspicion? – Conor Mancone Jan 10 at 19:11
  • @ConorMancone Added clarification to answer. Yes, free SSL is an option now, but most government systems have been in place a lot longer than that has been true. Also, I am not with the DoD specifically but my federally sponsored CEH training really outlined how big of a risk being footprinted is. DoD guys get the same training and would presumably know not allow extensive external audits without going through a ton of red tape 1st. – Nosajimiki Jan 10 at 20:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.