Nelson,

Nelson B Bolyard wrote:
Eddy Nigg wrote, On 2009-01-12 14:51:
On 01/13/2009 12:37 AM, Julien R Pierre - Sun Microsystems:
I agree. The person who wrote that page must have misunderstood the
meaning of the CRL Issuing Distribution Points extension. This extension
is required to be critical in RFC 3280 and 5280 for good reason - it
defines the scope of the CRL. Unless the client software understands the
scope, the CRL is meaningless to it. It should not be confused with a
full CRL.

I don't know that the presence of a CIDP necessary means that the CRL is
not a full CRL.  The original comment arose in the context of a CA that
was putting CIDP into their full CRLs.

Why would they do that ?

The whole purpose of the IDP extension is to define a scope other than that of a full CRL, ie. a partial CRL, or to be an indirect CRL (ie. a CRL for another CA).

In that particular case, if a CA wants to create a full CRL for themselves, the proper behavior would be to omit the IDP extension altogether, not to include it but make it non-critical.

I think this was Kathleen, however based on comments from here. As I understood (from Nelson), CRLs with critical CIDP extension fail to load properly with NSS. Is this correct?

Yes.  And that's appropriate for partial CRLs.

The IDP extension is defined as follows :

   issuingDistributionPoint ::= SEQUENCE {
        distributionPoint          [0] DistributionPointName OPTIONAL,
        onlyContainsUserCerts      [1] BOOLEAN DEFAULT FALSE,
        onlyContainsCACerts        [2] BOOLEAN DEFAULT FALSE,
        onlySomeReasons            [3] ReasonFlags OPTIONAL,
        indirectCRL                [4] BOOLEAN DEFAULT FALSE,
        onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }

I suppose you can technically construct a full CRL, if you set all 4 boolean fields to false, and omit the optional DistributionPointName and ReasonFlags. However, at that point, the IDP extension no longer serves any purpose whatsoever - there is no other useful field left.

And as RFC3280 notes in section 5.2.5 :

   "Although the extension is
   critical, conforming implementations are not required to support this
   extension."

Thus, any CA that is creating full CRLs with an IDP encoded as I described above is just shooting themselves in the foot, as their full CRLs will not decode with compliant implementations that don't understand IDP - as is currently the case for NSS.

I also don't think the CAs should be violating RFC3280 by making the extension non-critical. They just need to omit the IDP extension if it's not needed.
_______________________________________________
dev-tech-crypto mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to