I think you're trying to assume something that cannot be assumed: you
assume that ALL unexpired CRLs are considered.  This is not the case.
As Dominiqué said, only the CRL that has the latest signature time is
considered.  This is evident in the name of the file type: Certificate
Revocation *List*.

It is legal to issue a CRL that revokes a certificate (possibly with
an type of "onhold", for V3 CRLs) with an expiration time of 2 years
in the future, and the next hour the to remove the revocation status.
If all simultaneously-valid CRLs are considered, then the intended
consequence of "unrevoking" the certificate would be impossible.

This is why the CRL must contain the *complete* list of *all* revoked
certificates which have not yet expired.

There is a PKIX extension, "delta CRLs", which defines for V3 CRLs a
way to allow for adding to the list of the most-recently-issued full
CRL.  In order to support unrevocation, there is a special status type
(called "remove_from_crl") for the delta CRL which is to be
interpreted as removing the certificate from the revocation list;
however, in a full V3 CRL, that status type is illegal.  And in V2
CRLs (the default, since many implementations do not handle V3 CRLs)
there is no means of specifying the extension that contains a status
type regardless.

This is specified in PKIX (currently RFC 5280); in order to maintain
standards-conformance OpenSSL cannot change this behavior.  (Nor can
it even offer an option to change it, since its job is to maintain
security-system interoperability, not capriciously make it less
secure.)

-Kyle H

2009/1/29 Giang Nguyen <cau...@hotmail.com>:
>> > I was under the impression that openssl allows loading multiple CRLs
>> > for the same issuer. But, this does not seem to be the case as is
>> > proved by using "openssl verify".
>> >
>> > $ ls -l ./ca/
>> > total 24
>> > lrwxrwxrwx 1 pshah users 10 Jan 28 21:56 ba4bb3b6.0 ->
>> > cacert.pem -----> the CA cert
>> > lrwxrwxrwx 1 pshah users 14 Jan 28 21:56 ba4bb3b6.r0 ->
>> > revoked_48.pem ----> revokes only cert48.pem
>> > lrwxrwxrwx 1 pshah users 14 Jan 28 21:56 ba4bb3b6.r1 ->
>> > revoked_49.pem -----> revokes only cert49.pem
>> > -rw-r--r-- 1 pshah users 1233 Jan 28 17:09 cacert.pem
>> > -rw-r--r-- 1 pshah users 560 Jan 28 17:10 revoked_48.pem
>> > -rw-r--r-- 1 pshah users 560 Jan 28 17:10 revoked_49.pem
>> >
>> > $ openssl verify -CApath ./ca/ -crl_check -verbose cert49.pem
>> > cert49.pem: OK
>> >
>> > $ openssl verify -CApath ./ca/ -crl_check -verbose cert48.pem
>> > cert48.pem: /C=--/ST=California/L=San Francisco/O=Riverbed Technology,
>> > Inc./OU=Steelhead/CN=hw1-sh18/emailaddress=fakeem...@example.com
>> > <mailto:fakeem...@example.com>
>> > error 23 at 0 depth lookup:certificate revoked
>> > 29615:error:0B07D065:x509 certificate routines:X509_STORE_add_crl:cert
>> > already in hash table:x509_lu.c:418:
>> >
>> A CRL ( Certificat revocation list) is the list of ALL the revoked
>> certificates at the time it is issued
>> So if at time t1 a certificate 48 is revoked
>> then all the subsequent CRLs MUST indicate that the certificate 48 as
>> revoked
>>
>> If later at time t2 the certificate 49 is revoked
>> hen all the subsequent CRLs MUST indicate that both certificate 48 and
>> certificate 49 arte revoked
>>
>> Thus only the lasT CRL has to considered . Since the delivery times of
>> the CRLs are close together
>> it is not easy to check into the example which is ithe last CRL
>
> i think you misunderstood the question.
> the issue at hand is not about "older" and "latest" copies of a particular 
> (certificate revocation) list, but it is about two *distinct* simultaneously 
> valid and active (certificate revocation) lists that are issued/maintained by 
> the same issuer.
>
> http://tools.ietf.org/html/rfc5280#section-5
>
>    Each CRL has a particular scope.  The CRL scope is the set of
>    certificates that could appear on a given CRL.  For example, the
>    scope could be "all certificates issued by CA X", "all CA
>    certificates issued by CA X", "all certificates issued by CA X that
>    have been revoked for reasons of key compromise and CA compromise",
>    or a set of certificates based on arbitrary local information, such
>    as "all certificates issued to the NIST employees located in
>    Boulder".
>
> ________________________________
> Hotmail(R) goes where you go. On a PC, on the Web, on your phone. See how.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to