<?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.24 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-emu-eap-edhoc-03" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <?v3xml2rfc silence="Found SVG with width or height specified"?>
  <front>
    <title abbrev="EAP-EDHOC">Using the Extensible Authentication Protocol (EAP) with Ephemeral Diffie-Hellman over COSE (EDHOC)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-edhoc-03"/>
    <author initials="D." surname="Garcia-Carrillo" fullname="Dan Garcia-Carrillo">
      <organization>University of Oviedo</organization>
      <address>
        <postal>
          <street>Gijon, Asturias  33203</street>
          <country>Spain</country>
        </postal>
        <email>garciadan@uniovi.es</email>
      </address>
    </author>
    <author initials="R." surname="Marin-Lopez" fullname="Rafael Marin-Lopez">
      <organization>University of Murcia</organization>
      <address>
        <postal>
          <street>Murcia  30100</street>
          <country>Spain</country>
        </postal>
        <email>rafa@um.es</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>SE-164 80 Stockholm</street>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>SE-164 80 Stockholm</street>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="F." surname="Lopez-Gomez" fullname="Francisco Lopez-Gomez">
      <organization>University of Murcia</organization>
      <address>
        <postal>
          <street>Murcia  30100</street>
          <country>Spain</country>
        </postal>
        <email>francisco.lopezg@um.es</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area/>
    <workgroup>EAP Method Update</workgroup>
    <abstract>
      <?line 95?>

<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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-emu-eap-edhoc/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        EAP Method Update  mailing list (<eref target="mailto:emu@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/emu"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/emu/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dangarciacarrillo/i-d-eap-edhoc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 99?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Extensible Authentication Protocol (EAP), defined in <xref target="RFC3748"/>, provides a standard mechanism for support of multiple authentication methods. This document specifies the EAP authentication method EAP-EDHOC, which is based on the lightweight security handshake protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) <xref target="RFC9528"/>.</t>
      <t>EAP-EDHOC is similar to EAP-TLS 1.3 <xref target="RFC9190"/>, since EDHOC is based on a similar security protocol design as the TLS 1.3 handshake <xref target="RFC8446"/>. However, EDHOC has been optimized for highly constrained settings, for example involving wirelessly connected battery powered 'things' with embedded microcontrollers, sensors, and actuators. An overview of EDHOC is given in <xref target="edhoc-overview"/>.</t>
      <t>The EAP-EDHOC method enables the integration of EDHOC into different applications and use cases using the EAP framework.</t>
      <section anchor="edhoc-overview">
        <name>EDHOC Overview</name>
        <t>Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight authenticated ephemeral Diffie-Hellman key exchange, including mutual authentication and establishment of shared secret keying material, see <xref target="RFC9528"/>.</t>
        <t>EDHOC provides state-of-the-art security design at very low message overhead, targeting low complexity implementations and allowing extensibility. The security of EDHOC has been thoroughly analysed, some references are provided in <xref section="9.1" sectionFormat="of" target="RFC9528"/>.</t>
        <t>The main features of EDHOC are:</t>
        <ul spacing="normal">
          <li>
            <t>Support for different authentication methods and credentials. The authentication methods includes (mixed) signatures and static Diffie-Hellman keys <xref target="RFC9528"/>, and pre-shared keys <xref target="I-D.ietf-lake-edhoc-psk"/>. A large and extensible variety of authentication credentials is supported, including public key certificates such as X.509 and C509 <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, CBOR Web Tokens and CWT Claims Sets <xref target="RFC8392"/>.</t>
          </li>
          <li>
            <t>A standardized and extensible format for identification of credentials, using COSE header parameters <xref target="RFC9052"/>, supporting credential transport by value or by reference, enabling very compact representations.</t>
          </li>
          <li>
            <t>Crypto agility and secure ciphersuite negotiation, with predefined compactly represented ciphersuites and support for extensibility using the COSE algorithms registry <xref target="RFC9053"/>.</t>
          </li>
          <li>
            <t>Selection of connection identifiers identifying a connection for which keys are agreed.</t>
          </li>
          <li>
            <t>Support for integration of external security applications into EDHOC by transporting External Authorization Data (EAD) included in and protected as EDHOC messages.</t>
          </li>
        </ul>
        <t>A necessary condition for a successful completion of an EDHOC session is that both peers support a common application profile including method, ciphersuite,  etc. More details are provided in  <xref target="I-D.ietf-lake-app-profiles"/>.</t>
        <t>EDHOC messages makes use of lightweight primitives, specifically CBOR <xref target="RFC8949"/> and COSE <xref target="RFC9052"/> <xref target="RFC9053"/> for efficient encoding and security services in constrained devices. EDHOC is optimized for use of with CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> to secure resource access in constrained IoT use cases, but it is not bound to a particular transport or communication security protocol.</t>
      </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?>

