<?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.13 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lopez-lake-edhoc-psk-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="TODO - Abbreviation">EDHOC PSK authentication</title>
    <seriesInfo name="Internet-Draft" value="draft-lopez-lake-edhoc-psk-01"/>
    <author fullname="Elsa Lopez-Perez">
      <organization>Inria</organization>
      <address>
        <email>elsa.lopez-perez@inria.fr</email>
      </address>
    </author>
    <author fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author fullname="Rafael Marin-Lopez">
      <organization>University of Murcia</organization>
      <address>
        <email>rafa@um.es</email>
      </address>
    </author>
    <date year="2024" month="July" day="04"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <abstract>
      <?line 49?>

<t>This document specifies two variants of pre-shared key (PSK) authentication for the Ephemeral Diffie-Hellman Over COSE (EDHOC) key exchange protocol. Both variants use a pre-shared key for authentication, but differ in when the PSK credential identifier (ID_CRED_PSK) is transmitted. In the first variant, ID_CRED_PSK is sent in message 1, while in the second variant, it is sent in message 3. This document describes the authentication processes, message flows, and security considerations for each variant.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://elsalopez133.github.io/draft-lopez-lake-edhoc-psk/#go.draft-lopez-lake-edhoc-psk.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-lopez-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://example.com/WG"/>.
        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/ElsaLopez133/draft-lopez-lake-psk"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>Pre-shared key (PSK) authentication method provides a balance between security and computational efficiency.
This authentication method was proposed in the first I-Ds of Ephemeral Diffie-Hellman Over COSE (EDHOC) <xref target="RFC9528"/>, and was ruled out to speed out the development process.
However, there is now a renewed effort to reintroduce PSK authentication, making this draft an update to the <xref target="RFC9528"/>.</t>
        <t>One prominent 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 their earlier session, reducing the overhead of full key exchange.
This efficiency is beneficial in scenarios where frequent key updates are needed, such in resource-constrained environments or applications requiring high-frequency secure communications.
The use of PSK authentication in EDHOC ensures that session key can be refreshed without heavy computational overhead, typically associated with public key operations, thus optimizing both performance and security.</t>
        <t>The resumption capability in Extensible Authentication Protocol (EAP) leveraging EDHOC can benefit from this method.
EAP-EDHOC resumption aims to provide a streamlined process for re-establishing secure sessions, reducing latency and resource consumption.
By employing PSK authentication for key updates, EAP-EDHOC resumption can achieve  secure session resumption, enhancing overall efficiency and user experience.</t>
        <t>EDHOC with PSK authentication is also beneficial for existing systems where two nodes have been provided with a PSK from other parties out of band.
This allows the nodes to perform ephemeral Diffie-Hellman to achieve Perfect Forward Secrecy (PFS), ensuring that past communications remain secure even if the PSK is compromised.
The authentication provided by EDHOC prevents eavesdropping by on-path attackers, as they would need to be active participants in the communication to intercept and potentially tamper with the session.
Examples could be Generic Bootstrapping Architecture (GBA) and Authenticated Key Management Architecture (AKMA) in mobile systems, or Peer and Authenticator in EAP.</t>
      </section>
      <section anchor="assumptions">
        <name>Assumptions</name>
      </section>
    </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?>

</section>
    <section anchor="protocol">
      <name>Protocol</name>
      <t>There are currently two proposed versions of the authentication method, depending on where the pre-shared key identifier (ID_CRED_PSK) is sent.
