<?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.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-emu-eap-edhoc-02" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <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-02"/>
    <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="October" day="21"/>
    <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 EAP authentication method EAP-EDHOC, based on Ephemeral Diffie-Hellman Over COSE (EDHOC).
EDHOC provides a lightweight authenticated Diffie-Hellman key exchange with ephemeral keys, using COSE to provide security services efficiently encoded in CBOR.
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 cipher suite negotiation and the establishment of shared secret keying material provided by Ephemeral Diffie-Hellman Over COSE (EDHOC) <xref target="RFC9528"/>. EDHOC 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, i.e., 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?>

<t>Readers are expected to be familiar with the terms and concepts described in EAP <xref target="RFC3748"/>  and OSCORE <xref target="RFC8613"/>.</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 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.<br/>
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>As a reminder of the EAP entities and their roles involved in the EAP exchange, we have the EAP peer, EAP authenticator and EAP server. The EAP authenticator is the entity initiating the EAP authentication. The EAP peer is the entity that responds to the EAP authenticator. The EAP server is the entity that determines the EAP authentication method to be used. If the EAP server is not located on a backend authentication server, the EAP server is part of the EAP authenticator. For simplicity, we will show in the Figures with flows of operation only the EAP peer and EAP server.</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 means of the ephemeral Diffie-Hellman public keys exchanged 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><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>
            <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>
          <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>
        </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>
            <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="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>
            <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 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>
          <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 the plaintext in message_2 is limited to the length of the output of the key derivation function, which in turn is determined by the EDHOC hash algorithm of the EDHOC cipher suite that is used in the EDHOC session. 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, when an EDHOC message specifies a certificate as the sender's authentication credential and the certificate is transported by value instead of identified by reference, the certificate may in principle be as long as 16 MB.
Hence, the EAP-EDHOC messages sent in a single round may 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.</t>
          <t>EAP-EDHOC fragmentation support is provided through the addition of flags
   octet within the EAP-Response and EAP-Request packets, as well as an
   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 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>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     |
    |                                 (EDHOC message_2,     |
    |                           (Fragment 2: M bits 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,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 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 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 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 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 new (non-retransmission) Request packet, and MUST be the same if a Request packet is retransmitted due to a timeout while waiting for a Response.
]]></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 transported EDHOC message.
]]></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 transported 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 a 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 cipher suite that is most preferred by the Initiator and that is supported by both the Initiator and the Responder.</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, cipher suites, and external authorization data.</t>
          </li>
        </ol>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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 774?>

<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>We also want to thank Marco Tiloca for his review.</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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
/zs7QybNNKun097/A1h4a9H9oQAA

-->

</rfc>