<t>Readers are expected to be familiar with the terms and concepts described in EAP <xref target="RFC3748"/> and EDHOC <xref target="RFC9528"/>.</t>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <section anchor="overview-of-the-eap-edhoc-conversation">
        <name>Overview of the EAP-EDHOC Conversation</name>
        <t>The EAP exchange involves three key entities: the EAP peer, the EAP authenticator, and the EAP server. The EAP authenticator is a network device that enforces access control and initiates the EAP authentication process. The EAP peer is the device seeking network access and communicates directly with the EAP authenticator. The EAP server is responsible for selecting and implementing the authentication methods and for authenticating the EAP peer. When the EAP server is not located on a separate backend authentication server, it is integrated into the EAP authenticator. For simplicity, the operational flow diagrams in this document decipt only the EAP peer and the EAP server.</t>
        <t>The EDHOC protocol running between an Initiator and a Responder consists of three mandatory messages (message_1, message_2, message_3), an optional message_4, and an error message. In an EDHOC session, EAP-EDHOC uses all messages including message_4, which is mandatory and acts as a protected success indication.</t>
        <t>After receiving an EAP-Request packet with EAP-Type=EAP-EDHOC as described in this document, the conversation will continue with the EDHOC messages transported in the data fields of EAP-Response and EAP-Request packets. When EAP-EDHOC is used, the formatting and processing of EDHOC messages <bcp14>SHALL</bcp14> be done as specified in <xref target="RFC9528"/>. This document only lists additional and different requirements, restrictions, and processing compared to <xref target="RFC9528"/>.</t>
        <t>The message processing in <xref section="5" sectionFormat="of" target="RFC9528"/> states that certain data (EAD items, connection identifiers, application algorithms, etc.) is made available to the application. Since EAP-EDHOC is now acting as the application of EDHOC, it may need to further this data to complete the protocol. See also <xref target="I-D.ietf-lake-edhoc-impl-cons"/>.</t>
        <t>Resumption of EAP-EDHOC may be defined using the EDHOC-PSK authentication method <xref target="I-D.ietf-lake-edhoc-psk"/>.</t>
        <section anchor="successful-eap-edhoc-message-flow-without-fragmentation">
          <name>Successful EAP-EDHOC Message Flow without Fragmentation</name>
          <t>EAP-EDHOC authentication credentials can be of any type supported by COSE and be transported or referenced by EDHOC.</t>
          <t>The optimization combining the execution of EDHOC with the first subsequent OSCORE transaction specified in <xref target="RFC9668"/> is not supported in this EAP method.</t>
          <t><xref target="message-flow"/> shows an example message flow for a successful execution of EAP-EDHOC.</t>
          <figure anchor="message-flow">
            <name>EAP-EDHOC Message Flow</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="608" width="528" viewBox="0 0 528 608" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,592" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,592" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,480 L 472,480" fill="none" stroke="black"/>
                  <path d="M 56,528 L 472,528" fill="none" stroke="black"/>
                  <path d="M 56,576 L 472,576" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,528 468,522.4 468,533.6" fill="black" transform="rotate(0,472,528)"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,576 52,570.4 52,581.6" fill="black" transform="rotate(180,56,576)"/>
                  <polygon class="arrowhead" points="64,480 52,474.4 52,485.6" fill="black" transform="rotate(180,56,480)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="164" y="404">message_3)</text>
                    <text x="340" y="452">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="468">(EDHOC</text>
                    <text x="420" y="468">message_4)</text>
                    <text x="192" y="516">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="564">EAP-Success</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_4)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Success   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t>If the EAP-EDHOC peer authenticates successfully, the EAP-EDHOC server <bcp14>MUST</bcp14> send an EAP-Request packet with EAP-Type=EAP-EDHOC containing message_4 as a protected success indication.</t>
          <t>If the EAP-EDHOC server authenticates successfully, and the EAP-EDHOC peer achieves key confirmation by successfully verifying EDHOC message_4, then the EAP-EDHOC peer <bcp14>MUST</bcp14> send an EAP-Response message with EAP-Type=EAP-EDHOC containing no data. Finally, the EAP-EDHOC server sends an EAP-Success.</t>
          <t>Note that the Identity request is optional <xref target="RFC3748"/> and might not be used in systems like 3GPP 5G <xref target="Sec5G"/> where the identity is transfered encrypted by other means before the EAP exchange.  And while the EAP-Response/EAP-Type=EAP-EDHOC and EAP-Success are mandatory <xref target="RFC3748"/>} they do not contain any information and are might be encoded into other system specific messages <xref target="Sec5G"/>.</t>
        </section>
        <section anchor="transport-and-message-correlation">
          <name>Transport and Message Correlation</name>
          <t>EDHOC is not bound to a particular transport layer and can even be used in environments without IP. Nonetheless, <xref target="RFC9528"/> provides a set of requirements for a transport protocol to use with EDHOC. These include: handling the loss, reordering, duplication, correlation, and fragmentation of messages; demultiplexing EDHOC messages from other types of messages; and denial-of-service protection. All these requirements are fulfilled by the EAP protocol, EAP method, or EAP lower layer, as specified in <xref target="RFC3748"/>.</t>
          <t>For message loss, this can be either fulfilled by the EAP layer, or the EAP lower layer, or both.</t>
          <t>For reordering, EAP relies on the EAP lower layer ordering guarantees, for correct operation.</t>
          <t>For duplication and message correlation, EAP has the Identifier field, which allows both the EAP peer and EAP authenticator to detect duplicates and match a request with a response.</t>
          <t>Fragmentation is defined by this EAP method, see <xref target="fragmentation"/>. The EAP framework <xref target="RFC3748"/>, specifies that EAP methods need to provide fragmentation and reassembly if EAP packets can exceed the minimum MTU of 1020 octets.</t>
          <t>To demultiplex EDHOC messages from other types of messages, EAP provides the Type field.</t>
          <t>This method does not provide other mitigation against denial-of-service than EAP <xref target="RFC3748"/>.</t>
        </section>
        <section anchor="termination">
          <name>Termination</name>
          <t><xref target="message1-reject"/>, <xref target="message2-reject"/>, <xref target="message3-reject"/>, and <xref target="message4-reject"/> illustrate message flows in several cases where the EAP-EDHOC peer or EAP-EDHOC server sends an EDHOC error message.</t>
          <t><xref target="message1-reject"/> shows an example message flow where the EAP-EDHOC server rejects message_1 with an EDHOC error message.</t>
          <figure anchor="message1-reject">
            <name>EAP-EDHOC Server Rejection of message_1</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="528" viewBox="0 0 528 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,464" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,464" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,400 L 472,400" fill="none" stroke="black"/>
                  <path d="M 56,448 L 472,448" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,400 468,394.4 468,405.6" fill="black" transform="rotate(0,472,400)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,448 52,442.4 52,453.6" fill="black" transform="rotate(180,56,448)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="340">(EDHOC</text>
                    <text x="436" y="340">error)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="436">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC error)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t><xref target="message2-reject"/> shows an example message flow where the EAP-EDHOC server authentication is unsuccessful and the EAP-EDHOC peer sends an EDHOC error message.</t>
          <figure anchor="message2-reject">
            <name>EAP-EDHOC Peer Rejection of message_2</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="528" viewBox="0 0 528 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,480" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,480" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,464 L 472,464" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,464 52,458.4 52,469.6" fill="black" transform="rotate(180,56,464)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="148" y="404">error)</text>
                    <text x="416" y="452">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC error)                                       |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t><xref target="message3-reject"/> shows an example message flow where the EAP-EDHOC server authenticates to the EAP-EDHOC peer successfully, but the EAP-EDHOC peer fails to authenticate to the EAP-EDHOC server, and the server sends an EDHOC error message.</t>
          <t>Note that the EDHOC error message may not be omitted. For example with EDHOC ERR_CODE 3 "Unknown credential referenced" it is indicated that the EDHOC peer should, for the next EDHOC session, try another credential identifier supported according to the application profile.</t>
          <figure anchor="message3-reject">
            <name>EAP-EDHOC Server Rejection of message_3</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="608" width="528" viewBox="0 0 528 608" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,592" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,592" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,480 L 472,480" fill="none" stroke="black"/>
                  <path d="M 56,528 L 472,528" fill="none" stroke="black"/>
                  <path d="M 56,576 L 472,576" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,528 468,522.4 468,533.6" fill="black" transform="rotate(0,472,528)"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,576 52,570.4 52,581.6" fill="black" transform="rotate(180,56,576)"/>
                  <polygon class="arrowhead" points="64,480 52,474.4 52,485.6" fill="black" transform="rotate(180,56,480)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="164" y="404">message_3)</text>
                    <text x="340" y="452">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="468">(EDHOC</text>
                    <text x="436" y="468">error)</text>
                    <text x="192" y="516">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="564">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC error)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
          <t><xref target="message4-reject"/> shows an example message flow where the EAP-EDHOC server sends the EDHOC message_4 to the EAP peer, but the protected success indication fails, and the peer sends an EDHOC error message.</t>
          <figure anchor="message4-reject">
            <name>EAP-EDHOC Peer Rejection of message_4</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="624" width="528" viewBox="0 0 528 624" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,608" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,608" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,416 L 472,416" fill="none" stroke="black"/>
                  <path d="M 56,480 L 464,480" fill="none" stroke="black"/>
                  <path d="M 56,544 L 472,544" fill="none" stroke="black"/>
                  <path d="M 56,592 L 472,592" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,544 468,538.4 468,549.6" fill="black" transform="rotate(0,472,544)"/>
                  <polygon class="arrowhead" points="480,416 468,410.4 468,421.6" fill="black" transform="rotate(0,472,416)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,592 52,586.4 52,597.6" fill="black" transform="rotate(180,56,592)"/>
                  <polygon class="arrowhead" points="64,480 52,474.4 52,485.6" fill="black" transform="rotate(180,56,480)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="380" y="212">(EDHOC</text>
                    <text x="436" y="212">Start)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="340">(EDHOC</text>
                    <text x="420" y="340">message_2)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="404">(EDHOC</text>
                    <text x="164" y="404">message_3)</text>
                    <text x="340" y="452">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="468">(EDHOC</text>
                    <text x="420" y="468">message_4)</text>
                    <text x="192" y="516">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="532">(EDHOC</text>
                    <text x="148" y="532">error)</text>
                    <text x="416" y="580">EAP-Failure</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                       (EDHOC Start)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_2)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_4)   |
    | <---------------------------------------------------  |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC error)                                       |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Failure   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="identity">
          <name>Identity</name>
          <t>It is <bcp14>RECOMMENDED</bcp14> to use anonymous NAIs <xref target="RFC7542"/> in the Identity Response, as such identities are routable and privacy-friendly.</t>
          <t>While opaque blobs are allowed by <xref target="RFC3748"/>, such identities are <bcp14>NOT RECOMMENDED</bcp14> as they are not routable and should only be considered in local deployments where the EAP-EDHOC peer, EAP authenticator, and EAP-EDHOC server all belong to the same network.</t>
          <t>Many client certificates contain an identity such as an email address, which is already in NAI format. When the certificate contains an NAI as subject name or alternative subject name, an anonymous NAI <bcp14>SHOULD</bcp14> be derived from the NAI in the certificate; See <xref target="privacy"/>.</t>
        </section>
        <section anchor="privacy">
          <name>Privacy</name>
          <t>EAP-EDHOC peer and server implementations supporting EAP-EDHOC <bcp14>MUST</bcp14> support anonymous Network Access Identifiers (NAIs) (Section 2.4 of <xref target="RFC7542"/>).