ID_CRED_PSK allows retrieval of CRED_PSK, a COSE object that contains the PSK.</t>
      <section anchor="credentials">
        <name>Credentials</name>
        <t>In both varaints, Initiator and Responder are assumed to have a PSK with good amount of randomness and the requirements that:</t>
        <ul spacing="normal">
          <li>
            <t>Only the Initiator and the Responder have access to the PSK.</t>
          </li>
          <li>
            <t>The Responder is able to retrieve the PSK using ID_CRED_PSK.</t>
          </li>
        </ul>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>ID_CRED_PSK is a COSE header map containing header parameters that can identify a pre-shared key. For example:</t>
          </li>
        </ul>
        <artwork><![CDATA[
ID_CRED_PSK = {4 : h'lf' }
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>CRED_PSK is a COSE_Key compatible credential, encoded as a CCS or CWT. For example:</t>
          </li>
        </ul>
        <artwork><![CDATA[
{                                               /CCS/
  2 : "mydotbot",                               /sub/
  8 : {                                         /cnf/
    1 : {                                       /COSE_Key/
       1 : 4,                                   /kty/
       2 : h'32',                               /kid/
      -1 : h'50930FF462A77A3540CF546325DEA214'  /k/
    }
  }
}
]]></artwork>
        <t>The purpose of ID_CRED_PSK is to facilitate the retrieval of the PSK.
It is <bcp14>RECOMMENDED</bcp14> that it uniquely identifies the CRED_PSK as the recipient might otherwise have to try several keys.
If ID_CRED_PSK contains a single 'kid' parameter, then the compact encoding is applied; see Section 3.5.3.2 of <xref target="RFC9528"/>.
The authentication credential CRED_PSK substitutes CRED_I and CRED_R specified in <xref target="RFC9529"/>, and, when applicable, <bcp14>MUST</bcp14> follow the same guidelines described in Sections 3.5.2 and 3.5.3 of <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="variant-1">
        <name>Variant 1</name>
        <t>In the first variant of the method the ID_CRED_PSK is sent in the clear in the first message.
<xref target="fig-variant1"/> shows the message flow of Variant 1.</t>
        <figure anchor="fig-variant1">
          <name>Overview of message flow of Variant 1.</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"/>
                <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,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="120" y="52">METHOD,</text>
                  <text x="192" y="52">SUITES_I,</text>
                  <text x="252" y="52">G_X,</text>
                  <text x="292" y="52">C_I,</text>
                  <text x="364" y="52">ID_CRED_PSK,</text>
                  <text x="440" y="52">EAD_1</text>
                  <text x="280" y="84">message_1</text>
                  <text x="188" y="116">G_Y,</text>
                  <text x="228" y="116">Enc(</text>
                  <text x="268" y="116">C_R,</text>
                  <text x="316" y="116">MAC_2,</text>
                  <text x="368" y="116">EAD_2</text>
                  <text x="400" y="116">)</text>
                  <text x="280" y="148">message_2</text>
                  <text x="248" y="180">AEAD(</text>
                  <text x="296" y="180">EAD_3</text>
                  <text x="328" 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="20" y="260">&lt;-</text>
                  <text x="40" y="260">-</text>
                  <text x="56" y="260">-</text>
                  <text x="72" y="260">-</text>
                  <text x="88" y="260">-</text>
                  <text x="104" y="260">-</text>
                  <text x="120" y="260">-</text>
                  <text x="136" y="260">-</text>
                  <text x="152" y="260">-</text>
                  <text x="168" y="260">-</text>
                  <text x="184" y="260">-</text>
                  <text x="200" y="260">-</text>
                  <text x="216" y="260">-</text>
                  <text x="232" y="260">-</text>
                  <text x="248" y="260">-</text>
                  <text x="264" y="260">-</text>
                  <text x="280" y="260">-</text>
                  <text x="296" y="260">-</text>
                  <text x="312" y="260">-</text>
                  <text x="328" y="260">-</text>
                  <text x="344" y="260">-</text>
                  <text x="360" y="260">-</text>
                  <text x="376" y="260">-</text>
                  <text x="392" y="260">-</text>
                  <text x="408" y="260">-</text>
                  <text x="424" y="260">-</text>
                  <text x="440" y="260">-</text>
                  <text x="456" y="260">-</text>
                  <text x="472" y="260">-</text>
                  <text x="488" y="260">-</text>
                  <text x="504" y="260">-</text>
                  <text x="520" y="260">-</text>
                  <text x="536" y="260">-</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, ID_CRED_PSK, EAD_1           |
+------------------------------------------------------------------>|
|                             message_1                             |
|                                                                   |
|                    G_Y, Enc( C_R, MAC_2, EAD_2 )                  |
|<------------------------------------------------------------------+
|                             message_2                             |
|                                                                   |
|                           AEAD( EAD_3 )                           |
+------------------------------------------------------------------>|
|                             message_3                             |
|                                                                   |
|                           AEAD( EAD_4 )                           |
|<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
|                             message_4                             |
]]></artwork>
          </artset>
        </figure>
        <t>This variant incurs minimal modifications with respect to the current methods described in <xref target="RFC9528"/> and the fourth message remains optional.
MAC_3 is removed in message_3 and replaced by AEAD.</t>
        <t>Not sure this should go here. Probably not.
This approach is similar to TLS 1.3, and, consequently, has similar privacy issues. For example:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Identity Leakage</strong>: neither the identity of the Initiator nor the Responder are protected against active or passive attackers.
By sending the ID_CRED_PSK in the clear, the initiator reveals its identity to any eavesdropper on the network.
This allows passive observers to learn which entity is attempting to connect to the server.</t>
          </li>
          <li>
            <t><strong>Tracking and correlation</strong>: An attacker can use the plaintext ID_CRED_PSK to track the entity across multiple connections, even if those connections are made from different networks or at different times.
This enables long-term tracking of entities.</t>
          </li>
          <li>
            <t><strong>Information leakage about relationships</strong>: ID_CRED_PSK also reveals information about the relationship between the Initiator and the Responder.
An observer can infer that the two parties have a pre-existing relationship and have previously agreed on a shared secret.</t>
          </li>
          <li>
            <t><strong>Replay and preplay attacks</strong>: ID_CRED_PSK can facilitate replay attacks.
An attacker might use the observed ID_CRED_PSK to initiate their own connection attempts, potentially leading to denial-of-service or other attacks.</t>
          </li>
          <li>
            <t><strong>Downgrade attacks</strong>: If multiple PSKs are available (e.g., of varying strengths or for different purposes), an attacker might attempt to force the use of a weaker or less privacy-preserving PSK by manipulating the ID_CRED_PSK field.</t>
          </li>
        </ul>
      </section>
      <section anchor="variant-2">
        <name>Variant 2</name>
        <t>The ID_CRED_PSK is sent in message_3, encrypted using a key derived from the ephemeral shared secret, G_XY.
In this case, the Responder will authenticate the Initiator first, contrary to Variant 1.
<xref target="fig-variant2"/> shows the message flow of Variant 2.</t>
        <figure anchor="fig-variant2">
          <name>Overview of message flow of Variant 2.</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="248" y="180">ID_CRED_PSK</text>
                  <text x="308" y="180">),</text>
                  <text x="344" y="180">AEAD(</text>
                  <text x="392" y="180">EAD_3</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>Contrary to Variant 1, this approach provides protection against passive attackers for both Initiator and Responder.
message_4 remains optional, but is needed to to authenticate the Responder and achieve mutual authentication in EDHOC if not relaying on external applications, such as OSCORE.</t>
      </section>
    </section>
    <section anchor="key-derivation">
      <name>Key derivation</name>
      <t>The pseudorandom keys (PRKs) used for PSK authentication method in EDHOC are derived using EDHOC_Extract, as done in <xref target="RFC9528"/>.</t>
      <artwork><![CDATA[
PRK  = EDHOC_Extract( salt, IKM )
]]></artwork>
      <t>where the salt and input keying material (IKM) are defined for each key.
The definition of EDHOC_Extract depends on the EDHOC hash algorithm selected in the cipher suite.</t>
      <section anchor="variant-1-1">
        <name>Variant 1</name>
        <t><xref target="fig-variant1key"/> lists the key derivations that differ from those specified in Section 4.1.2 of <xref target="RFC9528"/>.</t>
        <figure anchor="fig-variant1key">
          <name>Key derivation of variant 1 of EDHOC PSK authentication method.</name>
          <artwork align="center"><![CDATA[
PRK_3e2m      = EDHOC_Extract( salt3e_2m, CRED_PSK )
PRK_4e3m      = PRK_3e2m
MAC_2         = EDHOC_KDF( PRK_3e2m,      2,  context_2,  mac_length_2 )
K_3           = EDHOC_KDF( PRK_4e3m,    TBD,  TH_3,       key_length   )
IV_3          = EDHOC_KDF( PRK_4e3m,    TBD,  TH_3,       iv_length    )
]]></artwork>
        </figure>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>context_2 = &lt;&lt;C_R, ID_CRED_PSK, TH_2, CRED_PSK, ? EAD_2&gt;&gt;</t>
          </li>
          <li>
            <t>TH_3 = H( TH_2, PLAINTEXT_2, CRED_PSK )</t>
          </li>
        </ul>
      </section>
      <section anchor="variant-2-1">
        <name>Variant 2</name>
        <t><xref target="fig-variant2key"/> lists the key derivations that differ from those specified in Section 4.1.2 of <xref target="RFC9528"/>.</t>
        <figure anchor="fig-variant2key">
          <name>Key derivation of variant 2 of EDHOC PSK authentication method.</name>
          <artwork align="center"><![CDATA[
PRK_3e2m      = PRK_2e
PRK_4e3m      = EDHOC_Extract( SALT_4e3m, CRED_PSK )
KEYSTREAM_3   = EDHOC_KDF( PRK_3e2m,    TBD,  TH_3,       key_length )
K_3           = EDHOC_KDF( PRK_4e3m,    TBD,  TH_3,  key_length )
IV_3          = EDHOC_KDF( PRK_4e3m,    TBD,  TH_3,  iv_length  )
]]></artwork>
        </figure>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>KEYSTREAM_3 is used to encrypt the ID_CRED_PSK in message_3.</t>
          </li>
          <li>
            <t>TH_3 = H( TH_2, PLAINTEXT_2, CRED_PSK )</t>
          </li>
          <li>
            <t>TH_4 = H( TH_3, ID_CRED_PSK, ? EAD_3, CRED_PSK )</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="message-formatting-and-processing-differences-with-respect-to-rfc9528">
      <name>Message formatting and processing. Differences with respect to <xref target="RFC9528"/></name>
      <t>This section specifies the differences on the message formatting compared to <xref target="RFC9528"/>.</t>
      <section anchor="variant-1-2">
        <name>Variant 1</name>
        <section anchor="message-1">
          <name>Message 1</name>
          <t>message_1 contains the ID_CRED_PSK.
The composition of message_1 <bcp14>SHALL</bcp14> be a CBOR sequence, as defined below:</t>
          <artwork><![CDATA[
message_1 = (
  METHOD : int,
  SUITES_I : suites,
  G_X : bstr,
  C_I : bstr / -24..23,
  ID_CRED_PSK : header map // kid_value : bstr,
  ? EAD_1,
)

suites =  [ 2* int ] / int
EAD_1 = 1* ead
]]></artwork>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>ID_CRED_PSK is an identifier used to facilitate retrieval of the PSK.</t>
            </li>
          </ul>
          <t>The Initiator includes ID_CRED_PSK in message_1 and encodes the full message as a sequence of CBOR-encoded data items as specified in Section 5.2.1. of <xref target="RFC9528"/></t>
          <t>The Responder <bcp14>SHALL</bcp14> process message_1 as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Decode message_1.</t>
            </li>
            <li>
              <t>Retrieve CRED_PSK using ID_CRED_PSK.</t>
            </li>
            <li>
              <t>Process message_1 as specified in Section 5.2.3. of <xref target="RFC9528"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="message-2">
          <name>Message 2</name>
          <t>message_2 <bcp14>SHALL</bcp14> be a CBOR sequence, defined as:</t>
          <artwork><![CDATA[
message_2 = (
  G_Y_CIPHERTEXT_2 : bstr,
)
]]></artwork>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>G_Y_CIPHERTEXT_2 is the concatenation of G_Y (i.e., the ephemeral public key of the Responder) and CIPHERTEXT_2.</t>
            </li>
            <li>
              <t>CIPHERTEXT_2 is calculated with a binary additive stream cipher, using KEYSTREAM_2 and the following plaintext:  </t>
              <ul spacing="normal">
                <li>
                  <t>PLAINTEXT_2 = (C_R, / bstr / -24..23, MAC_2, ? EAD_2)</t>
                </li>
                <li>
                  <t>CIPHERTEXT_2 = PLAINTEXT_2 XOR KEYSTREAM_2</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>The Responder uses MAC instead of Signature. Hence, COSE_Sign1 is not used.
The Responder computes MAC_2 as described in Section 4.1.2 of <xref target="RFC9528"/>, with context_2 &lt;&lt;C_R, ID_CRED_PSK, TH_2, CRED_PSK, ? EAD_2&gt;&gt;</t>
        </section>
        <section anchor="message-3">
          <name>Message 3</name>
          <t>message_3 <bcp14>SHALL</bcp14> be a CBOR sequence, defined as:</t>
          <artwork><![CDATA[
message_3 = (
  CIPHERTEXT_3 : bstr,
)
]]></artwork>
          <t>The Initiator computes a COSE_Encrypt0 object as defined in Section 5.2 and 5.3 of <xref target="RFC9052"/> with the EDHOC AEAD algorithm of the selected cipher suite and the following parameters:</t>
          <ul spacing="normal">
            <li>
              <t>protected = h''</t>
            </li>
            <li>
              <t>external_aad = TH_3, as defined in Section 5.2</t>
            </li>
            <li>
              <t>K_3 and IV_3 as defined in Section 5.2</t>
            </li>
            <li>
              <t>PLAINTEXT_3 = ( ? EAD_3 )</t>
            </li>
          </ul>
          <t>The Initiator computes TH_4 = H( TH_3, PLAINTEXT_3, CRED_PSK )</t>
        </section>
        <section anchor="message-4">
          <name>Message 4</name>
          <t>message_4 <bcp14>SHALL</bcp14> be a CBOR sequence, defined as:</t>
          <artwork><![CDATA[
message_4 = (
  CIPHERTEXT_4 : bstr,
)
]]></artwork>
          <t>message_4 is optional.</t>
        </section>
      </section>
      <section anchor="variant-2-2">
        <name>Variant 2</name>
        <section anchor="message-1-1">
          <name>Message 1</name>
          <t>Same as message_1 of EDHOC, described in Section 5.2.1 of <xref target="RFC9528"/>.</t>
        </section>
        <section anchor="message-2-1">
          <name>Message 2</name>
          <t>message_2 <bcp14>SHALL</bcp14> be a CBOR sequence, defined as:</t>
          <artwork><![CDATA[
message_2 = (
  G_Y_CIPHERTEXT_2 : bstr,
)
]]></artwork>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>G_Y_CIPHERTEXT_2 is the concatenation of G_Y (i.e., the ephemeral public key of the Responder) and CIPHERTEXT_2.</t>
            </li>
            <li>
              <t>CIPHERTEXT_2 is calculated with a binary additive stream cipher, using KEYSTREAM_2 and the following plaintext:  </t>
              <ul spacing="normal">
                <li>
                  <t>PLAINTEXT_2 = ( C_R, / bstr / -24..23, ? EAD_2 )</t>
                </li>
                <li>
                  <t>CIPHERTEXT_2 = PLAINTEXT_2 XOR KEYSTREAM_2</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Contrary to <xref target="RFC9528"/> and Variant 1, MAC_2 is not needed.</t>
        </section>
        <section anchor="message-3-1">
          <name>Message 3</name>
          <t>message_3 <bcp14>SHALL</bcp14> be a CBOR Sequence, as defined below:</t>
          <artwork><![CDATA[
message_3 = (
  CIPHERTEXT_3
)
]]></artwork>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>CIPHERTEXT_3 is a concatenation of two different ciphertexts:  </t>
              <ul spacing="normal">
                <li>
                  <t>CIPHERTEXT_3A is calculated with a binary additive stream cipher, using a KESYSTREAM_3 generated with EDHOC_Expand and the following plaintext:      </t>
                  <ul spacing="normal">
                    <li>
                      <t>PLAINTEXT_3A = ( ID_CRED_PSK )</t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>CIPHERTEXT_3B is a COSE_Encrypt0 object as defined in Sections 5.2 and 5.3 of <xref target="RFC9052"/>, 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 Section 5.2 of <xref 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; Enc(ID_CRED_PSK), TH_3 &gt;&gt;</t>
                    </li>
                    <li>
                      <t>K_3 and IV_3 as defined in Section 5.2</t>
                    </li>
                    <li>
                      <t>PLAINTEXT_3B = ( ? EAD_3 )</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
          </ul>
          <t>The Initiator computes TH_4 = H( TH_3, ID_CRED_PSK, PLAINTEXT_3, CRED_PSK ), defined in Section 5.2.</t>
        </section>
        <section anchor="message-4-1">
          <name>Message 4</name>
          <t>message_4 <bcp14>SHALL</bcp14> be a CBOR sequence, defined as:</t>
          <artwork><![CDATA[
message_4 = (
  CIPHERTEXT_4 : bstr,
)
]]></artwork>
          <t>A fourth message is mandatory for Responder's authentication.
The Initiator <bcp14>MUST NOT</bcp14> persistently store PRK_out or application keys until the Initiator has verified message_4 or a message protected with a derived application key, such as an OSCORE message, from the Responder and the application has authenticated the Responder.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>When evaluating the security considerations, it is important to differentiate between the initial handshake and session resumption phases.</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Initial Handshake</strong>: a fresh CRED_PSK is used to establish a secure connection.</t>
        </li>
        <li>
          <t><strong>Session Resumption</strong>: the same PSK identifier (ID_CRED_PSK) is reused each time EDHOC is executed.
    While this enhances efficiency and reduces the overhead of key exchanges, it presents privacy risks if not managed properly.
    Over multiple resumption sessions, initiating a full EDHOC session changes the resumption PSK, resulting in a new ID_CRED_PSK.
    The periodic renewal of the CRED_PSK and ID_CRED_PSK helps mitigate long-term privacy risks associated with static key identifiers.</t>
        </li>
      </ol>
      <section anchor="identity-protection">
        <name>Identity protection</name>
        <t>The current EDHOC methods protect the Initiator’s identity against active attackers and the Responder’s identity against passive attackers (See Section 9.1 of <xref target="RFC9528"/>).
However, there are differences between the two variants described in this draft:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Variant 1</strong>: neither the Initiator's identity nor the Responder's identity are protected against active or passive attackers.</t>
          </li>
          <li>
            <t><strong>Variant 2</strong>: both the Initiator's and Responder's identities are protected against passive attackers.</t>
          </li>
        </ol>
      </section>
      <section anchor="number-of-messages">
        <name>Number of messages</name>
        <t>The current EDHOC protocol consists of three mandatory messages and an optional fourth message.
The PSK authentication method might require a compulsory message depending on which variant is employed:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Variant 1</strong>: message_4 is optional since both identities are authenticated after message_3.</t>
          </li>
          <li>
            <t><strong>Variant 2</strong>: message_4 remains optional, but mutual authentication is not guaranteed without it, or an OSCORE message or any application data that confirms that the Responder owns the PSK.</t>
          </li>
        </ol>
      </section>
      <section anchor="external-authorization-data">
        <name>External Authorization Data</name>
        <t>In both variants, the Initiator and Responder can send information in EAD_3 and EAD_4 or in OSCORE messages in parallel with message_3 and message_4.
This is possible because the Initiator knows that only the Responder with access to the CRED_PSK can decrypt the information.</t>
      </section>
      <section anchor="optimization">
        <name>Optimization</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Variant 1</strong>: ID_CRED_PSK is sent without encryption, saving computational resources at the cost of privacy.
The exposure of ID_CRED_PSK in message_1 allows for earlier key derivation on the responder's side, potentially speeding up the process.</t>
          </li>
          <li>
            <t><strong>Variant 2</strong>: It requires encryption of ID_CRED_PSK in message_3, which implies higher computational cost.</t>
          </li>
        </ol>
      </section>
      <section anchor="mutual-authentication">
        <name>Mutual Authentication</name>
        <t>Mutual authentication is achieved at earlier stages in Variant 1, which might be important in certain applications, as well as increasing security against Denial of Service attacks or oracle attacks.</t>
      </section>
      <section anchor="attacks">
        <name>Attacks</name>
        <ol spacing="normal" type="1"><li>
            <t><strong>Variant 1</strong>: it allows for earlier authentication, potentially improving resistance to some active attacks, but at the cost of reduced privacy and increased vulnerability to passive attacks and traffic analysis.-</t>
          </li>
          <li>
            <t><strong>Variant 2</strong>: it  offers better privacy and resistance to passive attacks but might be more vulnerable to certain active attacks due to delayed authentication.</t>
          </li>
        </ol>
      </section>
      <section anchor="comparison">
        <name>Comparison</name>
        <table anchor="comparison-table">
          <name>Comparison between Variant 1 and Variant 2.</name>
          <thead>
            <tr>
              <th align="right">Aspect</th>
              <th align="left">Variant 1 (Clear ID_CRED_PSK)</th>
              <th align="left">Variant 2 (Encrypted ID_CRED_PSK)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">Privacy</td>
              <td align="left">Lower: ID_CRED_PSK sent in clear in message_1</td>
              <td align="left">Higher: ID_CRED_PSK encrypted in message_3</td>
            </tr>
            <tr>
              <td align="right">Initiator Identity Protection</td>
              <td align="left">Exposed from message_1</td>
              <td align="left">Protected until message_3</td>
            </tr>
            <tr>
              <td align="right">Authentication Timing</td>
              <td align="left">Earlier, possible from message_1</td>
              <td align="left">Delayed until message_3</td>
            </tr>
            <tr>
              <td align="right">Computational Efficiency</td>
              <td align="left">Slightly higher (no encryption of ID_CRED_PSK)</td>
              <td align="left">Slightly lower (encryption of ID_CRED_PSK)</td>
            </tr>
            <tr>
              <td align="right">Resistance to Passive Attacks</td>
              <td align="left">Lower due to exposed identity</td>
              <td align="left">Higher due to identity protection</td>
            </tr>
            <tr>
              <td align="right">Early Access Control</td>
              <td align="left">Possible from message_1</td>
              <td align="left">Limited, delayed until message_3</td>
            </tr>
            <tr>
              <td align="right">DoS Attack Vulnerability</td>
              <td align="left">Lower due to early authentication</td>
              <td align="left">Potentially higher due to delayed authentication</td>
            </tr>
            <tr>
              <td align="right">Resource Allocation</td>
              <td align="left">Fewer resources allocated before authentication</td>
              <td align="left">More resources allocated before authentication</td>
            </tr>
            <tr>
              <td align="right">Compatibility with Systems Expecting Early Identification</td>
              <td align="left">Higher</td>
              <td align="left">Lower</td>
            </tr>
            <tr>
              <td align="right">Flexibility for Identity Protection</td>
              <td align="left">Lower</td>
              <td align="left">Higher</td>
            </tr>
            <tr>
              <td align="right">Key Derivation Timing</td>
              <td align="left">Potentially earlier</td>
              <td align="left">Potentially delayed</td>
            </tr>
            <tr>
              <td align="right">Completeness</td>
              <td align="left">Complete with optional message_4</td>
              <td align="left">Complete with optional message_4</td>
            </tr>
            <tr>
              <td align="right">Suitability for Quick Identification Scenarios</td>
              <td align="left">Higher</td>
              <td align="left">Lower</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
    </section>
    <section anchor="unified-approach-and-recommendations">
      <name>Unified Approach and Recommendations</name>
      <t>To improve privacy during both initial handshake and session resumption, a single unified method for handling PSKs could be beneficial.
Variant 2 is particularly suitable for this purpose as it streamlines key management and usage across different phases.</t>
      <t>For use cases involving the transmission of application data, application data can be sent concurrently with message_3, maintaining the protocol's efficiency.
In applications such as EAP-EDHOC, where application data is not sent, message_4 is mandatory.
Other implementations may continue using OSCORE in place of EDHOC message_4, with a required change in the protocol's language to:
      The Initiator <bcp14>SHALL NOT</bcp14> persistently store PRK_out or application keys until the Initiator has verified message_4 or a message protected with a derived application key, such as an OSCORE message.</t>
      <t>This change ensures that key materials are only stored once their integrity and authenticity are confirmed, thereby enhancing privacy by preventing early storage of potentially compromised keys.</t>
      <t>Lastly, whether the Initiator or Responder authenticates first is not relevant when using symmetric keys.
This consideration was important for the privacy properties when using asymmetric authentication but is not significant in the context of symmetric key usage.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="RFC9529">
        <front>
          <title>Traces of 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="M. Serafin" initials="M." surname="Serafin"/>
          <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
          <author fullname="M. Vučinić" initials="M." surname="Vučinić"/>
          <date month="March" year="2024"/>
          <abstract>
            <t>This document contains example traces of Ephemeral Diffie-Hellman Over COSE (EDHOC).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9529"/>
        <seriesInfo name="DOI" value="10.17487/RFC9529"/>
      </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="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>
    <?line 513?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Zj5rZqZxm8pkHvOOoyil5Ol4o4Fqc+wmjoIqwJx0Zp5l9wc+/17psh06kShV
9yAiH6E0qQP3WK97oldjmwsl6KiILSIrU3Wl7M7RnM+WcRoMbJ3dagD4oHdT
/OHguT3DaSpTtAnj5IVejCWOAcFU/TQDsCah54y70kEqOAg3fuKAM56kr8Hw
RQK3i0+CtxmXtuIo9ytmZjJbUDlhlU6JldpaJ3/t3bO6ik72xp2TREo7y01h
XbtPqNWnLUXUy7YFiaaVL+7/9S//6tS3dQrq2k3Gpcqn1f2Wdyc3z50C/q+X
HPKtpSP2vPXlJCpdmfMurvDMZHusfq8RtMbp6xYcNot/7CxhqdbQ/fEXlB0a
sWwCGgKCt2m7EHibte2kqTmvvjztismIG97zxThOTlWtYobmbgBWfqoyh9xK
KR3jYwfQ2715E6N1LJa2Qus3XXUJlTkTxo4sbHmmnBm6Z+jS9gYLVj18vFom
a2i6Mo6k8yZ0KQWhuoNK34qAV0iTtFn+VRT73Nb5mj1wHV1Ma/hdcNCcI/tp
xSdgl6yhfnnrGT7OpdpDfpO0nKu2rrA1mcVN9/Dfod1lH/HlPtYlPcBw3mFA
FqPeihJHJ1UV5Vw865VM8jndA+Pu6TIPfXrXXxIfXCbPM8tkppWZX7zc4NaU
geL/RaH0nQFjGUe2ALEF7irXxWNAQmHPFLqVauSKeCcIverHRLZ7Pc56NNJO
9L0HptxgmddWleJZorYxAfyd6NpuorSXMtj7A6jK1wT3qtI377Du14IkP2D5
ZN27Z7+83LwuLNZFAfpCjavO9lluDVujUsjL8Qsx+eoTArRemEOr5sKTZRE4
akRYudHPeiCHPSPJ8KQyLnyFHmjynhYnhAKN+mMtQ/41EUFwvE60TP1JQshs
LhWpLMc5ob6GQmshOnjdOHZoFiNkpisA/EoUuJo3kuodaagYIbFqLolwzdwB
165yDtjUrpraVK5hLaM4k20RKx9n1w+rGAtu0Aqadm+PcWmXzrlAiKuHSYXz
3Rx0nU0xl77lVlpJdZhO+2dJ43joYhReLR1+rjMK881NHnQxg2dujCsASwuf
D9+j7BYwhP0VjIOVYboJeQEw4qRs3Rl92LuTsG61hJtTGGPh0kd/G/J5yxVJ
LXVtcRbdEoN0giY+Gs3bmynd+BV8FCO9ifqxZRuxuc9H5jwHuf19IDYPm5pb
v03w0dakfbyrYO0BbagZgDw1aPso3sFXKn1lZIuCm4N+ra74KN6w5Pkd2pJh
7ziJBr/5g2lbvds4mqdtQdpH2Bl9XJ7jOHfW08Zl0fHlXZN0Loe5gBIGY2Nw
LQi91iQsTXNgqPz5SfY9zXPYhisfxXlGXAapMkpqMy/Wa7ktt0NGtBCbdzVe
AuTMY/pTw/RGO1j6Wi6WBr+NF2rpaRuky/7/ijkJk7dipO0iJ0nh/YFIa/H6
DjSoJF9wcF8EHxTnZhXid57+6C6JYemodIKl1W4zb4mrJXk1ZvUVPSMo02bg
V5Imd8yv/pFTtpPCdwl1j2N6+4AOK3mNjunr9bNPcm5u0oHAEJWo5pDxcGQC
umZyQ16LtOXBX2Xygx16slYwTe9muKVhqODmoPUYGqFz6WAtkf/W0mP1ujOJ
lsRm7aPGQOOct/70fZosTXJep1XkrP+3dDtZF4/nzVVgKzBKZUhxYwL6lTYo
ug6pNQ1N1NmaBXcbgUp8EUOpFxulyERGlUaPGi3dTUE9otsfOZk2sgW+2smm
C30khVzmGpvCWHbZ2MlEX2OkY5l75pt67ZH7OrdJPA7HJpzcy5PMHExxbgFq
74AKg9bSkUPOFxHVGfOrYuxn0lwGST+b2wrIX6qcS7cUO6Xz9nIgfUEV14/o
A2bO+RubH6OTg/aaO/K/rovs2ubszN2NerF09qYTJ/WWIydzbRrbR9pCae56
8UMRupkvbe79ML4wh8iPlXdv4ZHvLDaZzeZWr565BGYJEhMOEiQ9P2htQu4w
OOH0BLnMjDEzyTziNCWURi3NLoSJsii4orOfbYVcM3LPZmWN356YjJet93UW
mOF9TWSpij1zm4WfWW6u9/k/lFoOTRWcWbV3sZ7mS11srbMCHEnyeuiYXWzP
s9HOyrS5zrJR+zYbZEJyMpOctxrfOje0Wfkd39prweitNn40Ewf8E8+pdy4c
MzdqBO8ixadtwVXLqSvh7g94mQ1lrnkwXFfKTF6TPPMNFpqF1C00T1XqvKI9
hellw/myzDZgsre/2oXplCwnVpxho3bcjpm0pwxICtJpzrrauaNCl7MQSjzI
tMbgBP/R6P1oSbP6t6oSc8F545aR3g80t6CO4ZfQIKOYEgiZTKZ8QRFsgb5M
WiYvNiZgB8mHwOna66hpien/G8pxdtc4WwAA

-->

</rfc>
