[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Nitpicking between CMS and CMC
The definition of "sid" in CMS section 5.3 says, in part "When
other certificate formats are referenced, the documents that specify the
certificate format and their use with the CMS must include details on
matching the key identifier to the appropriate certificate field." Except
for the fact that the certification request is not a certificate, this is
met by CMC.
A PKCS #10 certification request and a self-signed certificate are
not that different in semantics or in trustworthiness. Since a
self-signed certificate has issuer == subject by definition and signature
== signatureAlgorithm by RFC 5280 section 4.1.2.3, the only mandatory
fields in a self-signed certificate whose value couldn't be derived from a
certification request are serialNumber and validity. The signature comes
from the subject in both cases, and is only trusted through out-of-band
procedures.
Should the wording in section 5 change from "uniquely identifies
the certificate containing" to "uniquely identifies the certificate or
certification request containing"? If so, another sentence about
certification requests gets added to 5.3, like "When certification request
formats are referenced, the documents that specify the request format and
their use with the CMS must include details on matching the key identifier
to the appropriate request field."
Tom Gindin
Sean Turner <turners@xxxxxxxx>
Sent by: owner-ietf-pkix@xxxxxxxxxxxx
03/26/2009 05:57 PM
To
Jan Vilhuber <vilhuber@xxxxxxxxx>
cc
ietf-pkix@xxxxxxx
Subject
Re: Nitpicking between CMS and CMC
I think mandating a self-signed certificates is not the way to go.
spt
Jan Vilhuber wrote:
> I noticed the following discrepancy between CMC and CMS, which could
> very accurately be described as nitpicking (but them isn't that what
> standards are about?):
>
> CMS RFC, section 5. Signed-data Content Type:
> <quote>
>
> A recipient independently computes the message digest. This message
> digest and the signer's public key are used to verify the signature
> value. The signer's public key is referenced either by an issuer
> distinguished name along with an issuer-specific serial number or by
> a subject key identifier that uniquely identifies the certificate
> containing the public key. The signer's certificate can be included
> in the SignedData certificates field.
>
> </quote>
>
> Specifically: "... or by a subject key identifier that uniquely
identifies the certificate containing the public key".
>
> CMC RFC, Section 3.2. Full PKI Request
>
> <quote>
> If SignedData is used, the signature can be generated using either the
> private key material of an embedded signature certification request
> (i.e., included in the TaggedRequest tcr or crm fields) or a previously
> certified signature key. If the private key of a signature certification
> request is used, then:
>
> a. The certification request containing the corresponding public key
> MUST include a Subject Key Identifier extension
>
> b. The subjectKeyIdentifier form of the signerIdentifier in
> SignerInfo MUST be used.
>
> c. The value of the subjectKeyIdentifier form of SignerInfo MUST be
> the Subject Key Identifier specified in the corresponding
> certification request. (The subjectKeyIdentifier form of
> SignerInfo is used here because no certificates have yet been
> issued for the signing key.) If the request key is used for
> signing, there MUST be only one SignerInfo in the SignedData.
>
> </quote>
>
> So CMC allows the SignedData to use the SubjectKeyIdentifier, but
pointing to the certificate request it is encapsulating. While I don't
mind this usage, the CMS rfc specifically mentions that the
SubjectKeyIdentifier "uniquely identifies the certificate containing the
public key".
>
> So if we want to be nitpicky about it, then the CMC rfc is asking for
something which is illegal as per the CMS RFC. This can be cleaned up in
either place, i.e. either mandating in CMC that a self-signed certificate
be included when no previous certificate has been issued (thus making it
conform to CMS), or modify CMS to allow a more liberal application of
where to find the public key in question.
>
> Thoughts?
>
> jan
>
>
>