On 12/20/2010 10:49 AM, travis+ml-open...@subspacefield.org wrote:

So a friend ran into this lately;

libnss, at least on Linux, checks that the signing cert (chain) is valid
at the time of signature - as opposed to present time.  (It may check
present time as well - not sure on that)

This is correct behavior. Certificates don't expire even if the credentials used to sign them do. The whole point of a signature is that it cannot be repudiated.

This makes for problems if you renew the cert, since the new cert will
have a creation (start) date of the current time, after the object was
signed.

The new cert didn't make the signature and has nothing to do with the signature. The phrase "renew the cert" is code for "issue a new certificate to the same recipient with a later expiration date". It has no effect on the existing certificate and it certainly has no retroactive effect on things the previous certificate has already done.

Can anyone think of why this would be a good thing?

It's vital. What good would an expiring signature be? The whole point of a signature is that it cannot be repudiated, revoked, expired, or otherwise invalidated.

If one actually trusted the signature date, someone could lie by
backdating the object.

Sure, those we trust can always lie. But we're not stupid. We pick the entites we trust by making sure they are entities we do not expect to lie. If you can get Verisign to issue a forged timestamp, then you can make us think a signature was made in the past. (The timestamp is normally itself signed by an entity we have chosen to trust for that purpose.)

Also, we're unsure how to create a new cert that's still valid for
the range - I think we're gonna have the person set their system
clock back, since I don't think openssl command line actually prompts
for a creation date.

Why would you want to do that and what good would that do? They wouldn't be able to get a past timestamp unless they bribed a timestamping authority. And if they did that, why would you want to help them create a certificate with a bogus date?! So what exactly would the point be?

I think you are expecting a new certificate to somehow go back and time and modify or affect previous operations that have already taken place. It can do no such thing. Operations that have taken place in the past are beyond our ability to affect in the future.

Again, the whole point of a signature is that nothing done after the signature is made can affect it. It stands forever as it is as conclusive proof that the entity named certified the information signed.

DS

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to