<?xml version='1.0' encoding='utf-8'?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->

<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<rfc
      xmlns:xi="http://www.w3.org/2001/XInclude"
      category="info"
      docName="draft-guthrie-cnsa2-ipsec-profile-02"
      ipr="trust200902"
      obsoletes="9206"
      updates=""
      submissionType="IETF"
      xml:lang="en"
      tocInclude="true"
      tocDepth="4"
      symRefs="true"
      sortRefs="true"
      version="3"
	  consensus="true">
  <!-- xml2rfc v2v3 conversion 2.38.1 -->
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="CNSA Suite 2.0 Profile for IPsec">Commercial National Security Algorithm (CNSA) Suite 2.0 Profile for IPsec</title>
    <seriesInfo name="Internet-Draft" value="draft-guthrie-cnsa2-ipsec-profile-02"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

    <author fullname="Rebecca Guthrie" initials="R." surname="Guthrie">
      <organization abbrev="NSA">National Security Agency</organization>
      <address>
        <email>rmguthr@uwe.nsa.gov</email>
      </address>
    </author>
	
	<author fullname="Michael Jenkins" initials="M." surname="Jenkins">
	  <organization abbrev="NSA">National Security Agency
	  </organization>
	  <address>
	    <email>mjjenki@cyber.nsa.gov</email>
	  </address>
	  </author>

    <date day="19" month="february" year="2026"/>
    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

   <!-- Meta-data Declarations -->


   <abstract>
      <t>This document defines a base profile for IPsec for use with the US Commercial National Security Algorithm (CNSA) 2.0 Suite, a cybersecurity advisory that outlines quantum-resistant cryptographic algorithm policy for national security applications. This profile applies to the capabilities, configuration, and operation of all components of US National Security Systems that employ IPsec. It is also appropriate for all other US Government systems that process high-value information. This memo is not an IETF standard, and has not been shown to have IETF community consensus. This profile is made publicly available for use by developers and operators of these and any other system deployments.</t>
   </abstract>
  </front>
  
  <middle>
  
    <section numbered="true" toc="default">
      <name>Introduction</name>
	    <t>This document specifies an Internet Protocol Security (IPsec) profile to comply with the National Security Agency's (NSA) Commercial National Security Algorithm (CNSA) 2.0 Suite <xref target="CNSA2" format="default"/>. This profile applies to the capabilities, configuration, and operation of all components of US National Security Systems (NSS) <xref target="SP80059" format="default"/> that employ IPsec. This profile is also appropriate for all other US Government systems that process high-value information, and is made publicly available for use by developers and operators of these and any other system deployments.</t>
		<t>This document does not specify how to use any cryptographic algorithm not currently supported by IPsec; instead, it profiles CNSA 2.0-compliant conventions for IPsec, and it uses only algorithms in the CNSA 2.0 suite already specified for use by IPsec.</t>
		<t> This memo is not an IETF standard, and has not been shown to have IETF community consensus. </t>
	</section>
	
	<section numbered="true" toc="default"> 
	  <name>Terminology</name> 
	    <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/><xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here. Normative language does not apply beyond the scope of this profile.</t>
		<t>AES: Advanced Encryption Standard</t>
		<t>DH: Diffie-Hellman key establishment</t>
		<t>ECDH: Elliptic Curve Diffie-Hellman</t>
		<t>PSK/PPK: Pre-Shared Key/Post-Quantum Pre-Shared Key; in this document, used interchangeably</t>
		<t>ML-KEM: Module-Lattice-Based Key Encapsulation Mechanism, defined in <xref target="FIPS203" format="default"/></t>
		<t>ML-DSA: Module-Lattice-Based Digital Signature Algorithm, defined in <xref target="FIPS204" format="default"/></t>		
	</section>
	
	<section numbered="true" toc="default">
	  <name>The Commercial National Security Algorithm Suite 2.0</name>
		  <t>This profile uses CNSA 2.0 compliant algorithms ML-KEM-1024 <xref target="FIPS203" format="default"/> for key establishment and ML-DSA-87 <xref target="FIPS204" format="default"/> as a digital signature. In addition, this profile also includes the key establishment algorithms allowed by the CNSA 1.0 IPsec profile <xref target="RFC9206" format="default"/>: ECDH with curve P-384 <xref target="SP80056A" format="default"/> and DH with prime modulus of 3072 bits or 4096 bits <xref target="RFC3526" format="default"/>.</t>
		  <t>If ML-KEM-1024 were used in the IKE_SA_INIT exchange, the sizes of its public key and ciphertext would cause the initiator and responder messages to exceed the typical path MTU and necessitate in IP-level fragmentation, which can cause operational challenges and prevent the establishment of a connection.</t>
		  <t>To address this issue, <xref target="RFC9370" format="default"/> enables peers to perform multiple key exchanges. While the cryptographic content exchanged to facilitate the first key establishment algorithm (performed in IKE_SA_INIT) must be constrained enough in size as to not induce IP fragmentation, a subsequent key establishment algorithm can be performed in the IKE_INTERMEDIATE exchange <xref target="RFC9242" format="default"/>, which precedes IKE_AUTH. This exchange, because it is encrypted by the initial key establishment algorithm, can now leverage the IKEv2-level fragmentation mechanism specified in <xref target="RFC7383" format="default"/>. Use of this mechanism allows public keys and ciphertexts to be exchanged in messages that exceed path MTU and avoids IP fragmentation.</t>
		  <t>This document profiles the use of <xref target="RFC9370" format="default"/> and <xref target="I-D.ietf-ipsecme-ikev2-mlkem" format="default"/> where the key exchanges are instantiated as follows:</t>
		  <ul spacing="normal">
		  <li>The key exchange performed in IKE_SA_INIT can use any of the following algorithms: 384-bit random ECP group, 3072-bit MODP group, 4096-bit MODP group.</li>
		  <li>The additional key exchange performed in IKE_INTERMEDIATE MUST be ML-KEM-1024.</li>
		  </ul>
		  <t>[EDNOTE: The CNSA 1.0 key establishment algorithms are permitted instead of, e.g., a smaller quantum resistant algorithm because they enable backwards compatibility with CNSA 1.0-compliant implementations of IPsec during the transition to the CNSA 2.0 Suite and facilitate interoperability among implementations, while introducing negligible security risks (described further in Security Considerations). Should this justification be included in the final text?]</t>	  
	</section>

	<section numbered="true" toc="default">
	  <name>IKE_SA_INIT Exchange</name>
	  <section numbered="true" toc="default">
	    <name>Overview</name>
		<t>In the IKE_SA_INIT exchange, the initiator sends a message to the responder that includes the following payloads:</t>
		<ul spacing="normal">
		<li>SAi1 <xref target="RFC7296" format="default"/></li>
		<li>KEi <xref target="RFC7296" format="default"/></li>
		<li>Ni <xref target="RFC7296" format="default"/></li>
		<li>N(IKEV2_FRAGMENTATION_SUPPORTED) <xref target="RFC7383" format="default"/></li>
		<li>N(INTERMEDIATE_EXCHANGE_SUPPORTED) <xref target="RFC9242" format="default"/></li>
		<li>N(SIGNATURE_HASH_ALGORITHMS) <xref target="RFC7427" format="default"/><xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/></li>
		<li>[N(USE_PPK_INT)] <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/></li>
		</ul>
		<t>The responder sends the initiator a message that includes the following payloads:</t>
		<ul spacing="normal">
		<li>SAr1 <xref target="RFC7296" format="default"/></li>
		<li>KEr <xref target="RFC7296" format="default"/></li>
		<li>Nr <xref target="RFC7296" format="default"/></li>
		<li>CERTREQ <xref target="RFC7296" format="default"/></li>
		<li>N(IKEV2_FRAGMENTATION_SUPPORTED) <xref target="RFC7383" format="default"/></li>
		<li>N(INTERMEDIATE_EXCHANGE_SUPPORTED) <xref target="RFC9242" format="default"/></li>
		<li>N(SIGNATURE_HASH_ALGORITHMS) <xref target="RFC7427" format="default"/><xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/></li>
		<li>[N(USE_PPK_INT)] <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/></li>
		</ul>
		<t>Note that optional payloads are indicated using brackets; some payloads, while optional in their respective specifications, are required by this profile. These differences are discussed in more detail throughout this section.</t>
		<t>Section 4.2 discusses requirements concerning the contents of the SA payloads. Section 4.3 discusses requirements on the KE payloads. Section 4.4 discusses the Notify payloads included in the lists above. Section 4.5 discusses the CERTREQ payload sent by the responder.</t>
		<t>No additional requirements are imposed for the Nonce payloads Ni and Nr beyond what is detailed in <xref target="RFC7296" format="default"/>.</t>
		<t>Note that it may be necessary for the initiator and responder to include Notify payloads other than those listed above in their respective IKE_SA_INIT messages for certain use cases (such as those used for NAT traversal). Such use cases are not discussed here as they do not require further profiling and should be implemented in accordance with the relevant RFCs.</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Security Association Payloads</name>
		<t>Security Association (SA) payloads are used to propose IPsec protocols and the cryptographic algorithms (indicated via Transform Types) that correspond to each protocol. A CNSA 2.0-compliant implementation of IPsec will use the Encapsulating Security Payload (ESP) protocol <xref target="RFC4303" format="default"/> and the IKEv2 protocol <xref target="RFC7296" format="default"/>. The SA[i/r]1 payloads exchanged in IKE_SA_INIT are used to present IKE proposals. Proposals for the ESP protocol are presented during the IKE_AUTH exchange and are discussed in Section 6.3.</t>
		<t>The IKE proposal includes the following:</t>
		<ul spacing="normal">
		<li>Encryption Algorithm (Transform Type 1): ENCR_AES_GCM_16 (with key size 256 bits)</li>
		<li>Pseudorandom Function (Transform Type 2): PRF_HMAC_SHA2_512 or PRF_HMAC_SHA2_384</li>
		<li>Integrity Algorithm (Transform Type 3): NONE or not offered</li>
		<li>Key Exchange Method (Transform Type 4): 384-bit random ECP group or 3072-bit MODP group or 4096-bit MODP group</li>
		<li>Additional Key Exchange 1 (Transform Type 6): ML-KEM-1024</li>
		</ul>
		<t>While the proposal requires negotiation of both a confidentiality algorithm and integrity algorithm, algorithms for Authenticated Encryption with Associated Data (AEAD) <xref target="RFC5116" format="default"/> provide integrity, and are incompatible with the use of a separate integrity algorithm. In particular, since the Advanced Encryption Standard <xref target="FIPS197" format="default"/> in Galois-Counter Mode <xref target="SP80038D" format="default"/> (AES-GCM) <xref target="RFC8247" format="default"/> is an AEAD algorithm, the IKE proposal offering AES-GCM as its encryption algorithm MUST either offer no integrity algorithm or an integrity algorithm of "NONE" with the former being the RECOMMENDED method, as per <xref target="RFC7296" sectionFormat="comma" section="3.3" format="default"/>.</t>
		<t>AES-GCM-SIV <xref target="RFC8452" format="default"/> conforms with the requirements of this document and MAY be used instead of AES-GCM if a Federal Information Processing Standard (FIPS) validated implementation is available and a Transform Type 1 value is registered with IANA.</t>
		<t>[EDNOTE: Please contact the document authors to express interest in or identify implementations that support AES-GCM-SIV.]</t>
		<t>Note that ML-KEM-1024 MAY be proposed using any one of the Additional Key Exchange Transform Types (ADDKEs) 1-7 (with Transform Type 6-12 respectively), but a proposal MUST only include a single ADDKE Transform Type, and that ADDKE Transform Type MUST be ML-KEM-1024.</t>
		<t>An initiator proposal MUST be constructed using all of the Transform Types indicated above. For Transform Types that list more than one algorithm as an option, an initiator proposal MUST include at least one of the options listed and no options other than those listed above.</t>
		<t>A responder MUST accept initiator proposals that fit this description. If none of the proposals offered by the initiator comply with the above description, then the responder MUST return a Notify payload with the error NO_PROPOSAL_CHOSEN when operating in CNSA-compliant mode.</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Key Exchange Payloads</name>
		<t>The Key Exchange Method field <xref target="RFC9370" format="default"/> in the initiator's Key Exchange payload MUST be one of the following:</t>
		<ul spacing="normal">
		<li>384-bit random ECP group</li>
		<li>3072-bit MODP group</li>
		<li>4096-bit MODP group</li>
		</ul>
		<t>A responder compliant with this profile MUST send a N(INVALID_KE_PAYLOAD) <xref target="RFC7296" format="default"/> if it receives a Key Exchange payload using a Key Exchange Method value corresponding to any algorithm not listed above.</t>
		<t>The following requirements are restated from <xref target="RFC9206" format="default"/>.</t>
		<t>In every key establishment session, the CNSA-compliant initiator and responder MUST each generate ephemeral keys.</t>
		<t>While IKEv2 allows for the reuse of ephemeral Diffie-Hellman private keys <xref target="RFC7296" sectionFormat="comma" section="2.12" format="default"/>, there are security concerns related to this practice. In order to address such concerns, <xref target="I-D.ietf-ipsecme-ikev2-mlkem" format="default"/> requires ephemeral keys to be generated per connection. Moreover, this profile REQUIRES CNSA 2.0-compliant IPsec implementations to align with <xref target="SP80056A" format="default"/>. In particular, an ephemeral private key MUST be used in exactly one key establishment transaction and MUST be destroyed (zeroized) as soon as possible. Any shared secret derived from key establishment MUST also be destroyed (zeroized) immediately after its use.</t>
		<t>If the Elliptic Curve Diffie-Hellman (ECDH) key exchange is used, the initiator and responder both MUST generate an elliptic curve (EC) key pair using the P-384 elliptic curve. The ephemeral public keys MUST be stored in the key exchange payload as described in <xref target="RFC5903" format="default"/>.</t>
		<t>If the Diffie-Hellman (DH) key exchange is used, the initiator and responder both MUST generate a key pair using the appropriately sized MODP group as described in <xref target="RFC3526" format="default"/>. The size of the MODP group will be determined by the selection of either a 3072-bit or greater modulus for the SA.</t>
		<t>As noted in <xref target="RFC5903" sectionFormat="comma" section="7" format="default"/>, the shared secret result of an ECDH key exchange is the 384-bit x value of the ECDH common value. The shared secret result of a DH key exchange is the number of octets needed to accommodate the prime (e.g., 384 octets for 3072-bit MODP group) with leading zeros as necessary <xref target="RFC2631" sectionFormat="comma" section="2.1.2" format="default"/>.</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Notify Payloads</name>		
		<t>In order to use the Intermediate Exchange <xref target="RFC9242" format="default"/> and IKE-level fragmentation <xref target="RFC7383" format="default"/>, initiator and responder MUST include both of the following Notify payloads in their respective IKE_SA_INIT messages:</t>
		<ul spacing="normal">
		<li>N(IKEV2_FRAGMENTATION_SUPPORTED) <xref target="RFC7383" format="default"/></li>
		<li>N(INTERMEDIATE_EXCHANGE_SUPPORTED) <xref target="RFC9242" format="default"/></li>
		</ul>
		<t>[EDNOTE: Is there a way to signal that both of the above Notify payloads are required by this profile even though they are optional in their respective specifications?]</t>
		<t>In order to use the ML-DSA-87 signature algorithm, initiator and responder MUST include the N(SIGNATURE_HASH_ALGORITHMS) <xref target="RFC7427" sectionFormat="comma" section="4" format="default"/> payload in their respective IKE_SA_INIT messages as specified in Section 5 of <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/>.</t>
		<t>The initiator and responder also MAY negotiate support for <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/> using N(USE_PPK_INT) as specified in <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>.</t>
		<t>Note that while <xref target="RFC9206" format="default"/> supported the use of a PSK via <xref target="RFC8784" format="default"/>, this profile instead aims to support the use of a PSK as specified in <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>. This profile acknowledges that there may be a period of transition in which implementations support the use of a PSK via <xref target="RFC8784" format="default"/>, but have not yet added support for <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>. During this time, a CNSA 2.0-compliant initiator MAY include only N(USE_PPK) in its IKE_SA_INIT message if it does not yet support <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>. Because each PSK mechanism is negotiated independently (though only one is used in a given connection), a CNSA 2.0-compliant initiator also MAY include both N(USE_PPK_INT) and N(USE_PPK) in its IKE_SA_INIT message to accommodate the scenario where a responder who is otherwise CNSA 2.0-compliant has not yet added in support for <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>. In either scenario, if the responder replies with N(USE_PPK) <xref target="RFC8784" format="default"/> but is otherwise CNSA 2.0-compliant, the initiator MAY proceed in establishing the SA using a PSK as specified by <xref target="RFC8784" format="default"/>. A CNSA 2.0-compliant responder that receives both and supports both N(USE_PPK_INT) and N(USE_PPK) MUST return N(USE_PPK_INT) and agree to use a PSK as specified by <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>.</t>		
	  </section>
	  <section numbered="true" toc="default">
	    <name>Certificate Request Payload</name>
		<t>While <xref target="RFC7296" format="default"/> treats the CERTREQ payload as optional, this profile requires its use.</t>
		<t>[EDNOTE: <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/> discusses mechanisms for signaling which digital signature algorithms are supported. In the case of CNSA 2.0, the inclusion of the N(SIGNATURE_HASH_ALGORITHMS) payload in IKE_SA_INIT is sufficient to indicate that ML-DSA is supported because it is the only CNSA 2.0-compliant signature algorithm that uses this Notify payload. However, one proposal from <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/> uses the CERTREQ payload to indicate that a CA certificate signed by an ML-DSA key is trusted. Do future implementors have a preference between these two methods? Note that while <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/> also proposes the use of N(SUPPORTED_AUTH_METHODS) <xref target="RFC9593" format="default"/> as another mechanism, CNSA 2.0 does not plan to support the use of this extension.]</t>
		<t>[EDNOTE: Separate from the above discussion, this profile is considering requiring the use of the CERTREQ payload even though it is optional per <xref target="RFC7296" format="default"/>. Can implementations support this? Are there compelling use cases for not using the CERTREQ payload (sent by either the responder in IKE_SA_INIT or the initiator in IKE_AUTH) though X.509-based authentication is required?]</t>
	  </section>
	</section>

	<section numbered="true" toc="default">
	  <name>IKE_INTERMEDIATE Exchanges</name>
	  <section numbered="true" toc="default">
	    <name>Overview</name>
		<t>The IKE_INTERMEDIATE exchange performs an additional key establishment with ML-KEM-1024.</t>
		<t>The initiator sends an IKE_INTERMEDIATE message to the responder containing an encrypted KEi(1) <xref target="RFC9370" format="default"/> payload. In reply, the responder sends an IKE_INTERMEDIATE message containing an encrypted KEr(1) <xref target="RFC9370" format="default"/> payload. Requirements for Key Exchange payloads and ML-KEM are discussed in Section 5.2.</t>
		<t>If <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/> is supported by initiator and responder, a second IKE_INTERMEDIATE exchange can also be used to mix in a pre-shared key. PSK guidance and requirements are discussed in detail in Section 5.3.</t>
		<t>Implementations compliant with this profile MUST NOT use additional IKE_INTERMEDIATE exchanges to facilitate further key establishments. In other words, peers MUST NOT use IKE_INTERMEDIATE exchanges to send KE[i/r](n) payloads for values other than n=1 or that contain key establishment material for algorithms other than ML-KEM-1024.</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Key Exchange Payloads</name>
		<t>In IKE_INTERMEDIATE, initiator and responder messages each contain a Key Exchange payload in order to facilitate a second key establishment which uses ML-KEM-1024.</t>
		<t>ML-KEM-1024 has Key Exchage Method value "TBD37" [EDNOTE: Will be assigned by IANA when <xref target="I-D.ietf-ipsecme-ikev2-mlkem" format="default"/> is published].</t>
		<t>This profile strengthens normative key generation, encapsulation, and decapsulation guidance from <xref target="I-D.ietf-ipsecme-ikev2-mlkem" sectionFormat="comma" section="2.3" format="default"/> as follows: Responders MUST perform the checks specified in Section 7.2 of <xref target="FIPS203" format="default"/> prior to performing Encaps(pk). If the checks fail, the responder MUST send a N(INVALID_SYNTAX) payload as a response to the request from the initiator. Initiators MUST perform the checks specified in Section 7.3 of <xref target="FIPS203" format="default"/> prior to performing Decaps(sk, ct). In this case, the initiator SHOULD send a N(INVALID_SYNTAX) payload to the responder using the IKE_INFORMATIONAL exchange. This is an exception for the general requirement to not begin a new exchange based on errors in responses.</t>
		<t> As per <xref target="I-D.ietf-ipsecme-ikev2-mlkem" format="default"/>, ephemeral ML-KEM private keys must be generated per connection. Additionally, a CNSA 2.0-compliant IPsec implementation MUST use ML-KEM ephemeral private keys in exactly one key establishment transaction, and MUST destroy (zeroize) said key as soon as possible. Any shared secret derived from key establishment MUST also be destroyed (zeroized) immediately after its use, as is required for (EC)DH in Section 4.3.</t>
		<t>The following requirement is restated from <xref target="I-D.ietf-ipsecme-ikev2-mlkem" format="default"/> for emphasis: the ML-KEM public key generated by the initiator and the ciphertext generated by the responder use randomness (usually a seed) which MUST be independent of any other random seed used in the IKEv2 negotiation. For example, at the initiator, the ML-KEM and (EC)DH keypairs used in a PQ/T Hybrid key exchange should not be generated from the same seed.</t>
		<t>[EDNOTE: Additional RBG requirements for ML-KEM may be included here.]</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>PSK</name>
		<t>If initiator and responder signal support for <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/> in IKE_SA_INIT, the initiator MAY send N(PPK_IDENTITY_KEY) payload(s) to the responder using the IKE_INTERMEDIATE exchange, and the responder will reply, both in accordance with <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" sectionFormat="comma" section="3.1" format="default"/>.</t>
		<t>While <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/> indicates that the initiator MAY include the N(PPK_IDENTITY_KEY) payload(s) in the IKE_INTERMEDIATE exchange message used to transfer ML-KEM key material, it is RECOMMENDED by this profile that the initiator use a separate IKE_INTERMEDIATE exchange to agree on a pre-shared key such that the ML-KEM exchange precedes the PSK exchange.</t>
		<t>Note that PSKs shall be at least 256 bits in length, and generated from a NIST approved random bit generator that supports 256-bits of entropy <xref target="SP80090C" format="default"/>.</t>
	  </section>
	</section>

	<section numbered="true" toc="default">
	  <name>IKE_AUTH Exchange</name>
	  <section numbered="true" toc="default">
	    <name>Overview</name>
		<t>In the IKE_AUTH exchange, the initiator sends a message to the responder that includes the following payloads:</t>
		<ul spacing="normal">
		<li>IDi <xref target="RFC7296" format="default"/></li>
		<li>CERT <xref target="RFC7296" format="default"/></li>
		<li>CERTREQ <xref target="RFC7296" format="default"/></li>
		<li>[IDr] <xref target="RFC7296" format="default"/></li>
		<li>AUTH <xref target="RFC7296" format="default"/> (modified by <xref target="RFC9242" format="default"/>, <xref target="RFC9370" format="default"/>, <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>, <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/>)</li>
		<li>SAi2 <xref target="RFC7296" format="default"/></li>
		<li>TSi <xref target="RFC7296" format="default"/></li>
		<li>TSr <xref target="RFC7296" format="default"/></li>
		</ul>
		<t>The responder sends a message to the initiator that includes the following payloads:</t>
		<ul spacing="normal">
		<li>IDr <xref target="RFC7296" format="default"/></li>
		<li>CERT <xref target="RFC7296" format="default"/></li>
		<li>AUTH <xref target="RFC7296" format="default"/> (modified by <xref target="RFC9242" format="default"/>, <xref target="RFC9370" format="default"/>, <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>, <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/>)</li>
		<li>SAr2 <xref target="RFC7296" format="default"/></li>
		<li>TSi <xref target="RFC7296" format="default"/></li>
		<li>TSr <xref target="RFC7296" format="default"/></li>
		</ul>
		<t>Note that optional payloads are indicated using brackets; some payloads, while optional in their respective specifications, are required by this profile. These differences are discussed in more detail throughout this section.</t>
		<t>The initiator's CERTREQ payload is discussed in Section 6.2. The contents of the initiator SAi2 payload and the responder SAr2 payload are discussed in Section 6.3. Section 6.4 discusses the initiator and responder AUTH payloads. The CERT payloads are discussed in Section 6.5.</t>
		<t>Note that it may be necessary for the initiator and responder to include other Notify payloads in their respective IKE_AUTH messages for certain use cases. Such instances are not discussed here as they do not require further profiling and should be implemented in accordance with the relevant RFCs.</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Certificate Request Payload</name>
		<t>While <xref target="RFC7296" format="default"/> treats the CERTREQ payload as optional, this profile requires the CERTREQ payload to be used.</t>
		<t>[EDNOTE: See related EDNOTE in Section 4.5.]</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Security Association Payloads</name>
		<t>The initiator and responder present their ESP proposals in SAi2 and SAr2 respectively.</t>
		<t>The ESP proposal includes the following:</t>
		<ul spacing="normal">
		<li>Encryption Algorithm (Transform Type 1): ENCR_AES_GCM_16 (with key size 256 bits)</li>
		<li>Integrity Algorithm (Transform Type 2): NONE or not offered</li>
		</ul>
		<t>While ESP as specified in <xref target="RFC7296" format="default"/> optionally supports an integrity algorithm, the use of AES-GCM <xref target="RFC4106" format="default"/> for an encryption algorithm requires that either no integrity algorithm or an algorithm NONE be offered.</t>
		<t>AES-GCM-SIV <xref target="RFC8452" format="default"/> conforms with the requirements of this document and MAY be used instead of AES-GCM if a Federal Information Processing Standard (FIPS) validated implementation is available and a Transform Type 1 value is registered with IANA.</t>
		<t>[EDNOTE: <xref target="RFC7296" format="default"/> states that DH (now Key Exchange Method) is optional for ESP, but the choice to do this would imply that a KE payload could optionally be included in IKE_AUTH messages, which is not addressed in <xref target="RFC7296" format="default"/>. Is this interpretation correct? If so, is this something that happens in practice?]</t>
		<t>[EDNOTE: Guidance on Extended Sequence Numbers (Transform Type 5) <xref target="RFC7296" sectionFormat="comma" section="3.3.2" format="default"/> in ESP proposals is forthcoming.]</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Authentication Payloads</name>
		<t>This profile REQUIRES the use of digital signature ML-DSA-87 <xref target="FIPS204" format="default"/>. If the relying party receives a message signed with any authentication method other than ML-DSA-87, it MUST return an AUTHENTICATION_FAILED Notify payload and stop processing the message.</t>
		<t>In alignment with <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth" format="default"/> and as defined by <xref target="FIPS204" format="default"/>, this profile permits the use of both hedged and deterministic variants of ML-DSA.</t>
		<t>Note that the calculation of the Authentication Data field in the AUTH payload <xref target="RFC7296" format="default"/> is updated by <xref target="I-D.ietf-ipsecme-ikev2-mlkem" format="default"/> (which leverages <xref target="RFC9370" format="default"/>, which leverages <xref target="RFC9242" format="default"/>, which leverages <xref target="RFC7383" format="default"/>). Additionally, if peers agreed on and mixed in a PSK as in <xref target="I-D.ietf-ipsecme-ikev2-qr-alt" format="default"/>, this also impacts the calculation of the Authentication Data field.</t>
		<t>[EDNOTE: Is the way that Authentication Data calculation is updated clear, or should this be explained?]</t>
		<t>[EDNOTE: Clarification regarding the use of ML-DSA vs. ExternalMu-ML-DSA <xref target="I-D.ietf-lamps-dilithium-certificates" sectionFormat="comma" section="Appendix D" format="default"/> is forthcoming. Note that HashML-DSA will not be permitted (also in accordance with <xref target="I-D.ietf-lamps-dilithium-certificates" format="default"/>).]</t>
	  </section>
	  <section numbered="true" toc="default">
	    <name>Certificate Payloads</name>
		<t>While <xref target="RFC7296" format="default"/> treats the inclusion of CERT payloads in IKE_AUTH messages as optional, CNSA 2.0-compliant initiator and responder IKE_AUTH messages MUST include the requisite CERT payloads. All CERT payloads MUST comply with <xref target="I-D.jenkins-cnsa2-pkix-profile" format="default"/>. CERT payload(s) sent by both initiator and responder MUST include the Cert Encoding of X.509 Certificate - Signature (4). Note that if a chain of certificates needs to be sent, multiple CERT payloads are used, where only the first of which holds the public key used to validate the sender's AUTH payload <xref target="RFC7296" sectionFormat="comma" section="3.6" format="default"/>. CERT payloads sent by initiator or responder may also optionally use other Cert Encodings (such as Certificate Revocation List (7)) as needed. Other public key formats (such as PGP Certificate=2, SPKI Certificate=9) MUST NOT be used. Peer authentication decisions MUST be based on the Subject or Subject Alternative Name from the certificate that contains the key used to validate the digital signature in the AUTH payload, rather than the Identification Data from the ID payload that is used to look up policy.</t>
	  </section>
	</section>

	<section numbered="true" toc="default">
	  <name>CREATE_CHILD_SA Exchanges</name>
	  <t>Forthcoming.</t>
	</section>

	<section numbered="true" toc="default">
	  <name>Additional Requirements</name>
	  <t>Forthcoming.</t>
	</section>

	<section numbered="true" toc="default">
	  <name>Security Considerations</name>
	  <t>Forthcoming.</t>
	</section>

	<section anchor="app-additional" numbered="true" toc="default">
      <name>IANA Considerations</name>
	  <t>None.</t>
	</section>
	
