Paul Hoffman wrote, On 2008-03-04 07:49:
> Here is a slightly edited version of what a lead security developer
> at Microsoft told me with regard to EKUs and path processing. [snip]

> Every root certificate is stored with some properties that are not
> cryptographically bound to the certificate, but are protected by
> other mechanisms that protect the integrity of the root store. A root
> may have EKU assigned to it either through an EKU extension, or by
> properties in the root store. [snip]

> A certificate is considered consistent with the root EKU if each CA
> certificate in the path either has an absent EKU extension or express
> an EKU consistent with the intended usage. [snip]

> The EKUs valid for a [root] certificate [are] the intersection of EKUs
> in the root and EKUs set as root parameters. Empty parameters or absent
> EKU extension counts as Any. [snip]

> The normal case is that the root certificate does not have any EKU
> extension and that all EKUs are expressed as parameters set by
> Microsoft. [snip]

> Microsoft chain validation honors extensions in roots [and] process
> them if they have any relevance for path processing. [snip] It is
> specifically allowed in RFC 3280 section 6 to further constrain path
> validation from the standard algorithm.

> [snip] The important thing here is that we do not require EKUs in
> roots, but if they are present, we do honor them and do not validate
> end certificates with conflicting EKU under such root.

This matches the understanding that we received from Microsoft
representatives at a CAB Forum meeting in the summer of 2006.  It is good
that they have now published that behavior.  I believe it applies to KUs
and EKUs and indeed ANY cert behavior-limiting extensions that may be
found in certs, including Basic Constraints and Name Constraints.  The
last paragraph quoted above matches the long-time behavior of NSS with
respect to EKUs in root certs.

At the risk of praising the competition (:-), as I view it, MS Windows'
ability to add KUs, EKUs and other cert behavior-limiting extensions to root
certs is similar to NSS's ability to set trust flags on root certs
for specific capabilities (such as SSL, S/MIME, code signing) that happen to
map to KUs, EKUs, and Basic Constraints, and is more flexible, in that it
can be applied to ANY cert behavior-limiting extensions, while NSS's trust
flags presently only apply to specific pre-defined sets of capabilities that
map to KUs, EKUs and Basic Constraints.  I hope that
the NSS team will someday have the resources to add a similarly flexible
capability to NSS.

/Nelson
_______________________________________________
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to