Hi Paul,

Thank you very much for your feedback. I'm happy to see my thoughts are in line 
with you experts.


    > > 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.
    > 
    > No, it cannot "continue". INVALID_KE_PAYLOAD is an errror. If this is 
sent in
    > the IKE_SA_INIT reply, the responder isn't even expected to keep any 
state.
    > The initiator has to "start from scratch" using a different KE method. The
    > responder responds "from scratch" to that message.

Yes, you're right. I misused the word, "continue" isn't the right expression. I 
just want to say "the responder should reply INVALID_KE_PAYLOAD and shouldn't 
terminate without reply".

Regards & Thanks!
Wei PAN (潘伟)

    > -----Original Message-----
    > From: Paul Wouters <[email protected]>
    > Sent: Tuesday, February 6, 2024 3:01 AM
    > To: Panwei (William) <[email protected]>
    > Cc: [email protected]
    > Subject: Re: [IPsec] What's the most reasonable way for the responder to
    > handle the request containing unknown Key Exchange methods
    > 
    > On Mon, 5 Feb 2024, Panwei (William) wrote:
    > 
    > > 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.
    > 
    > that is correct. Note that the INVALID_KE_PAYLOAD can also contain the KE
    > method(s) the responder is willing to use.
    > 
    > > 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.
    > 
    > Yes, it should ignore unknown KEs. This allows newer software/versions to
    > attempt newer KEs without breaking with older implementations that do
    > not support the newer KEs.
    > 
    > >    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.
    > 
    > I guess that SHOULD is a little odd. It really means "it should pick one 
from
    > the responder list, that falls within its own local policy as valid to 
use,
    > otherwise it must terminate the connection".
    > 
    > > This paragraph indicates that the initiator can suggest a KE method
    > > regardless of whether it is known to the responder.
    > 
    > IKE assumes both peers do not know each others capabilities before the
    > negotiation starts.
    > 
    > > 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.
    > 
    > No, it cannot "continue". INVALID_KE_PAYLOAD is an errror. If this is 
sent in
    > the IKE_SA_INIT reply, the responder isn't even expected to keep any 
state.
    > The initiator has to "start from scratch" using a different KE method. The
    > responder responds "from scratch" to that message.
    > 
    > > 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.
    > 
    > One must NEVER terminate without sending a reply. Doing so only causes
    > the initiator to retransmit its packet, thinking the packet was dropped.
    > It will only make things worse. Always reply. But in the case of
    > INVALID_KE_PAYLOAD, the responder can get away with not keeping (or
    > even
    > creating) state.
    > 
    > > 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.
    > 
    > That is wrong :)
    > 
    > Paul
_______________________________________________
IPsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to