Hi folks,

Several new Key Exchange methods were defined after RFC 7296 was published. 
(See 
https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml#ikev2-parameters-8)
For example, RFC 8031 introduced two new KE methods, Curve25519 (KE Method ID = 
31) and Curve448 (KE Method ID = 32). There may be more new KE methods defined 
in the future, e.g., the PQC KEM may be introduced into IKEv2.

Regarding how the responder handles the request containing the new Key Exchange 
methods (old name was DH Group) that it doesn’t understand, I’ve had a 
discussion with someone, but we failed to agree with each other due to 
different interpretations of RFC 7296. I’d like to hear more opinions from you 
experts.

The handling I suggest is as follows:
    1) if all KE methods proposed by the initiator are unknown to the 
responder, i.e., no KE method is acceptable, then the responder replies 
NO_PROPOSAL_CHOSEN, no matter what KE method is used in the KE payload.
    2) if at least one acceptable KE method is included in the initiator’s 
proposals, the responder can select one acceptable KE method, ignore the 
unknown KE methods, and perform the next step of KE Payload processing.
       2.1) if the KE method used in the KE payload happens to be the same as 
this selected KE method, then the responder normally replies with this selected 
KE method and the corresponding KE payload.
       2.2) if the KE method used in the KE payload is different from this 
selected KE method, then the responder replies INVALID_KE_PAYLOAD with this 
selected KE method, regardless of whether the KE method used in the KE payload 
is known or unknown to the responder.

My logic is as follows:
In section 3.3.6 Attribute Negotiation of RFC 7296, it says:
   Similarly, if the responder receives a transform that it does not
   understand, or one that contains a Transform Attribute it does not
   understand, it MUST consider this transform unacceptable; other
   transforms with the same Transform Type are processed as usual.  This
   allows new Transform Types and Transform Attributes to be defined in
   the future.
This paragraph indicates that the responder should ignore the unknown KE 
methods in the SA payload because the new KE methods can be considered as new 
Transform Attributes.
Also in section 3.3.6, it says:

   Negotiating Diffie-Hellman groups presents some special challenges.

   SA offers include proposed attributes and a Diffie-Hellman public

   number (KE) in the same message.  If in the initial exchange the

   initiator offers to use one of several Diffie-Hellman groups, it

   SHOULD pick the one the responder is most likely to accept and

   include a KE corresponding to that group.  If the responder selects a

   proposal using a different Diffie-Hellman group (other than NONE),

   the responder will indicate the correct group in the response and the

   initiator SHOULD pick an element of that group for its KE value when

   retrying the first message.
This paragraph indicates that the initiator can suggest a KE method regardless 
of whether it is known to the responder. The latter sentence indicates that the 
responder can continue the negotiation when the KE method in the KE payload is 
unknown and just needs to reply INVALID_KE_PAYLOAD with the correct KE method.


However, others suggest that the responder should terminate the IKE exchange 
without reply, when the KE method used in the KE payload is unknown to the 
responder, even if there are other acceptable KE methods proposed in the SA 
payload.
Because they feel the unknown KE method in the KE payload means that the whole 
packet is an invalid packet, and discarding this packet is the thing to do.

I’d like to hear more opinions from you experts.

Regards & Thanks!
Wei PAN (潘伟)

_______________________________________________
IPsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to