Subject: RE: Comments on <draft-ietf-pkix-crlaia-00.txt>

From: "Stefan Santesson" <[email-masked]>
Date: Sat, 23 Apr 2005 00:02:35 +0100

Denis,

Russ and I have taken a thorough look at your text proposal and we have
edited a counter proposal where we try to meet your needs as much as
possible without compromising what we think is the core purpose of the
draft (to enable certificate discovery bottom-up).

The conclusion is that we suggest changes to the introduction section
but we keep the old security considerations intact. That is not because
we necessarily disagree with all of the statements in your proposal, but
in the cases we don't, we still think it is out of scope for this work.

The new introduction proposal based on your input is:
--------------------------------------------------------------

RFC 3280 [PKIX1] specifies the validation of certification paths.  One
aspect involves the determination that a certificate has not been
revoked, and one revocation checking mechanism is the Certificate
Revocation List (CRL).  CRL validation is also specified in RFC 3280,
which involves the constructions of a valid certification path for the
CRL issuer.  Building a CRL issuer certification path from the signer of
the CRL to a trust anchor is straightforward when the certificate of the
CRL issuer is present in the certification path associated with the
target certificate, but it can be complex in other situations.

There are several legitimate scenarios where the certificate of the CRL
issuer is not present, or easily discovered, from the target
certification path.  This can be the case when indirect CRLs are used,
when the certification Authority (CA) that issued the target certificate
changes its certificate signing key, or when the CA employs separate
keys for certificate signing and CRL signing.

Methods of finding the certificate of the CRL issuer are currently
available, such as though an accessible directory location or through
use of the Subject Information Access extension in intermediary CA
certificates.

Directory lookup requires existence and access to a directory that has
been populated with all of the necessary certificates.  The Subject
Information Access extension, which supports building the CRL issuer
certification path top-down (in the direction from the trust anchor to
the CRL issuer), requires that some certificates in the CRL issuer
certification path includes an appropriate Subject Information Access
extension.

RFC 3280 [PKIX1] provides for bottom-up discovery of certification paths
through the Authority Information Access extension, where the
id-ad-caIssuers access method may specify one or more accessLocation
fields that reference CA certificates associated with the certificate
containing this extension.

This document enables the use of the Authority Information Access
extension in CRLs, enabling a CRL checking application to use the access
method (id-ad-caIssuers) to locate certificates that may be useful in
the construction of a valid CRL issuer certification path to an
appropriate trust anchor.

Stefan Santesson
Program Manager, Standards Liaison
Windows Security

> -----Original Message-----
> From: Denis Pinkas [mailto:[email-masked]]
> Sent: den 18 april 2005 13:41
> To: Stefan Santesson
> Cc: Russ Housley; pkix
> Subject: Re: Comments on <draft-ietf-pkix-crlaia-00.txt>
> 
> Stefan,
> 
> > Denis,
> 
> > I will come back and comment on your text proposals, but before
that,
>  > a few questions/comments:
> 
> > <snip>
> 
> >>> You point out some well known issues related to the lack of
absolute
> >>> cryptographic binding between CRL and certificates where the
> >>> certificate and CRL is not signed by the same key.
> 
> >> Not really. It is indeed possible to have an absolute cryptographic
> >> binding between CRL and certificates where the certificate and CRL
is
> not
> >> signed by the same key, but the key point is that proposed
extension
>  >> is *not* the means to provide such a binding (and you agree with
this
>  >> further down in this e-mail).
> 
> > We agree that this extension does not add to the concept of
> > cryptographic binding. But how do you mean it can be done?
> 
> Would this mean that you believed this could not be done ? :-)
> 
> I already provided the information, but since at that time you were
> focussing on another issue, you probably missed the point.
> 
> I would encourage you to read again that thread, but I will provide a
> short
> reply here to your question.
> 
> This can be done using cRLIssuer from the CRL DP. cRLIssuer contains
the
> DN
> of the CRL Issuer and we all know that CAs are free to assign the DNs
they
> wish. The next point is for a verifier to make sure that the DN which
> identifies the CRL Issuer (in the CRL DP) is indeed the one that was
meant
> by the CA. The CRL must be issued by a CRL Issuer that has the same
DN.
> The
> CRL Issuer will have a certificate issued by a CA.
> 
> Case a): the CA that has issued that certificate is the same as the CA
> that
> has issued the target certificate (which contains the hereabove
mentionned
> CRL DP). This is easy to check for a verifier since the verifier must
> first
> build the certification path and then test the revocation status of
every
> element of the path. So the verifier knows the validated sequence of
DNs
> starting from a self-signed certificate. It must then use the same
> sequence
> of DNs to validate the CRL Issuer certificate.
> 
> This is a general rule which does not require any extra local trust
> information.
> 
> Case b) : the CA that has issued that certificate is NOT the same as
the
> CA
> that has issued the target certificate. This case requires extra
*0local*
> trust information. There are many such trust conditions possible and
thus
> this cannot be defined in general. Cases a) and b) are thus not
equivalent
> and have to be distinguished.
> 
> > <snip>
> 
> >>>This draft only introduces a new way to locate certificates
> >>>that can be helpful in building this path.
> 
> >>At least one sentence of which we both agree !
> >>It should be copied and pasted in the abstract.
> 
> > Good, then I suggest that we leave unrelated topics out of this
draft
> > and focus on the issues that are related to this limited scope.
> 
> This is what I did in my proposal, except that we need to have a
security
> considerations section and the goal of that section is not to hide
> problems
> but to correctly warn users. Thus why an informatiove annex on the
topics
> mentionned in the security considerations section would be quite
useful.
> 
> In fact, its content would be along the lines of the explanations
which
> are
> just above.
> 
> I hope this e-mail will help us to progress.
> 
> Denis
> 
> > Stefan Santesson
> > Program Manager - Standards Liaison
> > Windows Security

