Hi Paul,

 

         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)?

 

It will be incremented, eg just like today, guaranteed to be unique.

It will not be allowed to wrap (this cannot work with things like AES_GCM where 
the same number is in use)

 

 

         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)?

 

Same as above. The sending does not get modified at all. Only the receiving 
side omits any checks for in-order

or in-window and will always allow any packet with any SN.

 

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

 

Same as now.

 

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

 

No - same as now.

 

 

         Sorry, but here I’m completely lost. From your explanation it looks 
like the sender’s behavior is not affected by this notify – 

         it is the same for both SN and ESN cases regardless of whether this 
notify was exchanged or not. Given the fact, that reply protection is a local 
matter – 

         what is the purpose of this notify? In other words, why to inform the 
other side about the state of your replay protection if this information 

         doesn’t change that side’s behavior as a sender? What’s the reason? Am 
I missing something?

 

 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)

 

SN or ESN cannot be sent as constant number, or rather it can be since you have 
to keep a counter anyway

for the AEAD counter, there is no point doing that. Only the receiver changes 
as to not drop any packets

based on SN / ESN.

 

         This is only true for implicit IV. All original AEAD transforms use 
explicit IV that is not

         related to (E)SN. And in case of several multicast senders the GCKS 
takes care

         to assign a unique IV prefix to each sender, so IVs don’t repeat 
(unlike SNs).

         Transforms with implicit IV cannot be used with multicast, which is 
documented in RFC 8750, Section 7.

 

replay protection is therefor orthogonal to SN/ESN, which is why I don't like 
mashing this into the Transform Type 5.

 

         Not completely. In case of several unsynchronized multicast sender the 
SN is not guaranteed to be unique, 

         thus the replay protection is turned off. In this case ESN cannot be 
used 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. 

 

I don't believe in this, but if I did, wouldn't you extend the Transorm Type 5 
to:

 

- SN

- ESN

- SN without replay protection

- ESN without replay protection

 

         The last case is meaningless for multicast scenario. 

 

Hence my comment about bytes and flags being a bit confusing. I don't think we 
can repurpose this registry as

flags (bits) because some implementations will read the two octets and require 
the integer 0 or 1 out of that.

 

         I still have to understand why you want to inform the other side about 
your replay protection state

         if this doesn’t change that side’s behavior as a sender.

 

         Multicast is a separate thing, where “ESN without replay protection” 
makes no sense.

 

 

         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.

 

I don't think anyone should do constant (E)SN or wrapping around ever. I think 
these two items have nothing

to do with replay protection.

 

         Please, see my confusion above.

 

         Regards,

         Valery.

 

 Paul

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

Reply via email to