Extended Key Usage and path validation

Jean-Marc Desperrier <jean-marc.desperrier@certplus.com> Thu, 02 November 2000 19:25 UTC

Received: from ns.secondary.com (ns.secondary.com [208.184.76.39]) by ietf.org (8.9.1a/8.9.1a) with SMTP id OAA26332 for <pkix-archive@odin.ietf.org>; Thu, 2 Nov 2000 14:25:49 -0500 (EST)
Received: from localhost (daemon@localhost) by ns.secondary.com (8.9.3/8.9.3) with SMTP id LAA06084; Thu, 2 Nov 2000 11:17:56 -0800 (PST)
Received: by mail.imc.org (bulk_mailer v1.12); Thu, 2 Nov 2000 11:17:52 -0800
Received: from certplus.com ([195.101.88.81]) by ns.secondary.com (8.9.3/8.9.3) with ESMTP id LAA06046 for <ietf-pkix@imc.org>; Thu, 2 Nov 2000 11:17:50 -0800 (PST)
Received: from certplus.com ([192.168.212.171]) by certplus.com (8.8.7/8.8.7) with ESMTP id UAA24378 for <ietf-pkix@imc.org>; Thu, 2 Nov 2000 20:30:07 +0100
Message-ID: <3A01BF34.B3723D9B@certplus.com>
Date: Thu, 02 Nov 2000 20:23:32 +0100
From: Jean-Marc Desperrier <jean-marc.desperrier@certplus.com>
Organization: Certplus
X-Mailer: Mozilla 4.75 [en] (WinNT; U)
X-Accept-Language: en
MIME-Version: 1.0
To: ietf-pkix <ietf-pkix@imc.org>
Subject: Extended Key Usage and path validation
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Precedence: bulk
List-Archive: http://www.imc.org/ietf-pkix/mail-archive/
List-ID: <ietf-pkix.imc.org>
List-Unsubscribe: mailto:ietf-pkix-request@imc.org?body=unsubscribe
Content-Transfer-Encoding: 7bit

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).