---

From: Denis Pinkas <[email-masked]>
Date: Thu, 28 Apr 2005 19:12:25 +0200

Stefan and Russ,

> but we keep the old security considerations intact. 

I would suggest that a merge would need to be done between the "old" 
security considerations section and the "new" one.

The "old" security considerations section is mentionning a solution which 
does NOT suppress the problem, but minimize the risk only in case the CAs 
are really "honest".

The old" security considerations section does not provide a solution in case 
the name collsion between two CRL issuer name is deliberate, whereas the 
"new" security considerations section provides a secure solution in one case 
and clearly mentions that all other cases are dependant about "zillions" of 
*local* trust conditions which cannot all be standardized.

The main purpose of a security considerations section is to provide the 
adequate warnings and solutions when they exist and not to hide the problems.

> That is not because

This is clearly within the scope of a security considerations section.

> The new introduction proposal based on your input is:

I would love this last sentence to be true but the reality is that:
"CRL validation is NOT specified in RFC 3280". :-(

> CRL issuer.  

There is no such a statement in RFC 3280.

> Building a CRL issuer certification path from the signer of

There is no notion of "CRL issuer certification path" in RFC 3280.
The primary requirement is to make sure that the CRL issuer designated by 
the CA is indeed the right one. In some (but not all) cases, I mean among 
the zillion of cases, there MAY be a need to construct a CRL issuer 
certification path.

> target certificate, but it can be complex in other situations.

 From the comments above, you can see that I cannot agree with the above 
revised text. The remaining of the text is acceptable in general, but could 
possibly be slightly revised to be more in continuation with the changes 
there are needed above (i.e. it is not cast in concrete).

Denis

---

From: Russ Housley <[email-masked]>
Date: Fri, 29 Apr 2005 03:25:47 -0400

Here is a quote from RFC 3280.  To me, it is clear that a CRL issuer has a 
certificate.  Obviously, all certificates need to be validated, which 
includes certification path construction and certification path validation.

5.1.1.3  signatureValue

    The signatureValue field contains a digital signature computed upon
    the ASN.1 DER encoded tbsCertList.  The ASN.1 DER encoded tbsCertList
    is used as the input to the signature function.  This signature value
    is encoded as a BIT STRING and included in the CRL signatureValue
    field.  The details of this process are specified for each of the
    supported algorithms in [PKIXALGS].

    CAs that are also CRL issuers MAY use one private key to digitally
    sign certificates and CRLs, or MAY use separate private keys to
    digitally sign certificates and CRLs.  When separate private keys are
    employed, each of the public keys associated with these private keys
    is placed in a separate certificate, one with the keyCertSign bit set
    in the key usage extension, and one with the cRLSign bit set in the
    key usage extension (section 4.2.1.3).  When separate private keys
    are employed, certificates issued by the CA contain one authority key
    identifier, and the corresponding CRLs contain a different authority
    key identifier.  The use of separate CA certificates for validation
    of certificate signatures and CRL signatures can offer improved
    security characteristics; however, it imposes a burden on
    applications, and it might limit interoperability.  Many applications
    construct a certification path, and then validate the certification
    path (section 6).  CRL checking in turn requires a separate
    certification path to be constructed and validated for the CA's CRL
    signature validation certificate.  Applications that perform CRL
    checking MUST support certification path validation when certificates
    and CRLs are digitally signed with the same CA private key.  These
    applications SHOULD support certification path validation when
    certificates and CRLs are digitally signed with different CA private
    keys.

Russ

At 01:12 PM 4/28/2005, Denis Pinkas wrote:
>The old" security considerations section does not provide a solution in 
>case the name collsion between two CRL issuer name is deliberate, whereas 
>the "new" security considerations section provides a secure solution in 
>one case and clearly mentions that all other cases are dependant about 
>"zillions" of *local* trust conditions which cannot all be standardized.
>
> revised text. The remaining of the text is acceptable in general, but 
> could possibly be slightly revised to be more in continuation with the 
> changes there are needed above (i.e. it is not cast in concrete).
>
>Denis
>