<?xml version="1.0" encoding="utf-8"?>
<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com 
     This can be converted using the Web service at http://xml.resource.org/ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- You want a table of contents -->
<!-- Use symbolic labels for references -->
<!-- This sorts the references -->
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<?rfc sortrefs="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<rfc category="info"
     docName="draft-li-ipsecme-extensions-for-robust-negotiation-00"
     ipr="trust200902">
  <front>
    <title abbrev="extensions for robust negotiation">Consideration of Robust Multi-KEM Negotiation within IKEv2</title>

      <seriesInfo name="Internet-Draft" value="draft-li-ipsecme-extensions-for-robust-negotiation-00"/>
      <author initials="L." surname="Li" fullname="Lun Li">
        <organization>Huawei</organization>
        <address>
          <email>lilun20@huawei.com</email>
        </address>
      </author>

    <!---->

    <date day="3" month="June" year="2026"/>

    <keyword>IKEv2</keyword>
    <keyword>transform</keyword>

    <abstract>
      <t>RFC 9370 specifies a framework for multiple additional key exchanges (ADDKE) in the Internet Key Exchange Protocol Version 2 (IKEv2) to 
      support post-quantum cryptography migration. Under this framework, an initiator can propose multiple ADDKE transform types. In deployment 
      scenarios, initiators may send proposals that contain redundant or overlapping lists of Key Encapsulation Mechanism (KEM) algorithms 
      across different ADDKE transform types. This contribution discusses the implications of these proposals and specifies extended procedures 
      for handling proposed transforms, which may improve negotiation robustness and interoperability by allowing the responder to select 
      a valid set of algorithms without altering the security properties defined in RFC 9370.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>The migration of the Internet Key Exchange Protocol Version 2 (IKEv2) to Post-Quantum Cryptography (PQC) uses hybrid key exchange mechanisms 
       to mitigate risks from new quantum-resistant algorithms. <xref target="RFC9370"/> establishes a framework for multiple additional key exchanges 
       (ADDKE) during the IKE_SA_INIT exchange. This allows combining classic algorithms (e.g., Elliptic Curve Diffie-Hellman) with one or more post-quantum 
       Key Encapsulation Mechanisms (KEMs) to derive SKEYSEED.</t>

      <t>The multi-KEM architecture allows an initiator to group KEM proposals across distinct ADDKE transform types based on their properties, 
      such as placing a shorter KEMs in one transform type and longer length KEMs in another. However, in practice, cryptographic policies are often configured 
      via automated templates or simplified management interfaces. Consequently, initiators may send proposals that are valid under the syntax 
      of <xref target="RFC9370"/> but contain redundancies, such as populating multiple ADDKE transform types with identical lists of KEM algorithms. If a 
      responder implements strict validation checks based on current specification, this redundancy can cause it to reject the proposal and for the negotiation to fail.</t>

      <t>This document provides guidance for handling the overlapping multi-KEM proposals based on best practices. It does not change the security properties defined 
      in RFC, nor does it allow the responder to skip PQC algorithms. Instead, it defines a selection logic for the responder to improve interoperability and robustness 
      during the PQC transition.</t>
    </section>

    <section anchor="requirements-language" title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref target="RFC2119"/>.</t>
    </section>

    <section anchor="paradigm" title="The Architectural Paradigm of Multiple KE Transforms">
      <t><xref target="RFC7296"/> defines the negotiation of the IKE Security Association (SA) within the SA payload during the IKE_SA_INIT exchange. 
      The initiator presents one or more proposals. Each proposal consists of multiple transform types, including Encryption (ENCR), 
      Pseudo-Random Function (PRF), Integrity Protection (INTEG), and Diffie-Hellman (DH) group (Transform Type 4).</t>

      <t><xref target="RFC9370"/> extends this negotiation mechanism by introducing seven additional transform types for alternative key exchanges, 
      designated as ADDKE1 (Type 6) through ADDKE7 (Type 12). This arrangement allows the initiator to propose a combination of a 
      classical key exchange along with multiple post-quantum key encapsulation mechanisms (KEMs).</t>

      <t>Figure 1 illustrates the payload hierarchy within the IKE_SA_INIT message when multiple key exchanges are proposed.</t>

      <figure anchor="sa_structure" title="SA Payload Structure with Multiple Key Exchanges">
        <artwork><![CDATA[
   +-------------------------------------------------------+
   |                  IKE_SA_INIT Message                  |
   +-------------------------------------------------------+
                               |
                        [ SA Payload ]
                               |
                        [ Proposal #1 ]
                               |
       +-----------------------+-----------------------+
  ...  |                       |                       |        ...
  [Transform]             [Transform]             [Transform]
  Type 4 (DH)           Type 6 (ADDKE1)         Type 7 (ADDKE2) ...
       |                       |                       |
 (e.g., Curve25519)      (e.g., ML-KEM-768)      (e.g., frodoKEM)
        ]]></artwork>
      </figure>

      <t>In the current RFC 9370 specification, the initiator populates each ADDKE transform type with a list of supported algorithms. The responder 
      evaluates the proposal and selects exactly one transform for each proposed ADDKE type. The core restriction in RFC 9370 is as follows:</t>
      
      <ol>
          <li><t>the responder's choice MUST NOT contain duplicated algorithms (those with an identical Transform ID and attributes), except for the Transform ID of 
          NONE as duplicate algorithms do not provide additional security and waste message space. </t></li>     
          <li><t>Only the ADDKE with indication NONE can be optional, otherwise, one algorithm must be selected in the cooresponding ADDKE.</t></li>    
      </ol>

      
    </section><!-- Introduction-->

    <section title="Protocol Extension for Complex Transform Proposals">


          <t>To illustrate the limitations of rigid transform processing, consider the following two failure scenarios:</t>

          <ol>
          <li><t>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. 
          The responder supports both PQ_KEM_1 and PQ_KEM_2. If the responder selects PQ_KEM_1 for ADDKE1 and PQ_KEM_2 for ADDKE2, no unique, non-overlapping algorithm 
          remains available for selection in ADDKE3. Consequently, the responder cannot satisfy the remaining transform type, and the negotiation fails.</t></li>     
          <li><t>Scenario 2: The initiator sends a proposal where ADDKE1 contains PQ_KEM_1 and PQ_KEM_2, while ADDKE2 contains only PQ_KEM_2. The responder only supports PQ_KEM_1. 
          The responder can match PQ_KEM_1 in ADDKE1, but it cannot satisfy ADDKE2 because it does not support PQ_KEM_2. Since selecting a transform for each proposed ADDKE type 
          is mandatory to accept the proposal, the negotiation fails, even though both peers share mutual support for PQ_KEM_1.</t></li>    
          </ol>
          
          <t>Negotiation is an issue that developers may often encounter, and in subsequent sections, we consider extensions to improve robustness. We believe that the 
          success rate of negotiation can potentially be increased to avoid abnormal occurrences.</t>


      <t>The scenarios above demonstrate that while the initiator's proposals are valid under RFC 9370, 
      a sequential or rigid evaluation logic leads to negotiation failures. In Scenario 1, a mathematically 
      valid combination of distinct algorithms exists, but a naive parsing logic lacks the ability to evaluate 
      the proposal holistically. In Scenario 2, the failure is driven by a rigid assignment whereby the responder 
      is unable to optimize its selection across the multiple transform types.</t>

      <t>We provide simple extended procedures that allow the responder to evaluate overlapping or redundant proposals deterministically. 
      This extension increases the handshake success rate in complex deployment environments with minimum impacting on the security constraints.</t>

    </section><!-- Protocol Extension for Complex Transform Proposals-->



  <section anchor="extended_logic" title="Extended Responder Selection Logic (The Core Mechanism)">

    <t>This section defines the extended selection procedures for a responder processing an IKE_SA_INIT message that contains multiple key exchange transforms. 
    The responder MUST first attempt to process the proposal strictly according to the rules defined in RFC 9370. The extended policies described below are triggered 
    only when the responder cannot satisfy the initiator's proposal using the standard non-overlapping selection logic.</t>

    <section anchor="extended_policies" title="Extended Selection Policies">
      <t>To resolve negotiation failures caused by complex or redundant proposals, the responder MAY be permitted to apply one or both of the following extended selection policies (i.e., consideration 1 and 2):</t>
      <t>Consideration 1 (Duplicate Algorithm Selection): The responder can be permitted to select the same algorithm for different key exchange fields (ADDKE transform types). 
      This consideration 1 relaxes the strict prohibition against duplicate selections during the responder's parsing phase, allowing a successful match when the initiator sends identical 
      lists across multiple transform types.</t>
      <t>Consideration 2 (Implicit NONE Selection): The responder can be permitted to select the "NONE" algorithm (Transform ID 0, i.e., Null algorithm) for a specific key exchange field, even if the "NONE" algorithm 
      was not explicitly included in that transform type by the initiator. Consideration 2 effectively treats a specific ADDKE transform type as optional rather than mandatory when no mutually 
      supported algorithm is available in that specific field. </t>
      <t>NOTE: Consideration 2 may have security impacts. It is recommended that Consideration 2 be enabled only when Consideration 1 fails to be negotiated. 
      More security analysis is proposed in Section 8.</t>
      <t>Above considerations may be implemented, for example, when the responder checks one by one whether ADDKE meets the conditions from ADDKE 1 to 7. When a certain ADDKE (e.g., 2) cannot be met, 
      compatibility policies can be activated. Consideration 1 can be applicable, when the initial algorithm selection for a first key exchange field yields no result; Consideration 2 can be applicable, for example, when the initial algorithm selection for a second key exchange field yields 
      no result, and no mutually supported algorithm is available in that specific field.</t>
    </section> 
    
    <section anchor="processing_workflow" title="Responder Processing Workflow">
      <t>Upon receiving an initial algorithm negotiation message (IKE_SA_INIT) comprising ADDKE fields with algorithms, the responder and initiator execute the following procedure:</t>
      <ol>
        <li><t>Initial Evaluation: The responder evaluates the algorithms carried in each proposed key exchange field and attempts to select exactly one algorithm per field without 
        duplicates, in strict compliance with RFC 9370.</t></li>     
        <li><t>Compatibility Strategy Execution: If the initial evaluation fails to produce a valid combination or results in NONE algorithm (i.e., yields no result), the responder MAY apply the extended 
        compatibility policies. for example, the responder can activate the compatibility mode and utilizes extend selection policy of Consideration 1 and Consideration 2 in order, or a combination of both for each proposed ADDKE field.</t></li>    
        <li><t>Response Transmission: Upon successfully concluding the selection using the extended policies, the responder sends the chosen algorithms back to the initiator 
        in the IKE_SA_INIT response message, which includes one or more of the key exchange fields, each carrying the selected algorithm. However, the responder should 
        include the compatibility indication in the message or use an out-of-band method to indicate to the initiator that an extended compatibility consideration has been adopted.</t></li>       
        <li><t>Key Generation: The initiator receives the response, accepts the responder's selected algorithms (including duplicates or NONE, as permitted by the extended 
        policies by informed indication from responder), and utilizes the associated key materials to generate the SKEYSEED used for establishing the secure connection. The peers then 
        proceed other procedure such as the IKE_AUTH to complete the IPsec connection establishment. at least two algorithms/keys materials should be included if it is applicable for the PQC hybrid key exchange establishing the 
        secure connection. </t></li>
      </ol>
    </section> 
  </section> 

