<?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.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-emu-eap-edhoc-01" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="EAP-EDHOC">Using the Extensible Authentication Protocol with Ephemeral Diffie-Hellman over COSE (EDHOC)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-edhoc-01"/>
    <author initials="D." surname="Garcia-Carrillo" fullname="Dan Garcia-Carrillo">
      <organization abbrev="University of Oviedo">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 abbrev="University of Murcia">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 abbrev="Ericsson">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 abbrev="Ericsson">Ericsson</organization>
      <address>
        <postal>
          <street>SE-164 80 Stockholm</street>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="05"/>
    <area>SEC</area>
    <workgroup>EMU Working Group</workgroup>
    <abstract>
      <?line 74?>

<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-EDHOC with Ephemeral Diffie-Hellman Over COSE (EDHOC).
EDHOC provides a lightweight authenticated Diffie-Hellman key exchange with ephemeral keys, using COSE (RFC 9052, RFC 9053) to provide security services efficiently encoded in CBOR (RFC 8949).
This document also provides guidance on authentication and authorization for EAP-EDHOC.</t>
    </abstract>
  </front>
  <middle>
    <?line 81?>

<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 uses COSE-defined credential-based mutual authentication, utilizing the EDHOC protocol cipher suite negotiation and establishment of shared secret keying material.
Ephemeral Diffie-Hellman Over COSE (EDHOC, <xref target="RFC9528"/>) is a very compact and lightweight authenticated key exchange protocol designed for highly constrained settings.
The main objective for EDHOC is to be a matching security handshake protocol to OSCORE <xref target="RFC8613"/>, i.e., to provide authentication and session key establishment for IoT use cases such as those built on CoAP <xref target="RFC7252"/> involving 'things' with embedded microcontrollers, sensors, and actuators.
 EDHOC reuses the same lightweight primitives as OSCORE, CBOR <xref target="RFC8949"/> and COSE <xref target="RFC9052"/> <xref target="RFC9053"/> and specifies the use of CoAP but is not bound to a particular transport.
The EAP-EDHOC method will enable the integration of EDHOC in different applications and use cases using the EAP framework.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</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 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.  EAP-EDHOC
   uses all messages in the exchange, and message_4 is mandatory, as an
   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 protocol encapsulated in the data fields of EAP-Response and EAP-Request packets. When EAP-EDHOC is used, the formatting and processing of the EDHOC message <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>
        <section anchor="authentication">
          <name>Authentication</name>
          <t>EAP-EDHOC authentication credentials can be of any type supported by COSE and be transported or referenced by EDHOC.</t>
          <t>EAP-EDHOC provides forward secrecy by exchange of ephemeral Diffie-Hellman public keys in message_1 and message_2.</t>
          <t>The optimization combining the execution of EDHOC with the first subsequent OSCORE transaction specified in <xref target="I-D.ietf-core-oscore-edhoc"/> is not supported in this EAP method.</t>
          <t>Figure 1 shows an example message flow for a successful EAP-EDHOC.</t>
          <figure anchor="message-flow">
            <name>EAP-EDHOC Mutual Authentication</name>
            <artwork 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>
          </figure>
        </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, EDHOC specification has a set of requirements for its transport protocol <xref target="RFC9528"/>. These include handling message loss, reordering, duplication, fragmentation, demultiplex EDHOC messages from other types of messages, denial-of-service protection, and message correlation. 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 peer and 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 Code 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>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, 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><xref target="message1-reject"/>, <xref target="message2-reject"/> and <xref target="message3-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>
            <artwork 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>
          </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>
            <artwork 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>
          </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>
          <figure anchor="message3-reject">
            <name>EAP-EDHOC Server rejection of message_3</name>
            <artwork 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>
          </figure>
          <t><xref target="message3-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>
            <artwork 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>
          </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 client 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 client 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>
          <t>EAP-EDHOC is always used with privacy. This does not add any extra round trips and the message flow with privacy is just the normal message flow as shown in <xref target="message-flow"/>.</t>
        </section>
        <section anchor="fragmentation">
          <name>Fragmentation</name>
          <t>EAP-EDHOC fragmentation support is provided through the addition of a flags octet within the EAP-Response and EAP-Request packets, as well as a (conditional) EAP-EDHOC Message Length field that can be one 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). Of these fields, we will highlight the one that contains the flag octet, which is used to steer the fragmentation process. 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, but they <bcp14>MUST</bcp14> accept unfragmented messages with and without the L bit set.
Some EAP implementations and access networks may limit the number of EAP packet exchanges that can be handled.
To avoid fragmentation, it is <bcp14>RECOMMENDED</bcp14> to keep the sizes of EAP-EDHOC peer, EAP-EDHOC server, and trust anchor authentication credentials small and the length of the certificate chains short.
In addition, it is <bcp14>RECOMMENDED</bcp14> to use mechanisms that reduce the sizes of Certificate messages.</t>
          <t>EDHOC is designed to perform well in constrained networks where message sizes are restricted for performance reasons.
