<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-edhoc-psk-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <?v3xml2rfc silence="Found SVG with width or height specified"?>
  <front>
    <title abbrev="EDHOC-PSK">EDHOC Authenticated with Pre‑Shared Keys (PSK)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-psk-09"/>
    <author initials="E." surname="Lopez-Perez" fullname="Elsa Lopez-Perez">
      <organization>Inria</organization>
      <address>
        <email>elsa.lopez-perez@inria.fr</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="R." surname="Marin-Lopez" fullname="Rafael Marin-Lopez">
      <organization>University of Murcia</organization>
      <address>
        <email>rafa@um.es</email>
      </address>
    </author>
    <author initials="F." surname="Lopez-Gomez" fullname="Francisco Lopez-Gomez">
      <organization>University of Murcia</organization>
      <address>
        <email>francisco.lopezg@um.es</email>
      </address>
    </author>
    <date year="2026" month="September" day="08"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <abstract>
      <?line 85?>

<t>This document specifies a Pre-Shared Key (PSK) authentication method for the Ephemeral Diffie-Hellman Over COSE (EDHOC) Lightweight Authenticated Key Exchange (LAKE) protocol. The PSK method provides mutual authentication, ephemeral key exchange, identity protection, and quantum resistance while incurring lower computational costs than the public-key authentication methods specified for EDHOC. It is suited for systems where nodes share a PSK provided out-of-band (external PSK) and enables efficient session resumption with less computational overhead when the PSK is provided from a previous EDHOC session (resumption PSK). This document details the PSK message flow, key derivation changes, message formatting, processing, and security considerations.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lake-wg.github.io/psk/#go.draft-ietf-lake-edhoc-psk.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lake-edhoc-psk/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        LAKE Working Group mailing list (<eref target="mailto:lake@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/lake/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/lake/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lake-wg/psk"/>.</t>
    </note>
  </front>
  <middle>
    <?line 89?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines a Pre-Shared Key (PSK) authentication method for the Ephemeral Diffie-Hellman Over COSE (EDHOC) Lightweight Authenticated Key Exchange (LAKE) protocol <xref target="RFC9528"/>. The PSK method trades the complexity of symmetric-key distribution for improved computational efficiency. Although symmetric-key distribution is more complex than public-key credential distribution, PSK authentication requires less computation than the authentication methods defined in <xref target="RFC9528"/>. The PSK method provides mutual authentication, ephemeral asymmetric key exchange, and identity protection.</t>
      <t>EDHOC with PSK authentication benefits use cases where two nodes share a Pre-Shared Key (PSK) provided out-of-band (external PSK). Examples include the Authenticated Key Management Architecture (AKMA) in mobile systems or the Peer and Authenticator in Extensible Authentication Protocol (EAP) systems. The PSK method enables the nodes to perform ephemeral key exchange, achieving Perfect Forward Secrecy (PFS). This ensures that even if the PSK is compromised, past communications remain secure against active attackers, while future communications are protected against passive attackers. Additionally, by leveraging the PSK for both authentication and key derivation, the method provides quantum-resistant key exchange and authentication even when used with ECDHE.</t>
      <t>Another important use case of PSK authentication in the EDHOC protocol is session resumption. This allows previously connected parties to quickly reestablish secure communication using pre-shared keys from a prior session, reducing the overhead associated with key exchange and asymmetric authentication. By using PSK authentication, EDHOC allows session keys to be refreshed with significantly lower computational overhead compared to public-key authentication. In this case, the resumption PSK is provisioned after the establishment of a previous EDHOC session by using EDHOC_Exporter. Thus, the external PSK may serve as a long-term credential, while the resumption PSK is a short-lived credential derived from a previous EDHOC session.</t>
      <t><xref target="protocol"/> provides an overview of the PSK method, including its message flow and associated credentials. <xref target="key-der"/> outlines the changes to key derivation compared to <xref target="RFC9528"/>. <xref target="mes-for-pro"/> details message formatting and processing, and <xref target="psk-resumption"/> describes the usage of PSK for resumption. <xref target="EAP"/> discusses the use of EDHOC-PSK with EAP-EDHOC and <xref target="OSCORE"/> defines the use of EDHOC-PSK with Object Security for Constrained RESTful Environments (OSCORE, <xref target="RFC8613"/>). Security considerations are described in <xref target="sec-con"/>, and <xref target="IANA-con"/> outlines the IANA considerations.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>Readers are expected to be familiar with the terms and concepts described in EDHOC <xref target="RFC9528"/>, Concise Binary Object Representation (CBOR) <xref target="RFC8949"/>, CBOR Sequences <xref target="RFC8742"/>, CBOR Object Signing and Encryption (COSE) Structures and Processing <xref target="RFC9052"/>, COSE Algorithms <xref target="RFC9053"/>, CBOR Web Token (CWT) and CWT Claims Set (CCS) <xref target="RFC8392"/>, and the Concise Data Definition Language (CDDL) <xref target="RFC8610"/>, which is used to express CBOR data structures.</t>
    </section>
    <section anchor="protocol">
      <name>Protocol</name>
      <t>This document specifies a new EDHOC authentication method (see <xref section="3.2" sectionFormat="of" target="RFC9528"/>) referred to as the Pre-Shared Key method (EDHOC-PSK). This method shares some features with, and differs in other respects from, the authentication methods previously defined in EDHOC.</t>
      <t>Authentication is based on a PSK shared by the Initiator and the Responder. As in the methods defined in <xref target="RFC9528"/>, CRED_I and CRED_R are authentication credentials containing identifying information for the Initiator and Responder, respectively. However, unlike those methods, EDHOC-PSK uses a single authentication credential identifier, ID_CRED_PSK, which the Responder uses to retrieve the PSK and the associated authentication credentials.</t>
      <t>The PSK method uses a “by reference” approach for credential representation. ID_CRED_PSK can be kept minimal, enabling a very compact on-the-wire encoding. In contrast, <xref target="RFC9528"/> defines that ID_CRED_I and ID_CRED_R may convey arbitrary identity and application-specific context. This separation allows EDHOC-PSK to minimize overhead for PSK identification while preserving flexibility in both identity and contextual information, as well as the security properties associated with their use.</t>
      <t>Like the Internet Key Exchange Protocol Version 2 (IKEv2) <xref target="RFC7296"/>, EDHOC-PSK encrypts the PSK identifier ID_CRED_PSK, providing identity protection against passive attackers. In contrast, (D)TLS 1.3 <xref target="RFC8446"/> <xref target="RFC9147"/> transmits the PSK identifier in cleartext and therefore does not provide identity protection for PSK-based authentication.</t>
      <section anchor="credentials">
        <name>Credentials</name>
        <t>The Initiator and Responder are assumed to share a PSK (either an external PSK or a resumption PSK) with high entropy that meets the following requirements:</t>
        <ul spacing="normal">
          <li>
            <t>Only the Initiator and the Responder have access to the PSK.</t>
          </li>
          <li>
            <t>The Responder can retrieve the PSK, CRED_I, and CRED_R, using ID_CRED_PSK.</t>
          </li>
        </ul>
        <section anchor="idcredpsk">
          <name>ID_CRED_PSK</name>
          <t>ID_CRED_PSK is a key identifier <xref section="3.1" sectionFormat="of" target="RFC8152"/> formatted as a COSE header map containing header parameters that can be used to retrieve one or more pre-shared keys and associated information required for EDHOC processing. Following the compact encoding rules defined in Section 3.5.3.2 of <xref target="RFC9528"/>, an ID_CRED_PSK containing only a single 'kid' parameter can be encoded directly as the value of that parameter. For example, the identifier</t>
          <artwork><![CDATA[
ID_CRED_PSK = { 4 : h'10' }; 4 = 'kid'
]]></artwork>
          <t>is encoded as the CBOR byte string h'0010' rather than as the full CBOR map, reducing message size.</t>
          <t>The purpose of ID_CRED_PSK is to facilitate retrieval of the PSK and associated information required for EDHOC processing. While ID_CRED_PSK uses encoding and representation patterns from <xref section="3.5.3.2" sectionFormat="of" target="RFC9528"/>, it differs fundamentally in that it identifies a symmetric key rather than a public authentication key. A given ID_CRED_PSK value <bcp14>MAY</bcp14> correspond to more than one candidate PSK and associated information. In that case, all candidates associated with the value may need to be checked.</t>
          <t>It is <bcp14>RECOMMENDED</bcp14> that ID_CRED_PSK uniquely or stochastically identifies the corresponding PSK context. Uniqueness avoids ambiguity that could require the recipient to try multiple candidate PSK and associated information, while stochasticity reduces the risk of identifier collisions and supports stateless processing. These properties align with the requirements for rKID in session resumption (see <xref target="psk-resumption"/>).</t>
        </section>
        <section anchor="credi-and-credr">
          <name>CRED_I and CRED_R</name>
          <t>CRED_I and CRED_R are authentication credentials associated with the PSK. The notation CRED_x refers to either CRED_I or CRED_R. Authentication is achieved implicitly through successful possession and use of the PSK in the derivation and verification of protected cryptographic material.</t>
          <t>When using an external PSK, a common representation of CRED_I and CRED_R is a CWT or CCS <xref target="RFC8392"/>, where the 'cnf' claim includes the confirmation method COSE_Key. An example of CRED_I and CRED_R is shown below:</t>
          <artwork><![CDATA[
{                                               /CCS/
  2 : "42-50-31-FF-EF-37-32-39",                /sub/
  8 : {                                         /cnf/
    1 : {                                       /COSE_Key/
       1 : 4,                                   /kty/
       2 : h'10',                               /kid/
    }
  }
}
]]></artwork>
          <artwork><![CDATA[
{                                               /CCS/
  2 : "23-11-58-AA-B3-7F-10",                   /sub/
  8 : {                                         /cnf/
    1 : {                                       /COSE_Key/
       1 : 4,                                   /kty/
       2 : h'10',                               /kid/
    }
  }
}
]]></artwork>
          <t>Alternative formats for CRED_I and CRED_R <bcp14>MAY</bcp14> be used. When a resumption PSK is employed, CRED_I and CRED_R <bcp14>MUST</bcp14> be the same credentials used in the initial EDHOC exchange, for example, public-key credentials such as X.509 certificates.</t>
          <t>Implementations <bcp14>MUST</bcp14> ensure that CRED_I and CRED_R are distinct, for example by including different identities in their sub-claims (e.g., "42-50-31-FF-EF-37-32-39" and "23-11-58-AA-B3-7F-10"). Ensuring distinct credentials simplifies correct party identification and prevents reflection and misbinding attacks, as described in <xref section="D.2" sectionFormat="of" target="RFC9528"/>.</t>
        </section>
        <section anchor="encoding-and-processing-guidelines">
          <name>Encoding and processing guidelines</name>
          <t>The following guidelines apply to the encoding and handling of CRED_x and ID_CRED_PSK. Requirements on CRED_x apply both to CRED_I and to CRED_R.</t>
          <ul spacing="normal">
            <li>
              <t>If CRED_x is CBOR-encoded, it <bcp14>SHOULD</bcp14> use deterministic encoding as specified in Sections <xref target="RFC8949" section="4.2.1" sectionFormat="bare"/> and <xref target="RFC8949" section="4.2.2." sectionFormat="bare"/> of <xref target="RFC8949"/>. Deterministic encoding ensures consistent identification and avoids interoperability issues caused by non-deterministic CBOR variants.</t>
            </li>
            <li>
              <t>If CRED_x is provisioned out-of-band and transported by value, it <bcp14>SHOULD</bcp14> be used as received without re-encoding. Re-encoding can cause mismatches when comparing identifiers such as hash values or 'kid' references.</t>
            </li>
            <li>
              <t>When ID_CRED_PSK consists solely of a 'kid' parameter (i.e., { 4 : kid }), the compact encoding optimization defined in <xref section="3.5.3.2" sectionFormat="of" target="RFC9528"/> <bcp14>MUST</bcp14> be applied in plaintext fields (such as PLAINTEXT_3A). These optimizations <bcp14>MUST NOT</bcp14> be applied in COSE header parameters or in other contexts where the full map structure is required. For example:
              </t>
              <ul spacing="normal">
                <li>
                  <t>{ 4 : h'0f' } is encoded as 0xa104410f, instead of 0x410f (CBOR encoding of the CBOR byte string h'0f')</t>
                </li>
                <li>
                  <t>{ 4 : 21 } is encoded as 0xa1044115, instead of 0x15 (CBOR encoding of the CBOR integer 21)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>To prevent misbinding attacks, identity information such as a 'sub' (subject) claim <bcp14>MUST</bcp14> be included in both CRED_I and CRED_R.</t>
            </li>
            <li>
              <t>Claims such as 'iss' (issuer), 'aud' (audience), 'scope', 'exp' (expiration time), 'nbf' (not before), and 'cti' (CWT ID) <bcp14>MAY</bcp14> be used to convey context information for a pre-shared key (PSK), including aspects of its provenance, intended use, and validity period. This aligns with the notion of “context” in <xref target="RFC9258"/>.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="message-flow-of-edhoc-psk">
        <name>Message Flow of EDHOC-PSK</name>
        <t>The message flow of EDHOC-PSK follows the structure defined in <xref target="RFC9528"/>, with authentication based on symmetric keys rather than public keys. For identity protection, credential-related message fields appear first in message_3.</t>
        <t>ID_CRED_PSK is encrypted using a key derived from a shared secret obtained through the first two messages. If Diffie-Hellman key exchange is used, G_X and G_Y are the ephemeral public keys, and the shared secret G_XY is the DH shared secret, as in <xref target="RFC9528"/>. If the Diffie-Hellman procedure is replaced by a KEM (e.g. <xref target="I-D.spm-lake-pqsuites"/>), then G_X and G_Y are encapsulation key and ciphertext, respectively, and the shared secret G_XY is derived by the KEM.</t>
        <t>The Responder authenticates the Initiator first. <xref target="fig-variant2"/> illustrates the message flow of the EDHOC-PSK authentication method.</t>
        <figure anchor="fig-variant2">
          <name>Overview of Message Flow of EDHOC-PSK.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="560" viewBox="0 0 560 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,272" fill="none" stroke="black"/>
                <path d="M 552,48 L 552,272" fill="none" stroke="black"/>
                <path d="M 8,64 L 544,64" fill="none" stroke="black"/>
                <path d="M 16,128 L 552,128" fill="none" stroke="black"/>
                <path d="M 8,192 L 544,192" fill="none" stroke="black"/>
                <path d="M 16,256 L 552,256" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="552,192 540,186.4 540,197.6" fill="black" transform="rotate(0,544,192)"/>
                <polygon class="arrowhead" points="552,64 540,58.4 540,69.6" fill="black" transform="rotate(0,544,64)"/>
                <polygon class="arrowhead" points="24,256 12,250.4 12,261.6" fill="black" transform="rotate(180,16,256)"/>
                <polygon class="arrowhead" points="24,128 12,122.4 12,133.6" fill="black" transform="rotate(180,16,128)"/>
                <g class="text">
                  <text x="40" y="36">Initiator</text>
                  <text x="520" y="36">Responder</text>
                  <text x="184" y="52">METHOD,</text>
                  <text x="256" y="52">SUITES_I,</text>
                  <text x="316" y="52">G_X,</text>
                  <text x="356" y="52">C_I,</text>
                  <text x="400" y="52">EAD_1</text>
                  <text x="280" y="84">message_1</text>
                  <text x="204" y="116">G_Y,</text>
                  <text x="244" y="116">Enc(</text>
                  <text x="284" y="116">C_R,</text>
                  <text x="328" y="116">EAD_2</text>
                  <text x="360" y="116">)</text>
                  <text x="280" y="148">message_2</text>
                  <text x="180" y="180">Enc(</text>
                  <text x="252" y="180">ID_CRED_PSK,</text>
                  <text x="328" y="180">AEAD(</text>
                  <text x="376" y="180">EAD_3</text>
                  <text x="408" y="180">)</text>
                  <text x="424" y="180">)</text>
                  <text x="280" y="212">message_3</text>
                  <text x="248" y="244">AEAD(</text>
                  <text x="296" y="244">EAD_4</text>
                  <text x="328" y="244">)</text>
                  <text x="280" y="276">message_4</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