<section anchor="annex_proposals" title="Annex: Multi-KEM ADDKE proposals and Boundary Conditions">
    <t>This annex provides profiles for resolving complex boundary conditions during multi-KEM negotiation. It serves as a deterministic reference for implementers 
    to ensure interoperability when applying the extended responder selection logic defined in Section 5.</t>

    <section anchor="profile_1" title="Profile 1: Complete Overlap with Limited Responder Support">
      <t>Boundary Condition: The initiator proposes identical lists of algorithms across multiple ADDKE types, but the responder supports only a single algorithm from the proposed lists.</t>
      <t>Example Proposal:</t>
      <ul>
        <li><t>ADDKE1: PQ_KEM_A, PQ_KEM_B</t></li>
        <li><t>ADDKE2: PQ_KEM_A, PQ_KEM_B</t></li>
      </ul>
      <t>Responder Capability: Supports only PQ_KEM_A.</t>
      <t>Deterministic Outcome: Under standard RFC 9370 rules, this negotiation fails. Utilizing the compatibility strategy, the responder triggers Consideration 1 
      (Duplicate Algorithm Selection). The responder selects PQ_KEM_A for ADDKE1 and PQ_KEM_A for ADDKE2. The responder sends this selection back with the compatibility 
      indication. SKEYSEED is derived using the classical DH algorithm and the duplicated PQ_KEM_A materials.</t>
    </section>

    <section anchor="profile_2" title="Profile 2: Subset Overlap Requiring Implicit NONE">
      <t>Boundary Condition: The initiator proposes different but overlapping lists without explicitly including the NONE algorithm, and the responder cannot satisfy all ADDKE 
      types using Consideration 1 alone.</t>
      <t>Example Proposal:</t>
      <ul>
        <li><t>ADDKE1: PQ_KEM_A, PQ_KEM_B</t></li>
        <li><t>ADDKE2: PQ_KEM_C</t></li>
      </ul>
      <t>Responder Capability: Supports PQ_KEM_B only.</t>
      <t>Deterministic Outcome: The responder selects PQ_KEM_B for ADDKE1. For ADDKE2, since PQ_KEM_C is not supported and Consideration 1 cannot be applied (PQ_KEM_B was not 
      proposed in ADDKE2), the responder evaluates Consideration 2. The responder selects the Implicit NONE algorithm (Transform ID 0) for ADDKE2. The negotiation succeeds with 
      one classical DH algorithm and one PQC algorithm (i.e., PQ_KEM_B).</t>
    </section>

    <section anchor="profile_3" title="Profile 3: Explicit NONE and Fallback Interaction">
      <t>Boundary Condition: The initiator explicitly includes the NONE algorithm in some ADDKE fields but omits it in others, creating an asymmetrical fallback matrix.</t>
      <t>Example Proposal:</t>
      <ul>
        <li><t>ADDKE1: PQ_KEM_A, NONE</t></li>
        <li><t>ADDKE2: PQ_KEM_B</t></li>
      </ul>
      <t>Responder Capability: Supports PQ_KEM_C only.</t>
      <t>Deterministic Outcome: The responder cannot match PQ_KEM_A or PQ_KEM_B. For ADDKE1, the responder selects the explicitly provided NONE algorithm according to standard 
      RFC 9370 parsing. For ADDKE2, the responder triggers Consideration 2 (Implicit NONE Selection) and selects NONE. Both ADDKE fields resolve to NONE.</t>
      <t>NOTE: While this resolution is syntactically valid under the extended policies, it reduces the exchange to classical DH only. Implementations MUST consult their local 
      security policies to determine if an IPsec connection without quantum-secure key materials should be established or dropped.</t>
    </section>

    <section anchor="profile_4" title="Profile 4: Consideration Priority and Tie-Breaking">
      <t>Boundary Condition: The proposal structure allows the responder to resolve the negotiation using either Consideration 1 or Consideration 2. A deterministic tie-breaker 
      is required.</t>
      <t>Example Proposal:</t>
      <ul>
        <li><t>ADDKE1: PQ_KEM_A</t></li>
        <li><t>ADDKE2: PQ_KEM_A</t></li>
      </ul>
      <t>Responder Capability: Supports PQ_KEM_A.</t>
      <t>Deterministic Outcome: The responder can apply Consideration 1 (select PQ_KEM_A for both) or Consideration 2 (select PQ_KEM_A for ADDKE1 and Implicit NONE for ADDKE2). 
      According to the order defined in Section 4, the responder SHALL prioritize Consideration 1 over Consideration 2. Therefore, the responder selects PQ_KEM_A for both fields. 
      Consideration 2 is strictly a fallback when duplication cannot satisfy the proposal.</t>
    </section>

  </section>

  <section anchor="iana-considerations">
    <name>IANA Considerations</name>
    <t>This document has no IANA considerations.</t>
  </section>

