Hi Paul,

 

I think that the following assertion in the draft is wrong:

   Although
   ESN is good to avoid the sequence number running out in a short
   period, there is a prerequisite for using ESN - RFC 4302 and RFC 4303
   both require ESN to be used in conjunction with the anti-replay
   function.  That is, ESN can only be used if the anti-replay feature
   is enabled.

Actually, RFC 4303 and RFC 4302 say:

   Note: If a receiver chooses to not enable anti-replay for an SA, then
   the receiver SHOULD NOT negotiate ESN in an SA management protocol.

While SHOULD is a strong requirement, it is still not MUST, so it is 
perfectly valid to use ESN with no replay protection if you have a good 
reason (and you have).

 

The text can be tweaked. But in practise these two properties are currently 
linked.

 

In the case when the receiver has disabled anti-replay, but negotiated
ESN, it still needs to monitor SN values in the incoming packets and
maintain the upper
half of the ESN, since it is included in the ICV calculation.
But this is really small burden, compared to full replay protection.

Thus, I don't see a need for this notification at all. 

 

The issue is that clients want to have both "disable replay protection" and 
"ESN". Currently, many

implementations (including Linux) do not support this. We are working on 
getting that fixed, but that

will inevitably need a signal by the IKE daemon to let peers know what is 
supported and desired, so

that ESN can be requested for those that support ESN without replay protection. 
And so that NO-ESN

can be selected for those implementations that do not support "disable replay 
protection" with ESN.

 

I missed the deadline to extend the notify payload to add this signaling. The 
next revision will include this.

 

         Perhaps this discussion is a bit premature, since I currently have to 
guess what 

         you intend to achieve and how this influences packet processing.

         Can you please include answers to the following questions in the next 
revision:

 

         1. What happens with SN if peers negotiate not using replay protection:

         - will it be incremented or send as a constant (what constant)?

         - if incremented will it be allowed to wrap around (I guess yes)?

 

         2. What happens with ESN if peers negotiate ESN and not using replay 
protection:

         - will SN be incremented or send as a constant (what constant)?

         - how the upper half of ESN is computed (it is included in ICV 
calculation)? Will it be deducted as usual or be constant?

         - if ESN is incremented, will it be allowed to wrap around?

 

If the negotiation of the replay protection status is still needed, then:

- it is better to be done in a way it is done in draft-ietf-ipsecme-g-ikev2
(section 2.6),
  since it couples this feature with negotiation of ESN

 

I am not a big fan of renaming the type 5 registry into "replay protection". It 
seems to mixup integers

with flags (bits) and become a grab bag of miscellaneous things. 

 

         Not really, this is still integers:

         - SN

         - ESN

         - no replay protection (do not look at SN at all)

 

Why doesn't the g-ikev2 doc simply

say to always negotiate NO-ESN if that is what is needed. I don't see the need 
for a rename of the ESN

IANA registry?

 

         Because if we want to negotiate replay protection in IKEv2 this is 

         a better way to do it via transform then via notify. Because,

         for example, you may propose no replay protection only with

         those encryption transforms, that have explicit IV and always propose 

         replay protection for implicit IV. 

 

- a text should be added about incompatibility with RFC 8750

 

I guess we could, although I feel that RFC 8750 should have been more explicit 
in saying "ESN is not

supported due to re-using the same counter after 2^32 bytes". There is nothing 
specific to this draft that

related to that. Seems more like an errata against 8750, but I don't object to 
warning users here either.

 

         This is wrong, RFC 8750 supports ESN. In fact it does always use 64 
bit IV,

         but with no ESN the upper half is set to zero.

 

         I just wonder that if you negotiate not using replay protection, then 

         the sender is free to send constant (E))SN or allowing SN it to wrap 
around,

         that is obviously incompatible with RFC 8750.

 

         Regards,

         Valery. 

 

Paul

 

_______________________________________________
IPsec mailing list -- ipsec@ietf.org
To unsubscribe send an email to ipsec-le...@ietf.org

Reply via email to