Move the CA certificates list out of NSS into a separate repository
Categories
(NSS :: Libraries, defect)
Tracking
(Not tracked)
People
(Reporter: KaiE, Assigned: KaiE)
References
Details
Attachments
(5 files)
1.09 KB,
patch
|
Details | Diff | Splinter Review | |
1.17 KB,
patch
|
Details | Diff | Splinter Review | |
3.95 KB,
patch
|
Details | Diff | Splinter Review | |
1.77 KB,
patch
|
Details | Diff | Splinter Review | |
11.66 KB,
patch
|
Details | Diff | Splinter Review |
Comment 1•9 years ago
|
||
Comment 2•9 years ago
|
||
Assignee | ||
Comment 3•9 years ago
|
||
Comment 4•9 years ago
|
||
Assignee | ||
Comment 5•9 years ago
|
||
Comment 6•9 years ago
|
||
Assignee | ||
Comment 7•9 years ago
|
||
Assignee | ||
Comment 8•9 years ago
|
||
Assignee | ||
Comment 9•9 years ago
|
||
Assignee | ||
Comment 10•9 years ago
|
||
Assignee | ||
Comment 11•9 years ago
|
||
Assignee | ||
Comment 12•9 years ago
|
||
Assignee | ||
Comment 13•9 years ago
|
||
Assignee | ||
Comment 14•9 years ago
|
||
Comment 15•9 years ago
|
||
Assignee | ||
Comment 16•9 years ago
|
||
Comment 17•9 years ago
|
||
Assignee | ||
Comment 18•9 years ago
|
||
Comment 19•9 years ago
|
||
Assignee | ||
Comment 20•9 years ago
|
||
Assignee | ||
Comment 21•9 years ago
|
||
Comment 22•4 years ago
|
||
Instead of parsing certdata.txt, we recommend that people use the links provided on the Common CA Database (CCADB) Resources tab, which provide lists of root certificates that are being curated for the purposes of Code Signing, Email (S/MIME), and Server Authentication (SSL/TLS).
Comment 23•4 years ago
|
||
Hi Kathleen,
While it's a good start, it's not a complete solution. CA-certificates needs more data than just the list of certs. It needs, at the very least, all the data that NSS expects or firefox on Linux platforms will fail. (most notable, distrust after date).
For now I'm probably going to keep certdata.txt and pull in codesigning and S/MIME to adjust my certdata.txt.
Comment 24•4 years ago
|
||
Of course, NSS should continue to directly use certdata.txt.
Folks other than NSS who would like to use this root store should read this:
https://blog.mozilla.org/security/2021/05/10/beware-of-applications-misusing-root-stores/
Comment 25•4 years ago
|
||
I think I should explain. On Linux, the cacertificate package replaces nssckbi to create a single certificate store. everything (well in theory) uses that single certificate store, including NSS, so whatever we use as a source for cacertficates, it needs to have all the data that NSS uses. So when I mean 'I'll probably keep certdata.txt and pull in codesigning and S/MIME' I mean the certdata.txt that I use to source the ca-certificates package, which will continue to massage that certdata.txt to produce all the lists that cacertificates produce.
bob
Comment 26•4 years ago
|
||
Having read the blog, I still need to keep to my plan. ca-certificates is maintained by NSS developers, since it's sourced from the NSS root store. We already know that some certs are in the cert store a disabled (since I created the distrust attribute for NSS). certdata.txt isn't just parsed, it's used to create a PKCS #11 module that mimics nssckbi.so. Some other libraries have switched to using it. This pkcs #11 module needs all of the NSS bits, so it needs to be built from certdata.txt. It also includes system included certs which may not be in certdata.txt. From this, the NSS bits are used to decide purpose, and appropriate lists are created for less intelligent applications (lists for s/mime, tls, and object signing, and specific lists for openssl, java, etc.). The idea is we have a centrally managed place for root certificates. Users/Sysadmins can then add locally trusted ca's or remove ones that they don't want to trust.
Since mozilla dropped code signing, we verified that no one was using code signing in RHEL 8, so we still shipeed codesigning list, but it was empty (previous to RHEL8, we kept the old mozilla code signing). It was news to me that Microsoft started using codesigning on Linux, which meant they were abusing the list. There is a codesigning list which was empty, so I guess they just decided to use a tls list (which is not for that purpose).
Anyway I'm going to pick up the code signing CA's and add them back to our source of certdata.txt with the appropriate codesigning bit set on (merging with any existing ca's already there). Once that happens, the code signing list will be populated, and Microsoft can use that list).
Upshot: what the blog post envisioned: randomly taking the list of CA's without a thought to what the NSS trust on those CA are is NOT what is happening (Actually I think that was true before 2013 when ca-certificates were created -- by kai-- but most Linux OS's use ca-certificates, not their own curated list. We still can't control applications misusing the list (using tls CAs for code signing is just... wrong)).
One think your combined website is missing: version numbers.
Comment 27•4 years ago
|
||
Bob, we are in agreement that the email and server auth root cert lists at https://www.ccadb.org/resources are not intended for you / Linux OS root store, because you should continue to use the NSS root store as you have been.
For others, note that we added the distrust-after information to the CSV lists for email and server auth. And we will be adding similar (Microsoft-specific) columns to the CSV list for the Code Signing roots (Bug #1711597), and we are planning to add automation to keep the CCADB in sync with Microsoft's internal Root Cert Management Tool (RCMT) as per Bug #1711598. (currently Microsoft is manually maintaining the data in both places)
As Bob mentioned, the lists of root certs at https://www.ccadb.org/resources do not have version numbers, which is why folks who use those lists of root certs should check for changes in the lists whenever they do their application updates.
Comment 28•4 years ago
|
||
OK, ca-certificates will continue to use certdata.txt, which the addition of the microsoft object siging certs added (If the cert is already in certdata.txt, then the object signing trust is turned on, if it's not it's added with only the object signing trust flag on). It's a little annoying that it's not versioned, which means the version of the microsoft object signing list is whatever happens to be there when I make my build, which is rather non-ideal (it means the same version of ca-certificates build by redhat may be different than the same version number build by debian, depending on what day each decided to build their update).
BTW, this bug is about getting a single usable source for ca-certificates, which is why I'm kind of pushing back here.
bob
Comment 29•4 years ago
•
|
||
For anyone using the following two links in https://www.ccadb.org/resources, we are making a one-time change to the URLs to change the parameter from TrustBitsInclude to MicrosoftEKUs.
Code Signing Root Certificates
PEM of Root Certificates in Microsoft’s Root Store with Code Signing EKU (TXT)
PEM of Root Certificates in Microsoft’s Root Store with Code Signing EKU (CSV)
Description
•