A node supporting EAP-EDHOC <bcp14>MUST NOT</bcp14> send its username (or any other permanent identifiers) in cleartext in the Identity Response (or any message used instead of the Identity Response). Following <xref target="RFC7542"/>, it is <bcp14>RECOMMENDED</bcp14> to omit the username (i.e., the NAI is @realm), but other constructions such as a fixed username (e.g., anonymous@realm) or an encrypted username (e.g., xCZINCPTK5+7y81CrSYbPg+RKPE3OTrYLn4AQc4AC2U=@realm) are allowed. Note that the NAI <bcp14>MUST</bcp14> be a UTF-8 string as defined by the grammar in Section 2.2 of <xref target="RFC7542"/>.</t>
        </section>
        <section anchor="fragmentation">
          <name>Fragmentation</name>
          <t>EAP-EDHOC fragmentation support is provided through the addition of flag bits (M and L) within the EAP-Response and EAP-Request packets, as well as a (conditional) EAP-EDHOC Message Length field that can be zero to four octets.</t>
          <t>To do so, the EAP request and response messages of EAP-EDHOC have a set of information fields that allow for the specification of the fragmentation process (See  <xref target="detailed-description"/> for the detailed description). If the L bits are set, we are specifying that the message will be fragmented and the length of the message, which is in the EAP-EDHOC Message Length field.</t>
          <t>Implementations <bcp14>MUST NOT</bcp14> set the L bit in unfragmented messages. However, they <bcp14>MUST</bcp14> accept unfragmented messages regardless of whether the L bit is set. Some EAP implementations and access networks impose limits on the number of EAP packet exchanges that can be processed. To minimize fragmentation, it is <bcp14>RECOMMENDED</bcp14> to use compact EAP-EDHOC peer, EAP-EDHOC server, and trust anchor authentication credentials, as well as to limit the length of certificate chains. Additionally, mechanisms that reduce the size of Certificate messages are <bcp14>RECOMMENDED</bcp14>.</t>
          <t>EDHOC is designed to perform well in constrained networks where message sizes are restricted for performance reasons. When credentials are passed by reference, EAP-EDHOC messages are typically so small that fragmentation is not needed. However as EAP-EDHOC also supports large X.509 certificate chains, EAP-EDHOC implementations <bcp14>MUST</bcp14> provide support for fragmentation and reassembly. Since EAP is a lock-step protocol, fragmentation support can be easily added.</t>
          <t>EAP-EDHOC fragmentation support is provided through the addition of two bits (L and M) within the EAP-Response and EAP-Request packets, as well as an EDHOC Message Length field.  The L field indicate the length of the EDHOC Message Length field, which <bcp14>MUST</bcp14> be present for the first fragment of a fragmented EDHOC message.  The M flag bit is set on all but the last fragment.  The S flag bit is set only within the EAP-EDHOC start message sent by the EAP server to the peer.  The EDHOC Message Length field provides the total length of the EDHOC message that is being fragmented; this simplifies buffer allocation.</t>
          <t>When an EAP-EDHOC peer receives an EAP-Request packet with the M bit set, it <bcp14>MUST</bcp14> respond with an EAP-Response with EAP-Type=EAP-EDHOC and no data.  This serves as a fragment ACK.  The EAP server <bcp14>MUST</bcp14> wait until it receives the EAP-Response before sending another fragment. To prevent errors in the processing of fragments, the EAP server <bcp14>MUST</bcp14> increment the Identifier field for each fragment contained within an EAP-Request, and the peer <bcp14>MUST</bcp14> include this Identifier value in the fragment ACK contained within the EAP-Response. Retransmitted fragments will contain the same Identifier value.</t>
          <t>Similarly, when the EAP-EDHOC server receives an EAP-Response with the M bit set, it <bcp14>MUST</bcp14> respond with an EAP-Request with EAP-Type=EAP-EDHOC and no data.  This serves as a fragment ACK.  The EAP peer <bcp14>MUST</bcp14> wait until it receives the EAP-Request before sending another fragment. To prevent errors in the processing of fragments, the EAP server <bcp14>MUST</bcp14> increment the Identifier value for each fragment ACK contained within an EAP-Request, and the peer <bcp14>MUST</bcp14> include this Identifier value in the subsequent fragment contained within an EAP-Response.</t>
          <t>In the case where the EAP-EDHOC mutual authentication is successful, and fragmentation is required, the conversation, illustrated in <xref target="fragmentation-flow"/> will appear as follows:</t>
          <figure anchor="fragmentation-flow">
            <name>EAP-EDHOC Fragmentation Example</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1056" width="528" viewBox="0 0 528 1056" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 40,64 L 40,1040" fill="none" stroke="black"/>
                  <path d="M 488,64 L 488,1040" fill="none" stroke="black"/>
                  <path d="M 56,96 L 472,96" fill="none" stroke="black"/>
                  <path d="M 56,160 L 472,160" fill="none" stroke="black"/>
                  <path d="M 56,224 L 472,224" fill="none" stroke="black"/>
                  <path d="M 56,288 L 472,288" fill="none" stroke="black"/>
                  <path d="M 56,352 L 472,352" fill="none" stroke="black"/>
                  <path d="M 56,400 L 472,400" fill="none" stroke="black"/>
                  <path d="M 56,464 L 472,464" fill="none" stroke="black"/>
                  <path d="M 56,512 L 472,512" fill="none" stroke="black"/>
                  <path d="M 56,576 L 472,576" fill="none" stroke="black"/>
                  <path d="M 56,640 L 472,640" fill="none" stroke="black"/>
                  <path d="M 56,688 L 472,688" fill="none" stroke="black"/>
                  <path d="M 56,752 L 472,752" fill="none" stroke="black"/>
                  <path d="M 56,800 L 472,800" fill="none" stroke="black"/>
                  <path d="M 56,864 L 472,864" fill="none" stroke="black"/>
                  <path d="M 56,928 L 472,928" fill="none" stroke="black"/>
                  <path d="M 56,976 L 472,976" fill="none" stroke="black"/>
                  <path d="M 56,1024 L 472,1024" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="480,976 468,970.4 468,981.6" fill="black" transform="rotate(0,472,976)"/>
                  <polygon class="arrowhead" points="480,864 468,858.4 468,869.6" fill="black" transform="rotate(0,472,864)"/>
                  <polygon class="arrowhead" points="480,752 468,746.4 468,757.6" fill="black" transform="rotate(0,472,752)"/>
                  <polygon class="arrowhead" points="480,640 468,634.4 468,645.6" fill="black" transform="rotate(0,472,640)"/>
                  <polygon class="arrowhead" points="480,512 468,506.4 468,517.6" fill="black" transform="rotate(0,472,512)"/>
                  <polygon class="arrowhead" points="480,400 468,394.4 468,405.6" fill="black" transform="rotate(0,472,400)"/>
                  <polygon class="arrowhead" points="480,288 468,282.4 468,293.6" fill="black" transform="rotate(0,472,288)"/>
                  <polygon class="arrowhead" points="480,160 468,154.4 468,165.6" fill="black" transform="rotate(0,472,160)"/>
                  <polygon class="arrowhead" points="64,1024 52,1018.4 52,1029.6" fill="black" transform="rotate(180,56,1024)"/>
                  <polygon class="arrowhead" points="64,928 52,922.4 52,933.6" fill="black" transform="rotate(180,56,928)"/>
                  <polygon class="arrowhead" points="64,800 52,794.4 52,805.6" fill="black" transform="rotate(180,56,800)"/>
                  <polygon class="arrowhead" points="64,688 52,682.4 52,693.6" fill="black" transform="rotate(180,56,688)"/>
                  <polygon class="arrowhead" points="64,576 52,570.4 52,581.6" fill="black" transform="rotate(180,56,576)"/>
                  <polygon class="arrowhead" points="64,464 52,458.4 52,469.6" fill="black" transform="rotate(180,56,464)"/>
                  <polygon class="arrowhead" points="64,352 52,346.4 52,357.6" fill="black" transform="rotate(180,56,352)"/>
                  <polygon class="arrowhead" points="64,224 52,218.4 52,229.6" fill="black" transform="rotate(180,56,224)"/>
                  <polygon class="arrowhead" points="64,96 52,90.4 52,101.6" fill="black" transform="rotate(180,56,96)"/>
                  <g class="text">
                    <text x="40" y="36">EAP-EDHOC</text>
                    <text x="100" y="36">Peer</text>
                    <text x="432" y="36">EAP-EDHOC</text>
                    <text x="500" y="36">Server</text>
                    <text x="380" y="84">EAP-Request/Identity</text>
                    <text x="152" y="132">EAP-Response/Identity</text>
                    <text x="140" y="148">(Privacy-Friendly)</text>
                    <text x="340" y="196">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="292" y="212">(EDHOC</text>
                    <text x="348" y="212">Start,</text>
                    <text x="384" y="212">S</text>
                    <text x="408" y="212">bit</text>
                    <text x="444" y="212">set)</text>
                    <text x="192" y="260">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="276">(EDHOC</text>
                    <text x="164" y="276">message_1)</text>
                    <text x="340" y="324">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="108" y="340">(EDHOC</text>
                    <text x="180" y="340">message_2,</text>
                    <text x="260" y="340">Fragment</text>
                    <text x="308" y="340">1,</text>
                    <text x="328" y="340">L</text>
                    <text x="352" y="340">and</text>
                    <text x="376" y="340">M</text>
                    <text x="404" y="340">bits</text>
                    <text x="444" y="340">set)</text>
                    <text x="192" y="388">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="340" y="436">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="164" y="452">(EDHOC</text>
                    <text x="236" y="452">message_2,</text>
                    <text x="316" y="452">Fragment</text>
                    <text x="364" y="452">2,</text>
                    <text x="384" y="452">M</text>
                    <text x="408" y="452">bit</text>
                    <text x="444" y="452">set)</text>
                    <text x="192" y="500">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="340" y="548">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="252" y="564">(EDHOC</text>
                    <text x="324" y="564">message_2,</text>
                    <text x="404" y="564">Fragment</text>
                    <text x="452" y="564">3)</text>
                    <text x="192" y="612">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="628">(EDHOC</text>
                    <text x="164" y="628">message_3,</text>
                    <text x="244" y="628">Fragment</text>
                    <text x="292" y="628">1,</text>
                    <text x="312" y="628">L</text>
                    <text x="336" y="628">and</text>
                    <text x="360" y="628">M</text>
                    <text x="388" y="628">bits</text>
                    <text x="428" y="628">set)</text>
                    <text x="340" y="676">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="192" y="724">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="740">(EDHOC</text>
                    <text x="164" y="740">message_3,</text>
                    <text x="244" y="740">Fragment</text>
                    <text x="292" y="740">2,</text>
                    <text x="312" y="740">M</text>
                    <text x="336" y="740">bit</text>
                    <text x="372" y="740">set)</text>
                    <text x="340" y="788">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="192" y="836">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="92" y="852">(EDHOC</text>
                    <text x="164" y="852">message_3,</text>
                    <text x="244" y="852">Fragment</text>
                    <text x="292" y="852">3)</text>
                    <text x="340" y="900">EAP-Request/EAP-Type=EAP-EDHOC</text>
                    <text x="348" y="916">(EDHOC</text>
                    <text x="420" y="916">message_4)</text>
                    <text x="192" y="964">EAP-Response/EAP-Type=EAP-EDHOC</text>
                    <text x="416" y="1012">EAP-Success</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
