[cryptography] "[Not] Against Rekeying"
hughejp at mac.com
Thu Mar 25 13:23:00 EDT 2010
On Tue, Mar 23, 2010 at 11:21:01AM -0400, Perry E. Metzger wrote:
> Ekr has an interesting blog post up on the question of whether protocol
> support for periodic rekeying is a good or a bad thing:
On Mar 23, 2010, at 4:23 PM, Adam Back wrote:
> In anon-ip (a zero-knowledge systems internal project) and cebolla 
> we provided forward-secrecy (aka backward security) using symmetric
> re-keying (key replaced by hash of previous key). (Backward and
> forward security as defined by Ross Anderson in ).
The paper on Cebolla states that "Trust in symmetric keys diminishes the longer they are used in the wild. Key rotation, or re-keying, must be done at regular interfals to lessen the success attackers can have at crypt-anayzing the keys". This is exactly the kind of justification that the Dkr post and most of the comments agree is flawed.
It goes on to state what was said about new keys being derived from old keys.
Hmm. Interesting. Learn one key, have them all for the future. Wow. Yes, that is Ross' definition of backward security, and clearly does not meet Ross' definition of forward security. In reading the paper, it seems like this system is: Crack one key, you're in forever. A government's dream for an anonymity service. Ross' definitions for, backwards, forwards makes sense from a terminology point of view, but IMHO without both, it is not secure.
Sure one can talk about attack scenarios, and that just proves the tautology that we don't know what we don't know (or don't know what has not been invented yet). There is no excuse to bad crypto hygiene. I don't know why someone would build a system with K_i+1 = h(K_i) when there are so many good algorithms out there.
> But we did not try to do forward security in the sense of trying to
> recover security in the event someone temporarily gained keys. If
> someone has compromised your system badly enough that they can read
> keys, they can install a backdoor.
I agree with the Ekr posting, but not the characterization above. The Ekr posting says "[rekey for] Damage limitation If a key is disclosed" and "This isn't totally crazy". The statement of fact is that if a key is compromised, a rekey limits the scope of the compromise.
The Ekr posting said nothing about how the key was disclosed. Yes, if you have root on the machine an have mounted an active attack, all bets are off, but there are other ways for key disclosure to happen (as was discussed in the Ekr posting).
For example a cold boot attack  can be used to recover a communications session key (instead of a disk key). If that key has been used for a particularly long time, and if one assumed that the attacker had the opportunity to record all the ciphertext, then one must expect that all of that information can now be read.
[The comments about breaking keys is deleted. I agree with the original posting and everyone else that changing a key OF A MODERN CIPHER to eliminate algorithm weaknesses is not a valuable reason to rekey.]
On Mar 23, 2010, at 2:42 PM, Jon Callas wrote:
> If you need to rekey, tear down the SSL connection and make a new one. There should be a higher level construct in the application that abstracts the two connections into one session.
I agree (but as a nit, we can reverse the order. Create a completely new session and just move the traffic to the new connection.)
Limiting the scope of a key compromise is the only justification I can see for rekey. That said, limiting the scope of the information available because of a key compromise is still a very important consideration.
More information about the cryptography