Bonsoir,

Le mardi 6 décembre 2016 09:31:48 UTC+1, Wen-Cheng Wang a écrit :
> Hi Jacob,
> 
> I think you get confused by My colleague Li-Chun's email because he mentioned 
> a lot about using self-issued certificates for key-rollover, AIA certificate 
> chaining support, and the bug of Microsoft IIS (note: not IE browser) in 
> handling self-issued certificates. All these are actually off-topic. We are 
> sorry if his email confused you.

I don't think there is a bug in IIS here. IIRC, you discovered that IIS doesn't 
send the self-issued certificate when loaded with the 2 self-signed root certs 
and the self-issued cert (1st gen signing 2nd gen). And IIS' behaviour is 
right, in that it doesn't know if the browser will need this link certificate. 
IIRC again, what was proposed for you is that you declare the 2nd gen 
self-signed cert as untrusted on your side, to force IIS to send the link.

> Here I would like to clarify that we are not here to asking for supporting 
> self-issued certificates or AIA certificate chaining. We are here to simply 
> request Mozilla to accept our second generation of Government Root CA 
> certificate.
> 
> Currently, our first generation of Government Root CA certificate has 
> alreading been in the trust list of Mozilla. After Mozilla accepting our 
> second generation of Government Root CA certificate, our certificate chains 
> for SSL will look like the following:
> 
> 1. Government Root CA (first generation) --> GCA (first generation) --> SSL 
> Cert
> 2. Government Root CA (second generation) --> GCA (second generation) --> SSL 
> Cert

You're playing with corner cases of X.509/PKIX. You're right that on paper, 
it's clearly defined, it works, etc. In practice, it may not work, and even if 
you can blame and shame a non completely conformant implementation refusing 
this scheme, I don't think it's a situation you should be comfortable in as a 
CA.

Talking about your duties when playing with such renewals, you already know 
that the population under GCA 1st gen and GCA 2nd gen is the same with regard 
to generated serial numbers and CRLs produced (the content of the CRL chaining 
to GCA 1st gen MUST be identical to the content of the CRL chaining to GCA 2nd 
gen, unless you implement CRL partitioning).

And the situation gets weirder with the Root. In X.509, GDCA 1st gen and GDCA 
2nd gen are a single CA (serial numbers assigned to issued certs, CRLs, etc). 
And there's a difference here between RFC5280 and X.509. In RFC5280, the CRL 
chaining to GDCA 1st gen can't give a valid revocation result for a certificate 
chaining to GDCA 2nd gen, and thus the set of serial numbers for certs issued 
by each gen of GDCA may or may not be disjoint. It's an unclear area of 
RFC5280, and it's not fun to sit in here.

From what I see, you're doing it correctly from an X.509 point of view. Each 
GCA gen produces its partitioned CRL  plus an unpartitioned complete one, both 
complete ones are identical in content (except a few seconds delta in the 
thisUpdate field, unimportant). And I found 3 CRLs issued under GDCA, with 
identical contents. That should also work if RFC5280 rules are followed.

> This is the same as the situation of other root CAs performing key-rollover.

It's not that common. I know about ICAO MRTD certs (worked on it for a few 
years, not that long ago), it's a real mess, and it's not a valid example of 
successful PKI deployment.

> One thing different with what other commercial CAs is that we do not change 
> the issuer DN when our root CA perform key-rollover. I have already explain a 
> lot of this in this discussion thread. According our tests, using the same 
> issuer DN between generations of root CA certificates actually will not cause 
> problem for browsers to perform certificate chaining. Therefore, please do 
> not worry about it. 
> 
> > 
> > The mistake was to use a part of those standards which is often
> > problematic in the real world.  For example, according to your
> > presentation, when IIS builds server certificate chains to send to
> > clients, it compares only the DN, causing problems when non-AIA-
> > downloading browsers visit IIS-powered sites with GCA certificates.
> 
> Since this is off-topic, I would not like to spend a lot time and space to 
> discuss self-issued certificate and AIA issues here. However, to make a quick 
> clarification, browsers do not have problem if the certificate chain contains 
> self-issued certificates. Actually, even Microsoft's IE can handle 
> certificate chains containing self-issued certificates. It is Microsoft's IIS 
> can not correctly send the certificate chain to the client side.

Mozilla::pkix doesn't know about self-issued certificates. The library just 
considers such a certificate as a subordinate CA cert. It happens to work in 
your specific situation.

> Other https server such aa Apache have no problem with certificate chains 
> containing self-issued certificates.

That may not be true in recent versions, depending on how you configure your 
server. But again, off-topic.
_______________________________________________
dev-security-policy mailing list
dev-security-policy@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to