<section anchor="security" title="Security Considerations">
    <t>This document introduces extended negotiation strategies that alter the algorithm selection logic but do not modify the underlying cryptographic primitives or key derivation 
    functions defined in RFC 9370. The primary security consideration is that the interoperability introduced by these extensions may result in an overall security strength lower than 
    the initiator's optimal proposal.</t>

    <t>When Consideration 1 (Duplicate Algorithm Selection) is applied, the same Post-Quantum KEM is utilized for multiple ADDKE transform types. While this resolves parsing failures, it 
    eliminates the defense-in-depth property intended by hybrid multi-KEM architectures. If a cryptographic weakness is discovered in the duplicated algorithm, all instances of it within 
    the exchange are compromised. The resulting security level is equivalent to negotiating that specific PQC algorithm only once alongside the classical DH algorithm.</t>

    <t>When Consideration 2 (Implicit NONE Selection) is applied, the responder essentially ignores an ADDKE transform type. This may weaken the overall entropy of the SKEYSEED 
    compared to the initiator's original intent. If a peer relies heavily on this policy, it risks downgrading the connection to classical cryptography only (e.g., Profile 3 in Annex). 
    Implementations MUST ensure that local security policies define the minimum acceptable cryptographic threshold, and MUST abort the connection if the resolved multi-KEM combination 
    falls below this defined threshold.</t>

    <t>Because these compatibility policies evaluate unauthenticated payloads during the IKE_SA_INIT exchange, an active MITM attacker could theoretically modify the proposals to 
    force the responder into applying Consideration 1 or 2. However, to comply with RFC 7296 and RFC 9370, the entire contents of the IKE_SA_INIT messages are cryptographically bound 
    and verified during the subsequent IKE_AUTH exchange. Any tampering intended to force a fallback or downgrade will result in a MAC validation failure, fully mitigating this attack vector.</t>
  </section>



  </middle>