EAP-EDHOC Peer                                   EAP-EDHOC Server

    |                                                       |
    |                                EAP-Request/Identity   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/Identity                               |
    |   (Privacy-Friendly)                                  |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                            (EDHOC Start, S bit set)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_1)                                   |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |     (EDHOC message_2, Fragment 1, L and M bits set)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |            (EDHOC message_2, Fragment 2, M bit set)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                       (EDHOC message_2, Fragment 3)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3, Fragment 1, L and M bits set)     |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3, Fragment 2, M bit set)            |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    |   (EDHOC message_3, Fragment 3)                       |
    | ----------------------------------------------------> |
    |                                                       |
    |                      EAP-Request/EAP-Type=EAP-EDHOC   |
    |                                   (EDHOC message_4)   |
    | <---------------------------------------------------- |
    |                                                       |
    |   EAP-Response/EAP-Type=EAP-EDHOC                     |
    | ----------------------------------------------------> |
    |                                                       |
    |                                         EAP-Success   |
    | <---------------------------------------------------- |
    |                                                       |
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="identity-verification">
        <name>Identity Verification</name>
        <t>The EAP peer identity provided in the EAP-Response/Identity is not authenticated by EAP-EDHOC. Unauthenticated information <bcp14>MUST NOT</bcp14> be used for accounting purposes or to give authorization. The EAP authenticator and the EAP server <bcp14>MAY</bcp14> examine the identity presented in EAP-Response/Identity for purposes such as routing and EAP method selection. EAP-EDHOC servers <bcp14>MAY</bcp14> reject conversations if the identity does not match their policy.</t>
        <t>The EAP server identity in the EDHOC server certificate is typically a fully qualified domain name (FQDN) in the SubjectAltName (SAN) extension. Since EAP-EDHOC deployments may use more than one EAP server, each with a different certificate, EAP peer implementations <bcp14>SHOULD</bcp14> allow for the configuration of one or more trusted root certificates (CA certificate) to authenticate the server certificate and one or more server names to match against the SubjectAltName (SAN) extension in the server certificate. If any of the configured names match any of the names in the SAN extension, then the name check passes. To simplify name matching, an EAP-EDHOC deployment can assign a name to represent an authorized EAP server and EAP Server certificates can include this name in the list of SANs for each certificate that represents an EAP-EDHOC server. If server name matching is not used, this degrades the confidence that the EAP server with which the EAP peer is interacting is authoritative for the given network. If name matching is not used with a public root CA, then effectively any server can obtain a certificate that will be trusted for EAP authentication by the peer.</t>
        <t>The process of configuring a root CA certificate and a server name is non-trivial; therefore, automated methods of provisioning are <bcp14>RECOMMENDED</bcp14>. For example, the eduroam federation <xref target="RFC7593"/> provides a Configuration Assistant Tool (CAT) to automate the configuration process. In the absence of a trusted root CA certificate (user-configured or system-wide), EAP peers <bcp14>MAY</bcp14> implement a Trust On First Use (TOFU) mechanism where the peer trusts and stores the server certificate during the first connection attempt. The EAP peer ensures that the server presents the same stored certificate on subsequent interactions. The use of a TOFU mechanism does not allow for the server certificate to change without out-of-band validation of the certificate and is therefore not suitable for many deployments including ones where multiple EAP servers are deployed for high availability. TOFU mechanisms increase the susceptibility to traffic interception attacks and should only be used if there are adequate controls in place to mitigate this risk.</t>
      </section>
      <section anchor="Key_Hierarchy">
        <name>Key Hierarchy</name>
        <t>The key derivation for EDHOC is described in Section 4 of <xref target="RFC9528"/>. The key material and Method-Id <bcp14>SHALL</bcp14> be derived from the PRK_exporter using the EDHOC_Exporter interface, see Section 4.2.1 of <xref target="RFC9528"/>.</t>
        <t>Type is the value of the EAP Type field defined in Section 2 of <xref target="RFC3748"/>. For EAP-EDHOC, Type has the value TBD1. The use of Type as context enables the reuse of exporter labels across other future EAP methods based on EDHOC.</t>
        <artwork><![CDATA[
Type        =  TBD1
MSK         =  EDHOC_Exporter(TBD2, << Type >>, 64)
EMSK        =  EDHOC_Exporter(TBD3, << Type >>, 64)
Method-Id   =  EDHOC_Exporter(TBD4, << Type >>, 64)
Session-Id  =  Type || Method-Id
Peer-Id     =  ID_CRED_I
Server-Id   =  ID_CRED_R
]]></artwork>
        <t>EAP-EDHOC exports the MSK and the EMSK and does not specify how it is used by lower layers.</t>
      </section>
      <section anchor="parameter-negotiation-and-compliance-requirements">
        <name>Parameter Negotiation and Compliance Requirements</name>
        <t>The EAP-EDHOC peers and EAP-EDHOC servers <bcp14>MUST</bcp14> comply with the compliance requirements (mandatory-to-implement cipher suites, signature algorithms, key exchange algorithms, extensions, etc.) defined in Section 8 of <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="eap-state-machines">
        <name>EAP State Machines</name>
        <t>The EAP-EDHOC server sends message_4 in an EAP-Request as a protected success result indication.</t>
        <t>EDHOC error messages <bcp14>SHOULD</bcp14> be considered failure result indication, as defined in <xref target="RFC3748"/>. After sending or receiving an EDHOC error message, the EAP-EDHOC server may only send an EAP-Failure. EDHOC error messages are unprotected.</t>
        <t>The keying material can be derived after the EDHOC message_2 has been sent or received. Implementations following <xref target="RFC4137"/> can then set the eapKeyData and aaaEapKeyData variables.</t>
        <t>The keying material can be made available to lower layers and the EAP authenticator after the protected success indication (message_4) has been sent or received. Implementations following <xref target="RFC4137"/> can set the eapKeyAvailable and aaaEapKeyAvailable variables.</t>
      </section>
    </section>
    <section anchor="detailed-description">
      <name>Detailed Description of the EAP-EDHOC Request and Response Protocol</name>
      <t>The EAP-EDHOC packet format for Requests and Responses is summarized in <xref target="packet"/>. Fields are transmitted from left to right. following a structure inspired by the EAP-TLS packet format <xref target="RFC5216"/>. As specified in Section 4.1 of <xref target="RFC3748"/>, EAP Request and Response packets consist of Code, Identifier, Length, Type, and Type-Data fields. The functions of the Code, Identifier, Length, and Type fields are reiterated here for convenience. The EAP Type-Data field consists of the R, S, M, L, EDHOC Message Length, and EDHOC Data fields.</t>
      <figure anchor="packet">
        <name>EAP-EDHOC Request and Response Packet Format</name>
        <artwork align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Code      |   Identifier  |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |  R  |S|M|  L  |      EDHOC Message Length     ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          EDHOC Data                           ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <section anchor="eap-edhoc-request-packet">
        <name>EAP-EDHOC Request Packet</name>
        <dl>
          <dt>Code:</dt>
          <dd>
            <t>1 (Request)</t>
          </dd>
          <dt>Identifier:</dt>
          <dd>
            <t>The Identifier field is one octet and aids in matching responses with requests. The Identifier field <bcp14>MUST</bcp14> be changed on each new (non-retransmission) Request packet, and <bcp14>MUST</bcp14> be the same if a Request packet is retransmitted due to a timeout while waiting for a Response.</t>
          </dd>
          <dt>Length:</dt>
          <dd>
            <t>The Length field is two octets and indicates the length of the EAP packet including the Code, Identifier, Length, Type, and Data fields.  Octets outside the range of the Length field should be treated as Data Link Layer padding and <bcp14>MUST</bcp14> be ignored on reception.</t>
          </dd>
          <dt>Type:</dt>
          <dd>
            <t>TBD1 (EAP-EDHOC)</t>
          </dd>
          <dt>R:</dt>
          <dd>
            <t>Implementations of this specification <bcp14>MUST</bcp14> set the R bits (reserved) to zero and <bcp14>MUST</bcp14> ignore them on reception.</t>
          </dd>
          <dt>S:</dt>
          <dd>
            <t>The S bit (EAP-EDHOC start) is set in an EAP-EDHOC Start message. This differentiates the EAP-EDHOC Start message from a fragment acknowledgement.</t>
          </dd>
          <dt>M:</dt>
          <dd>
            <t>The M bit (more fragments) is set on all but the last fragment. I.e., when there is no fragmentation, it is set to zero.</t>
          </dd>
          <dt>L:</dt>
          <dd>
            <t>The L field is the binary encoding of the size of the EDHOC Message Length, in the range 0 byte to 4 bytes. All three bits set to 0 indicates that the EDHOC Message Length field is not present. If the first two bits of the L field are set to 0, and the final bit is set to 1, then the size of the EDHOC Message Length field is 1 byte, and so on.</t>
          </dd>
          <dt>EDHOC Message Length:</dt>
          <dd>
            <t>The EDHOC Message Length field can have a size of one to four octets and is present only if the L fild represent a value greater than 0. This field provides the total length of the EDHOC message that is being fragmented. When there is no fragmentation it is not present.</t>
          </dd>
          <dt>EDHOC Data:</dt>
          <dd>
            <t>The EDHOC data consists of the the whole or a fragment of transported EDHOC message.</t>
          </dd>
        </dl>
      </section>
      <section anchor="eap-edhoc-response-packet">
        <name>EAP-EDHOC Response Packet</name>
        <dl>
          <dt>Code:</dt>
          <dd>
            <t>2 (Response)</t>
          </dd>
          <dt>Identifier:</dt>
          <dd>
            <t>The Identifier field is one octet and <bcp14>MUST</bcp14> match the Identifier field from the corresponding request.</t>
          </dd>
          <dt>Length:</dt>
          <dd>
            <t>The Length field is two octets and indicates the length of the EAP packet including the Code, Identifier, Length, Type, and Data fields. Octets outside the range of the Length field should be treated as Data Link Layer padding and <bcp14>MUST</bcp14> be ignored on reception.</t>
          </dd>
          <dt>Type:</dt>
          <dd>
            <t>TBD1 (EAP-EDHOC)</t>
          </dd>
          <dt>R:</dt>
          <dd>
            <t>Implementations of this specification <bcp14>MUST</bcp14> set the R bits (reserved) to zero and <bcp14>MUST</bcp14> ignore them on reception.</t>
          </dd>
          <dt>S:</dt>
          <dd>
            <t>The S bit (EAP-EDHOC start) is set to zero.</t>
          </dd>
          <dt>M:</dt>
          <dd>
            <t>The M bit (more fragments) is set on all but the last fragment. I.e., when there is no fragmentation, it is set to zero.</t>
          </dd>
          <dt>L:</dt>
          <dd>
            <t>The L field is the binary encoding of the size of the EDHOC Message Length, in the range 0 byte to 4 bytes. All three bits set to 0 indicates that the EDHOC Message Length field is not present. If the first two bits of the L field are set to 0, and the final bit is set to 1, then the size of the EDHOC Message Length field is 1 byte, and so on.</t>
          </dd>
          <dt>EDHOC Message Length:</dt>
          <dd>
            <t>The EDHOC Message Length field can have a size of one to four octets and is  present only if the L bits represent a value greater than 0.  This field provides the total length of the EDHOC message that is being fragmented. When there is no fragmentation it is not present.</t>
          </dd>
          <dt>EDHOC Data:</dt>
          <dd>
            <t>The EDHOC data consists of the the whole or a fragment of transported EDHOC message.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="eap-type">
        <name>EAP Type</name>
        <t>IANA has registered the following new type in the "Method Types" registry under the group name "Extensible Authentication Protocol (EAP) Registry":</t>
        <artwork><![CDATA[
Value: TBD1
Description: EAP-EDHOC
]]></artwork>
      </section>
      <section anchor="edhoc-exporter-label-registry">
        <name>EDHOC Exporter Label Registry</name>
        <t>IANA has registered the following new labels in the "EDHOC Exporter Label" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)":</t>
        <artwork><![CDATA[
Label: TBD2
Description: MSK of EAP method EAP-EDHOC
]]></artwork>
        <artwork><![CDATA[
Label: TBD3
Description: EMSK of EAP method EAP-EDHOC
]]></artwork>
        <artwork><![CDATA[
Label: TBD4
Description: Method-Id of EAP method EAP-EDHOC
]]></artwork>
        <t>The allocations have been updated to reference this document.</t>
      </section>
      <section anchor="edhoc-external-authorization-data-registry">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA has registered the following new label in the "EDHOC External Authorization Data" registry under the group name "Ephemeral Diffie-Hellman Over COSE (EDHOC)":</t>
        <artwork><![CDATA[
Label: TBD5
Description: EAP channel binding information
]]></artwork>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of EAP <xref target="RFC3748"/> and EDHOC <xref target="RFC9528"/> apply to this document. Since the design of EAP-EDHOC closely follows EAP-TLS 1.3 <xref target="RFC9190"/>, many of its security considerations are also relevant.</t>
      <section anchor="security-claims">
        <name>Security Claims</name>
        <section anchor="Channel_Binding">
          <name>EAP Channel Binding</name>
          <t>EAP-EDHOC allows the secure exchange of information between the endpoints of the authentication process (i.e., the EAP peer and the EAP server) using protected data fields. These fields can be used to exchange EAP channel binding information, as defined in <xref target="RFC6677"/>.</t>
          <t>Section 6 in <xref target="RFC6677"/> outlines requirements for components implementing channel binding information, all of which are satisfied by EAP-EDHOC, including confidentiality and integrity protection. Additionally, EAP-EDHOC supports fragmentation, allowing the inclusion of additional information at the method level without issues.</t>
          <t>The channel binding protocol defined in <xref target="RFC6677"/> must be transported after keying material has been derived between the endpoints in the EAP communication and before the peer is exposed to potential adverse effects from joining an adversarial network. Therefore, the EAD_3 and EAD_4 fields, transmitted in EDHOC message_3 and EDHOC message_4, respectively, are perfect candidates for this purpose.</t>
          <t>If the server detects a consistency error in the channel binding information contained in EAD_3, it will send a protected indication of failed consistency in EAD_4. Subsequently, the EAP peer will respond with the standard empty EAP-EDHOC message, and the EAP server will conclude the exchange with an EAP-Failure message.</t>
          <t>Accordingly, a new EAD item is defined to incorporate EAP channel binding information into the EAD fields of the EAP-EDHOC messages:</t>
          <ul spacing="normal">
            <li>
              <t>ead_label = TBD5</t>
            </li>
            <li>
              <t>ead_value is a CBOR byte string.</t>
            </li>
          </ul>
        </section>
        <section anchor="eap-security-claims">
          <name>EAP Security Claims</name>
          <t>EAP security claims are defined in Section 7.2.1 of <xref target="RFC3748"/>.
