<?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.6.39 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ingles-eap-edhoc-05" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.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-ingles-eap-edhoc-05"/>
    <author initials="E." surname="Ingles-Sanchez" fullname="Eduardo Ingles-Sanchez">
      <organization abbrev="University of Murcia">University of Murcia</organization>
      <address>
        <postal>
          <street>Murcia  30100</street>
          <country>Spain</country>
        </postal>
        <email>eduardo.ingles@um.es</email>
      </address>
    </author>
    <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="2023" month="September" day="12"/>
    <area>SEC</area>
    <workgroup>EMU Working Group</workgroup>
    <abstract>
      <?line 79?>

<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 8152) 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 86?>

<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="I-D.ietf-lake-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, CBOR <xref target="RFC8949"/> and COSE <xref target="RFC8152"/>, 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="I-D.ietf-lake-edhoc"/>. This document only lists additional and different requirements, restrictions, and processing compared to <xref target="I-D.ietf-lake-edhoc"/>.</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="I-D.ietf-lake-edhoc"/>. 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="I-D.ietf-lake-edhoc"/>. 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="I-D.ietf-lake-edhoc"/>. 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="I-D.ietf-lake-edhoc"/>.</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="I-D.ietf-lake-edhoc"/>.</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>
        <t>[1] Mutual authentication:
    The initiator and responder authenticate each other through the EDHOC exchange.</t>
        <t>[2] 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>
        <t>[3] 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>
        <t>[4] 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>
        <t>[5] 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>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-lake-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-lake-edhoc-22" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-edhoc.xml">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="25" month="August" year="2023"/>
            <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 OSCORE security context. By reusing COSE for cryptography, CBOR for encoding, and CoAP for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-22"/>
        </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>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-edhoc-08" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-edhoc.xml">
          <front>
            <title>Using EDHOC with CoAP and 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="8" month="August" year="2023"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol EDHOC can be run over CoAP and used by two peers to establish an OSCORE Security Context. 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-08"/>
        </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="RFC8152" target="https://www.rfc-editor.org/info/rfc8152" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8152.xml">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined 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>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </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 751?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Work on this document has in part been supported by the H2020 Projects IoTCrawler (grant agreement no. 779852) and INSPIRE-5Gplus (grant agreement no. 871808).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
I57QNKum097/A9/XIacMnAAA

-->

</rfc>
