On 05/15/2017 06:05 PM, Jakob Bohm wrote: > > Ok, that's much better. >
Yay for reasonable courses of action. We'll see if it goes into the next proposal. >> I can see the point here, but I'm not sure I agree. Every time we keep >> digging, we keep finding more and more problems with these roots. >> WebPKI depends on all certificates in the root store being >> trustworthy, and Symantec as a whole has not exactly shown themselves >> to be responsive or willing to communicate publicly on the various >> issues brought up on the list. >> > > Yes, that seems to be the trend. But it has nothing to do with if the > "9 month" rule or some other measures are the best remedy. > There might be a reasonable compromise here, see below. > RAs (external companies that can decide if Symantec itself should issue > a cert) are completely different from external SubCAs (external > companies that have their own CA and a certificate chain back to a > Symantec root), which are different from internal SubCAs (CA > certificates for Symantec controlled keys, such as the SubCA that > signed normal OV certificates issued in January 2017). > > External and Internal SubCAs can be blocked by simple technical means > via TrustDB and OneCRL manipulations. RAs are indistinguishable from > Symantec itself when checking certificates, because the certificates > were in fact signed by Symantec itself. > I thought the RAs were being issued off their own intermediate branches and not off Symantec ones. Rechecking crt.sh "C=KR, O=CrossCert, OU=AccreditedCA, CN=CrossCert Class 1 Server CA" is a separate intermediate chaining to KISA so I done goofed here. Oops. Re-reading the issues, I think I got crossed between subCAs missing audits, and RA issuance. > The standard way this is done is that the old roots (which are trusted > by old browsers) cross-sign the new roots or the subCAs of the new > roots. People buying new certs get (as always) a new cert chain for > their new cert, which contains enough data to pass in browsers that > trust new root, trust the old root, or trust both roots. > > Servers with old certs still return the old certificate chain that > leads to the old roots. > > Other measures (such as browser embedded SubCA/cross certs) can be used > to reduce how much of the old CA tree Firefox/Thunderbird trust during > the transition. > Thanks for clearing this up. > I think we will need to look separately at two very different issues: > > 1. Symantec's PKI and the location of the EV trust bit unfortunately > allows non-EV SubCAs to issue EV certs that Firefox marks as green. > This same issue applies to most Mozilla trusted roots, because > Mozilla implemented the EV trust at the root CA level rather than at > a SubCA level. > > This can be fixed technically by restricting the EV trust to the > SubCAs that are supposed to issue EV certs, rather than to whatever > general WebPKI root cert resides above it (in order for legitimate EV > certs to be trusted as normal certs by old browsers). > This is a start. We'd need confirmation from Symantec which subCAs are supposed to be able to sign EV as I don't believe we have a complete list. That's also assuming that things are that nice and organized (which is far from a given). If we can successfully cut a good chunk of the crud away, it would at least help in mind keeping EV being a reasonable option. > 2. If there were any significant failures in the validation of EV > certs signed directly by the dedicated EV SubCAs at Symantec (other > than the one test cert that got some Symantec people fired some time > ago). > Can we reasonably determine we're good here beyond a reasonable doubt? The current responses to the last question found new parts of the fPKI that are chaining via the Issue Y intermediates that appear that they would be trusted by Mozilla. We also have confirmation that some of the RAs could issue EVs and could validate certificates. Symantec said that they independently checked the non-expired EV certificates, but I think I have (IMHO) justified concerns there might be additional ones here we don't know about. Given the number of unknown knows with the EV situation right now, I think I'm going to wait for more information before pushing any one specific option, but at a minimium, we need to cut down the parts of the tree that can sign for EV. There's also a third issue is "what is the correct response to the severity of Symantec's trust issues". We're fairly close to CNNIC territory here, since we've got multiple intermediates that chain to the Mozilla roots and can issue certificates which are either not BR compliant, or out of scope of an audit. In an attempt to try and get this thread to a point where the powers that be might choose to include it in their proposal, let's try the following in the addition to what is under PKI concerns in the gdoc: --- - For any Symantec-owned root certificate in the Mozilla trust program with the CKA_TRUST_SERVER_AUTH bit enabled, all leaf certificates in the chain shall contain embedded SCT information. This shall be required for the certificate to be trusted. (or in plain English: web certificates need both CT and SCT embedded. S/MIME certificates are alright without. We separate these into two separate chains of trust so they can't accidentally intermix.). - For the purposes of CKA_TRUST_EMAIL_PROTECTION, all CA and subCA certificates in the chain of trust must have embedded SCT information to be considered trusted. The leaf certificate shall be exempt from this requirement. - A three-day grace period shall be in place from the issuance date of a certificate to when it must be in the CT logs for validation reasons (this is in line with other proposals here). - Certificates issued for server authentication without SCT information being timely submitted shall be considered equivalent to a misissue. Exceptions to this policy for legacy customers may be granted on a case-by-case basis. - All server authentication certificates shall be submitted to at least two public CT logs. - Certificates issued before the effective date shall continue to be trusted until their expiration/revocation. These certificates shall be exempt from the embedded SCT requirement unless reissued. - Symantec shall identify (if possible) subCAs are supposed to be used for issuing EV certificates. The EV trust bit shall be removed from the root, and added to the intermediate certificates. - Certificates issued from the pre-existing roots after the effective date shall be limited to a maximum lifetime of nine months. --- This revised proposal achieves the following - Mozilla never trusts a certificate we can't independently audit and verify via the CT logs. This also slams the door shut on Issue Y of ever becoming an issue again since we'd immediately be able to spot it before the issue snowballs. - S/MIME and ServerAuth is clearly separated. No chance of a nasty surprise from an undisclosed CA that has only been issuing S/MIME certificates but could issue for SA due to a lack of EKUs (since S/MIME intermediates wouldn't show up in the CT logs as far as I know). - In the S/MIME case, while we can't drop the entire load into CT to find undisclosed intermediate certificates, we can mandate that the embedded SCT for those subCAs has to be there. That should force all the intermediate certificates that can sign for S/MIME into the logs so we can at least get *some* idea of the situation here. It at least helps to ensure that S/MIME intermediates are being disclosed, and we're only trusting what is being disclosed. I don't know if we can reasonably do this for the old roots though short of hardcoding all the SCTs into NSS which is likely undesirable. - The SCT exemption policy allows for legacy customers to get certificates for devices that might choke on them (since I've seen some pretty ugly embedded TLS stacks). We will never trust a certificate meant for this scenario, keeping in line with the above. - The old root certificates can't issue for longer that nine months past the effective date. That should light a serious fire to migrate ASAP, but prevent existing certificates from being heavily impacted except in the case of reissue (which should be reissued against the new roots). - For customers who pinned the old roots or can't migrate, issuance off the old certificates remain possible while lighting a fire under them to fix their infrastructure if they don't wish to reissue every nine months. - It at least limits some of the potential issues with the current EV mess. I'm still personally of the opinion that this might need to go further but at least its a start. --- Final thoughts: As far as I can tell and based on my reading, Mozilla products only care about SERVER_AUTH, CLIENT_AUTH, and EMAIL_PROTECTION, with the other trust bits being legacy. For CLIENT_AUTH, it might be worth doing something similar to the S/MIME provision, but I don't know enough to determine the actual impact here. While I think there's still discussion to be had on max life+EV, I think the mandated SCT provisions would go a *long* way in helping restoring trust in Symantec since it means any potential misissues could be detected relatively easily, and we never trust anything that can't be independently verified. It also goes a good way at lighting the necessary fires under Symantec management, though some part of me wonders if the max expiration should be lower. I realize this might be a fairly large technical burden to get implemented, so I'm willing to pitch in some way to help if someone is willing to mentor me. As always, hoping to hear comments, and the TPTB are willing to consider it and point out where I've been stupid. Michael _______________________________________________ dev-security-policy mailing list dev-security-policy@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-security-policy