Hi Ben,

> Hi Valery,
> 
> On Tue, Jul 26, 2022 at 12:04:34PM +0300, Valery Smyslov wrote:
> >
> > If we assume that we are in Dolev-Yao threat model, then an attacker has no 
> > access
> > to inside the hosts, but it has an unlimited power on the network. 
> > Generally speaking
> > with this model the most sensible thing is to count only the outgoing 
> > traffic
> > and not the incoming traffic. Below is described why.
> 
> Without making a statement about your conclusion, are you aware of the
> discussion in
> https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-aead-limits-05#section-4
> about an Integrity Limit that bounds the number of decryption attempts,
> whether succesful or unsuccesful, using a single key?

Thank you for pointing to this document. Yes, I'm aware of this work
(and  I think the document is very important).

To mount an attack on authentication there must be a channel 
from the receiver to the attacker, so that the latter may learn whether 
a forgery attempt was successful. The channel may be on a protocol
level (e.g. TCP ACKs) or outside the protocol (e.g. electromagnetic emission or 
metering power consumption etc.). If we assume no such channels exists 
(e.g. unidirectional video stream over UDP is received by 
a host placed in a shielded box with autonomous power supply etc.)
then forgery attacks are impossible, so my conclusion should be applicable
(note, that I mentioned that side channels are out of scope).

That said, I agree, that in real life this is not the case in many situations,
so we should also take the amount of received data into considerations.
So, the corrected advice for implementations - both sender and receiver 
should count the amount of data processed by them (sent or received 
correspondently) and should initiate the rekey when the corresponded
threshold is reached.

Note, that this doesn't change the conclusion, that assigning 
a party who will initiate next rekey beforehand is not a good idea
from cryptography point of view. In addition to the 
example from my original message, consider the following situation.
Let the sender and the receiver have negotiated that next rekey
will be initiated by the sender. After that the sender has no or very little 
data to send for some period of time. During this period an attacker 
may send an arbitrary amount of data to the receiver trying 
to break authentication key. Since the receiver cannot initiate
the rekey process, it has limited choice of what to do 
in this situation (and it depends on the type of side channel
the attacker uses, which the receiver might not know). 
It seems that the most safe defense would be to start dropping 
all the received packets once some threshold is reached 
(in should initiate the rekey at this point, but it couldn't). But this 
actually means the termination of service, so DoS.

Regards,
Valery.

> Thanks,
> 
> Ben

_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to