[xmlsec] Verify signature after certificate expired

Aleksey Sanin aleksey at aleksey.com
Wed Oct 9 08:47:50 PDT 2002

I believe you are wrong here. The certificate must be valid when 
signature is verified.
Where "valid" includes:
    1) certificate is signed by another "valid" cert or trusted root cert
    2) certificate is not in the CRL
    3) the certificate purpose matches the action you are going to do 
(sign, verify, etc.)
    4) the certificate is not expired
All 4 items are important. I do not have an X509 spec around so I could 
not prove my point.
However, RFC 2560 (http://rfc.sunsite.dk/rfc/rfc2560.html):

   An OCSP responder MAY choose to retain revocation information beyond
   a certificate's expiration. The date obtained by subtracting this
   retention interval value from the producedAt time in a response is
   defined as the certificate's "archive cutoff" date.

Please note that when certificate is expired the OSCP may remove the CRL 
from memory!


Moultrie, Ferrell (ISSAtlanta) wrote:

>  Very important question here -- I want to make sure I understand your
>reply. In general, it is not permitted to *sign* data after the signing
>certificate has expired but it is allowed to *verify* data after
>expiration. An example:
>I sign my code today allowing the user to verify that it is uncorrupted
>when he installs/runs it. My certificate expires in three months. If you
>don't honor the signature any more at that point, then his code stops
>working -- a very bad thing. 
>Another example:
>I sign an e-mail to you today. Three months later my cert expires. Six
>months later you try to read my e-mail and you're told the signature is
>invalid. A bad thing.
>As these two examples illustrate, it is *not* standard practice to
>invalidate signatures because the signer's cert has expired. The only
>date restrictions should be:
>1) Signers cert *must* be valid as of the date the data was signed;
>2) Root cert(s) *must* be valid as of the date they signed the
>subsidiary cert (in fact, I believe proper practice is that CA's
>shouldn't sign certs that extend beyond their own validity date).
>The key concept is that user signing's *don't*, *shouldn't*, *mustn't*
>expire just because the user's cert has expired. At that point, he can't
>sign anything else until he renews his cert but everything he signed
>still remains valid forever because it was valid when he signed it and
>it hasn't changed. 
>Is there a problem here or did I just misunderstand something?
>  Ferrell
>-----Original Message-----
>From: Aleksey Sanin [mailto:aleksey at aleksey.com] 
>Sent: Wednesday, October 09, 2002 11:05 AM
>To: Roman Bouchner
>Cc: xmlsec at aleksey.com
>Subject: Re: [xmlsec] Verify signature after certificate expired
> From the general security point of view the data are *not valid* if the
>cert is expired.
>If you really want to do this then you should take a look at the OpenSSL
>verification function and remove date check. However, this is
>Roman Bouchner wrote:
>>I would like to verify signed data however signer's certificate has
>>already expired. I want only verify data integrity.
>>If I use function xmlSecDSigValidate, it returns negative value, so I
>>cannot determine if data was changed or not.
>>If I change local date it does work, however it is not right way I
>>How I can solve this problems?
>>Roman Bouchner
>>xmlsec mailing list
>>xmlsec at aleksey.com
>xmlsec mailing list
>xmlsec at aleksey.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.aleksey.com/pipermail/xmlsec/attachments/20021009/267a0e45/attachment.htm

More information about the xmlsec mailing list