Initiator                                                   Responder
|                  METHOD, SUITES_I, G_X, C_I, EAD_1                |
+------------------------------------------------------------------>|
|                             message_1                             |
|                                                                   |
|                      G_Y, Enc( C_R, EAD_2 )                       |
|<------------------------------------------------------------------+
|                             message_2                             |
|                                                                   |
|                   Enc( ID_CRED_PSK, AEAD( EAD_3 ) )               |
+------------------------------------------------------------------>|
|                             message_3                             |
|                                                                   |
|                           AEAD( EAD_4 )                           |
|<------------------------------------------------------------------+
|                             message_4                             |
]]></artwork>
          </artset>
        </figure>
        <t>This approach provides identity protection against passive attackers for both Initiator and Responder. EDHOC message_4 remains <bcp14>OPTIONAL</bcp14>, but is needed to authenticate the Responder and achieve mutual authentication in EDHOC when external applications (e.g., OSCORE) are not relied upon. In either case, the inclusion of a fourth message provides mutual authentication and explicit key confirmation (see <xref target="message-4"/>).</t>
      </section>
    </section>
    <section anchor="key-der">
      <name>Key Derivation</name>
      <t>The pseudorandom keys (PRKs) used in the EDHOC-PSK authentication method are derived with EDHOC_Extract, as in <xref target="RFC9528"/>.</t>
      <artwork><![CDATA[
PRK  = EDHOC_Extract( salt, IKM )
]]></artwork>
      <t>where <tt>salt</tt> and input keying material (<tt>IKM</tt>) are defined for each key. The definition of EDHOC_Extract depends on the EDHOC hash algorithm of the selected cipher suite, see <xref section="4.1.1" sectionFormat="of" target="RFC9528"/>.</t>
      <t>To maintain a uniform key schedule across all EDHOC authentication methods, the same pseudorandom key notation (PRK_2e, PRK_3e2m, and PRK_4e3m) is retained. The index notation is preserved for consistency with other EDHOC authentication variants, even though it does not fully reflect the functional role of the keys in this method; for example, no MACs are used in EDHOC-PSK.</t>
      <t>PRK_2e is extracted as in <xref target="RFC9528"/> with</t>
      <ul spacing="normal">
        <li>
          <t><tt>salt</tt> = TH_2, and</t>
        </li>
        <li>
          <t><tt>IKM</tt> = G_XY,</t>
        </li>
      </ul>
      <t>where the transcript hash TH_2 = H( G_Y, H(message_1) ) is defined in <xref section="5.3.2" sectionFormat="of" target="RFC9528"/>.</t>
      <t>SALT_4e3m is derived from PRK_3e2m and TH_3, as shown in Figure 6 of <xref target="RFC9528"/>.</t>
      <t>The other PRKs and transcript hashes are modified as specified below. <xref target="fig-variant2key"/> lists the key derivations that differ from <xref section="4.1.2" sectionFormat="of" target="RFC9528"/>.</t>
      <figure anchor="fig-variant2key">
        <name>Key Derivation of EDHOC-PSK.</name>
        <artwork align="center"><![CDATA[
PRK_3e2m     = PRK_2e
KEYSTREAM_2A = EDHOC_KDF( PRK_2e,   0, TH_2,  plaintext_length_2a )
PRK_4e3m     = EDHOC_Extract( SALT_4e3m, PSK )
KEYSTREAM_3A = EDHOC_KDF( PRK_3e2m, 12, TH_3, plaintext_length_3a )
K_3          = EDHOC_KDF( PRK_4e3m, 3, TH_3, key_length )
IV_3         = EDHOC_KDF( PRK_4e3m, 4, TH_3, iv_length )
]]></artwork>
      </figure>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>KEYSTREAM_2A is used to encrypt PLAINTEXT_2A in message_2.
          </t>
          <ul spacing="normal">
            <li>
              <t>plaintext_length_2a is the length of PLAINTEXT_2A in message_2.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>KEYSTREAM_3A is used to encrypt PLAINTEXT_3A (the concatenation of ID_CRED_PSK and CIPHERTEXT_3B) in message_3.
          </t>
          <ul spacing="normal">
            <li>
              <t>plaintext_length_3a is the length of PLAINTEXT_3A in message_3.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>TH_3 = H( TH_2, PLAINTEXT_2A ).</t>
        </li>
      </ul>
      <t>The definition of the transcript hash TH_4 is modified as follows:</t>
      <ul spacing="normal">
        <li>
          <t>TH_4 = H( TH_3, ID_CRED_PSK, PLAINTEXT_3B, CRED_I, CRED_R )</t>
        </li>
      </ul>
    </section>
    <section anchor="mes-for-pro">
      <name>Message Formatting and Processing</name>
      <t>This section specifies the differences in message formatting and processing compared to <xref section="5" sectionFormat="of" target="RFC9528"/>. Note that, if any processing step fails, then the Responder <bcp14>MUST</bcp14> send an EDHOC error message back as defined in <xref section="6" sectionFormat="of" target="RFC9528"/>, and the EDHOC session <bcp14>MUST</bcp14> be aborted.</t>
      <section anchor="message-1">
        <name>Message 1</name>
        <t>Message 1 is formatted and processed as specified in <xref section="5.2" sectionFormat="of" target="RFC9528"/>.</t>
      </section>
      <section anchor="message-2">
        <name>Message 2</name>
        <section anchor="formatting-of-message-2">
          <name>Formatting of Message 2</name>
          <t>Message 2 is formatted as specified in <xref section="5.3.1" sectionFormat="of" target="RFC9528"/>, except that CIPHERTEXT_2 is replaced by CIPHERTEXT_2A.</t>
        </section>
        <section anchor="responder-composition-of-message-2">
          <name>Responder Composition of Message 2</name>
          <t>CIPHERTEXT_2A is calculated with a binary additive stream cipher, using a keystream generated with EDHOC_Expand, and the following plaintext:</t>
          <ul spacing="normal">
            <li>
              <t>PLAINTEXT_2A = ( C_R, ? EAD_2 )</t>
            </li>
            <li>
              <t>CIPHERTEXT_2A = PLAINTEXT_2A XOR KEYSTREAM_2A</t>
            </li>
          </ul>
          <t>C_R and EAD_2 are defined in <xref section="5.3.2" sectionFormat="of" target="RFC9528"/>. In contrast to <xref target="RFC9528"/>, ID_CRED_R, MAC_2, and Signature_or_MAC_2 are not included in message_2. This omission is the primary difference from the signature and MAC-based authentication methods defined in <xref target="RFC9528"/>, as authentication in EDHOC-PSK relies solely on the shared PSK and the successful decryption of protected messages. KEYSTREAM_2A is defined in <xref target="key-der"/>.</t>
        </section>
        <section anchor="initiator-processing-of-message-2">
          <name>Initiator Processing of Message 2</name>
          <t>Upon receiving message_2, the Initiator processes it as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Compute KEYSTREAM_2A as defined in <xref target="key-der"/>.</t>
            </li>
            <li>
              <t>Decrypt CIPHERTEXT_2A using binary XOR, i.e., PLAINTEXT_2A = CIPHERTEXT_2A XOR KEYSTREAM_2A</t>
            </li>
          </ul>
          <t>In contrast to <xref section="5.3.3" sectionFormat="of" target="RFC9528"/>, ID_CRED_R is not made available to the application in step 4, and steps 5 and 6 are skipped.</t>
        </section>
      </section>
      <section anchor="message-3">
        <name>Message 3</name>
        <section anchor="for-mes3">
          <name>Formatting of Message 3</name>
          <t>Message 3 is formatted as specified in <xref section="5.4.1" sectionFormat="of" target="RFC9528"/>, except that CIPHERTEXT_3 is replaced by CIPHERTEXT_3A.</t>
        </section>
        <section anchor="icom-mes3">
          <name>Initiator Composition of Message 3</name>
          <ul spacing="normal">
            <li>
              <t>CIPHERTEXT_3A is computed using a binary additive stream cipher with a keystream generated by EDHOC_Expand, applied to the following plaintext:  </t>
              <ul spacing="normal">
                <li>
                  <t>PLAINTEXT_3A = ( ID_CRED_PSK / bstr / -24..23, CIPHERTEXT_3B )      </t>
                  <ul spacing="normal">
                    <li>
                      <t>If ID_CRED_PSK contains a single 'kid' parameter, i.e., ID_CRED_PSK = { 4 : kid_PSK }, then the compact encoding is applied, see <xref section="3.5.3.2" sectionFormat="of" target="RFC9528"/>.</t>
                    </li>
                    <li>
                      <t>For the case of plaintext_length exceeding the EDHOC_KDF output size, see <xref section="G" sectionFormat="of" target="RFC9528"/>.</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>Compute KEYSTREAM_3A as in <xref target="key-der"/>.</t>
                </li>
                <li>
                  <t>CIPHERTEXT_3A = PLAINTEXT_3A XOR KEYSTREAM_3A</t>
                </li>
              </ul>
            </li>
            <li>
              <t>CIPHERTEXT_3B is the 'ciphertext' of the COSE_Encrypt0 object as defined in Sections <xref target="RFC9528" section="5.2" sectionFormat="bare"/> and <xref target="RFC9528" section="5.3" sectionFormat="bare"/> of <xref target="RFC9528"/>, computed with the EDHOC AEAD algorithm of the selected cipher suite, using the encryption key K_3, the initialization vector IV_3 (if used by the AEAD algorithm), the parameters described in <xref section="5.2" sectionFormat="of" target="RFC9528"/>, plaintext PLAINTEXT_3B and the following parameters as input:  </t>
              <ul spacing="normal">
                <li>
                  <t>protected = h''</t>
                </li>
                <li>
                  <t>external_aad = &lt;&lt; ID_CRED_PSK, TH_3, CRED_I, CRED_R &gt;&gt;</t>
                </li>
                <li>
                  <t>K_3 and IV_3 as defined in <xref target="key-der"/></t>
                </li>
                <li>
                  <t>PLAINTEXT_3B = ( ? EAD_3 )</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>The Initiator computes TH_4 as defined in <xref target="key-der"/>.</t>
          <t>There is no need for MAC_3 or signature, since AEAD's built-in integrity and the use of PSK-based key derivation provide implicit authentication of the Initiator.</t>
        </section>
        <section anchor="responder-processing-of-message-3">
          <name>Responder Processing of Message 3</name>
          <t>Upon receiving message_3, the Responder proceeds as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Generate KEYSTREAM_3A with the same method the Initiator used.</t>
            </li>
            <li>
              <t>Decrypt CIPHERTEXT_3A using binary XOR with KEYSTREAM_3A to recover PLAINTEXT_3A.</t>
            </li>
            <li>
              <t>Parse the structure of message_3, which consists of a stream-cipher encrypted structure, CIPHERTEXT_3A = PLAINTEXT_3A XOR KEYSTREAM_3A, where PLAINTEXT_3A = ( ID_CRED_PSK, CIPHERTEXT_3B ) and CIPHERTEXT_3B is the inner AEAD-encrypted object.</t>
            </li>
            <li>
              <t>Use ID_CRED_PSK to identify the authentication credentials and retrieve PSK, CRED_I, and CRED_R.</t>
            </li>
            <li>
              <t>Select first candidate.</t>
            </li>
            <li>
              <t>Derive K_3 and IV_3 as defined in <xref target="key-der"/>.</t>
            </li>
            <li>
              <t>AEAD-decrypt CIPHERTEXT_3B using:  </t>
              <ul spacing="normal">
                <li>
                  <t>K_3, IV_3</t>
                </li>
                <li>
                  <t>external_aad = &lt;&lt; ID_CRED_PSK, TH_3, CRED_I, CRED_R &gt;&gt;</t>
                </li>
                <li>
                  <t>protected = h''</t>
                </li>
                <li>
                  <t>EDHOC AEAD algorithm of the selected cipher suite.</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>If AEAD verification fails, retry with a new candidate. If all candidate authentication credential sets fail, this indicates a processing problem or that the message was tampered with. If it succeeds, the Responder concludes that the Initiator possesses the PSK, correctly derived TH_3, and is actively participating in the protocol.</t>
          <t>Finally, the Responder computes TH_4 as defined in <xref target="key-der"/>.</t>
          <t>No MAC_3 or signature is needed, as the AEAD ciphertext guarantees both integrity and authenticity in this symmetric setting.</t>
        </section>
      </section>
      <section anchor="message-4">
        <name>Message 4</name>
        <t>Message 4 is formatted and processed as specified in <xref section="5.5" sectionFormat="of" target="RFC9528"/>.</t>
        <t>After successfully verifying message_4, or another fourth message from the Responder protected with an exported application key such as an OSCORE message, the Initiator is assured that the Responder has derived PRK_out (key confirmation) and that no other party can derive this key.</t>
        <t>The Initiator <bcp14>MUST NOT</bcp14> persistently store PRK_out or application keys until it has successfully verified such a fourth message and the application has authenticated the Responder.</t>
        <t>Compared to <xref target="RFC9528"/>, the fourth message not only provides key confirmation but also authenticates the Responder. For mutual authentication a fourth message is therefore mandatory.</t>
      </section>
    </section>
    <section anchor="psk-resumption">
      <name>PSK usage for Session Resumption</name>
      <t>This section specifies how EDHOC-PSK is used for session resumption in EDHOC. The EDHOC_Exporter, as defined in <xref section="4.2" sectionFormat="of" target="RFC9528"/>, is used to derive the resumption parameters rPSK and rKID:</t>
      <figure anchor="fig-resumption">
        <name>Resumption Parameters.</name>
        <artwork align="center"><![CDATA[
rPSK         = EDHOC_Exporter( TBD2, h'', hash_length )
rKID         = EDHOC_Exporter( TBD3, h'', kid_length )
rID_CRED_PSK = { 4 : rKID }
]]></artwork>
      </figure>
      <t>where:</t>
      <ul spacing="normal">
        <li>
          <t>hash_length is the output size of the EDHOC hash algorithm associated with the PSK, i.e, the EDHOC hash algorithm of the selected cipher suite used in the EDHOC session in which the resumption PSK is established.</t>
        </li>
        <li>
          <t>kid_length defaults to 2 bytes.</t>
        </li>
      </ul>
      <t>A peer that has successfully completed an EDHOC session, regardless of the authentication method used or whether the session was a PSK resumption, <bcp14>MAY</bcp14> generate a resumption key. Whether resumption keys are generated is determined by the application profile, see <xref section="3.9" sectionFormat="of" target="RFC9528"/>. Support for resumption can be indicated, for example, by using means defined in <xref target="I-D.ietf-lake-app-profiles"/>.</t>
      <t>To ensure both peers share the same resumption key, when a resumption session is run using rPSK_i as the resumption key:</t>
      <ul spacing="normal">
        <li>
          <t>The Responder <bcp14>MAY</bcp14> delete the previous resumption key rPSK_(i-1), if present, after successfully verifying message_3. At that point the Responder can be certain that the Initiator has access to the current resumption key rPSK_i.</t>
        </li>
        <li>
          <t>The Initiator <bcp14>MAY</bcp14> delete rPSK_i after successfully verifying the fourth message. At that point, the Initiator can be certain that the Responder already has derived the next resumption key, rPSK_(i+1), if the Responder wants to.</t>
        </li>
        <li>
          <t>The Responder <bcp14>MAY</bcp14> delete rPSK_i after successfully verifying a fifth message from the Initiator protected with an exported application key such as an OSCORE message, if present. At that point, the Responder can be certain that the Initiator is able to derive the next resumption key, rPSK_(i+1), if the Inititator wants to.</t>
        </li>
      </ul>
      <t>When resumption PSKs are in use, implementations <bcp14>MUST</bcp14> retain the ID_CRED_I, ID_CRED_R and EDHOC hash algorithm used for the original non-resumption authentication (e.g., the static DH public keys, or certificates) and associate them with the current resumption PSK. Implementations <bcp14>MAY</bcp14> retain the external ID_CRED_PSK and associated PSK to allow fallback if resumption fails. If fallback authentication uses an external PSK, the Initiator selects which PSK to present via ID_CRED_PSK.  If a credential associated with a resumption key expires, implementations <bcp14>SHOULD</bcp14> retry either with external PSK or a different METHOD. How long the original authentication credentials are retained is determined by the application profile or by the expiration time of the credential (e.g., the exp claim in a CWT).  Key lifetime, retention, and retry policy are determined by the application profile.</t>
      <section anchor="privacy-considerations-for-resumption">
        <name>Privacy Considerations for Resumption</name>
        <t>When using resumption PSKs:</t>
        <ul spacing="normal">
          <li>
            <t>ID_CRED_PSK is not exposed to passive attackers, and under normal operation it is not reused. Reuse of the same ID_CRED_PSK can occur due to transmission errors or when a peer loses its stored resumption key. An active attacker can obtain the value of ID_CRED_PSK and force its reuse. This aligns with the security goals of EDHOC-PSK, which are to provide identity protection against passive attackers, but not against active attackers.</t>
          </li>
        </ul>
      </section>
      <section anchor="security-considerations-for-resumption">
        <name>Security Considerations for Resumption</name>
        <ul spacing="normal">
          <li>
            <t>Resumption PSKs <bcp14>MUST NOT</bcp14> be used for purposes other than EDHOC session resumption.</t>
          </li>
          <li>
            <t>Resumption PSKs <bcp14>MUST</bcp14> be securely stored with the same level of protection as the session keys.</t>
          </li>
          <li>
            <t>Parties <bcp14>SHOULD</bcp14> prevent excessive reuse of the same resumption PSK.</t>
          </li>
          <li>
            <t>The optional external PSK and the resumption PSKs form a key ratchet. If previous PSKs have been securely erased, compromise of the current resumption PSK does not enable recovery of earlier PSKs. This property holds regardless of whether ECDHE or a post-quantum key exchange is used. Handling of external and resumption PSKs can be specified in the application profile.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="EAP">
      <name>EDHOC-PSK and Extensible Authentication Protocol (EAP)</name>
      <t>EDHOC with PSK authentication has several important use cases within the Extensible Authentication Protocol (EAP).</t>
      <t>One use case is the resumption of a session established with the EAP method EAP-EDHOC <xref target="I-D.ietf-emu-eap-edhoc"/>, regardless of the EDHOC-based authentication method originally used in that session. This is similar to the resumption mechanism in EAP-TLS 1.3 <xref target="RFC9190"/>. Resumption reduces the number of round trips and allows the EAP-EDHOC server to avoid database lookups that might be required during an initial handshake. If the server accepts resumption, the resumed session is considered authenticated and securely bound to the prior authentication or resumption.</t>
      <t>The use of resumption with EAP-EDHOC is optional for the peer, but it is <bcp14>RECOMMENDED</bcp14> whenever a valid rPSK is available. On the server side, resumption acceptance is also optional, but it is <bcp14>RECOMMENDED</bcp14> if the rPSK remains valid. The server may, however, require a new initial handshake by refusing resumption. It is further <bcp14>RECOMMENDED</bcp14> to use Network Access Identifiers (NAIs) with the same realm in the EAP identity response during both the full handshake and resumption. For example, the NAI @realm can safely be reused since it does not expose information that links a user’s resumption attempt with the original full handshake.</t>
      <t>EAP-EDHOC using PSK authentication also provides a significant improvement over EAP-PSK <xref target="RFC4764"/>, which lacks support for identity protection, cryptographic agility, and ephemeral key exchange, now considered essential for meeting current security requirements. Without perfect forward secrecy, compromise of the PSK enables a passive attacker to decrypt both past and future sessions. Note that PSK authentication is not allowed in EAP-TLS <xref target="RFC9190"/>.</t>
    </section>
    <section anchor="OSCORE">
      <name>EDHOC-PSK and OSCORE</name>
      <t><xref target="RFC9668"/> describes an optimized use of EDHOC with OSCORE by combining EDHOC message_3 with the first OSCORE request. This procedure omits message_4, but key confirmation of the Responder is provided by a subsequent OSCORE response to the Initiator.</t>
      <t>In EDHOC-PSK, authentication of the Responder is provided by message_4 or another fourth message. Hence, the combined delivery described in <xref section="3" sectionFormat="of" target="RFC9668"/> can be applied to EDHOC-PSK. Note that, in this case, the Responder is not authenticated until the Initiator has verified a matching OSCORE response. However, only the party with the correct PSK can decrypt the OSCORE request.</t>
    </section>
    <section anchor="sec-con">
      <name>Security Considerations</name>
      <t>The EDHOC-PSK authentication method introduces deviations from the initial specification of EDHOC <xref target="RFC9528"/>. This section analyzes the security implications of these changes and discusses the security properties of EDHOC authenticated with PSK.</t>
      <section anchor="identity-protection">
        <name>Identity Protection</name>
        <t>In EDHOC-PSK, the identifier ID_CRED_PSK in message_3 is encrypted with a keystream derived from the ephemeral shared secret G_XY. This provides identity protection of both the Initiator and Responder against passive attackers.  This contrasts with the asymmetric authentication methods in <xref section="9.1" sectionFormat="of" target="RFC9528"/>, which protect the Initiator’s identity against active attackers and the Responder’s identity against passive ones. EDHOC-PSK does not protect the PSK identifier against active attackers as an attacker impersonating the Responder can decrypt ID_CRED_PSK. The time to lookup or process an authentication credential based on ID_CRED_PSK may leak information about the identity.</t>
      </section>
      <section anchor="subsec-protpsk">
        <name>Protection of Pre-Shared Keys</name>
        <t>The security of EDHOC-PSK depends on the confidentiality of the PSK. Unlike an asymmetric private key, which can be generated and remain within a Hardware Security Module (HSM), secure element, or other protected cryptographic boundary, a PSK must be provisioned to and stored by multiple parties. This generally increases the attack surface and the risk of key compromise.</t>
      </section>
      <section anchor="mutual-authentication">
        <name>Mutual Authentication</name>
        <t>EDHOC-PSK provides mutual authentication and explicit key confirmation through an additional message that demonstrates possession of the PSK. This may be message_4 or an application message (e.g., an OSCORE message) protected with a key derived from EDHOC.</t>
        <t>To mitigate reflection or Selfie attacks, the identities in CRED_I and CRED_R <bcp14>MUST</bcp14> be distinct. If identical credentials are used by both parties, an endpoint may incorrectly accept messages that originate from itself.</t>
        <t>EDHOC-PSK is not resistant to Key Compromise Impersonation (KCI) attacks. Compromise of the PSK enables an attacker to impersonate either the Initiator or the Responder to the other party. While compromise of the ephemeral Diffie-Hellman secret only affects the specific session in which it is used, compromise of the PSK allows full active impersonation in all future sessions that rely on the compromised key.</t>
      </section>
      <section anchor="protection-of-external-authorization-data-ead">
        <name>Protection of External Authorization Data (EAD)</name>
        <t>As in <xref target="RFC9528"/>, EDHOC-PSK ensures the confidentiality and integrity of External Authorization Data (EAD). The security guarantees for EAD fields remain unchanged from the original EDHOC specification.</t>
      </section>
      <section anchor="cryptographic-strength">
        <name>Cryptographic strength</name>
        <t>Each external PSK <bcp14>MUST</bcp14> be derived from at least 128 bits of entropy and <bcp14>MUST</bcp14> be at least 128 bits long. Deriving a shared secret from a password or other low-entropy sources is not secure. The cryptographic strength of EDHOC-PSK depends on the selected cipher suite.</t>
        <t>For the currently defined cipher suites (0–6 and 24–25), EDHOC-PSK provides at least 128-bit security against offline brute-force attacks and at least 64-bit security against online forgery attacks. In practical terms, mounting a successful online forgery attack at this security level would require an adversary, on average, to transmit 4.3 billion messages per second for 68 years, which is infeasible in constrained IoT radio environments. A successful forgery in EDHOC-PSK breaks the security of all future application data derived from the session, while a forgery in the subsequent application protocol (e.g., OSCORE <xref target="RFC8613"/>) typically only breaks the security of the forged packet.</t>
        <t>Similar to TLS 1.3 <xref target="RFC8446"/>, EDHOC-PSK takes a conservative approach to PSK usage by binding each PSK to a specific KDF through an associated hash algorithm. A PSK <bcp14>MUST</bcp14> only be used with cipher suites that employ the same hash algorithm. For externally provisioned PSKs, the hash algorithm <bcp14>MUST</bcp14> be provisioned together with the PSK. For resumption PSKs, the hash algorithm is the EDHOC hash algorithm of the cipher suite selected in the EDHOC session in which the resumption PSK was established, see <xref section="3.6" sectionFormat="of" target="RFC9528"/>. The Responder <bcp14>MUST</bcp14> abort the ongoing EDHOC session, if the PSK retrieved through ID_CRED_PSK is combined with a hash algorithm different from the one in the selected cipher suite used in the session.</t>
      </section>
      <section anchor="downgrade-protection">
        <name>Downgrade Protection</name>
        <t>Following <xref target="RFC9528"/>, EDHOC-PSK must support cryptographic agility, including modularity and negotiation of preferred cryptographic primitives. In message 1, the Initiator sends an ordered list of supported cipher suites (SUITES_I). The Responder verifies that the suite selected by the Initiator is the most preferred option in SUITES_I that is mutually supported. If this condition is not met, the Responder <bcp14>MUST</bcp14> abort the session.</t>
      </section>
      <section anchor="post-quantum-considerations">
        <name>Post Quantum Considerations</name>
        <t>Advances in quantum computing suggest that a Cryptographically Relevant Quantum Computer (CRQC) may eventually be realized. Such a machine would render many asymmetric algorithms, including Elliptic Curve Diffie-Hellman (ECDH), insecure.</t>
        <t>Quantum resistance of EDHOC-PSK partly depends on the selected EDHOC cipher suite. EDHOC-PSK derives authentication and session keys primarily from a symmetric PSK, which provides quantum resistance even when combined with ECDHE. However, if a CRQC is realized, the ECDHE contribution degenerates to providing only randomness. In that case, EDHOC-PSK with ECDHE offers neither identity protection nor Perfect Forward Secrecy (PFS) against quantum adversaries. Moreover, if the PSK is compromised, a passive quantum attacker could decrypt both past and future sessions.</t>
        <t>By contrast, combining EDHOC-PSK with a quantum-resistant Key Encapsulation Mechanism (KEM), such as ML-KEM, ensures both identity protection and PFS even against quantum-capable attackers. Future EDHOC cipher suites incorporating ML-KEM are expected to be registered; see <xref target="I-D.spm-lake-pqsuites"/>.</t>
      </section>
      <section anchor="confidentiality">
        <name>Confidentiality</name>
        <t>The primary security goal of EDHOC-PSK is to establish a shared secret known only to the authenticated Initiator and Responder. The protocol ensures key indistinguishability by relying on the security of the PSK and the ephemeral key shares, making it computationally infeasible for an adversary to distinguish the true session secret from a random value.</t>
      </section>
      <section anchor="independence-of-session-keys">
        <name>Independence of Session Keys</name>
        <t>NIST requires that an ephemeral private key be used in only one key-establishment transaction (<xref target="SP-800-56A"/>, Section 5.6.3.3). This requirement preserves session key independence and forward secrecy, and EDHOC-PSK complies with it. By deriving the final shared secret from a fresh, session-specific ephemeral secret (G_XY), the protocol ensures that even if the PSK is compromised, an attacker is unable to decrypt the past sessions. Similarly, if a session secret were to be compromised, future session secrets remain protected by fresh ephemeral keys.</t>
        <t>In other protocols, reuse of ephemeral keys, especially when combined with missing public key validation, has led to severe vulnerabilities, enabling attackers to recover “ephemeral” private keys and compromise both past and future sessions between two legitimate parties. Assuming breach and minimizing the impact of compromise are fundamental principles of zero-trust security.</t>
      </section>
      <section anchor="message-4-and-mutual-authentication-requirements">
        <name>Message 4 and Mutual Authentication Requirements</name>
        <t>For use cases where application data is transmitted, it can be sent together with message_3, maintaining efficiency. In applications such as EAP-EDHOC <xref target="I-D.ietf-emu-eap-edhoc"/>, where no application data is exchanged between Initiator and Responder, message_4 is mandatory. In such cases, EDHOC-PSK does not increase the total number of messages compared to the methods defined in <xref target="RFC9528"/>. Other implementations may replace message_4 with a protected application message. In general, the following requirement applies: The Initiator <bcp14>SHALL NOT</bcp14> persistently store PRK_out or derived application keys until it has successfully verified message_4 or a message protected with an exported application key (e.g., an OSCORE message). This ensures that key material is stored only after its authenticity is confirmed. Finally, the order of authentication (i.e., whether the Initiator or the Responder authenticates first) is not relevant in EDHOC-PSK. While this ordering affects privacy properties in the asymmetric methods of <xref target="RFC9528"/>, it has no significant impact in EDHOC-PSK.</t>
      </section>
      <section anchor="post-compromise-security">
        <name>Post-Compromise Security</name>
        <t>When EDHOC-PSK is used for session resumption, the protocol provides Post-Compromise Security (PCS) for the resumption key chain. PCS means that even if a resumption PSK rPSK_i is compromised, security is restored in subsequent sessions provided the attacker cannot compromise the ephemeral keys of every such session.</t>
        <t>Specifically, rPSK_(i+1) is derived via EDHOC_Exporter from PRK_out, which incorporates fresh ephemeral keying material (G_XY). An attacker who has obtained rPSK_i cannot derive rPSK_(i+1) without also compromising the ephemeral keys. A passive attacker therefore loses any advantage once the next session completes with uncompromised ephemerals.</t>
        <t>This property applies only when resumption is used and new resumption keys are derived for each session. It does not apply when a long-lived external PSK is reused directly across sessions without key rotation. In that case, as noted in <xref target="subsec-protpsk"/>, compromise of the PSK enables an attacker to compromise the confidentiality and authentication of future sessions until the PSK is replaced.</t>
      </section>
    </section>
    <section anchor="IANA-con">
      <name>IANA Considerations</name>
      <t>This document requires the following IANA actions.</t>
      <section anchor="edhoc-method-type-registry">
        <name>EDHOC Method Type Registry</name>
        <t>IANA is requested to register the following entry in the "EDHOC Method Type" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)".</t>
        <table anchor="tab-method-psk">
          <name>Addition to the EDHOC Method Type Registry.</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Initiator Authentication Key</th>
              <th align="left">Responder Authentication Key</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD4</td>
              <td align="left">PSK</td>
              <td align="left">PSK</td>
            </tr>
          </tbody>
        </table>
        <t>NOTE: Suggested value: TBD4 = 4.
