[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: End-Entity Certificate Policies
Wow. I did not expect such a flurry of responses in such a short
time. Clearly, there is not consensus on this topic (at least not
yet). Many people have asked me to explain our reasoning. I have not had
the opportunity to run this by Tim, so I hope he does not flame me. So,
here goes.
Single Certificate Policy OID
When an end-entity certificate contains more than one certificate policy
OID, there is ambiguity about the intent of a signer. On the other hand,
if the end-entity certificate contains only one certificate policy OID,
there is no ambiguity. If an end-entity certificate contains two policies,
one that says the certificate id for use with non-binding e-mail and
another that says the certificate is intended for purchases up to $10,000,
then it is not clear the signer intends when a signature is generated.
One solution for this problem is specified in RFC 2634, Section 5.4
(Signing Certificate Attribute Definition). Here, the signer can state the
policy that was intended at the time the signature is generated. Other
protocols that use the PKIX Certificate Profile do not have similar mechanisms.
I understand the desires expressed by Mack Hicks and Dave Solo for multiple
certificate policy OIDs in a certificate. And, I can imagine environments
where there would not be a problem with this practice. Perhaps we need
some guidance about when it is acceptable and when it is not.
Limiting Certificate Policy Qualifiers to End-Entity Certificates
A review of the certificate path validation algorithm shows that one of
it's outputs is a set of certificate policy qualifiers. X.509-1997 says
that a successful validation returns "a set of policies constrained by the
CAs in the certification path, together with all qualifiers for these
policies encountered in the certification path."
This means that the certificate user cannot tell which qualifier goes with
which certificate in the path. Rather, an unordered set of the qualifiers
is provided. Since the purpose of qualifier is to provide additional policy
information to the certificate user (a.k.a. the relying party), it seems
important that the set of qualifiers not provide
contradictions. Especially in the case of the qualifiers specified in RFC
2459.
Mike Myers suggests that CA certificates should be permitted to include the
CPS pointer qualifier. Let's assume that there is a simple path of two
certificates, the CA certificate and the end-entity certificate. The CA
certificate has two certificate policy OIDs, each with a CPS pointer
qualifier. The end-entity certificate has a single certificate policy OID,
also with a CPS pointer qualifier. When the certificate path validation
algorithm is executed, one of the outputs will be the certificate policy
OID that is common to both certificates and the two qualifiers (one from
the CA certificate and one from the end-entity certificate). What is the
certificate user expected to do? If the URLs are different, the
certificate user really has no idea what to do.
Russ