In the basic message construction, the size of plaintext in message_2 is limited to the length of the output of the key derivation function which in turn is decided by the EDHOC hash function. For example, with SHA-256 as EDHOC hash algorithm, the maximum size of plaintext in message_2 is 8160 bytes.
However, EDHOC also defines an optional backward compatible method for handling arbitrarily long message_2 plaintext sizes, see Appendix G in <xref target="RFC9528"/>. The other three EAP-EDHOC messages do not have an upper bound.</t>
          <t>Furthermore, in the case of sending a certificate in a message instead of a reference, a certificate may in principle be as long as 16 MB.
Hence, the EAP-EDHOC messages sent in a single round may thus be larger than the MTU size or the maximum Remote Authentication Dial-In User Service (RADIUS) packet size of 4096 octets.  As a result, an EAP-EDHOC implementation <bcp14>MUST</bcp14> provide its support for fragmentation and reassembly.</t>
          <t>Since EAP is a simple ACK-NAK protocol, fragmentation support can be
  easily added. In EAP, fragments that are lost or damaged
   in transit will be retransmitted, and since sequencing information is
   provided by the Identifier field in EAP, there is no need for a
   fragment offset field as is provided in IPv4
   EAP-EDHOC fragmentation support is provided through the addition of flags
   octet within the EAP-Response and EAP-Request packets, as well as a
   EDHOC Message Length field.  Flags include the Length
   included (L), More fragments (M), and EAP-EDHOC Start (S) bits.  The L
   flag is set to indicate the presence of the EDHOC Message
   Length field, and <bcp14>MUST</bcp14> be set for the first fragment of a fragmented
   EDHOC message.  The M flag is set on all but the
   last fragment.  The S flag is set only within the EAP-EDHOC start
   message sent from 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 will appear as
   follows:</t>
          <figure>
            <name>Fragmentation example of EAP-EDHOC Authentication</name>
            <artwork 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,M bits set)    |
    | <---------------------------------------------------- |
    |   EAP-Response/                                       |
    |   EAP-Type=EAP-EDHOC                                  |
    | ----------------------------------------------------> |
    |                                      EAP-Request/     |
    |                                EAP-Type=EAP-EDHOC     |
    |                           (Fragment 2: M bits set)    |
    | <---------------------------------------------------- |
    |   EAP-Response/                                       |
    |   EAP-Type=EAP-EDHOC                                  |
    | ----------------------------------------------------> |
    |                                      EAP-Request/     |
    |                                EAP-Type=EAP-EDHOC     |
    |                                       (Fragment 3)    |
    | <---------------------------------------------------- |
    |   EAP-Response/                                       |
    |   EAP-Type=EAP-EDHOC                                  |
    |   (EDHOC message_3,                                   |
    |    Fragment 1: L,M bits set)                          |
    | ----------------------------------------------------> |
    |                                         EAP-Request/  |
    |                                   EAP-Type=EAP-EDHOC  |
    | <---------------------------------------------------  |
    |   EAP-Response/                                       |
    |   EAP-Type=EAP-EDHOC                                  |
    |   (EDHOC message_3,                                   |
    |    Fragment 2: M bits 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>
          </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 authenticator and the EAP-EDHOC 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, then it degrades the confidence that the EAP server with which it 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 schedule 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, the Type field has the value TBD1.</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
]]></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 7 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
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 Protocol</name>
      <section anchor="eap-edhoc-request-packet">
        <name>EAP-EDHOC Request Packet</name>
        <t>A summary of the EAP-EDHOC Request packet format is shown below.  The
   fields are transmitted from left to right.</t>
        <artwork><![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      |     Flags     |      EDHOC Message Length
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   EDHOC Message Length        |       EDHOC Data...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Code</t>
        <artwork><![CDATA[
  1
]]></artwork>
        <t>Identifier</t>
        <artwork><![CDATA[
  The Identifier field is one octet and aids in matching responses
  with requests.  The Identifier field MUST be changed on each
  Request packet.
]]></artwork>
        <t>Length</t>
        <artwork><![CDATA[
  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 MUST be ignored on
  reception.
]]></artwork>
        <t>Type</t>
        <artwork><![CDATA[
  TBD1 -- EAP-EDHOC
]]></artwork>
        <t>Flags</t>
        <artwork><![CDATA[
 0 1 2 3 4 5 6 7 8
 +-+-+-+-+-+-+-+-+
 |R R R S M L L L|
 +-+-+-+-+-+-+-+-+

 R = Reserved
 S = EAP-EDHOC start
 M = More fragments
 L = Length of EDHOC Message Length

  Implementations of this specification MUST set the reserved bits to zero and 
  MUST ignore them on reception.

  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.  

  The M bit (more fragments) is set on all but the last fragment.  

  The three L bits is the binary encoding of the size of the EDHOC Message Length, 
  in the range 1 byte to 4 bytes. All three bits set to 0 indicates that the field 
  is not present. If the first two L bits are set to 0, and the final L bit of the 
  flag is set to 1, then the size of the EDHOC Message Length field is 1 byte, and 
  so on.  
]]></artwork>
        <t>EDHOC Message Length</t>
        <artwork><![CDATA[
  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.
]]></artwork>
        <t>EDHOC data</t>
        <artwork><![CDATA[
  The EDHOC data consists of the encapsulated EDHOC packet in EDHOC
  message format.
]]></artwork>
      </section>
      <section anchor="eap-edhoc-response-packet">
        <name>EAP-EDHOC Response Packet</name>
        <t>A summary of the EAP-EDHOC Response packet format is shown below.
The fields are transmitted from left to right.</t>
        <artwork><![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      |     Flags     |      EDHOC Message Length
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   EDHOC Message Length        |       EDHOC Data...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Code</t>
        <artwork><![CDATA[
  2
]]></artwork>
        <t>Identifier</t>
        <artwork><![CDATA[
  The Identifier field is one octet and MUST match the Identifier
  field from the corresponding request.
]]></artwork>
        <t>Length</t>
        <artwork><![CDATA[
  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 MUST be ignored on
  reception.
]]></artwork>
        <t>Type</t>
        <artwork><![CDATA[
  TBD1 -- EAP-EDHOC
]]></artwork>
        <t>Flags</t>
        <artwork><![CDATA[
 0 1 2 3 4 5 6 7 8
 +-+-+-+-+-+-+-+-+
 |R R R R M L L L|
 +-+-+-+-+-+-+-+-+

 R = Reserved
 M = More fragments
 L = Length of EDHOC Message Length

  Implementations of this specification MUST set the reserved bits
  to zero and MUST ignore them on reception.

  The M bit (more fragments) is set on all but the last fragment.

  The three L bits are the binary encoding of the size of the EDHOC Message Length, 
  in the range of 1 byte to 4 bytes. All three bits set to 0 indicate that the field 
  is not present. If the first two L bits are set to 0, and the final L bit of the 
  flag is set to 1, then the size of the EDHOC Message Length field is 1 byte, and 
  so on.  
]]></artwork>
        <t>EDHOC Message Length</t>
        <artwork><![CDATA[
  The EDHOC Message Length field can be one to four octets and is present only
  if the L bit is set.  This field provides the total length of the
  EDHOC message that is being fragmented.
]]></artwork>
        <t>EDHOC data</t>
        <artwork><![CDATA[
  The EDHOC data consists of the encapsulated EDHOC message.
]]></artwork>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="eap-type">
        <name>EAP Type</name>
        <t>IANA has allocated EAP Type TBD1 for method EAP-EDHOC. The allocation has been updated to reference this document.</t>
      </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>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of EDHOC <xref target="RFC9528"/> apply to this document. The design of EAP-EDHOC follows closely EAP-TLS 1.3 <xref target="RFC9190"/> and so its security considerations also apply.</t>
      <t>Except for MSK and EMSK, derived keys are not exported.</t>
      <section anchor="security-claims">
        <name>Security Claims</name>
        <t>Using EAP-EDHOC provides the security claims of EDHOC, which are described next.</t>
        <ol spacing="normal" type="1"><li>
            <t>Mutual authentication:
    The initiator and responder authenticate each other through the EDHOC exchange.</t>
          </li>
          <li>
            <t>Forward secrecy:
    Only ephemeral Diffie-Hellman methods are supported by EDHOC, which ensures that the compromise of one session key does not also compromise earlier sessions' keys.</t>
          </li>
          <li>
            <t>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 its message_1 to the same address.</t>
          </li>
          <li>
            <t>Cipher suite negotiation:
    The Initiator's list of supported cipher suites and order of preference is fixed, and the selected cipher suite is the first cipher suite that the Responder supports.</t>
          </li>
          <li>
            <t>Integrity protection:
    EDHOC integrity protects all message content using transcript hashes for key derivation and as additional authenticated data, including, e.g., method type, ciphersuites, and external authorization data.</t>
          </li>
        </ol>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9528" target="https://www.rfc-editor.org/info/rfc9528" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9528.xml">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc3748" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3748.xml">
          <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="RFC4137" target="https://www.rfc-editor.org/info/rfc4137" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4137.xml">
          <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="RFC7542" target="https://www.rfc-editor.org/info/rfc7542" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7542.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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" target="https://www.rfc-editor.org/info/rfc9190" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9190.xml">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-edhoc-11" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-edhoc.xml">
          <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="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <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>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="9" month="April" 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. These especially include 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="Internet-Draft" value="draft-ietf-core-oscore-edhoc-11"/>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
          <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" target="https://www.rfc-editor.org/info/rfc7593" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7593.xml">
          <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="RFC9052" target="https://www.rfc-editor.org/info/rfc9052" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9052.xml">
          <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" target="https://www.rfc-editor.org/info/rfc9053" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9053.xml">
          <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="RFC8613" target="https://www.rfc-editor.org/info/rfc8613" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8949" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
          <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>
      </references>
    </references>
    <?line 771?>

<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 Francisco Lopez Gomez for his work on the implementation of EAP-EDHOC.</t>
      <t>This work has be possible partially by grant PID2020-112675RB-C44 funded by MCIN/AEI/10.13039/5011000011033.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
t7aGjOZpUk2nvf8HNR7t7V+cAAA=

-->

</rfc>