RFC Editor: Remove this note.</t>
      </section>
      <section anchor="edhoc-exporter-label-registry">
        <name>EDHOC Exporter Label Registry</name>
        <t>IANA is requested to register the following entry in the "EDHOC Exporter Label" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)".</t>
        <table anchor="tab-exporter-psk">
          <name>Additions to the EDHOC Exporter Label Registry.</name>
          <thead>
            <tr>
              <th align="left">Label</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD2</td>
              <td align="left">Resumption PSK</td>
              <td align="left">IETF</td>
              <td align="left">Section 6</td>
            </tr>
            <tr>
              <td align="left">TBD3</td>
              <td align="left">Resumption kid</td>
              <td align="left">IETF</td>
              <td align="left">Section 6</td>
            </tr>
          </tbody>
        </table>
        <t>NOTE: Suggested values: TBD2 = 2, TBD3 = 3.
RFC Editor: Remove this note.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9668">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="R. Höglund" initials="R." surname="Höglund"/>
            <author fullname="S. Hristozov" initials="S." surname="Hristozov"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol by specifying a number of additional and optional mechanisms, including an optimization approach for combining the execution of EDHOC with the first OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9668"/>
          <seriesInfo name="DOI" value="10.17487/RFC9668"/>
        </reference>
        <reference anchor="RFC8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <reference anchor="I-D.ietf-emu-eap-edhoc">
          <front>
            <title>Using the Extensible Authentication Protocol (EAP) with Ephemeral Diffie-Hellman over COSE (EDHOC)</title>
            <author fullname="Dan Garcia-Carrillo" initials="D." surname="Garcia-Carrillo">
              <organization>University of Oviedo</organization>
            </author>
            <author fullname="Rafael Marin-Lopez" initials="R." surname="Marin-Lopez">
              <organization>University of Murcia</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Francisco Lopez-Gomez" initials="F." surname="Lopez-Gomez">
              <organization>University of Murcia</organization>
            </author>
            <date day="29" month="July" year="2026"/>
            <abstract>
              <t>   The Extensible Authentication Protocol (EAP), defined in RFC 3748,
   provides a standard mechanism for support of multiple authentication
   methods.  This document specifies the EAP authentication method EAP-
   EDHOC, based on Ephemeral Diffie-Hellman Over COSE (EDHOC).  EDHOC is
   a lightweight security handshake protocol, enabling authentication
   and establishment of shared secret keys suitable in constrained
   settings.  This document also provides guidance on authentication and
   authorization for EAP-EDHOC.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-edhoc-12"/>
        </reference>
        <reference anchor="SP-800-56A" target="https://doi.org/10.6028/NIST.SP.800-56Ar3">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography</title>
            <author initials="E." surname="Barker">
              <organization/>
            </author>
            <author initials="L." surname="Chen">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky">
              <organization/>
            </author>
            <author initials="A." surname="Vassilev">
              <organization/>
            </author>
            <author initials="R." surname="Davis">
              <organization/>
            </author>
            <date year="2018" month="April"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-56A Revision 3"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="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. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4764">
          <front>
            <title>The EAP-PSK Protocol: A Pre-Shared Key Extensible Authentication Protocol (EAP) Method</title>
            <author fullname="F. Bersani" initials="F." surname="Bersani"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document specifies EAP-PSK, an Extensible Authentication Protocol (EAP) method for mutual authentication and session key derivation using a Pre-Shared Key (PSK). EAP-PSK provides a protected communication channel when mutual authentication is successful for both parties to communicate over. This document describes the use of this channel only for protected exchange of result indications, but future EAP-PSK extensions may use the channel for other purposes. EAP-PSK is designed for authentication over insecure networks such as IEEE 802.11. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4764"/>
          <seriesInfo name="DOI" value="10.17487/RFC4764"/>
        </reference>
        <reference anchor="RFC9190">
          <front>
            <title>EAP-TLS 1.3: Using the Extensible Authentication Protocol with TLS 1.3</title>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-TLS with TLS 1.3 while remaining backwards compatible with existing implementations of EAP-TLS. TLS 1.3 provides significantly improved security and privacy, and reduced latency when compared to earlier versions of TLS. EAP-TLS with TLS 1.3 (EAP-TLS 1.3) further improves security and privacy by always providing forward secrecy, never disclosing the peer identity, and by mandating use of revocation checking when compared to EAP-TLS with earlier versions of TLS. This document also provides guidance on authentication, authorization, and resumption for EAP-TLS in general (regardless of the underlying TLS version used). This document updates RFC 5216.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9190"/>
          <seriesInfo name="DOI" value="10.17487/RFC9190"/>
        </reference>
        <reference anchor="I-D.spm-lake-pqsuites">
          <front>
            <title>Quantum-Resistant Cipher Suites for EDHOC</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <date day="19" month="April" year="2026"/>
            <abstract>
              <t>   The Lightweight Authenticated Key Exchange (LAKE) protocol, Ephemeral
   Diffie-Hellman over COSE (EDHOC), achieves post-quantum security by
   adding new cipher suites with quantum-resistant algorithms, such as
   ML-DSA for digital signatures and ML-KEM for key exchange.  This
   document specifies how EDHOC operates in a post-quantum setting using
   both signature-based and PSK-based authentication methods, and
   defines corresponding cipher suites.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-spm-lake-pqsuites-02"/>
        </reference>
        <reference anchor="I-D.ietf-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol Ephemeral Diffie-
   Hellman Over COSE (EDHOC) requires certain parameters to be agreed
   out-of-band, in order to ensure its successful completion.  To this
   end, application profiles specify the intended use of EDHOC to allow
   for the relevant processing and verifications to be made.  In order
   to ensure the applicability of such parameters and information beyond
   transport- or setup-specific scenarios, this document defines a
   canonical, CBOR-based representation that can be used to describe,
   distribute, and store EDHOC application profiles.  Furthermore, in
   order to facilitate interoperability between EDHOC implementations
   and support EDHOC extensibility for additional integrations, this
   document defines a number of means to coordinate the use of EDHOC
   application profiles.  Finally, this document defines a set of well-
   known EDHOC application profiles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-app-profiles-05"/>
        </reference>
        <reference anchor="RFC7296">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9258">
          <front>
            <title>Importing External Pre-Shared Keys (PSKs) for TLS 1.3</title>
            <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document describes an interface for importing external Pre-Shared Keys (PSKs) into TLS 1.3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9258"/>
          <seriesInfo name="DOI" value="10.17487/RFC9258"/>
        </reference>
      </references>
    </references>
    <?line 533?>

