On Saturday 13 November 2010 17:43:48 Martin Nyhus wrote:
> On Tuesday 9. November 2010 19:49:39 Matthew Toseland wrote:
> > What are your thoughts on this issue? IMHO the moment we encrypt two
> > packets with the same key and the same sequence number game over. We need
> > to be absolutely sure we will rekey before that happens, and if the rekey
> > fails we will disconnect. The other option - using a very long counter -
> > is interesting, possibly in combination. What does the packetFormat branch
> > do now?
> 
> I agree that we can't let the sequence numbers wrap since we use them for 
> crypto. c73cce16..026a2845 implements the first solution you mentioned, 
> refusing to send packets until after a new rekey (and starts one when needed 
> of course). b2ca18a8 improves it sligthly by starting the rekey 100 packets 
> before we would stop sending (this number should probably be higher, or based 
> on how fast we send packets).

Ok. However IMHO packet numbers need to be per-key, and it is possible for two 
keys to temporarily be live at once (at least it should be, implementing it 
that way in old FNP fixed some largish issues).
> 
> As for the message ids, we are safe for now because the window is so small, 
> but I'll try to add some more checks just to make sure.
> 
Changes from e20d271a81a6520049e6658536fe4c43a7c387b8 to 
85ffa354f1544bdae6db9e196b6df71314f68e78
- Per-peer RNG now used for padding length as well as contents.
- Never reuse the sequence number we started at when we rekeyed. Refuse to send 
packets until the next rekey completes.
- Bugfixes related to NUM_SEQNUMS not being maxint.
- Start rekeying 100 packets before we would hit the buffers.
- Separate lock for sequence numbers.
- Rename getSequenceNumber to allocateSequenceNumber.
- Comments.
- Logging.

7618b16d0448ec6a470c16a7f7d9d6eb9e6f137e
- IMHO sequence number should be a property of the SessionKey. It is possible 
to have two keys used at the same time for a while because of timing issues, 
the two sides don't always agree on which is valid. You don't use SessionKey 
but maybe you should? Otherwise having a single sequence number potentially for 
two keys can cause problems. Having only a single key caused problems in 
practice when two connection setups complete at once. I appreciate this might 
cause quite a bit of refactoring..
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20101119/a6042dd5/attachment.pgp>

Reply via email to