EAP-EDHOC security claims are described next and summarized in <xref target="sec-claims"/>.</t>
          <table anchor="sec-claims">
            <name>EAP-EDHOC security claims</name>
            <thead>
              <tr>
                <th align="left">Claim</th>
                <th align="left"> </th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Auth. principle:</td>
                <td align="left">Certificates, CWTs and all credential types for which COSE header parameters are defined (1)</td>
              </tr>
              <tr>
                <td align="left">Ciphersuite negotiation:</td>
                <td align="left">Yes (2)</td>
              </tr>
              <tr>
                <td align="left">Mutual authentication:</td>
                <td align="left">Yes (3)</td>
              </tr>
              <tr>
                <td align="left">Integrity protection:</td>
                <td align="left">Yes (4)</td>
              </tr>
              <tr>
                <td align="left">Replay protection:</td>
                <td align="left">Yes (5)</td>
              </tr>
              <tr>
                <td align="left">Confidentiality:</td>
                <td align="left">Yes (6)</td>
              </tr>
              <tr>
                <td align="left">Key derivation:</td>
                <td align="left">Yes (7)</td>
              </tr>
              <tr>
                <td align="left">Key strength:</td>
                <td align="left">The specified cryptosuites provide key strength of at least 128 bits.</td>
              </tr>
              <tr>
                <td align="left">Dictionary attack prot.:</td>
                <td align="left">Yes (8)</td>
              </tr>
              <tr>
                <td align="left">Fast reconnect:</td>
                <td align="left">No</td>
              </tr>
              <tr>
                <td align="left">Crypt. binding:</td>
                <td align="left">N/A</td>
              </tr>
              <tr>
                <td align="left">Session independence:</td>
                <td align="left">Yes (9)</td>
              </tr>
              <tr>
                <td align="left">Fragmentation:</td>
                <td align="left">Yes (<xref target="fragmentation"/>)</td>
              </tr>
              <tr>
                <td align="left">Channel binding:</td>
                <td align="left">Yes (<xref target="Channel_Binding"/>: EAD_3 and EAD_4 can be used to convey integrity-protected channel properties, such as network SSID or peer MAC address.)</td>
              </tr>
            </tbody>
          </table>
          <ul spacing="normal">
            <li>
              <t>(1) Authentication principle:
EAP-EDHOC establishes a shared secret based on an authenticated ECDH key exchange. The key exchange is authenticated using different kinds of credentials. EAP-EDHOC supports EDHOC credential types. EDHOC supports all credential types for which COSE header parameters are defined. This include X.509 certificates <xref target="RFC9360"/>, C509 certificates, CWTs (<xref target="RFC9528"/> Section 3.5.3.1) and CCSs (<xref target="RFC8392"/> Section 3.5.3.1).</t>
            </li>
            <li>
              <t>(2) Cipher suite negotiation:
The Initiator's list of supported cipher suites and order of preference is fixed, and the selected cipher suite is the cipher suite that is most preferred by the Initiator and that is supported by both the Initiator and the Responder. EDHOC supports all signature algorithms defined by COSE.</t>
            </li>
            <li>
              <t>(3) Mutual authentication:
The initiator and responder authenticate each other through the EDHOC exchange.</t>
            </li>
            <li>
              <t>(4) Integrity protection:
EDHOC integrity protects all message content using transcript hashes for key derivation and as additional authenticated data, including, e.g., method type, cipher suites, and external authorization data.</t>
            </li>
            <li>
              <t>(5) Replay protection. EDHOC broadens the message authentication coverage to include  algorithms, external authorization data, and prior plaintext messages, as well as adding an explicit method type. By doing this, an attacker cannot replay or inject messages from a different EDHOC session.</t>
            </li>
            <li>
              <t>(6) Confidentiality. It is required that the encryption of message_3 provides confidentiality against active attackers and EDHOC message_4 relies on the use of authenticated encryption.</t>
            </li>
            <li>
              <t>(7) Key derivation. Except for MSK and EMSK, derived keys are not exported. Key derivation is discussed in <xref target="Key_Hierarchy"/>.</t>
            </li>
            <li>
              <t>(8) Dictionary attack protection. EAP-EDHOC provides Dictionary attack protection.</t>
            </li>
            <li>
              <t>(9) Session independence. EDHOC generates computationally independent keys derived from the ECDH shared secret.</t>
            </li>
          </ul>
        </section>
        <section anchor="additional-security-claims">
          <name>Additional Security Claims</name>
          <ul spacing="normal">
            <li>
              <t>(10) Cryptographic strength and Forward secrecy:
Only ephemeral Diffie-Hellman methods are supported by EDHOC, which ensures that the compromise of a session key does not also compromise earlier sessions' keys.</t>
            </li>
            <li>
              <t>(11) Identity protection:
EDHOC secures the Responder's credential identifier against passive attacks and the Initiator's credential identifier against active attacks. An active attacker can get the credential identifier of the Responder by eavesdropping on the destination address used for transporting message_1 and then sending their own message_1.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="peer-and-server-identities">
        <name>Peer and Server Identities</name>
        <t>The Peer-Id represents the identity to be used for access control and accounting purposes.  The Server-Id represents the identity of the EAP server. The Peer-Id and Server-Id are determined from the information provided in the credentials used.</t>
        <t>ID_CRED_I and ID_CRED_R are used to identify the credentials of the initiator (EAP peer) and Responder (EAP server). Therefore, for Server-Id the ID_CRED_R is used, and for Peer-Id the ID_CRED_I is used.</t>
      </section>
      <section anchor="certificate-validation">
        <name>Certificate Validation</name>
        <t>Same considerations as EAP-TLS1.3 Section 5.3 <xref target="RFC9190"/> apply here in relation to the use of certificates.</t>
        <t>When other types of credentials are used such as CWT/CCS, the application needs to have a clear trust-establishment mechanism and identify the pertinent trust anchors <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="certificate-revocation">
        <name>Certificate Revocation</name>
        <t>Same considerations as EAP-TLS1.3 Section 5.4 <xref target="RFC9190"/> apply here in relation to certificates.</t>
        <t>When other types of credentials are used such as CWT/CCS, the endpoints are in charge of handling revocation and confirming the validity and integrity of CWT/CCS <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="packet-modification-attacks">
        <name>Packet Modification Attacks</name>
        <t>EAP-EDHOC relies on EDHOC, which is designed to encrypt and integrity protect as much information as possible. Any change is detected by means of the transcript hashes integrity verification.</t>
      </section>
      <section anchor="authorization">
        <name>Authorization</name>
        <t>Following the considerations of EDHOC in appendix D.5 Unauthenticated Operation <xref target="RFC9528"/>, where EDHOC can be used without authentication by allowing the Initiator or Responder to communicate with any identity except its own.</t>
        <t>When peer authentication is not used, EAP-EDHOC server implementations <bcp14>MUST</bcp14> take care to limit network access appropriately for authenticated peers. Authorization and accounting <bcp14>MUST</bcp14> be based on authenticated information such as information in the certificate. The requirements for Network Access Identifiers (NAIs) specified in Section 4 of <xref target="RFC7542"/> apply and <bcp14>MUST</bcp14> be followed.</t>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>Considerations in Section 9.6 of <xref target="RFC9528"/> against tracking of users and eavesdropping on Identity Responses or certificates apply here. Also, the considerations of Section 5.8 of <xref target="RFC9190"/> regarding anonymous NAIs also applies.</t>
      </section>
      <section anchor="pervasive-monitoring">
        <name>Pervasive Monitoring</name>
        <t>Considerations in  Section 9.1 of <xref target="RFC9528"/> about pervasive monitoring apply here.</t>
      </section>
      <section anchor="cross-protocol-attacks">
        <name>Cross-Protocol Attacks</name>
        <t>This in TLS1.3 is applied in the context of resumption. Does not apply here.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC3748">
          <front>
            <title>Extensible Authentication Protocol (EAP)</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="L. Blunk" initials="L." surname="Blunk"/>
            <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht"/>
            <author fullname="J. Carlson" initials="J." surname="Carlson"/>
            <author fullname="H. Levkowetz" initials="H." role="editor" surname="Levkowetz"/>
            <date month="June" year="2004"/>
            <abstract>
              <t>This document defines the Extensible Authentication Protocol (EAP), an authentication framework which supports multiple authentication methods. EAP typically runs directly over data link layers such as Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP. EAP provides its own support for duplicate elimination and retransmission, but is reliant on lower layer ordering guarantees. Fragmentation is not supported within EAP itself; however, individual EAP methods may support this. This document obsoletes RFC 2284. A summary of the changes between this document and RFC 2284 is available in Appendix A. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3748"/>
          <seriesInfo name="DOI" value="10.17487/RFC3748"/>
        </reference>
        <reference anchor="RFC7542">
          <front>
            <title>The Network Access Identifier</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>In order to provide inter-domain authentication services, it is necessary to have a standardized method that domains can use to identify each other's users. This document defines the syntax for the Network Access Identifier (NAI), the user identifier submitted by the client prior to accessing resources. This document is a revised version of RFC 4282. It addresses issues with international character sets and makes a number of other corrections to RFC 4282.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7542"/>
          <seriesInfo name="DOI" value="10.17487/RFC7542"/>
        </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>
        <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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4137">
          <front>
            <title>State Machines for Extensible Authentication Protocol (EAP) Peer and Authenticator</title>
            <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="N. Petroni" initials="N." surname="Petroni"/>
            <author fullname="Y. Ohba" initials="Y." surname="Ohba"/>
            <date month="August" year="2005"/>
            <abstract>
              <t>This document describes a set of state machines for Extensible Authentication Protocol (EAP) peer, EAP stand-alone authenticator (non-pass-through), EAP backend authenticator (for use on Authentication, Authorization, and Accounting (AAA) servers), and EAP full authenticator (for both local and pass-through). This set of state machines shows how EAP can be implemented to support deployment in either a peer/authenticator or peer/authenticator/AAA Server environment. The peer and stand-alone authenticator machines are illustrative of how the EAP protocol defined in RFC 3748 may be implemented. The backend and full/pass-through authenticators illustrate how EAP/AAA protocol support defined in RFC 3579 may be implemented. Where there are differences, RFC 3748 and RFC 3579 are authoritative.</t>
              <t>The state machines are based on the EAP "Switch" model. This model includes events and actions for the interaction between the EAP Switch and EAP methods. A brief description of the EAP "Switch" model is given in the Introduction section.</t>
              <t>The state machine and associated model are informative only. Implementations may achieve the same results using different methods. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4137"/>
          <seriesInfo name="DOI" value="10.17487/RFC4137"/>
        </reference>
        <reference anchor="RFC5216">
          <front>
            <title>The EAP-TLS Authentication Protocol</title>
            <author fullname="D. Simon" initials="D." surname="Simon"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="R. Hurst" initials="R." surname="Hurst"/>
            <date month="March" year="2008"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides support for multiple authentication methods. Transport Layer Security (TLS) provides for mutual authentication, integrity-protected ciphersuite negotiation, and key exchange between two endpoints. This document defines EAP-TLS, which includes support for certificate-based mutual authentication and key derivation.</t>
              <t>This document obsoletes RFC 2716. A summary of the changes between this document and RFC 2716 is available in Appendix A. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5216"/>
          <seriesInfo name="DOI" value="10.17487/RFC5216"/>
        </reference>
        <reference anchor="RFC6677">
          <front>
            <title>Channel-Binding Support for Extensible Authentication Protocol (EAP) Methods</title>
            <author fullname="S. Hartman" initials="S." role="editor" surname="Hartman"/>
            <author fullname="T. Clancy" initials="T." surname="Clancy"/>
            <author fullname="K. Hoeper" initials="K." surname="Hoeper"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document defines how to implement channel bindings for Extensible Authentication Protocol (EAP) methods to address the "lying Network Access Service (NAS)" problem as well as the "lying provider" problem. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6677"/>
          <seriesInfo name="DOI" value="10.17487/RFC6677"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7593">
          <front>
            <title>The eduroam Architecture for Network Roaming</title>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="T. Wolniewicz" initials="T." surname="Wolniewicz"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document describes the architecture of the eduroam service for federated (wireless) network access in academia. The combination of IEEE 802.1X, the Extensible Authentication Protocol (EAP), and RADIUS that is used in eduroam provides a secure, scalable, and deployable service for roaming network access. The successful deployment of eduroam over the last decade in the educational sector may serve as an example for other sectors, hence this document. In particular, the initial architectural choices and selection of standards are described, along with the changes that were prompted by operational experience.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7593"/>
          <seriesInfo name="DOI" value="10.17487/RFC7593"/>
        </reference>
        <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="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="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="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="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="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-psk">
          <front>
            <title>EDHOC Authenticated with Pre-Shred Keys (PSK)</title>
            <author fullname="Elsa Lopez-Perez" initials="" surname="Lopez-Perez">
              <organization>Inria</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="Rafael Marin-Lopez" initials="R." surname="Marin-Lopez">
              <organization>University of Murcia</organization>
            </author>
            <date day="1" month="March" year="2025"/>
            <abstract>
              <t>   This document specifies a Pre-Shared Key (PSK) authentication method
   for the Ephemeral Diffie-Hellman Over COSE (EDHOC) key exchange
   protocol.  The PSK method enhances computational efficiency while
   providing mutual authentication, ephemeral key exchange, identity
   protection, and quantum resistance.  It is particularly 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 method flow, key
   derivation changes, message formatting, processing, and security
   considerations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-psk-03"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50% while also significantly reducing memory and code size
   compared to ASN.1.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 Certificate Signing Requests, C509 COSE headers, a
   C509 TLS certificate type, and a C509 file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-12"/>
        </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="3" month="March" year="2025"/>
            <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 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.  Also, it defines a canonical, CBOR-based
   representation that can be used to describe, distribute, and store
   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-01"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-impl-cons">
          <front>
            <title>Implementation Considerations for Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document provides considerations for guiding the implementation
   of the authenticated key exchange protocol Ephemeral Diffie-Hellman
   Over COSE (EDHOC).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-impl-cons-03"/>
        </reference>
        <reference anchor="Sec5G" target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3169">
          <front>
            <title>Security architecture and procedures for 5G System</title>
            <author initials="" surname="3GPP TS 33 501">
              <organization/>
            </author>
            <date year="2025" month="January"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 776?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank Eduardo Ingles-Sanchez for his contribution in the initial phase of this work. We also want to thank Marco Tiloca for his review.</t>
      <t>This work was supported partially by grant PID2020-112675RB-C44 funded by MCIN/AEI/10.13039/5011000011033 (ONOFRE3-UMU).</t>
      <t>This work was supported partially by Vinnova - the Swedish Agency for Innovation Systems - through the EUREKA CELTIC-NEXT project CYPRESS.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
q+m09f8Bn2HxEx/GAAA=

-->

</rfc>
