[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Absent keyUsage in certificates



Sam Roberts <sroberts@xxxxxxxxxxxx> writes:

>I agree that allow-all or deny-all is sensible, and special-casing two of the
>bits would be weird, but isn't allow-all what is specified now?

Nope.  See below.

>This interpretation is based on the validation rules, section 6.1.4, rule
>(n):
>
>  If a key usage extension is present, verify that the keyCertSign bit
>  is set.

Oh, section 6 contradicts section 4 in a number of places, I take section 4 as
definitive since it specifies the intent of the spec whereas section 6 only
contains an attempt at implementing that intent.

(Another proposed improvement for bride-of-3280, indicate which of section 4
 or 6 is definitive in the case of conflict).

>I can't see anything that says that absence of Key Usage should trigger chain
>validation failure.

The exact text I quoted earlier, i.e:

  Conforming CAs MUST include this extension in certificates that contain
  public keys that are used to validate digital signatures on other public key
  certificates or CRLs.

>Its a long RFC, an you point to the text you are "squinting sideways" at?

The keyUsage text, which covers the use of keyUsage in a very obtuse way.
What the above is trying to say in a very roundabout way is:

  CA certificates must include a keyUsage extension with keyCertSign or
  crlSign bits set as appropriate.

>Why MUST an end-entity cert include a Key Usage, not including it is a good
>way of specifying allow-all. You want to forbid allow-all?

No, I want to make it explicit.  As your message shows, at least one PKIX
member (not to mention an unknown but significant number of non-PKIX people)
find the current text/usage quite confusing :-).  Since virtually all CAs
already include keyUsage, explicitly requiring it would fix the problem at
virtually zero cost to implementors.

Peter.