<section anchor="CDDL">
      <name>CDDL Definitions</name>
      <t>This section compiles the CDDL definitions for convenience, incorporating errata filed against <xref target="RFC9528"/>.</t>
      <sourcecode type="CDDL"><![CDATA[
suites = [ 2* int ] / int

ead = (
  ead_label : int,
  ? ead_value : bstr,
)

EAD_1 = (1* ead)
EAD_2 = (1* ead)
EAD_3 = (1* ead)
EAD_4 = (1* ead)

message_1 = (
  METHOD : int,
  SUITES_I : suites,
  G_X : bstr,
  C_I : bstr / -24..23,
  ? EAD_1,
)

message_2 = (
  G_Y_CIPHERTEXT_2 : bstr,
)

PLAINTEXT_2A = (
  C_R : bstr / -24..23,
  ? EAD_2,
)

message_3 = (
  CIPHERTEXT_3 : bstr,
)

PLAINTEXT_3A = (
  ID_CRED_PSK : header_map / bstr / -24..23,
  CIPHERTEXT_3B : bstr,
)

PLAINTEXT_3B = (
  ? EAD_3,
)

message_4 = (
  CIPHERTEXT_4 : bstr,
)

PLAINTEXT_4 = (
  ? EAD_4,
)

error = (
  ERR_CODE : int,
  ERR_INFO : any,
)

info = (
  info_label : int,
  context : bstr,
  length : uint,
)
]]></sourcecode>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <section anchor="message1">
        <name>message_1</name>
        <t>Both endpoints are authenticated with Pre-Shared Keys (METHOD = 4)</t>
        <t>NOTE: Assuming TBD4 = 4, to be confirmed by IANA.
