The division comes from if there is a need to expand the expression capability 
of RFC 9370, I think.

Agree with Pual on that the two scenarios given in Section 4 are odd or not so 
convincing. They just tell that the initiators prepares its ADDKE proposal in 
that way, which violats the requirements specified in RFC 9370,  but not what 
the intention of the initiator is, and if there are possible right way to 
prepare its ADDKE proposal by following RFC 9370.

For Scenario 1 or 2, if the intention of the initiator is to run PQ_KEM_1 or 
PQ_KEM_2 with the responder, it SHOULD prepare its proposal as ADDKE1(PQ_KEM_1, 
PQ_KEM_2).

If the intention of the initiator is to run PQ_KEM_1 and PQ_KEM_2 with the 
responder, it SHOULD prepare its proposal as ADDKE1(PQ_KEM_1), ADDKE2(PQ_KEM_2).

If the intention of the initiator is to run PQ_KEM_1 and PQ_KEM_2 as the firs 
choice, but also acceptable for just running PQ_KEM_1, it SHOULD prepare its 
proposal as ADDKE1(PQ_KEM_1), ADDKE2(PQ_KEM_2, NONE). Namly, here PQ_KEM_1 is a 
mandatory requirement for the initiator, but PQ_KEM_2 is optional.

However, according to RFC 9370, it seems no way for the initiator to express 
the following as its intention.

Case 1:  Both of them or one of them, i.e,  (PQ_KEM_1 AND PQ_KEM_2) OR 
(PQ_KEM_1) OR (PQ_KEM_2).

So, the real question probably is if there is a need to expand the expression 
capability of RFC 9370 to including the cases like the above.

---------
If such a need is good to have, we acutually can choose another way to express 
all possible cases by laying up ADDKEs. Namely, we may expend ADDKEs to sevearl 
Proposals as RFC 7296 did for KE algorithms.

As an example, for Case 1 above, the initiator can prepare its proposals as the 
following:

Proposal 1: ADDKE1(PQ_KEM_1), ADDKE2(PQ_KEM_2).

Proposal 2: ADDKE1(PQ_KEM_1, PQ_KEM_2).

Then, the responder is required to select one of proposals from the initiator 
by following RFC 9370. Dupicated algorithms are allowed in different proposals, 
and special cases like Case 1 can be covered. But then, we will have multiple 
of proposals and introduce some complexity.

Just got this idea. I think it works.

---------
By the way, we have a new draft called multi-authentication, that mimics the 
multiple KE in RFC 9370 but for authentication. It is realised via expanding 
the authentication announcement specified in RFC 9593.

https://datatracker.ietf.org/doc/draft-wang-ipsecme-multi-auth-ikev2-pq/

Your comments/reviews are welcome.

Cheers,

Guilin


发件人:Songbo Bu <[email protected]<mailto:[email protected]>>
收件人:[email protected] <[email protected]<mailto:[email protected]>>
抄 送:lilun (F) <[email protected]<mailto:[email protected]>>;[email protected] 
<[email protected]<mailto:[email protected]>>;[email protected] 
<[email protected]<mailto:[email protected]>>
时 间:2026-06-23 09:23:25
主 题:[IPsec] Re: New I-D: draft-li-ipsecme-extensions-for-robust-negotiation


Hi Paul, Lun, Wang, all,

Paul’s point makes sense to me.

If the examples are unsatisfiable from the initiator side, then the draft 
should not read as relaxing RFC 9370 or accepting duplicate KEM contributions 
just to tolerate bad configuration.

A narrower way to keep the useful part may be to reframe the work around 
explicit rejection/diagnostics and optional local normalization before 
proposals go on the wire.

For example, an implementation-facing matrix could separate:

  1.  proposals that are invalid and should fail at initiator configuration 
load;
  2.  proposals that can be normalized locally before sending, with a warning;
  3.  strict RFC 9370 responder outcomes;
  4.  cases where no valid RFC 9370 outcome exists and the responder rejects;
  5.  any explicitly configured local compatibility behavior, if the WG still 
wants to discuss it.

That would preserve the main security property: the wire outcome still has to 
be a valid, non-duplicated RFC 9370 selection, except for the existing NONE 
rules.

So I agree the draft should not justify duplicate selection as a robustness 
feature.

The useful deliverable may instead be a short “how to reject or normalize ADDKE 
proposal mistakes” document plus test cases.

Best,
Songbo

On Mon, 22 Jun 2026 13:17:17 -0400 (EDT), Paul Wouters 
[email protected]<mailto:[email protected]> wrote:

On Mon, 22 Jun 2026, Songbo Bu wrote:

Subject: [IPsec] Re: New I-D: draft-li-ipsecme-extensions-for-robust-negotiation

I am late reading this draft, my apologies.

I find the examples in Section 4 odd. To me, those are both valid cases
to fail the IKE SA as initiator and responder do not have matching
requirements.

Scenario 1: The initiator sends a proposal where ADDKE1, ADDKE2, and
ADDKE3 each contain the identical list of algorithms: PQ_KEM_1 and
PQ_KEM_2.

Clearly this proposal should fail to load on the initiator, as it can
never be satisfied, unless ADDKE3 is always just NONE. And having an
empty “must be NONE” proposal makes no sense.

Scenario 2: The initiator sends a proposal where ADDKE1 contains
PQ_KEM_1 and PQ_KEM_2, while ADDKE2 contains only PQ_KEM_2.

Again, this proposal should fail to load on the initiator, as it can
never be satisfied. Or it should remove PQ_KEM_2 from ADDKE1 while
loading and log a warning. But this requires more complicated code.

Not seeing an actual problem with RFC 9370, I am not convinced we need
this robustness draft. I am also not convinced that we need to allow
things like duplicate algorithms to allow for misconfigurations.

Perhaps there is a use for a document on how and when to reject ADDKE
proposals, but this document does not do that.

Paul
_______________________________________________
IPsec mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to