23 ms·
Many of the root certificates on Windows are not needed
- billpg 6y agoThe rot started when browsers started including root certs as trusted by default.
- gruez 6y agoAs opposed to what? Using the OS's trust store? Getting the user to manually trust CAs?
- billpg 6y agoWhen browsers default-trusted one CA, others companies, quite reasonably, wanted a piece of the action and asked to be included too. Time passed and we, the general public, are no longer part of the conversation about who should be default-trusted. What if the browsers (and OS) didn't default-trust anyone? The various CA companies would have to include the general public in their public relations. We'd see CAs advertising for users to trust their roots. If a CA ever screwed up, they would feel it. Another part of the rot is that TLS certs can only have one root CA. If I decided I don't trust DigiCert, I would effectively cut myself off from Hacker News, because a site can only have one root CA. If a site could have multiple CAs, I would still be able to connect so long as I trusted one.
- winstonewert 6y agoThat would be terrible. Regular users would either not be able to access anything or trust everything.
- langarto 6y agoCurrently they trust everything in fact. Why should I trust Digicert for example? When did I make that decission? What does 'trust' mean if the decission is made by others?
- jefftk 6y agoYou trust Firefox (Mozilla), Mozilla trusts Digicert. If you don't trust Mozilla to make good security decisions, switch browsers. If you want to second-guess this particular decision, you can adjust your Firefox configuration.
- galaxyLogic 6y agoAs a developer what I find frustrating is that it is so difficult to make my browser trust 127.0.0.1. Shouldn't there be an easy way to configure it to trust that?
- tsimionescu 6y agoWhat does it mean to trust an IP address? If you found that a link took you to gmail.com on 127.0.0.1:8716, would you be fine with providing your gmail credentials to that site?
- gruez 6y agohttps://1.1.1.1/ https://1.1.1.1/ is a thing. certificate used: https://crt.sh/?id=1044327786 https://crt.sh/?id=1044327786
- silon42 6y agoIf the site provides a trusted certificate for gmail.com, things are fine. IP shouldn't matter, port probably will.
- galaxyLogic 6y agoI would think I can trust anything on 127.0.0.1 because that can only be my local machine, right? If there is something running on 127.0.0.1:8716 which I have not given permission to run then my machine is compromised already. No?
- gruez 6y agoAFAIK http://localhost http://localhost is treated the same as https://localhost https://localhost so you shouldn't need a self signed certificate.
- justin_oaks 6y agoWe seem better off having the browser vendors bring the hammer down on CAs that are issuing bad certificates. Regular people don't know enough to make valid decisions about which CAs to trust, and I don't think they should have to know either.
- gruez 6y ago>What if the browsers (and OS) didn't default-trust anyone? The various CA companies would have to include the general public in their public relations. We'd see CAs advertising for users to trust their roots. The mozilla CA program for instance, requires potential CAs to go under audits. Is what you're proposing (requiring CAs to hire an advertising/PR department to convince users) really an improvement? Bad companies can lie in either case, but at least the former feels like less waste of resources. Furthermore, forcing the user to make this decision significantly increases the social engineering risk. If the average users have to add a few dozen CAs every time they get a new computer, it will be very easy to social engineer them to add one more. See for instance, social engineering users into downloading and running malware payloads by saying they need to "update their flash player" or "install a codec". >If a CA ever screwed up, they would feel it. Nope, the too big-to-fail problem will still exist. Facebook fucked up, yet we're all still using it. Consumer boycotts rarely work. At least with browser vendors there's a unified bargaining group for users. Good luck getting measures like distrusting symantec or limiting certificate validities to 398 days via grassroots action.
- earthboundkid 6y agoHow would the general public make informed decisions about root CAs if the people paid to do it for living have problems doing it?
- symlinkk 6y agoHow would the general public create a collaborative online encyclopedia if the people paid to do it for a living have problems doing it? How would the general public create an open source operating system if the people paid to do it for a living have problems doing it?
- dzaima 6y agoThe "general public" isn't creating an online encyclopedia. If everyone using it edited it, it would most definitely suck. The "general public" definitely isn't writing an open source operating system. That would be an even bigger disaster. If you want to, you can contribute to both, just as you can edit your trusted certs list. But making that the default would be awful.
- tialaramex 6y agoBetter than that, if you have useful contributions to public oversight of the Web PKI you can contribute to m.d.s.policy. https://groups.google.com/g/mozilla.dev.security.policy https://groups.google.com/g/mozilla.dev.security.policy For example m.d.s.policy is currently considering an application from NAVER Business Platform, a South Korean outfit and I'm quite sure that a native Korean IT person could usefully contribute to the discussion.
- earthboundkid 6y agoWriting one paragraph in an encyclopedia entry is a manageable task for anyone with a college education. Picking a complete and secure set of CA roots is not. To begin with, if your paragraph is wrong, it can be fixed. If your CA set is wrong, someone steals your credit card numbers.
- duskwuff 6y ago> When browsers default-trusted one CA And when was this, precisely? The copy of Netscape 1.0 I looked at didn't even have a UI to configure CAs.
- Sohcahtoa82 6y agoConsidering Netscape was released in December 1994 and SSL came out in February 1995, there were a lot of things still in infancy.
- jcranmer 6y ago> If a CA ever screwed up, they would feel it. CAs have screwed up in the real world. And the result of those screw-ups were removal from root cert lists. And they closed down as a result. DigiNotar and WoSign both faced this calamity. There was a time when root stores let anyone in who asked nicely. That time has long since passed however; the modern process is quite involved. See Mozilla's process here: https://wiki.mozilla.org/CA/Application_Process https://wiki.mozilla.org/CA/Application_Process, and note that it calls out that it's expected to take two years to complete. It's not a pro forma policy: the Federal PKI [1] was not able to meet the requirements of inclusion into the root store because its rules for issuing certificates are not considered sufficient per modern browser requirements. Quite frankly, I'd place far more trust in Mozilla's ability to audit CAs than my ability to do it myself, and I'd trust the average user's ability even less than myself. Arguing that CAs having to advertise to the user is a good idea for trust ignores the fact that unsavory companies openly abuse their users and yet still have high trust. (To say nothing of politicians...) [1] This is the PKI system that's mandatory within the US government for internal certificates.
- chrismeller 6y agoFor reference. I can’t actually find a list of Google’s right now. Mozilla: https://wiki.mozilla.org/CA/Included_Certificates https://wiki.mozilla.org/CA/Included_Certificates EDIT: and yes, it would have been nice for the author to link directly to these... Google clearly has their own, but obviously there’s some debate about what that means.
- gruez 6y agogoogle's list seems to be here: https://android.googlesource.com/platform/system/ca-certificates/+/master/google/files https://android.googlesource.com/platform/system/ca-certific...
- saagarjha 6y agoIs that not Android's list? Or does Google ship those on all platforms it runs on?
- mrkstu 6y agoChrome uses the OS level cert store, whereas Mozilla uses it's own.
- ocdtrekkie 6y agoThis is configurable for both, I believe. It's common for enterprises to switch Firefox to use the OS store to support internal certificates.
- sleevi 6y agoFor folks discovering this: Unfortunately, this isn’t a good idea, and can seriously harm your system. I’ll be the first to tell you that I believe Google and Mozilla have done a lot for supervising TLS, but realize that the trust stores contain many other non-TLS purposes, and with the CAs constrained from TLS issuance (e.g. only trust for S/MIME). CryptoAPI, for its warts, is actually beautifully engineered, in that Microsoft has had the ability to add arbitrary constraints and properties to certificates from the very first release (via CERT_PROP_IDs). You don’t really see these in the UI; you only find out about them in WinCrypt.h, or via debugger stepping. However, it means that even if the UI is showing “trusted for TLS”, Microsoft may have disabled trust for TLS via the extended properties, which their APIs respect, and which are delivered through authroots.cab You can see a little bit about this at https://github.com/crtsh/certwatch_db/issues/69 https://github.com/crtsh/certwatch_db/issues/69 and http://unmitigatedrisk.com/?p=259 http://unmitigatedrisk.com/?p=259 Approaches like the OP link fail to take that into consideration, and can easily break core OS services, non-TLS cases like code signing or S/MIME, or even reintroduce trust in CAs that Microsoft has programmatically disabled.
- BuildTheRobots 6y ago> CryptoAPI, for its warts, is actually beautifully engineered, in that Microsoft has had the ability to add arbitrary constraints and properties to certificates from the very first release (via CERT_PROP_IDs). You don’t really see these in the UI; you only find out about them in WinCrypt.h, or via debugger stepping. However, it means that even if the UI is showing “trusted for TLS”, Microsoft may have disabled trust for TLS via the extended properties, which their APIs respect, and which are delivered through authroots.cab I mean no disrespect, but if you need to look through header files or use step-through debugging to actually find out what constraints apply to a certificate, especially when the ones actually reported for the certificate don't actually apply in reality then "beautifully engineered" doesn't seem like the right adjective to use. edit: I don't see this as a documentation issue; when the only interface you provide the user says one thing but stepping through the code reveals that that's entirely not true for certain items in certain circumstances, then having a better ReadMe is not the issue here.
- 6y ago
- yonixw 6y agoDistrust Amazon Root CA 1? This is the root CA for a lot of AWS API gateways. Waaaaay Overkill.
- iameli 6y agoFirefox doesn't trust the root CA for a lot of AWS API gateways?
- 0xxon 6y agoThe fact that some root stores/browsers don't trust some CAs is actually quite common. There will be some cross-sign from another CA that is trusted in Firefox in this case. Stuff like this is quite common; we published a paper on this recently if you are interested in details: https://arxiv.org/abs/2009.08772 https://arxiv.org/abs/2009.08772
- sleevi 6y agohttps://medium.com/@sleevi_/path-building-vs-path-verifying-the-chain-of-pain-9fbab861d7d6 https://medium.com/@sleevi_/path-building-vs-path-verifying-... also has some utilities to visualize this using JS to explore these relationships, and understand the code tradeoffs.
- CrendKing 6y agoThose selected in the screenshot are included in the Mozilla list, thus to be trusted. They instruct to distrust the inversion. Here's quote from the instruction: 2. Right-click the selection and click Invert selection 3. Right-click the selection and click Distrust
- parliament32 6y agoInterestingly, Debian (in the ca-certificates package) only has 122. These are from Mozilla AFAIK.
- tialaramex 6y agoAll of the Free Unixes ship roughly the Mozilla trusted CA list yes. Historically lots of them notionally had independent programmes, but they didn't actually do the maintenance/ oversight work necessary, so it's like if they'd just shipped Linux 1.3.48 forever. 1.3.48 was a pretty good release at the time, but er, not five years later. Just auto-applying Mozilla's changes is better. However this isn't entirely an apples-to-apple comparison. That package in Debian is for the Web PKI, CAs trusted to issue specifically for DNS names (and rarely IP addresses) for services on TLS, thus mostly the web but also IMAP, HTTP and other protocols that can use TLS. That's it, no other purposes are warranted. Whereas Microsoft ships roots trusted for several other purposes their users care about, including code signing for both application software and drivers, and document signing (used in some jurisdictions to give legal effect to a digital signature on a document, not to be confused with electronic signatures which are just an image of a written signature) and so on.
- morpheuskafka 6y agoHow does Apple's iOS/macOS trust store look, by comparison?
- willstrafach 6y agoThe list can be found here: https://support.apple.com/en-us/HT210770 https://support.apple.com/en-us/HT210770
- xyst 6y agoI don't know how to check for iOS, but macOS is showing 164 trusted certificates for 10.15.7. Via the "Keychain Access.app", select the "System Roots" item, then select all of the items in the right panel, then open the context menu using the two-finger tap method (or control + mouse click) If there's a better way to check this, feel free to post
- FreshFries 6y agofile:///System/Library/Security/Certificates.bundle/Contents/Resources/TrustStore.html Your method (164 like you) and this one (213), yield different results on my system (10.15.7). EDIT: my bad TrustStore.html also contains Untrusted & Blocked Certificates.
- dolmen 6y agoUse this command to extract the list of root certificates: security find-certificate -a -p > all-certs.pem You can then dump each certificate: split -p "-----BEGIN CERTIFICATE-----" all-certs.pem cert- openssl x509 -text -in cert-aa openssl x509 -text -in cert-ab ...
- philsnow 6y agoI don't know anything about this company (rootIQ) but it sounds like a juicy, high-value target.
- theandrewbailey 6y agoHow so? It looks like this is their only software product, and it doesn't look like they issue certificates.
- philsnow 6y agoIf you can compromise the tool that people use to change their certificate stores, then you can sneak in your own root certificates.
- theandrewbailey 6y agoAny application that has administrator/root privileges should be able to do that.
- egberts1 6y agoThe Problem, with distrusting them all Root CAs and accepting it back into the fold one-by-one, is simply that you don’t know if that trusting Root CA in question has signed off some other but malicious sub-CA(s).
- unnouinceput 6y agoOK, so let's continue this trend and we end-up trusting just one. So we concentrate the entire internet power into just one hand. Because it's such a good idea, right?
- gowld 6y agoAre 2 evil hands better than 1? What's needed are more good hands.
- unnouinceput 6y agoThere are no good hands. Governments are slow to catch up but they do eventually. So they did catch up with technology and understanding that internet is freedom. Our freedom was these 25 years we had from 95', when proliferation of internet started up to today. Lockdown even more showed they need tight control over our freedom. Unfortunately the future is splinternet, where each country has its own grip on this new media medium called internet, same as they do through regulation over TV and radio.
- t0astbread 6y agoWell, the situation now is you trust 300 CAs and use one (figuratively). Apart from that, these are root CAs meaning any single one of them could compromise every TLS connection, right? So increasing the number of root CAs doesn't divide their power.
- TheRealPomax 6y agoWhy? Just because there is a slippery slope argument to be made doesn't mean we have to actually do what it says needs to be done to get to its theoretical end point. Sure, we _could_ remove everything until there's one left, but why would we? If you just want a smaller, publicly vetted list of roots that you can trust because the org that curates that set is explicitly on a mission to keep the internet free, open, and safe for all, then there is no "next step", this is the first and also last one. Is it a good idea to do this? Highly depends on what you do and what you need, but the idea that "we can just keep doing this until there's only one" is super flaky: how many more sets of root certs, vetted by orgs that can be trusted to have privacy and security in mind, are there? Because no org that fits that bill will have a list that is "just the one". There's going to be 100+ certs in their lists.
- rafaelturk 6y agoIMG this is lame and can break your system. Also creates a single point of failure if one of this, now super certificates, is revoked
- josephcsible 6y agoWhat super certificates? What exactly is the new single point of failure?
- criddell 6y agoI always wondered how painful it would be to clear out my root store and only re-enable root CAs as I needed them. Would I need more than 5% of them?
- rafaelturk 6y agoFor example: redundancy if any of those is revoked, exposed, compromised.
- dddddaviddddd 6y agoExperience would probably be similar to using NoScript in a browser. Lots of broken things at first, then tapering off.
- proactivesvcs 6y agoI did this in Firefox many years ago and, to a lesser extent, on Windows and Android. Firefox and Windows changes caused minor, obvious problems which I was able to resolve quickly. On Android I found several apps were so badly programmed they simply displayed blank screens, or showed other strange failures, when the required SSL certs were distrusted. Steam, Naver Line and tumblr were the three that I recall fell under this. There were a few apps which immediately threw a human-readable error about certificates, and hence were easier to resolve.
- galaxyLogic 6y ago" Windows trusts 322 root certificates issued by 122 different organizations" I think this is a good point I would never trust 122 people in my life with my bank-account details. But if I trust my browser it seems that is exactly what I'm doing. Isn't there a better way?
- yRetsyM 6y agoYou do trust one company with thousands of employees though, there's layers/levels of trust on this
- CodesInChaos 6y agoI don't think the high number of CAs is as big a risk as it sounds like. 1. To exploit this, the attacker needs to be in a man-in-the-middle position and compromise a CA 2. Certificate transparency helps with detecting and banning misbehaving CAs 3. CAs are audited to have processes in place which make it difficult for individuals to misbehave 4. In case of a large scale attack of this kind, banks are relatively likely to refund the money (unlike money stolen by a person you authorized) 5. The individuals employed by CAs are not anonymous and at risk of legal prosecution I'd be more worried about DNS/registrar level attacks, since CAs generally assume that whoever has control over a domain is authorized to issue certificates for it. I doubt registrars are anywhere near as security conscious as CAs. And then there is the dependency hell of random software having hundreds of indirect dependencies they didn't verify which are maintained by random, often anonymous people. On most desktop OSs any such application can steal your banking credentials.
- galaxyLogic 6y agoI see there are safeguards in place. But is it true that it is enough to compromise one CA to compromise my browser? Or would a hacker have to compromise ALL of the 322 certificates? If the latter then having more certificates would simply mean it is more secure. If the former it would mean having more certificates makes it less secure. Or is it something in between? Do additional certificates add to the security, or diminish from it?
- DeepYogurt 6y agoI love how the author asks the reader to implicitly distrust the OS vendor, but then also to implicitly trust their random software. Seems legit to me.
- hdjfktkrk 6y agoExactly this. If this was an EFF tool maybe I would trust it. But a binary hosted on GitHub? Especially since GitHub is whitelisted by major browsers so you would not get a reputational warning when downloading a binary. This is exactly the place where a malware vendor would put it's stuff to avoid scary browser warnings. Also, privacy tools are perfect targets for intelligence agencies, hackers, ... since they are used by people with something valuable (bitcoin, information, ...) so you need to be extra-careful around them.
- ThePadawan 6y agoWhat browser is this? Chrome will try its best to not let me download .zip files containing .exe files.
- judge2020 6y agoIve never heard of an exemption on virus warnings. If I upload an exe to a github repo and try to download it, chrome will warn me that it's not commonly downloaded. Same for Google drive - even if it's scanned for viruses, chrome might throw a warning that requires you go to the downloads page and allow it.
- skipants 6y agoIn direct contrast to this article, I've had to specifically set `security.enterprise_roots.enabled` to true on Firefox because completely legitimate sites were not trusted.
- tialaramex 6y agoNote that this config flag specifically only applies to the roots installed in your local systems that are not trusted by Microsoft. So "completely legitimate" these sites may be, but they aren't publicly trusted by anybody, it's just that somebody used Group Policy in your organisation to trust the issuer. So configuring your Firefox to copy other browsers and accept this is fine, but you should go into it eyes open.
- josephcsible 6y agoIt sounds like either your antivirus or your company is breaking your SSL.
- svnpenn 6y agoSo people are just allowed to post ads for closed source software now?
- peterwwillis 6y agoYes, it's called SaaS, and their "ad-blogs" make up about 20% of all the top stories on HN. Startups that charge you to use their proprietary software but write good clickbait or Show HNs. (I'm not hating, I'm just saying this is not surprising in any way)
- bumblebritches5 6y agoIs there a version for Mac?
- unilynx 6y agofun related certificate fact, TIL that Linkedin's share does not seem to support any of the dutch government certificates - https://www.linkedin.com/post-inspector/inspect/https:%2F%2Fwww.rijksoverheid.nl%2F https://www.linkedin.com/post-inspector/inspect/https:%2F%2F... (I wish they wouldn't bother with all the EV certificates and just accept LetsEncrypt. So much manual work for broken certificates that need to be replaced whenever the CA messes up the trust bits or Iran hacks the certificate providers again)
- rswail 6y agoHow does this compare to MacOS? I haven't gone through Apple's default CA roots.