[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Extended Key Usage and path validation
Jean-Marc,
RFC 2459 doesn't say a whole lot about handling extended key usage
extensions. For example, section 6.1 of RFC 2459 contains one instance of
"usage":
"(m) If a key usage extension is marked critical, ensure the keyCertSign bit
is set."
which only makes sense for certificates 1 through n - 1. Note that section
6.1 does include:
"(h) Recognize and process any other critical extension present in the
certificate."
Extended key usage is commonly included in end-entity certificates to
authorize an end-entity to sign certain things. One example is signing OCSP
responses (see section 4.2.2.2 of RFC 2560).
So one way to look at this issue to:
- check key usage extensions as part of one's general-purpose path
validation
- check extended key usage as part of one's protocol-specific "signature
validation"
In this case, "signature validation" means verifying the signature plus
checking the signer's certificate.
I was unable to find any discussion about extended key usage in RFCs 2312
and 2632. So I am not sure what Netscape is saying about using extended key
usage in S/MIME. I wonder if Netscape's information is outdated.
Frank
> -----Original Message-----
> From: Jean-Marc Desperrier [mailto:jean-marc.desperrier@certplus.com]
> Sent: Thursday, November 02, 2000 2:24 PM
> To: ietf-pkix
> Subject: Extended Key Usage and path validation
>
>
> I've been trying recently to understand how path validation should be
> done for the usage of a key.
>
> Until now, the only document that I've found that's really explicit is
> the following from Netscape/iPlanet :
> http://docs.iplanet.com/docs/manuals/cms/41/dep_gide/ext.htm
>
> Netscape, in this document, says this about extended key usage in path
> validation.
>
> "A given certificate is valid only for the intersection of
> key usages of
> all the certificates in the chain to its root (as determined
> by both the
>
> Extended Key Usage extension for each certificate and the
> corresponding
> user settings). To be valid for a particular usage, the end-entity
> certificate and all certificates in the chain must all be
> valid for that
> usage"
>
> In fact, in the context it's not very clear whether this is what
> Netscape recommends or the current practice of Microsoft softwares.
>
> But their recommendation for certificat format in table B.1 of that
> document is perfectly coherent with that.
>
> This path validation does not apply to keyUsage.
> A CA with a keyUsage of keyCertSign, cRLSign, can perfectly
> emit a valid
> certificate with a keyUsage of digitalSignature.
>
> I've been reading through RFC2459, and I was not able able to find
> anything that really supports this behaviour.
>
> Is this actually the intended use of key usage and extended
> key usage ?
>
> For example Netscape recommends the following for a CA that
> signs S/MIME
> client certificate :
> extKeyUsage: Email
> keyUsage: keyCertSign, cRLSign
>
> But then extKeyUsage and keyUsage are not consistent each other.
> After RFC2459, "extKeyUsage: Email" is consistent with
> digitalSignature,
> but not with keyCertSign, cRLSign
>
> RFC2459 says the certificate MUST only be used for a purpose
> consistant
> with both fields and is invalid if none exist.
> This only applies when both are flagged critical, but if the correct
> setting of this values forbids you to set them critical, it
> sounds quite
> annoying.
> There should be an explicit table of what is compatible with what.
> I'm afraid not every implementer of RFC2459 will make the
> same decision
> of which values are compatible if trying to implement that with the
> current text in RFC2459.txt or draft-ietf-pkix-new-part1-02.txt.
>
> Now if extended key usage must not be used in path validation, then we
> loose the possibility to constraint the usage of a certificate in the
> CAs above it, except maybe through policy, but this is not
> something the
> software can interpret as easily as extended key usage.
>
> Should this way of using extKeyUsage be considered bad practice and
> avoided or not ?
>
> Isn't there the need for a PKIX document that would explicitely detail
> how a complex CA path should be set for various uses ? (if
> there is one
> that can effectively be used for that, I've missed it).
>