</middle>
<back>	
   <references>
      <name>References</name>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2631.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3526.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4106.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5116.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5903.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7383.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7427.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8247.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8452.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8784.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9206.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9242.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9370.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9593.xml"/>
	  
	  
	  <reference anchor="CNSA2" target="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF">
	    <front>
		  <title>The Commercial National Security Algorithm Suite 2.0 and Quantum Computing FAQ</title>
		  <author>
		    <organization>National Security Agency
			</organization>
		  </author>
		  <date month="December" year="2024"/>
		</front>
	  </reference>
	  
	  <reference anchor="SP80059">
	    <front>
		  <title>Guideline for Identifying an Information System as a National Security System</title>
		  <author>
		    <organization>National Institute of Standards and Technology</organization>
		  </author>
		  <date month="August" year="2003"/>
		</front>
	  </reference>
	  
	  <reference anchor="SP80056A">
	    <front>
		  <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography</title>
		  <author>
		    <organization>National Institute of Standards and Technology</organization>
		  </author>
		  <date month="April" year="2018"/>
		</front>
		</reference>
	  
	  <reference anchor="SP80038D">
	    <front>
		  <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</title>
		  <author>
		    <organization>National Institute of Standards and Technology</organization>
		  </author>
		  <date month="November" year="2007"/>
		</front>
		</reference>
	  
	  <reference anchor="SP80090C">
	    <front>
		  <title>Recommendation for Random Bit Generator (RBG) Constructions</title>
		  <author>
		    <organization>National Institute of Standards and Technology</organization>
		  </author>
		  <date month="July" year="2024"/>
		</front>
		</reference>
	   
	  <reference anchor="FIPS203">
	    <front>
		  <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
		  <author>
		    <organization>National Institute of Standards and Technology</organization>
		  </author>
		  <date month="August" year="2024"/>
		</front>
		</reference>
	  
	  <reference anchor="FIPS204">
	    <front>
		  <title>Module-Lattice-Based Digital Signature Standard</title>
		  <author>
		    <organization>National Institute of Standards and Technology</organization>
		  </author>
		  <date month="August" year="2024"/>
		</front>
		</reference>
	  
	  <reference anchor="FIPS197">
	    <front>
		  <title>Advanced Encryption Standard (AES)</title>
		  <author>
		    <organization>National Institute of Standards and Technology</organization>
		  </author>
		  <date month="May" year="2023"/>
		</front>
		</reference>
	  
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-ikev2-mlkem.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-ikev2-pqc-auth.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-ikev2-qr-alt.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lamps-dilithium-certificates.xml"/>
	  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.jenkins-cnsa2-pkix-profile.xml"/>

	</references>
</back>	
</rfc>
	
 