On Tuesday, April 9, 2019 at 12:08:16 PM UTC-6, Ryan Sleevi wrote:
> On Tue, Apr 9, 2019 at 11:25 AM Nick Lamb via dev-security-policy <
> [email protected]> wrote:
> 
> > Mozilla's wiki has a page about the subCAs
> >
> > https://wiki.mozilla.org/CA/Intermediate_Certificates
> >
> > On that page I see a link labelled:
> >
> > "Non-revoked, non-expired Intermediate CA Certificates chaining up to
> > roots in Mozilla's program with the Websites trust bit set"
> >
> > And clicking that link produces a CSV file. Fine so far.
> >
> > I anticipated that this CSV file would be a set of subCA certs which
> > were trusted by Firefox to issue leaf TLS certs, since on the face of
> > it that's what the title claims.
> >
> >
> > But, that seems to be wrong, for example the file includes
> > "Symantec Shared Individual Email Certificate Authority"
> > https://crt.sh/?id=197857126
> >
> > which as its name suggests does not have the Websites trust bit set
> 
> 
> > So. What's actually going on here? Is there a trick that I'm not
> > understanding to processing this file? Why are there certs in it that
> > actually aren't for trusted subCAs at all?
> >
> > Is the link wrong?
> >
> > What is the recommended procedure for someone who wants to determine
> > whether a random leaf cert they're looking at would in fact be trusted
> > in Firefox? Other than "try it in Firefox" ?
> >
> 
> I think it's merely a misparsing of the description.
> 
> The intermediate you referenced - https://crt.sh/?id=197857126 - chains to
> a "root in Mozilla's program with the Websites trust bit set". That root is
> https://crt.sh/?caid=1110, and you can see, it has the Website Trust Bit
> set.
> 
> I suspect you parsed it as "intermediates ... with the websites trust bit
> set", but that's not what that report is. The answer for how to determine
> that is, yes, to attempt to construct a chain and determine whether the
> intersection of the root trust policies (which are maintained in CCADB) and
> the attributes of all the certificates in all of the chains to that root
> overlap with the Website trust bit.
> 
> The answer for whether it would be trusted in Firefox is, indeed,
> canonically to "try it in Firefox". If you're willing to accept a more
> probabilistic approach (even if that actual probability may be 99.999%),
> then you'd need to evaluate the particular certificate paths. For example,
> you could use Golang along with the stock Go X.509 library (or if you want
> more nuanced handling and certificate path enumeration, ZMap's ZCrypto -
> https://github.com/zmap/zcrypto , as used by Censys) to do this. crt.sh
> uses PGSQL to compute these paths, if I recall correctly (
> https://github.com/crtsh/certwatch_db/blob/master/determine_ca_trust_purposes.fnc
> I
> believe)

Useful for ad-hoc chain-building or trust store inclusion checking, Mozilla 
also has "certsplainer" which can help establish whether a given cert is 
trusted in Firefox. Your example cert is here: 
https://tls-observatory.services.mozilla.com/static/certsplainer.html?id=186562432
 which will display the trust paths available for that certificate.
If you click into or upload a root, there's also a section explicitly 
identifying if it's trusted by Mozilla.
_______________________________________________
dev-security-policy mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to