On Mon, Dec 20, 2010 at 10:46:30AM -0800, 
travis+ml-rbcryptogra...@subspacefield.org wrote:
> 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 makes for problems if you renew the cert, since the new cert will
> have a creation date of the current time, after the object was signed.
> 
> Can anyone think of why this would be a good thing?

In case my argument wasn't clear...

If we assume that the lifetime of the cert is there to limit its
window of vulnerability to factoring, brute force, and other attacks
against computational security properties, then checking the timestamp
of the signature is silly - I can wait 20 years and then forge a
signed object and backdate it into the window of validity.

The cert lifetimes are so long that any adversary who procured the
private key would use it long before the window expired, one would
think.  And if this were the reason for validity date ranges then
reissuing with the same key makes very little sense.

Revocation seems like a more timely alternative - if you detect or
become aware of the leak, of course, and within the bounds of
functionality of code paths that aren't actually used in normal
operation.

I suppose limiting the amount of ciphertext under one key is a
possible reason for validity date ranges, but it's a pretty poor one.
With an interactive protocol like TLS you negotiate your session keys
so this doesn't make much sense.  And if that were the main reason
then reissuing with the same key makes zero sense.

It does, however, seem to ensure a subscription-based revenue model
for CAs.

It would be interesting to see the actual rationale behind these
things, if it were in clear language.  I feel a bit like a historical
archaeologist groping for find structure and meaning in something
rather complex.

The real problem here comes about not with TLS but when you use this
library with signed PKCS objects that are to be stored and reused
years later.

One may argue that we can't trust the current timestamp from an adversary's
computer, but this library gets the current time from the same system on
which it runs, so if we can't trust the timestamp, there seems little
reason to trust the validity checks in the library itself.

Short of filing a bug and waiting for a fix, validating and updating
the library and reshipping, or a local patch, I'm wondering if anyone
has ideas on how to fix?

(I'm wishing that I had filed a bug when this first came up;
it wasn't my problem then, but it's mine now, sigh...)
-- 
http://www.subspacefield.org/~travis/ | "His secure handshake is so strong,
you won't be able to exchange keying material with anyone else for a week"
If you are a spammer, please email j...@subspacefield.org to get blacklisted.

Attachment: pgpJ9iJzgEHQQ.pgp
Description: PGP signature

_______________________________________________
cryptography mailing list
cryptography@randombit.net
http://lists.randombit.net/mailman/listinfo/cryptography

Reply via email to