<back>
    <references title="References">
      <references title="Normative References">

        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many Standards Track documents, several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>

        <reference anchor="RFC7296" target="https://www.rfc-editor.org/info/rfc7296">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author initials="C." surname="Kaufman" fullname="C. Kaufman"/>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman"/>
            <author initials="Y." surname="Nir" fullname="Y. Nir"/>
            <author initials="P." surname="Eronen" fullname="P. Eronen"/>
            <author initials="T." surname="Kivinen" fullname="T. Kivinen"/>
            <date month="October" year="2014"/>
          </front>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>

        <reference anchor="RFC9370" target="https://www.rfc-editor.org/info/rfc9370">
          <front>
            <title>Multiple Additional Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author initials="C." surname="Tjhai" fullname="C. Tjhai"/>
            <author initials="M." surname="Tomlinson" fullname="M. Tomlinson"/>
            <author initials="G." surname="Bartlett" fullname="G. Bartlett"/>
            <author initials="S." surname="Fluhrer" fullname="S. Fluhrer"/>
            <author initials="D." surname="Van Geest" fullname="D. Van Geest"/>
            <author initials="O." surname="Garcia-Morchon" fullname="O. Garcia-Morchon"/>
            <date month="May" year="2023"/>
          </front>
          <seriesInfo name="RFC" value="9370"/>
          <seriesInfo name="DOI" value="10.17487/RFC9370"/>
        </reference>

      </references>

      <references title="Informative References">
        </references>
    </references>
  </back>
</rfc>
