Hi Rob!

On Thu, Mar 27, 2014 at 5:29 PM, Rob Stradling <rob.stradl...@comodo.com>wrote:

> On 26/03/14 15:29, Emilia Kasper wrote:
>
>> Wow, thanks for all the great feedback!
>>
>> On Wed, Mar 26, 2014 at 2:47 PM, Daniel Kahn Gillmor wrote:
>>
> <snip>
>
>      This is a pretty perverse situation, though, and perhaps the answer is
>>     that CA X just shouldn't do that kind of weird/chained reissuance over
>>     the key in Y.  I've also done no certificate surveys to see if this
>> sort
>>     of scenario has actually happened anywhere in the modern landscape.
>>
>> Cross-signing happens all the time but afaik the other way around, i.e.,
>> an intermediate Y' corresponding to a _newer_ root cert Y is
>> cross-signed by some _older_ root cert Z. So an old client would usually
>> know only Z and a newer client would know Z and Y (or even Y' - some
>> clients directly trust intermediates these days).
>>
>
> That's true in many cases, but...
>
> Comodo gained entry into the CA marketplace by purchasing one set of roots
> (from AddTrust) that were in the Netscape trust store, and another set of
> roots (from The USERTrust Network, aka UTN) that were in the Microsoft
> trust store.  Neither set of roots were "older" or "newer".
>
> UTN cross-certified AddTrust.  A few years later we were able to get one
> of the AddTrust roots added to the Microsoft trust store.  After that, it
> made more sense to have the cross-certification relationship the other way
> around, and so AddTrust cross-certified UTN.
>
> (Cue various cross-certification loop bugs in Mozilla's code, but I
> digress)
>
> Oh, BTW, bi-directional cross-certification also occurs in Bridge CA
> scenarios such as the Federal PKI.
>
> <snip>
>
>      CT might be a good place to gather this information from -- are there
>>     plans to ensure that all intermediate CAs are logged publicly?
>>
>> No current plans for CT to require logging intermediates. But actually,
>> if we go the autocorrect route then we should just implement AIA
>> fetching. Modern certs should have a CA Issuers field in the
>> AuthorityInformationAccess extension in them that the chain builder
>> could follow recursively. I've now looked a bit more at the mod_ssl code
>> and it's a bit of work but maybe not all that different from doing OCSP,
>> really?
>>
>
> So, we arrived at the point where "AddTrust External CA Root" became our
> primary root certificate, but we still needed to involve UTN in the cert
> chain in order to be trusted by old Windows platforms (i.e. Windows 2000,
> and XP boxes that have Automatic Root Update disabled).
>
> Noting that Windows clients do AIA fetching, we started including a
> carefully constructed pair of AIA->caIssuers URLs in many of the
> intermediate certs we issue and still use today.
> e.g. http://crt.comodoca.com/COMODOSSLCA.crt
>
> CA Issuers - URI:http://crt.usertrust.com/AddTrustExternalCARoot.p7c
> CA Issuers - URI:http://crt.usertrust.com/AddTrustUTNSGCCA.crt
>
> Most platforms trust "AddTrust External CA Root", so they don't chase
> either of these AIA URLs.
> Old Windows boxes download the first URL (a PKCS#7 "certs only" bundle
> containing the self-signed "AddTrust External CA Root" root and a
> cross-cert issued to it by one of the UTN roots), and are able to build a
> chain up to AddTrust, or failing that, UTN.
> Even older Windows boxes don't support PKCS#7 AIA caIssuers URLs, so they
> then download the second URL and build a chain up to UTN.
>
> A correctly configured TLS server that uses one of our certs will send a
> cert chain terminating with "AddTrust External CA Root".
>
> I do _not_ want mod_ssl to "autocorrect" this by following the AIA URL(s)
> and deciding to also send the cross-certificate issued by UTN.


Right. So this particular case could be handled by carefully constructing
the shortest possible chain from all AIA information available (system
store, p7c, crt). But I agree that it's gnarly, a bunch of ugly code, and
hugely undeterministic (what if the .crt responds but the .p7c request
errors out?).

Would you agree that it's safe to do a one-hop AIA-autocorrection for
leaves only, i.e. certs with NO intermediates configured? My hunch is that
this would fix the bulk of misconfigured chains while leaving the ugly
cross-signing cornercases alone.

Cheers,
Emilia


>
>
> --
> Rob Stradling
> Senior Research & Development Scientist
> COMODO - Creating Trust Online
>
>

Reply via email to