<?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.15 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-emu-eap-edhoc-00" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.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-00"/>
    <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="June" day="13"/>
    <area>SEC</area>
    <workgroup>EMU Working Group</workgroup>
    <abstract>
      <?line 73?>

<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 80?>

<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 making use of 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 alternate 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 either 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 protocol or the EAP lower layer, as retransmissions can occur both in the lower layer and the EAP layer when EAP is run over a reliable lower layer. In other words, the EAP layer will do the retransmissions if the EAP lower layer cannot do it.</t>
          <t>For reordering, EAP is reliant on the EAP lower layer ordering guarantees for correct operation.</t>
          <t>For duplication and message correlation, EAP has the Identifier field, which provides both the peer and authenticator with the ability 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 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 of four octets.
 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 bit is set, we are specifying that the next message will be fragmented and that in such a message we can also find the length of the message.</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 backwards 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 own support for fragmentation and reassembly.</t>
          <t>Since EAP is a simple ACK-NAK protocol, fragmentation support can be
   added in a simple manner. 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 a flags
   octet within the EAP-Response and EAP-Request packets, as well as a
   EDHOC Message Length field of four octets.  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 four-octet EDHOC Message
   Length field, and <bcp14>MUST</bcp14> be set for the first fragment of a fragmented
   EDHOC message or set of messages.  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 is four octets, and provides the total length of the EDHOC
   message or set of messages 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.
   In order 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 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.
   In order 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 authenticated success result indication has
been sent or received (message_4). 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
  +-+-+-+-+-+-+-+-+
  |L M S R R R R R|
  +-+-+-+-+-+-+-+-+

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

  The L bit (length included) is set to indicate the presence of the
  four-octet EDHOC Message Length field and MUST be set for the first
  fragment of a fragmented EDHOC message or set of messages.  The M
  bit (more fragments) is set on all but the last fragment.  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.  Implementations of this specification MUST set
  the reserved bits to zero and MUST ignore them on reception.
]]></artwork>
        <t>EDHOC Message Length</t>
        <artwork><![CDATA[
  The EDHOC Message Length field is four octets and is present only
  if the L bit is set.  This field provides the total length of the
  EDHOC message or set of messages 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
  +-+-+-+-+-+-+-+-+
  |L M R R R R R R|
  +-+-+-+-+-+-+-+-+

  L = Length included
  M = More fragments
  R = Reserved

  The L bit (length included) is set to indicate the presence of the
  four-octet EDHOC Message Length field, 
  and MUST be set for the first
  fragment of a fragmented EDHOC message or set of messages.  The M
  bit (more fragments) is set on all but the last fragment.
  Implementations of this specification MUST set the reserved bits
  to zero and MUST ignore them on reception.
]]></artwork>
        <t>EDHOC Message Length</t>
        <artwork><![CDATA[
  The EDHOC Message Length field is four octets and is present only
  if the L bit is set.  This field provides the total length of the
  EDHOC message or set of messages 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>TBD.</t>
      <artwork><![CDATA[
[Editor's note: More security considerations to be added.]
]]></artwork>
      <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 own 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>
      </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 745?>

<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.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