RFC Editor: Remove this note.</t>
        <artwork><![CDATA[
METHOD (CBOR Data Item) (1 byte)
04
]]></artwork>
        <t>The initiator selects cipher suite 02. A single cipher suite is encoded as an int:</t>
        <artwork><![CDATA[
SUITES_I (CBOR Data Item) (1 byte)
02
]]></artwork>
        <t>The Initiator creates an ephemeral key pair for use with the EDHOC key exchange algorithm:</t>
        <artwork><![CDATA[
Initiator's ephemeral private key
X (Raw Value) (32 bytes)
09 97 2D FE F1 EA AB 92 6E C9 6E 80 05 FE D2 9F
70 FF BF 4E 36 1C 3A 06 1A 7A CD B5 17 0C 10 E5
]]></artwork>
        <artwork><![CDATA[
Initiator's ephemeral public key
G_X (Raw Value) (32 bytes)
7E C6 81 02 94 06 02 AA B5 48 53 9B F4 2A 35 99
2D 95 72 49 EB 7F 18 88 40 6D 17 8A 04 C9 12 DB
]]></artwork>
        <t>The Initiator selects its connection identifier C_I to be the byte string 0xA, which is encoded as 0xA since it is represented by the 1-byte CBOR int 10:</t>
        <artwork><![CDATA[
Connection identifier chosen by the Initiator
C_I (CBOR Data Item) (1 byte)
0A
]]></artwork>
        <t>No external authorization data</t>
        <artwork><![CDATA[
EAD_1 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Initiator constructs message_1:</t>
        <artwork><![CDATA[
message_1 (CBOR Sequence) (37 bytes)
04 02 58 20 7E C6 81 02 94 06 02 AA B5 48 53 9B
F4 2A 35 99 2D 95 72 49 EB 7F 18 88 40 6D 17 8A
04 C9 12 DB 0A
]]></artwork>
      </section>
      <section anchor="message2">
        <name>message_2</name>
        <t>The Responder supports the most preferred and selected cipher suite 02, so SUITES_I is acceptable.</t>
        <t>The Responder creates an ephemeral key pair for use with the EDHOC key exchange algorithm:</t>
        <artwork><![CDATA[
Responder's ephemeral private key
Y (Raw Value) (32 bytes)
1E 1C 8F 2D F1 AA 71 10 B3 9F 33 BA 5E A8 DC CF
31 41 1E B3 3D 4F 9A 09 4C F6 51 92 D3 35 A7 A3
]]></artwork>
        <artwork><![CDATA[
Responder's ephemeral public key
G_Y (Raw Value) (32 bytes)
ED 15 6A 62 43 E0 AF EC 9E FB AA BC E8 42 9D 5A
D5 E4 E1 C4 32 F7 6A 6E DE 8F 79 24 7B B9 7D 83
]]></artwork>
        <t>The Responder selects its connection identifier C_R to be the byte string 0x05, which is encoded as 0x05 since it is represented by the 1-byte CBOR int 05:</t>
        <artwork><![CDATA[
Connection identifier chosen by the Responder
C_R (CBOR Data Item) (1 byte)
05
]]></artwork>
        <t>The transcript hash TH_2 is calculated using the EDHOC hash algorithm:
TH_2 = H( G_Y, H(message_1) ), where H(message_1) is:</t>
        <artwork><![CDATA[
H(message_1) (Raw Value) (32 bytes)
19 CC 2D 2A 95 7E DD 80 10 90 42 FD E6 CC 20 C2
4B 6A 34 BC 21 C6 D4 9F EA 89 5D 4C 75 92 34 0E
]]></artwork>
        <artwork><![CDATA[
H(message_1) (CBOR Data Item) (34 bytes)
58 20 19 CC 2D 2A 95 7E DD 80 10 90 42 FD E6 CC 20
C2 4B 6A 34 BC 21 C6 D4 9F EA 89 5D 4C 75 92 34 0E
]]></artwork>
        <artwork><![CDATA[
TH_2 (Raw Value) (32 bytes)
5B 48 34 AE 63 0A 8A 0E D0 B0 C6 F3 66 42 60 4D
01 64 78 C4 BC 81 87 BB 76 4D D4 0F 2B EE 3D DE
]]></artwork>
        <artwork><![CDATA[
TH_2 (CBOR Data Item) (34 bytes)
58 20 5B 48 34 AE 63 0A 8A 0E D0 B0 C6 F3 66 42 60
4D 01 64 78 C4 BC 81 87 BB 76 4D D4 0F 2B EE 3D DE
]]></artwork>
        <t>PRK_2e is specified in <xref section="4.1.2" sectionFormat="of" target="RFC9528"/>.
To compute it, the Elliptic Curve Diffie-Hellman (ECDH) shared secret G_XY is needed.
It is computed from G_X and Y or G_Y and X:</t>
        <artwork><![CDATA[
G_XY (Raw Value) (ECDH shared secret) (32 bytes)
2F 4A 79 9A 5A B0 C5 67 22 0C B6 72 08 E6 CF 8F
4C A5 FE 38 5D 1B 11 FD 9A 57 3D 41 60 F3 B0 B2
]]></artwork>
        <t>Then, PRK_2e is calculated as defined in <xref section="4.1.2" sectionFormat="of" target="RFC9528"/></t>
        <artwork><![CDATA[
PRK_2e (Raw Value) (32 bytes)
D0 39 D6 C3 CF 35 EC A0 CD F8 19 E3 25 79 C7 7E
1F 30 3E FC C4 36 20 50 99 48 A9 FD 47 FB D9 29
]]></artwork>
        <t>Since the Responder authenticates using PSK, PRK_3e2m = PRK_2e.</t>
        <artwork><![CDATA[
PRK_3e2m (Raw Value) (32 bytes)
D0 39 D6 C3 CF 35 EC A0 CD F8 19 E3 25 79 C7 7E
1F 30 3E FC C4 36 20 50 99 48 A9 FD 47 FB D9 29
]]></artwork>
        <t>No external authorization data:</t>
        <artwork><![CDATA[
EAD_2 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Responder constructs PLAINTEXT_2A:</t>
        <artwork><![CDATA[
PLAINTEXT_2A (CBOR Sequence) (1 byte)
05
]]></artwork>
        <t>The Responder computes KEYSTREAM_2A as defined in <xref target="key-der"/></t>
        <artwork><![CDATA[
KEYSTREAM_2A (Raw Value) (1 byte)
EC
]]></artwork>
        <t>The Responder calculates CIPHERTEXT_2A as XOR between PLAINTEXT_2A and KEYSTREAM_2A:</t>
        <artwork><![CDATA[
CIPHERTEXT_2A (CBOR Sequence) (1 byte)
E9
]]></artwork>
        <t>The Responder constructs message_2 as defined in <xref section="5.3.1" sectionFormat="of" target="RFC9528"/>:</t>
        <artwork><![CDATA[
message_2 (CBOR Sequence) (35 bytes)
58 21 ED 15 6A 62 43 E0 AF EC 9E FB AA BC E8 42
9D 5A D5 E4 E1 C4 32 F7 6A 6E DE 8F 79 24 7B B9
7D 83 E9
]]></artwork>
      </section>
      <section anchor="message3">
        <name>message_3</name>
        <t>The Initiator computes PRK_4e3m, as described in <xref target="key-der"/>, using SALT_4e3m and PSK:</t>
        <artwork><![CDATA[
SALT_4e3m (Raw Value) (32 bytes)
ED E0 76 12 14 83 19 EB 72 59 52 71 2A 54 2C 20
97 61 0A 13 9C 4A 14 1C 8E C5 7A 5F 62 E5 E9 DD
]]></artwork>
        <artwork><![CDATA[
PSK (Raw Value) (16 bytes)
50 93 0F F4 62 A7 7A 35 40 CF 54 63 25 DE A2 14
]]></artwork>
        <artwork><![CDATA[
PRK_4e3m (Raw Value) (32 bytes)
C6 2C C0 4F 55 D0 08 CF EB 8A 68 1E 84 63 FD DD
A2 FF 6C A8 4B 9E D6 11 6C 86 5C D8 1E 06 24 60
]]></artwork>
        <t>The transcript hash TH_3 is calculated using the EDHOC hash algorithm:</t>
        <t>TH_3 = H( TH_2, PLAINTEXT_2A )</t>
        <artwork><![CDATA[
TH_3 (Raw Value) (32 bytes)
38 6A 9D 05 2B 25 59 92 EE E5 FF B5 94 34 7D 32
74 18 A2 EA 51 83 48 6C 0C 9E 20 42 6E 0B CA 2F
]]></artwork>
        <artwork><![CDATA[
TH_3 (CBOR Data Item) (34 bytes)
58 20 38 6A 9D 05 2B 25 59 92 EE E5 FF B5 94 34 7D
32 74 18 A2 EA 51 83 48 6C 0C 9E 20 42 6E 0B CA 2F
]]></artwork>
        <t>No external authorization data:</t>
        <artwork><![CDATA[
EAD_3 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Initiator constructs firstly PLAINTEXT_3B as defined in <xref target="for-mes3"/>:</t>
        <artwork><![CDATA[
PLAINTEXT_3B (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>It then computes CIPHERTEXT_3B as defined in <xref target="icom-mes3"/>. It uses ID_CRED_PSK, CRED_I, CRED_R and TH_3 as external_aad:</t>
        <artwork><![CDATA[
ID_CRED_PSK (CBOR Data Item) (1 byte)
10
]]></artwork>
        <artwork><![CDATA[
CRED_I (Raw Value) (38 bytes)
A2 02 69 69 6E 69 74 69 61 74 6F 72 08 A1 01 A3
01 04 02 41 10 20 50 50 93 0F F4 62 A7 7A 35 40
CF 54 63 25 DE A2 14
]]></artwork>
        <artwork><![CDATA[
CRED_R (Raw Value) (38 bytes)
A2 02 69 72 65 73 70 6F 6E 64 65 72 08 A1 01 A3
01 04 02 41 10 20 50 50 93 0F F4 62 A7 7A 35 40
CF 54 63 25 DE A2 14
]]></artwork>
        <artwork><![CDATA[
TH_3 (Raw Value) (32 bytes)
38 6A 9D 05 2B 25 59 92 EE E5 FF B5 94 34 7D 32
74 18 A2 EA 51 83 48 6C 0C 9E 20 42 6E 0B CA 2F
]]></artwork>
        <t>The Initiator computes K_3 and IV_3</t>
        <artwork><![CDATA[
K_3 (Raw Value) (16 bytes)
96 6A 57 9C EA 26 CA 3C EB 44 2A C7 27 EA B2 32
]]></artwork>
        <artwork><![CDATA[
IV_3 (Raw Value) (13 bytes)
5B F1 AD 0E 4F FB 96 76 D7 8D F2 3F 6E
]]></artwork>
        <t>It then computes CIPHERTEXT_3B:</t>
        <artwork><![CDATA[
CIPHERTEXT_3B (CBOR Sequence) (9 bytes)
48 7F 34 49 6F 3F 69 C2 88
]]></artwork>
        <t>The Initiator computes KEYSTREAM_3A as defined in <xref target="key-der"/>:</t>
        <artwork><![CDATA[
KEYSTREAM_3A (Raw Value) (12 bytes)
51 FC 8A 4B 90 9F 37 03 C2 DB 83 B7
]]></artwork>
        <t>It then calculates PLAINTEXT_3A as stated in <xref target="icom-mes3"/>:</t>
        <artwork><![CDATA[
PLAINTEXT_3A (CBOR Sequence) (10 bytes)
10 48 7F 34 49 6F 3F 69 C2 88
]]></artwork>
        <t>It then uses KEYSTREAM_3A to derive CIPHERTEXT_3A:</t>
        <artwork><![CDATA[
CIPHERTEXT_3A (CBOR Sequence) (10 bytes)
13 AD AE 63 52 D3 AC 5B 85 93
]]></artwork>
        <t>The Initiator computes message_3 as defined in <xref target="icom-mes3"/>:</t>
        <artwork><![CDATA[
message_3 (CBOR Sequence) (11 bytes)
4A 13 AD AE 63 52 D3 AC 5B 85 93
]]></artwork>
        <t>The transcript hash TH_4 is calculated using the EDHOC hash algorithm:
TH_4 = H( TH_3, ID_CRED_PSK, ? EAD_3, CRED_I, CRED_R )</t>
        <artwork><![CDATA[
TH_4 (Raw Value) (32 bytes)
11 48 1B 9A FE F9 5C 67 9A 52 03 82 17 EE DD 0E
0C E0 8F AA 86 5B DC 82 55 11 CA 6D C3 91 94 13
]]></artwork>
        <artwork><![CDATA[
TH_4 (CBOR Data Item) (34 bytes)
58 20 11 48 1B 9A FE F9 5C 67 9A 52 03 82 17 EE DD
0E 0C E0 8F AA 86 5B DC 82 55 11 CA 6D C3 91 94 13
]]></artwork>
      </section>
      <section anchor="message4">
        <name>message_4</name>
        <t>No external authorization data:</t>
        <artwork><![CDATA[
EAD_4 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Responder constructs PLAINTEXT_4:</t>
        <artwork><![CDATA[
PLAINTEXT_4 (CBOR Sequence) (0 bytes)
]]></artwork>
        <t>The Responder computes K_4 and IV_4:</t>
        <artwork><![CDATA[
K_4 (Raw Value) (16 bytes)
BC AB 1D F0 13 8D C0 5C 88 5F D3 71 E9 50 C6 7F
]]></artwork>
        <artwork><![CDATA[
IV_4 (Raw Value) (13 bytes)
41 11 34 D0 E0 C5 08 D9 5D A7 C3 AC DC
]]></artwork>
        <t>The Responder computes message_4:</t>
        <artwork><![CDATA[
message_4 (CBOR Sequence) (9 bytes)
48 8A DD 93 DB 40 48 59 F9
]]></artwork>
      </section>
      <section anchor="prkout-and-prkexporter">
        <name>PRK_out and PRK_exporter</name>
        <t>After the exchange, the following PRK_out and PRK_exporter are derived by both entities:</t>
        <artwork><![CDATA[
PRK_out (Raw Value) (32 bytes)
BB A6 DE D3 B0 38 D2 32 37 74 D8 92 14 A5 13 A2
49 16 F0 42 29 6C 7C 72 9C D1 A6 7B 43 6F B4 14
]]></artwork>
        <artwork><![CDATA[
PRK_exporter (Raw Value) (32 bytes)
2F CD 08 C0 C0 10 77 C6 D6 48 6B 9F 9B 67 70 20
E8 D6 8F 04 BC DC CE 71 5D D2 77 ED 25 93 1B EF
]]></artwork>
      </section>
      <section anchor="rpsk-and-rkid">
        <name>rPSK and rKID</name>
        <t>Both peers generate a resumption key for use in the next resumption attempt, as explained in <xref target="psk-resumption"/>:</t>
        <t>NOTE: Assuming TBD2 = 2 and TBD3 = 3, to be confirmed by IANA.
RFC Editor: Remove this note.</t>
        <artwork><![CDATA[
rPSK (Raw Value) (32 bytes)
E8 7F 51 F5 3E 3D D5 71 95 FE 5C E5 F3 ED 03 8A
BC C5 CA 6B F0 0F 3A 1C 4A 9B FC 61 4A E8 7A 0A
]]></artwork>
        <artwork><![CDATA[
rKID (Raw Value) (2 bytes)
F3 8C
]]></artwork>
      </section>
    </section>
    <section anchor="change-log">
      <name>Change Log</name>
      <t>RFC Editor: Please remove this appendix.</t>
      <ul spacing="normal">
        <li>
          <t>From -07 to -08  </t>
          <ul spacing="normal">
            <li>
              <t>Added clarification after formal analysis.</t>
            </li>
            <li>
              <t>Added comparisons of identity protection with other protocols</t>
            </li>
            <li>
              <t>Added requirements (single KDF) and considerations (context) based on TLS 1.3</t>
            </li>
            <li>
              <t>Updated considerations regarding OSCORE and RFC 9668</t>
            </li>
            <li>
              <t>Added considerations for protection of pre-shared keys</t>
            </li>
            <li>
              <t>Added considerations for key chains / key ratchets</t>
            </li>
            <li>
              <t>Added text on explaining the "by reference" benefits of ID_CRED_PSK</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -06 to -07  </t>
          <ul spacing="normal">
            <li>
              <t>Fixed test vectors</t>
            </li>
            <li>
              <t>Updated security considerations after formal analysis</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -05 to -06  </t>
          <ul spacing="normal">
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -04 to -05  </t>
          <ul spacing="normal">
            <li>
              <t>Fixed misbinding attacks and resumption</t>
            </li>
            <li>
              <t>Updated privacy considerations</t>
            </li>
            <li>
              <t>Added EDHOC-PSK and EAP section</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
            <li>
              <t>Fixed test vectors</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -03 to -04  </t>
          <ul spacing="normal">
            <li>
              <t>Test Vectors</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -02 to -03  </t>
          <ul spacing="normal">
            <li>
              <t>Updated abstract and Introduction</t>
            </li>
            <li>
              <t>Changed message_3 to hide the identity length from passive attackers</t>
            </li>
            <li>
              <t>CDDL Definitions</t>
            </li>
            <li>
              <t>Security considerations of independence of Session Keys</t>
            </li>
            <li>
              <t>Editorial changes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -01 to -02  </t>
          <ul spacing="normal">
            <li>
              <t>Changes to message_3 formatting and processing</t>
            </li>
          </ul>
        </li>
        <li>
          <t>From -00 to -01  </t>
          <ul spacing="normal">
            <li>
              <t>Editorial changes and corrections</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors want to thank
<contact fullname="Christian Amsüss"/>,
<contact fullname="Erik Anderlind"/>,
<contact fullname="Scott Fluhrer"/>,
<contact fullname="Jonathan Hoyland"/>,
<contact fullname="Charlie Jacomme"/>,
<contact fullname="Brian Sipos"/>,
and
<contact fullname="Marco Tiloca"/>
for reviewing and commenting on intermediate versions of the draft.</t>
      <t>This work has been partly funded by PID2023-148104OB-C43 funded by MICIU/AEI/10.13039/501100011033 (ONOFRE4), FEDER/UE EU HE CASTOR under Grant Agreement No 101167904 and EU CERTIFY under Grant Agreement No 101069471.</t>
      <t>This work was supported partially by Vinnova - the Swedish Agency for Innovation Systems - through the EUREKA CELTIC-NEXT project CYPRESS.</t>
      <t>This work has been partially supported by the French National Research Agency under the France 2030 label (NF-HiSec ANR-22-PEFT-0009).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
S4IrXK0CGg/xLAF682gNt8jlpw16xz8FUgg2lRDMHfzSMN7IhDaSD0DG0hye
jMYvJkD/wxhACYmtJCmNpkgdeVHJkYj4QPO50ZwOJWNBaMktBGSAVacF0Io4
fsy43ARpHjHdAA+Z38CPaRgqDVXtmrMdACCiE4ZrZnzebtCa12IuQtHMsDRg
MJAcCvtaVsLGJaCoat9AEYGGkbjLB730XgJQxE1DYkUuWCGEwIMFzkIAZwno
uVbzZtFVDHrGHNAOCy9TXTTI+DUtFk9YlQIDSgruDh4L2EAmH1e+a80AIUNa
XgIroudCxyyAva9UGWYKA/T1h8lHpJwwxd3eZjypzeHEOrhHowFPCkrqVRJf
NeHntSVj1PErBzgAJgtTNFcRyT1LMuFReUjFASL/9EkR6ufP5iCBaEL03kbh
Ha43d3hbQ3JjXCcKAFvvkSSiachABCzg0yfYlyZABlMB11+RfkJSnpUj3EBf
bbL21lEZPn2CaZvAMNBEgPGUMlZUrwgkX8OCZWc3TYNPGgEMvGgmQdrSKPKc
I1+yz+6nT8D78RWwCbdZpl+hF7SzTHKT4bumpH2a9+3F6O35hOZbagSUv/p2
9m8oA5RTisAYAdMF/YhUg/PJxeVyuxKT+DZKkxipMxP7PEGD0YXm+ufPIDEu
ylVK4t9q5aRsfPoEnKU5R5QoVJ0N3wz5G3fb8PuiivoEYbzFTafxYYQxrpSY
f4ZaakibfJekoOXsvX4P9nGD/yvevKXP55N/fn92Phnj54sXw1ev9IeafOLi
xdv3r8bmk3lz9Pb168mbMb8M3wrnq9re6+H3e7yuvbfvLs/evhm+2mPGbSvP
iBVmS1EM53GDhj/Sdc1B1eno3c8/dfqAof8CqO52OgPAEP9x3Dnqwx8oWXi2
JAY2xn8C6u5rYNyGAakawBKBJ22iHM5IA/kAnOi7WKAuBdj86l8QM/96Iv4w
m286/T/KL3DBzpcKZ86XhLPiN4WXGYklX5VMo7HpfO9h2oV3+L3zt8K79eUf
vkaqEs3O8dd/rNVq58DWQWmgbQg/blge8n4sg3W0igBzdEKQCpFfMp0BKc7D
TZ65BM2Hz2IeDSTQOfp8TqM4SO/VOTsPYZ8z2H5mPfuj07fndXmMBv0BvQhf
wVH66xZd2Jn87ajf1b+pI4vSS7KeSTxHPxEPCZZTXVzk6ZYUVAb7neZNEsr2
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

-->

</rfc>
