<?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.6 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-wg-coap-eap-10" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="CoAP-EAP">EAP-based Authentication Service for CoAP</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-wg-coap-eap-10"/>
    <author initials="R." surname="Marin-Lopez" fullname="Rafa Marin-Lopez">
      <organization abbrev="University of Murcia">University of Murcia</organization>
      <address>
        <postal>
          <street>Campus de Espinardo S/N, Faculty of Computer Science</street>
          <city>Murcia</city>
          <region/>
          <code>30100</code>
          <country>Spain</country>
        </postal>
        <email>rafa@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>Calle Luis Ortiz Berrocal S/N, Edificio Polivalente</street>
          <city>Gijon</city>
          <region>Asturias</region>
          <code>33203</code>
          <country>Spain</country>
        </postal>
        <email>garciadan@uniovi.es</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <area>SEC</area>
    <workgroup>ACE Working Group</workgroup>
    <abstract>
      <?line 142?>

<t>This document specifies an authentication service that uses the Extensible Authentication Protocol (EAP) transported employing Constrained Application Protocol (CoAP) messages. As such, it defines an EAP lower layer based on CoAP called CoAP-EAP. One of the main goals is to authenticate a CoAP-enabled IoT device (EAP peer) that intends to join a security domain managed by a Controller (EAP authenticator). Secondly, it allows deriving key material to protect CoAP messages exchanged between them based on Object Security for Constrained RESTful Environments (OSCORE), enabling the establishment of a security association between them.</t>
    </abstract>
  </front>
  <middle>
    <?line 147?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies an authentication service (application) that uses the Extensible Authentication Protocol (EAP) <xref target="RFC3748"/> and is built on top of the Constrained Application Protocol (CoAP)<xref target="RFC7252"/> called CoAP-EAP. CoAP-EAP is an application that allows authenticating two CoAP endpoints by using EAP and establishing an Object Security for Constrained RESTful Environments (OSCORE) security association between them.
More specifically, this document specifies how CoAP can be used as a constrained, link-layer independent, reliable EAP lower layer <xref target="RFC3748"/> to transport EAP messages between a CoAP server (acting as EAP peer) and a CoAP client (acting as EAP authenticator) using CoAP messages. The CoAP client has the option of contacting a backend AAA infrastructure to complete the EAP negotiation, as described in the EAP specification <xref target="RFC3748"/>.</t>
      <t>EAP methods transported in CoAP <bcp14>MUST</bcp14> generate cryptographic material <xref target="RFC5247"/> in an MSK for this specification.  The MSK is used as the basis for further cryptographic derivations. This way, CoAP messages are protected after authentication. After CoAP-EAP's operation, an OSCORE security association is established between the endpoints of the service. Using the keying material derived from the authentication, other security associations could be generated. <xref target="flow-of-operation-dtls"/> shows how to establish a (D)TLS security association using the keying material from the EAP authentication.
One of the main applications of CoAP-EAP is Internet of Things (IoT) networks, where we can find very constrained links (e.g., limited bandwidth) and devices with limited capabilities. In these IoT scenarios, we identify the IoT device as the entity that wants to be authenticated by using EAP to join a domain that is managed by a Controller. The IoT device is in these cases the EAP peer and the Controller, the entity steering the authentication, the EAP authenticator. From now on, the IoT device is referred to as the EAP peer and the Controller as the EAP authenticator. In these cases, EAP methods that do not require many exchanges, have short messages and use cryptographic algorithms that are manageable by constrained devices are preferable. The benefits of the EAP framework in IoT are highlighted in <xref target="EAP-framework-IoT"/>.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>Readers are expected to be familiar with the terms and concepts of described in CoAP <xref target="RFC7252"/>,
EAP <xref target="RFC3748"/> <xref target="RFC5247"/> and OSCORE <xref target="RFC8613"/>.</t>
      </section>
    </section>
    <section anchor="general-architecture">
      <name>General Architecture</name>
      <t><xref target="arch"/> illustrates the architecture defined in this document.  In this architecture, the EAP peer will act as a CoAP server for this service, and the domain EAP authenticator as a CoAP client. The rationale behind this decision is that EAP requests direction is always from the EAP server to the EAP peer. Accordingly, EAP responses direction is always from the EAP peer to the EAP server.</t>
      <t>It is worth noting that the EAP authenticator <bcp14>MAY</bcp14> interact with a backend AAA infrastructure when EAP pass-through mode is used, which will place the EAP server in the AAA server that contains the information required to authenticate the EAP peer.</t>
      <t>The protocol stack is described in <xref target="stack"/>. CoAP-EAP is an application built on top of CoAP. On top of the application, there is an EAP state machine that can run any EAP method. For this specification, the EAP method <bcp14>MUST</bcp14> be able to derive keying material. CoAP-EAP also relies on CoAP reliability mechanisms in CoAP to transport EAP: CoAP over UDP with Confirmable messages (<xref target="RFC7252"/>) or CoAP over TCP, TLS, or WebSockets <xref target="RFC8323"/>.</t>
      <figure anchor="arch">
        <name>CoAP-EAP Architecture</name>
        <artwork align="center"><![CDATA[
  +----------+        +--------------+            +----------+
  |    EAP   |        |      EAP     |            |   AAA/   |
  |    peer  |<------>| authenticator|<---------->|EAP Server|
  +----------+  CoAP  +--------------+     AAA    +----------+
                                       (Optional)
  <---(SCOPE OF THIS DOCUMENT)---->
]]></artwork>
      </figure>
      <figure anchor="stack">
        <name>CoAP-EAP Stack</name>
        <artwork align="center"><![CDATA[
  +-------------------------------+
  |        EAP State Machine      |
  +-------------------------------+ \
  |     Application(CoAP-EAP)     |  | This Document
  +-------------------------------+ /
  | Request/Responses/Signaling   | RFC 7252 / RFC 8323
  +-------------------------------+
  |    Message / Message Framing  | RFC 7252 / RFC 8323
  +-------------------------------+
  |Unreliable / Reliable Transport| RFC 7252 / RFC 8323
  +-------------------------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="sec_coap-eap-operation">
      <name>CoAP-EAP Operation</name>
      <t>Because CoAP-EAP uses reliable delivery defined in CoAP (<xref target="RFC7252"/>, <xref target="RFC8323"/>), EAP retransmission time is set to infinite as mentioned in <xref target="RFC3748"/>. To keep the ordering guarantee, CoAP-EAP uses Hypermedia as the Engine of Application State (HATEOAS). Each step during the EAP authentication accesses a new resource in the CoAP server (EAP peer). The previous resource is removed once the new resource is created, indicating the resource that will process the next step of the EAP authentication.</t>
      <t>An EAP method that does not export keying material <bcp14>MUST NOT</bcp14> be used.
One of the benefits of using EAP is that we can choose from a large variety of authentication methods.</t>
      <t>In CoAP-EAP, the EAP peer will only have one authentication session with a specific EAP authenticator and it will not process any other EAP authentication in parallel (with the same EAP authenticator). That is, a single ongoing EAP authentication is permitted for the same EAP peer and the same EAP authenticator. It may be worth noting that the EAP authenticator may have parallel EAP sessions with multiple EAP peers.</t>
      <t>To access the authentication service, this document defines the well-known URI "coap-eap" (to be assigned by IANA)</t>
      <section anchor="discovery-section">
        <name>Discovery</name>
        <t>Before the CoAP-EAP exchange takes place, the EAP peer needs to discover the EAP authenticator or the entity that will enable the CoAP-EAP exchange (e.g., an intermediary proxy). The discovery process is out of the scope of this document.</t>
        <t>The CoAP-EAP application can be accessed through the URI "coap-eap" for the trigger message (Step 0). The CoAP-EAP service can be discovered by asking directly about the services offered. This information can also be available in the resource directory <xref target="RFC9176"/>.</t>
        <t>Implementation Notes: There are different methods to discover the IPv6 address of the EAP authenticator or intermediary entity. For example, on a 6LoWPAN network, the Border Router will typically act as the EAP authenticator hence, after receiving the Router Advertisement (RA) messages from the Border Router, the EAP peer may engage on the CoAP-EAP exchange. Different protocols can be used to discover the IP of the EAP authenticator. Examples of such protocols are Multicast DNS (mDNS) <xref target="RFC6762"/> or DHCPv6 <xref target="RFC8415"/>.</t>
      </section>
      <section anchor="flow-of-operation">
        <name>Flow of operation (OSCORE establishment)</name>
        <t><xref target="figure1"/> shows the general flow of operation for CoAP-EAP to authenticate using EAP and establish an OSCORE security context. The flow does not show a specific EAP method. Instead, we represent the chosen EAP method by using a generic name (EAP-X).  The flow assumes that the EAP peer knows the EAP authenticator implements the CoAP-EAP service. A CoAP-EAP message has a media type application/coap-eap, See <xref target="mediatypes"/>.</t>
        <t>The steps of the operation are as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Step 0. The EAP peer <bcp14>MUST</bcp14> start the CoAP-EAP process by sending a "POST /.well-known/coap-eap" request (trigger message). This message carries the 'No-Response'  <xref target="RFC7967"/> CoAP option to avoid waiting for a response that is not needed. This is the only message where the EAP authenticator acts as a CoAP server and the EAP peer as a CoAP client. The message also includes a URI in the payload of the message to indicate the resource where the EAP authenticator <bcp14>MUST</bcp14> send the next message. The name of the resource is selected by the CoAP server.</t>
          </li>
        </ul>
        <t>Implementation notes:
When generating the URI for a resource of a step of the authentication, the resource could have the following format "path/eap/counter", where:</t>
        <ul spacing="normal">
          <li>
            <t>"path" is some local path on the device to make the path unique.  This could be omitted if desired.</t>
          </li>
          <li>
            <t>"eap" is the name that indicates the URI is for the EAP peer.  This has no meaning for the protocol but helps with debugging.</t>
          </li>
          <li>
            <t>"counter' which is an incrementing unique number for every new EAP request.</t>
          </li>
        </ul>
        <t>So, in <xref target="figure1"/> for example, the URI for the first resource would be “a/eap/1"</t>
        <ul spacing="normal">
          <li>
            <t>Step 1. The EAP authenticator sends a POST message to the resource indicated in Step 0 (e.g., '/a/eap/1'). The payload in this message contains the first EAP message (EAP Request/Identity), the Recipient ID of the EAP authenticator (RID-C) for OSCORE, and <bcp14>MAY</bcp14> contain a CBOR array with a list of cipher suites (CS) for OSCORE. If the cipher suite list is not included, the default cipher suite for OSCORE is used. The details of the cipher suite negotiation are discussed in <xref target="crypto-negotiation"/>.</t>
          </li>
          <li>
            <t>Step 2. The EAP peer processes the POST message sending the EAP request (EAP-Req/Id) to the EAP peer state machine, which returns an EAP response (EAP Resp/Id). Then, assigns a new resource to the ongoing authentication process (e.g., '/a/eap/2'), and deletes the previous one ('/a/eap/1'). Finally, sends a '2.01 Created' response with the new resource identifier in the Location-Path (and/or Location-Query) options for the next step. The EAP response, the Recipient ID of the EAP peer (RID-I) and the selected cipher suite for OSCORE are included in the payload. In this step, the EAP peer <bcp14>MAY</bcp14> create an OSCORE security context (see <xref target="OSCORE"/>). The required Master Session Key (MSK) will be available once the EAP authentication is successful in step 7.</t>
          </li>
          <li>
            <t>Steps 3-6. From now on, the EAP authenticator and the EAP peer will exchange EAP packets related to the EAP method (EAP-X), transported in the CoAP message payload. The EAP authenticator will use the POST method to send EAP requests to the EAP peer. The EAP peer will use a response to carry the EAP response in the payload. EAP requests and responses are represented in <xref target="figure1"/> using the nomenclature (EAP-X-Req and EAP-X-Resp, respectively).  When a POST message arrives (e.g., '/a/eap/1') carrying an EAP request message, if processed correctly by the EAP peer state machine, returns an EAP Response. Along with each EAP Response, a new resource is created (e.g., '/a/eap/3') for processing the next EAP request and the ongoing resource (e.g., '/a/eap/2') is erased. This way, ordering guarantee is achieved. Finally, an EAP response is sent in the payload of a CoAP response that will also indicate the new resource in the Location-Path (and/or Location-Query) Options. In case there is an error processing a legitimate message, the server will return a (4.00 Bad Request). There is a discussion about error handling in <xref target="error-handling"/>.</t>
          </li>
          <li>
            <t>Step 7. When the EAP authentication ends with success, the EAP authenticator obtains the Master Session Key (MSK) exported by the EAP method, an EAP Success message, and some authorization information (e.g., session lifetime) <xref target="RFC5247"/>. The EAP authenticator creates the OSCORE security context using the MSK and Recipient ID of both entities exchanged in Steps 1 and 2. The establishment of the OSCORE Security Context is defined in <xref target="OSCORE"/>. Then, the EAP authenticator sends the POST message protected with OSCORE for key confirmation including the EAP Success. The EAP authenticator <bcp14>MAY</bcp14> also send a Session Lifetime, in seconds, which is represented with an unsigned integer in a CBOR object (see <xref target="cbor-coap-eap"/>). If this Session Lifetime is not sent, the EAP peer assumes a default value of 8 hours, as <bcp14>RECOMMENDED</bcp14> in <xref target="RFC5247"/>. The verification of the received OSCORE-protected POST message using RID-I (Recipient ID of the EAP peer) sent in Step 2 is considered by the EAP peer as an alternate indication of success (<xref target="RFC3748"/>). The EAP peer state machine in the EAP peer interprets the alternate indication of success similarly to the arrival of an EAP Success and returns the MSK, which is used for the OSCORE security context in the EAP peer to process the protected POST message received from the EAP authenticator.</t>
          </li>
          <li>
            <t>Step 8. If the EAP authentication and the verification of the OSCORE-protected POST in Step 7 is successful, then the EAP peer answers with an OSCORE-protected '2.04 Changed'.  From this point on, communication with the last resource (e.g., '/a/eap/(n)') <bcp14>MUST</bcp14> be protected with OSCORE.  If allowed by application policy, the same OSCORE security context <bcp14>MAY</bcp14> be used to protect communication to other resources between the same endpoints.</t>
          </li>
        </ul>
        <figure anchor="figure1">
          <name>CoAP-EAP flow of operation with OSCORE</name>
          <artwork align="center"><![CDATA[
       EAP peer                              EAP authenticator
     -------------                            ------------
         |  POST /.well-known/coap-eap             |
       0)|  No-Response                            |
         |  Payload("/a/eap/1")                    |
         |---------------------------------------->|
         |                           POST /a/eap/1 |
         |          Payload(EAP Req/Id||CS||RID-C) |
       1)|<----------------------------------------|
         | 2.01 Created Location-Path [/a/eap/2]   |
         | Payload(EAP Resp/Id||CS||RID-I)         |
       2)|---------------------------------------->|
         |                           POST /a/eap/2 |
         |                     Payload(EAP-X Req)  |
       3)|<----------------------------------------|
         | 2.01 Created Location-Path [/a/eap/3]   |
         | Payload(EAP-X Resp)                     |
       4)|---------------------------------------->|
                            ....
         |                     POST /a/eap/(n-1)   |
         |                     Payload(EAP-X Req)  |
       5)|<----------------------------------------|
         | 2.01 Created Location-Path [/a/eap/(n)] |
         | Payload (EAP-X Resp)                    |
       6)|---------------------------------------->|
         |                                         |  MSK
         |                         POST /a/eap/(n) |   |
         |                                  OSCORE |   V
         | Payload (EAP Success||*Session-Lifetime)| OSCORE
 MSK   7)|<----------------------------------------|  CTX
  |      |                                         |
  V      | 2.04 Changed                            |
OSCORE   | OSCORE                                  |
 CTX   8)|---------------------------------------->|
           (*) Session-Lifetime is optional.
]]></artwork>
        </figure>
      </section>
      <section anchor="re-authentication">
        <name>Reauthentication</name>
        <t>When the CoAP-EAP state is close to expiring, the EAP peer may want to start a new authentication process (re-authentication) to renew the state. The main goal is to derive new and fresh keying material (MSK/EMSK) that, in turn, allows deriving a new OSCORE security context, increasing the protection against key leakage. The keying material <bcp14>MUST</bcp14> be renewed before the expiration of the Session-Lifetime. By default, the EAP Key Management Framework establishes a default value of 8 hours to refresh the keying material. Certain EAP methods such as EAP-NOOB <xref target="RFC9140"/> or EAP-AKA' <xref target="RFC5448"/> provide fast reconnect for quicker re-authentication. The EAP re-authentication protocol (ERP) <xref target="RFC6696"/> <bcp14>MAY</bcp14> also be used to avoid the repetition of the entire EAP exchange.</t>
        <t>The re-authentication message flow will be the same as the one shown in <xref target="figure1"/>. Nevertheless, two different CoAP-EAP states will be active during the re-authentication: the current CoAP-EAP state and the new CoAP-EAP state, which will be created once the re-authentication has finished with success. Once the re-authentication is completed successfully, the current CoAP-EAP state is deleted and replaced by the new CoAP-EAP state. If, for any reason, the re-authentication fails, the current CoAP-EAP state will be available until it expires, or it is renewed in another try of re-authentication.</t>
        <t>If the re-authentication fails, it is up to the EAP peer to decide when to start a new re-authentication before the current EAP state expires.</t>
      </section>
      <section anchor="managing_boot_state">
        <name>Managing the State of the Service</name>
        <t>The EAP peer and the EAP authenticator keep state during the CoAP-EAP negotiation. The CoAP-EAP state includes several important parts:</t>
        <ul spacing="normal">
          <li>
            <t>A reference to an instance of the EAP (peer or authenticator/server) state machine.</t>
          </li>
          <li>
            <t>The resource for the next message in the negotiation (e.g., '/a/eap/2')</t>
          </li>
          <li>
            <t>The MSK is exported when the EAP authentication is successful. CoAP-EAP can access the different variables by the EAP state machine (i.e., <xref target="RFC4137"/>).</t>
          </li>
          <li>
            <t>A reference to the OSCORE context.</t>
          </li>
        </ul>
        <t>Once created, the EAP authenticator <bcp14>MAY</bcp14> choose to delete the state as described in <xref target="figure4"/>. Conversely, the EAP peer may need to renew the CoAP-EAP state because the key material is close to expiring, as mentioned in <xref target="re-authentication"/>.</t>
        <t>There are situations where the current CoAP-EAP state might need to be removed. For instance, due to its expiration or forced removal, the EAP peer needs to be expelled from the security domain. This exchange is illustrated in <xref target="figure4"/>.</t>
        <t>If the EAP authenticator deems it necessary to remove the CoAP-EAP state from the EAP peer before it expires, it can send a DELETE command in a request to the EAP peer, referencing the last CoAP-EAP state resource given by the CoAP server, whose identifier will be the last one received (e.g., '/a/eap/(n)' in <xref target="figure1"/>). This message is protected by the OSCORE security association to prevent forgery. Upon reception of this message, the CoAP server sends a response to the EAP authenticator with the Code '2.02 Deleted', which is also protected by the OSCORE security association. If a response from the EAP peer does not arrive after EXCHANGE_LIFETIME the EAP authenticator will remove the state.</t>
        <figure anchor="figure4">
          <name>Deleting state</name>
          <artwork align="center"><![CDATA[
             EAP peer                             EAP authenticator
           -------------                           -------------
                |                                         |
                |                       DELETE /a/eap/(n) |
                |                                  OSCORE |
                |<----------------------------------------|
                |                                         |
                | 2.02 Deleted                            |
                | OSCORE                                  |
                |---------------------------------------->|
]]></artwork>
        </figure>
      </section>
      <section anchor="error-handling">
        <name>Error handling</name>
        <t>This section elaborates on how different errors are handled. From EAP authentication failure, a non-responding endpoint lost messages, or an initial POST message arriving out of place.</t>
        <section anchor="eap-authentication-failure">
          <name>EAP authentication failure</name>
          <t>EAP authentication <bcp14>MAY</bcp14> fail in different situations (e.g., wrong credentials). The result is that the EAP authenticator will send an EAP Failure message because of the EAP authentication (Step 7 in <xref target="figure1"/>). In this case, the EAP peer <bcp14>MUST</bcp14> send a response '4.01 Unauthorized' in Step 8. Therefore, Step 7 and Step 8 are not protected in this case because no MSK is exported and the OSCORE security context is not yet generated.</t>
          <t>If the EAP authentication fails during the re-authentication and the EAP authenticator sends an EAP failure, the current CoAP-EAP state will be still usable until it expires.</t>
        </section>
        <section anchor="non-responding-endpoint">
          <name>Non-responding endpoint</name>
          <t>If, for any reason, one of the entities becomes non-responding, the CoAP-EAP state <bcp14>SHOULD</bcp14> be kept only for some time before it is removed. The removal of the CoAP-EAP state in the EAP authenticator assumes that the EAP peer will need to authenticate again. According to CoAP, EXCHANGE_LIFETIME considers the time it takes until a client stops expecting a response to a request. A timer is reset every time a message is sent.
By default, CoAP-EAP adopts the value of EXCHANGE_LIFETIME as a timer in the EAP peer and Authenticator to remove the CoAP-EAP state if the authentication process has not progressed in that time, in consequence, it has not been completed.</t>
          <t>The EAP peer will remove the CoAP-EAP state either if the EXCHANGE_LIFETIME is triggered, or the EAP peer state machine returns an eapFail.</t>
          <t>The EAP authenticator will remove the CoAP-EAP state either if the EXCHANGE_LIFETIME is triggered, or, when the EAP authenticator is acting in pass-through mode (i.e., the EAP authentication is performed against a AAA server), the EAP authenticator state machine returns an aaaTimemout.</t>
        </section>
        <section anchor="duplicated-message-with-well-knowncoap-eap">
          <name>Duplicated message with /.well-known/coap-eap</name>
          <t>The reception of the trigger message in Step 0 containing the URI /coap-eap needs some additional considerations, as the resource is always available in the EAP authenticator.</t>
          <t>If a trigger message (Step 0) arrives at the EAP authenticator during an ongoing authentication with the same EAP peer, the EAP authenticator <bcp14>MUST</bcp14> silently discard this trigger message.</t>
          <t>If an old "POST /.well-known/coap-eap" (Step 0) arrives at the EAP authenticator and there is no authentication ongoing, the EAP authenticator may understand that a new authentication process is requested. Consequently, the EAP authenticator will start a new EAP authentication. However, the EAP peer did not start any authentication and therefore, it did not select any resource for the EAP authentication. Thus, the EAP peer sends a '4.04 Not found' in the response (<xref target="figure9"/>).</t>
          <figure anchor="figure9">
            <name>/.well-known/coap-eap with no ongoing authentication from the EAP authenticator</name>
            <artwork align="center"><![CDATA[
 EAP peer                              EAP authenticator
 ----------                              ----------
      |  *POST /.well-known/coap-eap            |
   0) |  No-Response                            |
      |  Payload("/a/eap/1")                    |
      |               ------------------------->|
      |                          POST /a/eap/1  |
      |                Payload (EAP Req/Id||CS) |
   1) |<----------------------------------------|
      |                                         |
      | 4.04 Not found                          |
      |---------------------------------------->|
      * Old
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="proxy">
        <name>Proxy operation in CoAP-EAP</name>
        <t>The CoAP-EAP operation is intended to be compatible with the use of intermediary entities between the EAP peer and the EAP authenticator when direct communication is not possible. In this context, CoAP proxies can be used as enablers of the CoAP-EAP exchange.</t>
        <t>This specification is limited to using standard CoAP <xref target="RFC7252"/> as well as standardized CoAP options <xref target="RFC8613"/>. It does not specify any addition in the form of CoAP options. This is expected to ease the integration of CoAP intermediaries in the CoAP-EAP exchange.</t>
        <t>When using proxies in the CoAP-EAP we need to consider that the exchange contains a role-reversal process at the beginning of the exchange. In the first message, the EAP peer acts as a CoAP client and the EAP authenticator as the CoAP server. After that, in the remaining exchanges the roles are reversed, being the EAP peer, the CoAP server, and the EAP authenticator, the CoAP client. When using a proxy in the exchange, for message 0, the proxy will act as forward, and as reverse for the rest. Additionally, in the first exchange, the EAP peer as a CoAP client, sends the URI for the next CoAP message in the payload of a request. This is not the typical behavior, as URIs referring to new services/resources appear in Location-Path and/or Location-Query Options in CoAP responses. Hence, the proxy will have to treat the payload of message 0, as if it were a Location-Path Option of a CoAP response.</t>
      </section>
    </section>
    <section anchor="media-type-definition">
      <name>CoAP-EAP Media type format</name>
      <t>In the CoAP-EAP exchange, we will have the following format. This is the format is specified by application/coap-eap media type, see <xref target="mediatypes"/>.</t>
      <t>In CoAP-EAP we have two different elements that can be sent over the payload. The first one is a relative URI. This payload will be present for the first message (0) in <xref target="figure1"/>.</t>
      <t>In all the other cases, we will find and EAP message followed by the CBOR Object specified in <xref target="cbor-coap-eap"/>. A visual example of the second case can be found in <xref target="figure5"/>.</t>
    </section>
    <section anchor="cbor-coap-eap">
      <name>CBOR Objects in CoAP-EAP</name>
      <t>In the CoAP-EAP exchange, there is information that needs to be exchanged between the two entities. Examples of this information are the cipher suites that need to be negotiated or authorization information (Session-lifetime). There may also be a need to extend the information that has to be exchanged in the future. This section specifies the CBOR <xref target="RFC8949"/> data structure to exchange information between the EAP peer and the EAP authenticator in the CoAP payload.</t>
      <t><xref target="figure11"/> shows the specification of the CBOR Object to exchange information in CoAP-EAP</t>
      <figure anchor="figure11">
        <name>CBOR data structure for CoAP-EAP</name>
        <artwork align="center"><![CDATA[
   CoAP-EAP_Info = {
         ?  1 : [+ int/tstr],   ; cipher suite
         ?  2 : bstr,           ; RID-C
         ?  3 : bstr,           ; RID-I
         ?  4 : uint            ; Session-Lifetime
     }
]]></artwork>
      </figure>
      <t>The parameters contain the following information:</t>
      <ol spacing="normal" type="1"><li>
          <t>cipher suite: It contains an array including the list of the proposed or selected COSE algorithms for OSCORE. If the field is carried over a request, the meaning is the proposed cipher suite, if it is carried over a response, corresponds to the agreed-upon ciphersuites.</t>
        </li>
        <li>
          <t>RID-I: It contains the Recipient ID of the EAP peer. The EAP authenticator uses this value as a Sender ID for its OSCORE Sender Context. The EAP peer uses this value as Recipient ID for its Recipient Context.</t>
        </li>
        <li>
          <t>RID-C: It contains the Recipient ID of the EAP authenticator. The EAP peer uses this value as a Sender ID for its OSCORE Sender Context. The EAP authenticator uses this value as Recipient ID for its Recipient Context.</t>
        </li>
        <li>
          <t>Session-Lifetime: Contains the time the session is valid, in seconds.</t>
        </li>
      </ol>
      <t>Other indexes can be used to carry additional values as needed, like specific authorization parameters.</t>
      <t>The indexes from 65000 to 65535 are reserved for experimentation.</t>
    </section>
    <section anchor="key_deriv">
      <name>Cipher suite negotiation and key derivation</name>
      <section anchor="crypto-negotiation">
        <name>Cipher suite negotiation</name>
        <t>OSCORE runs after the EAP authentication, using the cipher suite selected in the cipher suite negotiation (Steps 1 and 2). To negotiate the cipher suite, CoAP-EAP follows a simple approach: the EAP authenticator sends a list, in decreasing order of preference, with the identifiers of the supported cipher suites (Step 1). In the response to that message (Step 2), the EAP peer sends a response with the choice.</t>
        <t>This list is included in the payload after the EAP message through a CBOR as explained previously. An example of how the fields are arranged in the CoAP payload can be seen in <xref target="figure5"/>. An example of the exchange with the cipher suite negotiation is shown in <xref target="figure6"/>, where can be appreciated the disposition of both EAP-Request/Identity and EAP-Response/Identity, followed by the CBOR object defined in <xref target="cbor-coap-eap"/>, containing the cipher suite field for the cipher suite negotiation.</t>
        <figure anchor="figure5">
          <name>cipher suites are in the CoAP payload</name>
          <artwork align="center"><![CDATA[
+-----+-----------+-------+------++-------------+
|Code |Identifier |Length | Data ||cipher suites|
+-----+-----------+-------+------++-------------+
          EAP Packet                CBOR Object

]]></artwork>
        </figure>
        <figure anchor="figure6">
          <name>cipher suite negotiation</name>
          <artwork align="center"><![CDATA[
    EAP peer                                 EAP Auth.
 (CoAP server)                             (CoAP client)
 -------------                             -------------
       |                                         |
       |                  ...                    |
       |---------------------------------------->|
       |                          POST /a/eap/1  |
       |  Payload (EAP Req/Id, CBORArray[0,1,2]) |
    1) |<----------------------------------------|
       | 2.01 Created Location-Path [/a/eap/2]   |
       | Payload (EAP Resp/Id, CBORArray[0])     |
    2) |---------------------------------------->|
                          ...
]]></artwork>
        </figure>
        <t>In case there is no CBOR array stating the cipher suites, the default cipher suites are applied. If the EAP authenticator sends a restricted list of cipher suites that are willing to accept, it <bcp14>MUST</bcp14> include the default value 0 since it is mandatory to implement. The EAP peer will have at least that option available.</t>
        <t>The cipher suite requirements are inherited from the ones established by OSCORE <xref target="RFC8613"/>, which are COSE algorithms <xref target="RFC9053"/>. By default, the HKDF algorithm is SHA-256 and the AEAD algorithm is AES-CCM-16-64-128 <xref target="RFC9053"/>. Both are mandatory to implement. The other supported and negotiated cipher suites are the following:</t>
        <ul spacing="normal">
          <li>
            <t>0) AES-CCM-16-64-128, SHA-256 (default)</t>
          </li>
          <li>
            <t>1) A128GCM, SHA-256</t>
          </li>
          <li>
            <t>2) A256GCM, SHA-384</t>
          </li>
          <li>
            <t>3) ChaCha20/Poly1305, SHA-256</t>
          </li>
          <li>
            <t>4) ChaCha20/Poly1305, SHAKE256</t>
          </li>
        </ul>
        <t>This specification uses the (HMAC)-based key derivation function (HKDF) defined in <xref target="RFC5869"/> to derive the necessary key material. Since the key derivation process uses the MSK, which is considered fresh key material, we will use the HKDF-Expand function, which we will shorten here as KDF. Why the use of this funtion is enough, and it is not necessary to use KDF-Extract is explained in <xref target="limit_eap_medhods"/>.</t>
      </section>
      <section anchor="OSCORE">
        <name>Deriving the OSCORE Security Context</name>
        <t>The derivation of the security context for OSCORE allows securing the communication between the EAP peer and the EAP authenticator once the MSK has been exported, providing confidentiality, integrity, key confirmation (Steps 7 and 8), and downgrading attack detection.</t>
        <t>The Master Secret can be derived by using the chosen cipher suite and the KDF as follows:</t>
        <artwork align="center"><![CDATA[
Master Secret = KDF(MSK, CS | "COAP-EAP OSCORE MASTER SECRET", length)
]]></artwork>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>The algorithms for OSCORE agreed in the cipher suite negotiation.</t>
          </li>
          <li>
            <t>The MSK exported by the EAP method. Discussion about the use of the MSK for key derivation is done in <xref target="security_considerations"/>.</t>
          </li>
          <li>
            <t>CS is the concatenation of the content of the cipher suite negotiation, that is, the list of cipher suites sent by the EAP authenticator (Step 1) to the selected option by the EAP peer (Step 2). If any of the messages did not contain the CBOR array (default algorithms), the null string is used.</t>
          </li>
          <li>
            <t>"COAP-EAP OSCORE MASTER SECRET" is the ASCII code representation of the non-NULL terminated string (excluding the double quotes around it).</t>
          </li>
          <li>
            <t>CS and "COAP-EAP OSCORE MASTER SECRET" are concatenated.</t>
          </li>
          <li>
            <t>length is the size of the output key material.</t>
          </li>
        </ul>
        <t>The Master Salt, similarly to the Master Secret, can be derived as follows:</t>
        <artwork align="center"><![CDATA[
Master Salt = KDF(MSK, CS | "COAP-EAP OSCORE MASTER SALT", length)
]]></artwork>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>The algorithms are agreed upon in the cipher suite negotiation.</t>
          </li>
          <li>
            <t>The MSK is exported by the EAP method. Discussion about the use of the MSK for the key derivation is done in <xref target="security_considerations"/>.</t>
          </li>
          <li>
            <t>CS is the concatenation of the content of the cipher suite negotiation, in the request and response. If any of the messages did not contain the CBOR array, the null string is used.</t>
          </li>
          <li>
            <t>"COAP-EAP OSCORE MASTER SALT" is the ASCII code representation of the non-NULL-terminated string (excluding the double quotes around it).</t>
          </li>
          <li>
            <t>CS and "COAP-EAP OSCORE MASTER SALT" are concatenated.</t>
          </li>
          <li>
            <t>length is the size of the output key material.</t>
          </li>
        </ul>
        <t>Since the MSK is used to derive the Master Key, the correct verification of the OSCORE protected request (Step 7) and response (Step 8) confirms the EAP authenticator and the EAP peer have the same Master Secret, achieving key confirmation.</t>
        <t>To prevent a downgrading attack, the content of the cipher suites negotiation (which we refer to here as CS) is embedded in the Master Secret derivation. If an attacker changes the value of the cipher suite negotiation, the result will be different OSCORE security contexts, which ends up with a failure in Steps 7 and 8.</t>
        <t>The EAP authenticator will use the Recipient ID of the EAP peer (RID-I) as the Sender ID for its OSCORE Sender Context. The EAP peer will use this value as Recipient ID for its Recipient Context.</t>
        <t>The EAP peer will use the Recipient ID of the EAP authenticator (RID-C) as the Sender ID for its OSCORE Sender Context. The EAP authenticator will use this value as Recipient ID for its Recipient Context.</t>
      </section>
    </section>
    <section anchor="implementation_considerations">
      <name>Discussion</name>
      <section anchor="coap-as-eap-lower-layer">
        <name>CoAP as EAP lower layer</name>
        <t>This section discusses the suitability of the CoAP protocol as EAP lower layer and reviews the requisites imposed by EAP on any protocol transporting EAP. What EAP expects from its lower layers can be found in Section 3.1 of <xref target="RFC3748"/>, which is elaborated next:</t>
        <t>Unreliable transport. EAP does not assume that lower layers are reliable, but it can benefit from a reliable lower layer. In this sense, CoAP provides a reliability mechanism (e.g., using Confirmable messages).</t>
        <t>Lower layer error detection. EAP relies on lower layer error detection (e.g., CRC, Checksum, MIC, etc.). CoAP goes on top of UDP/TCP, which provides a checksum mechanism over its payload.</t>
        <t>Lower layer security. EAP does not require security services from the lower layers.</t>
        <t>Minimum MTU.  Lower layers need to provide an EAP MTU size of 1020 octets or greater. CoAP assumes an upper bound of 1024 octets for its payload, which covers the EAP requirements when in the CoAP payload only the EAP message is sent. In the case of Messages 1 and 2 in <xref target="figure1"/>, those messages have extra information apart from EAP. Nevertheless, the EAP Req/Id has a fixed length of 5 bytes. Message 2 with the EAP Resp/Id, would limit the length of the identity being used to the CoAP payload maximum size (1024) - len( CS || RID-I ) - EAP Response header (5 bytes), which leaves enough space for sending even lengthy identities. Nevertheless, this limitation can be overcome by using CoAP block-wise transfer<xref target="RFC7959"/>.
Note: When EAP is proxied over an AAA framework,  the Access-Request packets in RADIUS <bcp14>MUST</bcp14> contain a Framed-MTU attribute with the value 1024, and the Framed-MTU AVP to 1024 in DIAMETER This attribute signals the AAA server that it should limit its responses to 1024 octets.</t>
        <t>Ordering guarantees. EAP relies on lower layer ordering guarantees for correct operation. Regarding message ordering, every time a new message arrives at the authentication service hosted by the EAP peer, a new resource is created, and this is indicated in a "2.01 Created" response code along with the name of the new resource via Location-Path or Location-Query options. This way, the application shows that its state has advanced.</t>
        <t>Although the <xref target="RFC3748"/> states: "EAP provides its own support for duplicate elimination and retransmission", EAP is also reliant on lower layer ordering guarantees. In this regard, <xref target="RFC3748"/> talks about possible duplication and says: "Where the lower layer is reliable, it will provide the EAP layer with a non-duplicated stream of packets. However, while it is desirable that lower layers provide for non-duplication, this is not a requirement". CoAP provides a non-duplicated stream of packets and accomplishes the desirable non-duplication. In addition, <xref target="RFC3748"/> says that when EAP runs over a reliable lower layer "the authenticator retransmission timer <bcp14>SHOULD</bcp14> be set to an infinite value, so that retransmissions do not occur at the EAP layer."</t>
      </section>
      <section anchor="size-of-the-eap-lower-layer-vs-eap-method-size">
        <name>Size of the EAP lower layer vs EAP method size</name>
        <t>Regarding the impact that an EAP lower layer will have on the number of bytes of the whole authentication exchange, there is a comparison with another network layer-based EAP lower layer, PANA <xref target="RFC5191"/>, in <xref target="coap-eap"/>.</t>
        <t>The EAP method being transported will take most of the exchange, however, the impact of the EAP lower layer cannot be ignored, especially in very constrained communication technologies, such as the ones we can find in IoT, with limited capabilities.</t>
        <t>Note: For constrained devices and network scenarios, the use of the latest versions of EAP methods (EAP-TLS 1.3 <xref target="RFC9190"/>) is recommended in favor of older versions with the goal of economization.</t>
      </section>
    </section>
    <section anchor="security_considerations">
      <name>Security Considerations</name>
      <t>There are some security aspects to be considered such as how authorization is managed, the use of MSK as key material, and how trust in the EAP authenticator is established. Additional considerations such as EAP channel binding as per <xref target="RFC6677"/> are also discussed here.</t>
      <section anchor="limit_eap_medhods">
        <name>Use of EAP Methods</name>
        <t>This documents limits the use of EAP methods to the ones compliant with <xref target="RFC4017"/> specification, yielding strong and fresh session keys such as the MSK. By this assumption, the HKDF-Expand function is used directly, as clarified in <xref target="RFC5869"/>.</t>
      </section>
      <section anchor="authorization">
        <name>Authorization</name>
        <t>Authorization is part of bootstrapping. It serves to establish whether the EAP peer can join and the set of conditions it must adhere to. The authorization data will be gathered from the organization that is responsible for the EAP peer and sent to the EAP authenticator in case AAA infrastructure is deployed.</t>
        <t>In standalone mode, the authorization information will be in the EAP authenticator. If the pass-through mode is used, authorization data received from the AAA server can be delivered by the AAA protocol (e.g., RADIUS or Diameter).  Providing more fine-grained authorization data can be with the transport of SAML in RADIUS <xref target="RFC7833"/>.
After bootstrapping, additional authorization information may be needed to operate in the security domain. This can be taken care of by the solutions proposed in the ACE WG such as the use of OAuth <xref target="RFC9200"/>, among other solutions, to provide Authentication and Authorization for Constrained Environments.</t>
      </section>
      <section anchor="allowing-ip-traffic-connectivity-to-perform-authentication">
        <name>Allowing IP traffic connectivity to perform authentication</name>
        <t>Since CoAP is an application protocol, CoAP-EAP assumes certain IP connectivity in the link between the EAP peer and the EAP authenticator to run. This link <bcp14>MUST</bcp14> authorize exclusively unprotected IP traffic to be sent between the EAP peer and the EAP authenticator during the authentication with CoAP-EAP. Once the authentication is successful, the key material generated by the EAP authentication (MSK) and any other traffic can be authorized if it is protected. It is worth noting that if the EAP authenticator is not in the same link as the EAP peer and intermediate entity help with this process (i.e., CoAP proxy) and the same comment applies to the communication between the EAP peer and the intermediary.</t>
      </section>
      <section anchor="freshness-of-the-key-material">
        <name>Freshness of the key material</name>
        <t>In CoAP-EAP there is no nonce exchange to provide freshness to the keys derived from the MSK. The MSK and Extended Master Session Key (EMSK) keys according to the EAP Key Management Framework <xref target="RFC5247"/> are fresh key material. Since only one authentication is established per EAP authenticator, there is no need to generate additional key material. In case a new MSK is required, a re-authentication can be done, by running the process again or using a more lightweight EAP method to derive additional key material as elaborated in <xref target="re-authentication"/>.</t>
      </section>
      <section anchor="channel-binding-support">
        <name>Channel Binding support</name>
        <t>According to the <xref target="RFC6677"/>, channel binding related to EAP, is sent through the EAP method supporting it.</t>
        <t>To satisfy the requirements of the document, we need to send the EAP lower layer identifier (To be assigned by IANA), in the EAP Lower-Layer Attribute if RADIUS is used.</t>
      </section>
      <section anchor="additional-security-considerations">
        <name>Additional Security Considerations</name>
        <t>In the authentication process, there is a possibility of an entity forging messages to generate denial of service (DoS) attacks on any of the entities involved. For instance, an attacker can forge multiple initial messages to start an authentication (Step 0) with the EAP authenticator as if they were sent by different EAP peers. Consequently, the EAP authenticator will start an authentication process for each message received in Step 0, sending the EAP Request/Id (Step 1).</t>
        <t>To minimize the effects of this DoS attack, it is <bcp14>RECOMMENDED</bcp14> that the EAP authenticator limits the rate at which it processes incoming messages in Step 0 to provide robustness against denial of service (DoS) attacks. The details of rate limiting are outside the scope of this specification. Nevertheless, the rate of these messages is also limited by the bandwidth available between the EAP peer and the EAP authenticator. This bandwidth will be especially limited in constrained links (e.g., LPWAN). Lastly, it is also <bcp14>RECOMMENDED</bcp14> to reduce at a minimum the state in the EAP authenticator at least until the EAP Response/Id is received by the EAP authenticator.</t>
        <t>Another security-related concern is how to ensure that the EAP peer joining the security domain can trust the EAP authenticator. This issue is elaborated in the EAP Key Management Framework <xref target="RFC5247"/>. In particular, the EAP peer knows it can trust the EAP authenticator because the key that is used to establish the security association is derived from the MSK. If the EAP authenticator has the MSK, it is because the AAA Server of the EAP peer trusted the EAP authenticator.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This section provides guidance to the Internet Assigned Numbers Authority (IANA) regarding the registration of values related to CoAP-EAP.</t>
      <section anchor="ciphersuite">
        <name>CoAP-EAP Cipher Suites</name>
        <t>IANA has created a new registry titled "CoAP-EAP Cipher Suites" under the new group name "CoAP-EAP protocol".  The registration procedure is "Expert Review".  The columns of the registry are Value, Array, and Description, where Value is an integer, and the other columns are text strings.  The initial contents of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Value: -24</t>
          </li>
          <li>
            <t>Array: N/A</t>
          </li>
          <li>
            <t>Description: Reserved for Private Use</t>
          </li>
          <li>
            <t>Value: -23</t>
          </li>
          <li>
            <t>Array: N/A</t>
          </li>
          <li>
            <t>Description: Reserved for Private Use</t>
          </li>
          <li>
            <t>Value: -22</t>
          </li>
          <li>
            <t>Array: N/A</t>
          </li>
          <li>
            <t>Description: Reserved for Private Use</t>
          </li>
          <li>
            <t>Value: -21</t>
          </li>
          <li>
            <t>Array: N/A</t>
          </li>
          <li>
            <t>Description: Reserved for Private Use</t>
          </li>
          <li>
            <t>Value: 0</t>
          </li>
          <li>
            <t>Array: 10, -16</t>
          </li>
          <li>
            <t>Description: AES-CCM-16-64-128, SHA-256</t>
          </li>
          <li>
            <t>Value: 1</t>
          </li>
          <li>
            <t>Array: 1, -16</t>
          </li>
          <li>
            <t>Description:  A128GCM, SHA-256</t>
          </li>
          <li>
            <t>Value: 2</t>
          </li>
          <li>
            <t>Array: 3, -43</t>
          </li>
          <li>
            <t>Description:  A256GCM, SHA-384</t>
          </li>
          <li>
            <t>Value: 3</t>
          </li>
          <li>
            <t>Array:  24, -16</t>
          </li>
          <li>
            <t>Description: ChaCha20/Poly1305, SHA-256</t>
          </li>
          <li>
            <t>Value: 4</t>
          </li>
          <li>
            <t>Array:  24, -45</t>
          </li>
          <li>
            <t>Description: ChaCha20/Poly1305, SHAKE256</t>
          </li>
        </ul>
      </section>
      <section anchor="llid">
        <name>CoAP-EAP Information elements</name>
        <t>IANA has created a new registry titled "CoAP-EAP Information element" under the new group name "CoAP-EAP protocol".  The registration procedure is "Expert Review".  The columns of the registry are Value, Name, and Description, where Value is an integer, and the other columns are text strings.  The initial contents of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Value:  1</t>
          </li>
          <li>
            <t>Name: cipher suite</t>
          </li>
          <li>
            <t>Description: List of the proposed or selected COSE algorithms for OSCORE</t>
          </li>
          <li>
            <t>Value: 2</t>
          </li>
          <li>
            <t>Name: RID-C</t>
          </li>
          <li>
            <t>Description: It contains the Recipient ID of the EAP peer</t>
          </li>
          <li>
            <t>Value: 3</t>
          </li>
          <li>
            <t>Name: RID-I</t>
          </li>
          <li>
            <t>Description: It contains the Recipient ID of the EAP authenticator</t>
          </li>
          <li>
            <t>Value: 4</t>
          </li>
          <li>
            <t>Name: Session-Lifetime</t>
          </li>
          <li>
            <t>Description: Contains the time the session is valid in seconds</t>
          </li>
          <li>
            <t>Values: 65000 to 65535</t>
          </li>
          <li>
            <t>Name: Reserved</t>
          </li>
          <li>
            <t>Description: Reserved for experimentation</t>
          </li>
        </ul>
      </section>
      <section anchor="wellknown">
        <name>The Well-Known URI Registry</name>
        <t>IANA has added the well-known URI "coap-eap" to the "Well-Known URIs"  registry under the group name "Well-Known URIs" defined by <xref target="RFC8615"/>. The registration procedure is "Specification Required".</t>
        <ul spacing="normal">
          <li>
            <t>URI suffix: coap-eap</t>
          </li>
          <li>
            <t>Change controller: IETF</t>
          </li>
          <li>
            <t>Specification document(s): [[this document]]</t>
          </li>
          <li>
            <t>Related information: None</t>
          </li>
          <li>
            <t>Status: permanent</t>
          </li>
        </ul>
      </section>
      <section anchor="lowerlayer">
        <name>The EAP lower layer identifier registry</name>
        <t>IANA has added the identifier of CoAP-EAP to the registry "EAP Lower Layer" under the Extensible Authentication Protocol (EAP) Registry defined by <xref target="RFC6677"/>. The registration procedure is "Expert Review".</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD.</t>
          </li>
          <li>
            <t>Lower Layer: CoAP-EAP</t>
          </li>
          <li>
            <t>Specification document(s): [[this document]]</t>
          </li>
        </ul>
      </section>
      <section anchor="mediatypes">
        <name>Media Types Registry</name>
        <t>IANA has added the media types "application/coap-eap" to the "Media Types" registry. The registration procedure is "Expert Review". <xref target="media-type-definition"/> defines the format.</t>
        <ul spacing="normal">
          <li>
            <t>Type name: application</t>
          </li>
          <li>
            <t>Subtype name: coap-eap</t>
          </li>
          <li>
            <t>Required parameters: N/A</t>
          </li>
          <li>
            <t>Optional parameters: N/A</t>
          </li>
          <li>
            <t>Encoding considerations: binary</t>
          </li>
          <li>
            <t>Security considerations: See <xref target="security_considerations"/> of this document.</t>
          </li>
          <li>
            <t>Interoperability considerations: N/A</t>
          </li>
          <li>
            <t>Published specification: [[this document]]</t>
          </li>
          <li>
            <t>Applications that use this media type: To be identified</t>
          </li>
          <li>
            <t>Fragment identifier considerations: N/A</t>
          </li>
          <li>
            <t>Additional information:
            </t>
            <ul spacing="normal">
              <li>
                <t>Magic number(s): N/A</t>
              </li>
              <li>
                <t>File extension(s): N/A</t>
              </li>
              <li>
                <t>Macintosh file type code(s): N/A</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Person and email address to contact for further information: See "Authors' Addresses" section.</t>
          </li>
          <li>
            <t>Intended usage: COMMON</t>
          </li>
          <li>
            <t>Restrictions on usage: N/A</t>
          </li>
          <li>
            <t>Author: See "Authors' Addresses" section.</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
        </ul>
      </section>
      <section anchor="content-format">
        <name>CoAP Content-Formats Registry</name>
        <t>IANA has added the media types "application/coap-eap" to the "CoAP Content-Formats" registry under the group name "Constrained RESTful Environments (CoRE) Parameters" following the specification in Section 12.3 of <xref target="RFC7252"/>. The registration procedure is "IETF Review".</t>
        <figure anchor="content-format_registry">
          <name>CoAP Content-Formats Registry</name>
          <artwork align="center"><![CDATA[
+-----------------------+----------+------+-------------------+
| Media Type            | Encoding | ID   | Reference         |
+-----------------------+----------+------+-------------------+
| application/coap-eap  | -        | TBD  | [[this document]] |
+-----------------------+----------+------+-------------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="resource-type">
        <name>Resource Type (rt=) Link Target Attribute Values Registry</name>
        <t>IANA has added the resource type "core.coap-eap" to the "Resource Type (rt=) Link Target Attribute Values" registry under the group name "Constrained RESTful Environments (CoRE) Parameters".</t>
        <ul spacing="normal">
          <li>
            <t>Value: "core.coap-eap"</t>
          </li>
          <li>
            <t>Description: CoAP-EAP resource.</t>
          </li>
          <li>
            <t>Reference: [[this document]]</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC5247" target="https://www.rfc-editor.org/info/rfc5247" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5247.xml">
          <front>
            <title>Extensible Authentication Protocol (EAP) Key Management Framework</title>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="D. Simon" initials="D." surname="Simon"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, enables extensible network access authentication. This document specifies the EAP key hierarchy and provides a framework for the transport and usage of keying material and parameters generated by EAP authentication algorithms, known as "methods". It also provides a detailed system-level security analysis, describing the conditions under which the key management guidelines described in RFC 4962 can be satisfied. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5247"/>
          <seriesInfo name="DOI" value="10.17487/RFC5247"/>
        </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="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="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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6677" target="https://www.rfc-editor.org/info/rfc6677" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6677.xml">
          <front>
            <title>Channel-Binding Support for Extensible Authentication Protocol (EAP) Methods</title>
            <author fullname="S. Hartman" initials="S." role="editor" surname="Hartman"/>
            <author fullname="T. Clancy" initials="T." surname="Clancy"/>
            <author fullname="K. Hoeper" initials="K." surname="Hoeper"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document defines how to implement channel bindings for Extensible Authentication Protocol (EAP) methods to address the "lying Network Access Service (NAS)" problem as well as the "lying provider" problem. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6677"/>
          <seriesInfo name="DOI" value="10.17487/RFC6677"/>
        </reference>
        <reference anchor="RFC8323" target="https://www.rfc-editor.org/info/rfc8323" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8323.xml">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="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>
        <reference anchor="RFC7959" target="https://www.rfc-editor.org/info/rfc7959" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7959.xml">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful transfer protocol for constrained nodes and networks. Basic CoAP messages work well for small payloads from sensors and actuators; however, applications will need to transfer larger payloads occasionally -- for instance, for firmware updates. In contrast to HTTP, where TCP does the grunt work of segmenting and resequencing, CoAP is based on datagram transports such as UDP or Datagram Transport Layer Security (DTLS). These transports only offer fragmentation, which is even more problematic in constrained nodes and networks, limiting the maximum size of resource representations that can practically be transferred.</t>
              <t>Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of "Block" options for transferring multiple blocks of information from a resource representation in multiple request-response pairs. In many important cases, the Block options enable a server to be truly stateless: the server can handle each block transfer separately, with no need for a connection setup or other server-side memory of previous block transfers. Essentially, the Block options provide a minimal way to transfer larger representations in a block-wise fashion.</t>
              <t>A CoAP implementation that does not support these options generally is limited in the size of the representations that can be exchanged, so there is an expectation that the Block options will be widely used in CoAP implementations. Therefore, this specification updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7959"/>
          <seriesInfo name="DOI" value="10.17487/RFC7959"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ingles-eap-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ingles-eap-edhoc-05" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ingles-eap-edhoc.xml">
          <front>
            <title>Using the Extensible Authentication Protocol with Ephemeral Diffie-Hellman over COSE (EDHOC)</title>
            <author fullname="Eduardo Ingles Sanchez" initials="E. I." surname="Sanchez">
              <organization>University of Murcia</organization>
            </author>
            <author fullname="Dan Garcia-Carrillo" initials="D." surname="Garcia-Carrillo">
              <organization>University of Oviedo</organization>
            </author>
            <author fullname="Rafael Marin-Lopez" initials="R." surname="Marin-Lopez">
              <organization>University of Murcia</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <date day="12" month="September" year="2023"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-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>
          <seriesInfo name="Internet-Draft" value="draft-ingles-eap-edhoc-05"/>
        </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="RFC7967" target="https://www.rfc-editor.org/info/rfc7967" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7967.xml">
          <front>
            <title>Constrained Application Protocol (CoAP) Option for No Server Response</title>
            <author fullname="A. Bhattacharyya" initials="A." surname="Bhattacharyya"/>
            <author fullname="S. Bandyopadhyay" initials="S." surname="Bandyopadhyay"/>
            <author fullname="A. Pal" initials="A." surname="Pal"/>
            <author fullname="T. Bose" initials="T." surname="Bose"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>There can be machine-to-machine (M2M) scenarios where server responses to client requests are redundant. This kind of open-loop exchange (with no response path from the server to the client) may be desired to minimize resource consumption in constrained systems while updating many resources simultaneously or performing high-frequency updates. CoAP already provides Non-confirmable (NON) messages that are not acknowledged by the recipient. However, the request/response semantics still require the server to respond with a status code indicating "the result of the attempt to understand and satisfy the request", per RFC 7252.</t>
              <t>This specification introduces a CoAP option called 'No-Response'. Using this option, the client can explicitly express to the server its disinterest in all responses against the particular request. This option also provides granular control to enable expression of disinterest to a particular response class or a combination of response classes. The server MAY decide to suppress the response by not transmitting it back to the client according to the value of the No-Response option in the request. This option may be effective for both unicast and multicast requests. This document also discusses a few examples of applications that benefit from this option.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7967"/>
          <seriesInfo name="DOI" value="10.17487/RFC7967"/>
        </reference>
        <reference anchor="RFC5869" target="https://www.rfc-editor.org/info/rfc5869" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC8415" target="https://www.rfc-editor.org/info/rfc8415" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8415.xml">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="November" year="2018"/>
            <abstract>
              <t>This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t>This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283). In addition, this document clarifies the interactions between models of operation (RFC 7550). As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8415"/>
          <seriesInfo name="DOI" value="10.17487/RFC8415"/>
        </reference>
        <reference anchor="RFC6762" target="https://www.rfc-editor.org/info/rfc6762" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6762.xml">
          <front>
            <title>Multicast DNS</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
              <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
              <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6762"/>
          <seriesInfo name="DOI" value="10.17487/RFC6762"/>
        </reference>
        <reference anchor="RFC4764" target="https://www.rfc-editor.org/info/rfc4764" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4764.xml">
          <front>
            <title>The EAP-PSK Protocol: A Pre-Shared Key Extensible Authentication Protocol (EAP) Method</title>
            <author fullname="F. Bersani" initials="F." surname="Bersani"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document specifies EAP-PSK, an Extensible Authentication Protocol (EAP) method for mutual authentication and session key derivation using a Pre-Shared Key (PSK). EAP-PSK provides a protected communication channel when mutual authentication is successful for both parties to communicate over. This document describes the use of this channel only for protected exchange of result indications, but future EAP-PSK extensions may use the channel for other purposes. EAP-PSK is designed for authentication over insecure networks such as IEEE 802.11. This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4764"/>
          <seriesInfo name="DOI" value="10.17487/RFC4764"/>
        </reference>
        <reference anchor="RFC5191" target="https://www.rfc-editor.org/info/rfc5191" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5191.xml">
          <front>
            <title>Protocol for Carrying Authentication for Network Access (PANA)</title>
            <author fullname="D. Forsberg" initials="D." surname="Forsberg"/>
            <author fullname="Y. Ohba" initials="Y." role="editor" surname="Ohba"/>
            <author fullname="B. Patil" initials="B." surname="Patil"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="A. Yegin" initials="A." surname="Yegin"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This document defines the Protocol for Carrying Authentication for Network Access (PANA), a network-layer transport for Extensible Authentication Protocol (EAP) to enable network access authentication between clients and access networks. In EAP terms, PANA is a UDP-based EAP lower layer that runs between the EAP peer and the EAP authenticator. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5191"/>
          <seriesInfo name="DOI" value="10.17487/RFC5191"/>
        </reference>
        <reference anchor="RFC5448" target="https://www.rfc-editor.org/info/rfc5448" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5448.xml">
          <front>
            <title>Improved Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement (EAP-AKA')</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="V. Lehtovirta" initials="V." surname="Lehtovirta"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2009"/>
            <abstract>
              <t>This specification defines a new EAP method, EAP-AKA', which is a small revision of the EAP-AKA (Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement) method. The change is a new key derivation function that binds the keys derived within the method to the name of the access network. The new key derivation mechanism has been defined in the 3rd Generation Partnership Project (3GPP). This specification allows its use in EAP in an interoperable manner. In addition, EAP-AKA' employs SHA-256 instead of SHA-1.</t>
              <t>This specification also updates RFC 4187, EAP-AKA, to prevent bidding down attacks from EAP-AKA'. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5448"/>
          <seriesInfo name="DOI" value="10.17487/RFC5448"/>
        </reference>
        <reference anchor="RFC6696" target="https://www.rfc-editor.org/info/rfc6696" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6696.xml">
          <front>
            <title>EAP Extensions for the EAP Re-authentication Protocol (ERP)</title>
            <author fullname="Z. Cao" initials="Z." surname="Cao"/>
            <author fullname="B. He" initials="B." surname="He"/>
            <author fullname="Y. Shi" initials="Y." surname="Shi"/>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="G. Zorn" initials="G." role="editor" surname="Zorn"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP) is a generic framework supporting multiple types of authentication methods. In systems where EAP is used for authentication, it is desirable to avoid repeating the entire EAP exchange with another authenticator. This document specifies extensions to EAP and the EAP keying hierarchy to support an EAP method-independent protocol for efficient re- authentication between the peer and an EAP re-authentication server through any authenticator. The re-authentication server may be in the home network or in the local network to which the peer is connecting. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6696"/>
          <seriesInfo name="DOI" value="10.17487/RFC6696"/>
        </reference>
        <reference anchor="RFC7833" target="https://www.rfc-editor.org/info/rfc7833" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7833.xml">
          <front>
            <title>A RADIUS Attribute, Binding, Profiles, Name Identifier Format, and Confirmation Methods for the Security Assertion Markup Language (SAML)</title>
            <author fullname="J. Howlett" initials="J." surname="Howlett"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="A. Perez-Mendez" initials="A." role="editor" surname="Perez-Mendez"/>
            <date month="May" year="2016"/>
            <abstract>
              <t>This document describes the use of the Security Assertion Markup Language (SAML) with RADIUS in the context of the Application Bridging for Federated Access Beyond web (ABFAB) architecture. It defines two RADIUS attributes, a SAML binding, a SAML name identifier format, two SAML profiles, and two SAML confirmation methods. The RADIUS attributes permit encapsulation of SAML Assertions and protocol messages within RADIUS, allowing SAML entities to communicate using the binding. The two profiles describe the application of this binding for ABFAB authentication and assertion Query/Request, enabling a Relying Party to request authentication of, or assertions for, users or machines (clients). These clients may be named using a Network Access Identifier (NAI) name identifier format. Finally, the subject confirmation methods allow requests and queries to be issued for a previously authenticated user or machine without needing to explicitly identify them as the subject. The use of the artifacts defined in this document is not exclusive to ABFAB. They can be applied in any Authentication, Authorization, and Accounting (AAA) scenario, such as network access control.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7833"/>
          <seriesInfo name="DOI" value="10.17487/RFC7833"/>
        </reference>
        <reference anchor="RFC8824" target="https://www.rfc-editor.org/info/rfc8824" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8824.xml">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="R. Andreasen" initials="R." surname="Andreasen"/>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. SCHC defines a header compression mechanism adapted for Constrained Devices. SCHC uses a static description of the header to reduce the header's redundancy and size. While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers. The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length. The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages. This specification gives guidance on applying SCHC to flexible headers and how to leverage the asymmetry for more efficient compression Rules.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8824"/>
          <seriesInfo name="DOI" value="10.17487/RFC8824"/>
        </reference>
        <reference anchor="RFC9147" target="https://www.rfc-editor.org/info/rfc9147" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9147.xml">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </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="RFC9140" target="https://www.rfc-editor.org/info/rfc9140" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9140.xml">
          <front>
            <title>Nimble Out-of-Band Authentication for EAP (EAP-NOOB)</title>
            <author fullname="T. Aura" initials="T." surname="Aura"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <author fullname="A. Peltonen" initials="A." surname="Peltonen"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP) provides support for multiple authentication methods. This document defines the EAP-NOOB authentication method for nimble out-of-band (OOB) authentication and key derivation. The EAP method is intended for bootstrapping all kinds of Internet-of-Things (IoT) devices that have no preconfigured authentication credentials. The method makes use of a user-assisted, one-directional, out-of-band (OOB) message between the peer device and authentication server to authenticate the in-band key exchange. The device must have a nonnetwork input or output interface, such as a display, microphone, speaker, or blinking light, that can send or receive dynamically generated messages of tens of bytes in length.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9140"/>
          <seriesInfo name="DOI" value="10.17487/RFC9140"/>
        </reference>
        <reference anchor="RFC9176" target="https://www.rfc-editor.org/info/rfc9176" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9176.xml">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC8615" target="https://www.rfc-editor.org/info/rfc8615" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8615.xml">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC9200" target="https://www.rfc-editor.org/info/rfc9200" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9200.xml">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9190" target="https://www.rfc-editor.org/info/rfc9190" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9190.xml">
          <front>
            <title>EAP-TLS 1.3: Using the Extensible Authentication Protocol with TLS 1.3</title>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods. This document specifies the use of EAP-TLS with TLS 1.3 while remaining backwards compatible with existing implementations of EAP-TLS. TLS 1.3 provides significantly improved security and privacy, and reduced latency when compared to earlier versions of TLS. EAP-TLS with TLS 1.3 (EAP-TLS 1.3) further improves security and privacy by always providing forward secrecy, never disclosing the peer identity, and by mandating use of revocation checking when compared to EAP-TLS with earlier versions of TLS. This document also provides guidance on authentication, authorization, and resumption for EAP-TLS in general (regardless of the underlying TLS version used). This document updates RFC 5216.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9190"/>
          <seriesInfo name="DOI" value="10.17487/RFC9190"/>
        </reference>
        <reference anchor="RFC9031" target="https://www.rfc-editor.org/info/rfc9031" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9031.xml">
          <front>
            <title>Constrained Join Protocol (CoJP) for 6TiSCH</title>
            <author fullname="M. Vučinić" initials="M." role="editor" surname="Vučinić"/>
            <author fullname="J. Simon" initials="J." surname="Simon"/>
            <author fullname="K. Pister" initials="K." surname="Pister"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes the minimal framework required for a new device, called a "pledge", to securely join a 6TiSCH (IPv6 over the Time-Slotted Channel Hopping mode of IEEE 802.15.4) network. The framework requires that the pledge and the JRC (Join Registrar/Coordinator, a central entity), share a symmetric key. How this key is provisioned is out of scope of this document. Through a single CoAP (Constrained Application Protocol) request-response exchange secured by OSCORE (Object Security for Constrained RESTful Environments), the pledge requests admission into the network, and the JRC configures it with link-layer keying material and other parameters. The JRC may at any time update the parameters through another request-response exchange secured by OSCORE. This specification defines the Constrained Join Protocol and its CBOR (Concise Binary Object Representation) data structures, and it describes how to configure the rest of the 6TiSCH communication stack for this join process to occur in a secure manner. Additional security mechanisms may be added on top of this minimal framework.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9031"/>
          <seriesInfo name="DOI" value="10.17487/RFC9031"/>
        </reference>
        <reference anchor="RFC4017" target="https://www.rfc-editor.org/info/rfc4017" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4017.xml">
          <front>
            <title>Extensible Authentication Protocol (EAP) Method Requirements for Wireless LANs</title>
            <author fullname="D. Stanley" initials="D." surname="Stanley"/>
            <author fullname="J. Walker" initials="J." surname="Walker"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The IEEE 802.11i MAC Security Enhancements Amendment makes use of IEEE 802.1X, which in turn relies on the Extensible Authentication Protocol (EAP). This document defines requirements for EAP methods used in IEEE 802.11 wireless LAN deployments. The material in this document has been approved by IEEE 802.11 and is being presented as an IETF RFC for informational purposes. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4017"/>
          <seriesInfo name="DOI" value="10.17487/RFC4017"/>
        </reference>
        <reference anchor="EAP-framework-IoT" target="https://ieeexplore.ieee.org/document/9579387">
          <front>
            <title>Secure Network Access Authentication for IoT Devices: EAP Framework vs. Individual Protocols</title>
            <author initials="M." surname="Sethi" fullname="Ericsson">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="lo-coap-eap" target="https://www.mdpi.com/1424-8220/17/11/2646">
          <front>
            <title>A CoAP-Based Network Access Authentication Service for Low-Power Wide Area Networks: LO-CoAP-EAP</title>
            <author initials="D." surname="Garcia-Carrillo" fullname="Dan Garcia-Carrillo">
              <organization/>
            </author>
            <author initials="R." surname="Marin-Lopez" fullname="Rafael Marin-Lopez">
              <organization/>
            </author>
            <author initials="A." surname="Kandasamy" fullname="Arunprabhu Kandasamy">
              <organization/>
            </author>
            <author initials="A." surname="Pelov" fullname="Alexander Pelov">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="coap-eap" target="https://www.mdpi.com/1424-8220/16/3/358">
          <front>
            <title>Lightweight CoAP-Based Bootstrapping Service for the Internet of Things</title>
            <author initials="D." surname="Garcia-Carrillo" fullname="Dan Garcia-Carrillo">
              <organization/>
            </author>
            <author initials="R." surname="Marin-Lopez" fullname="Rafael Marin-Lopez">
              <organization/>
            </author>
            <date year="2016"/>
          </front>
        </reference>
        <reference anchor="TS133.501" target="">
          <front>
            <title>5G; Security architecture and procedures for 5G System - TS 133 501 V15.2.0 (2018-10)</title>
            <author initials="" surname="ETSI" fullname="ETSI">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="ZigbeeIP" target="">
          <front>
            <title>ZigBee IP Specification (Zigbee Document 095023r34)</title>
            <author initials="" surname="Zigbee Alliance" fullname="Zigbee Alliance">
              <organization/>
            </author>
            <date year="2014"/>
          </front>
        </reference>
        <reference anchor="THREAD" target="">
          <front>
            <title>Thread specification 1.3</title>
            <author initials="" surname="Thread Group" fullname="Thread Group">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 803?>

<section anchor="flow-of-operation-dtls">
      <name>Flow of operation (DTLS establishment)</name>
      <t>CoAP-EAP makes it possible to derive a PSK from the MSK to allow (D)TLS PSK-based authentication between the EAP peer and the EAP authenticator instead of using OSCORE. In the case of using (D)TLS to establish a security association, there is a limitation on the use of intermediaries between the EAP peer and the EAP authenticator, as (D)TLS breaks the end-to-end communications when using intermediaries such as proxies.</t>
      <figure anchor="fig-dtls">
        <name>CoAP-EAP flow of operation with DTLS</name>
        <artwork align="center"><![CDATA[
       EAP peer                                EAP authenticator
     -------------                             -------------
                             ...
           | 2.01 Created Location-Path [/a/eap/(n)] |
           | Payload (EAP-X Resp)                    |
         6)|---------------------------------------->|
           |                                         | MSK
           |          (D)TLS 1.3 Client Hello        |  |
   MSK  7) |<----------------------------------------|  V
    |      |                                         | DTLS_PSK
    V      |===============DTLS hanshake=============|
 DTLS_PSK  |                                         |
                               *...
                 (*) Protected with (D)TLS
]]></artwork>
      </figure>
      <t><xref target="fig-dtls"/> shows the last steps of the operation for CoAP-EAP when (D)TLS is used to protect the communication between the EAP peer and the EAP authenticator using the keying material exported by the EAP authentication. The general flow is essentially the same as in the case of OSCORE, except that DTLS negotiation is established in Step 7). Once DTLS negotiation has finished successfully the EAP peer is granted access to the domain. Step 7 <bcp14>MUST</bcp14> be interpreted by the EAP peer as an alternate success indication, which will end up with the MSK and the DTLS_PSK derivation for the (D)TLS authentication based on PSK.</t>
      <t>According to <xref target="RFC8446"/> the provision of the PSK out-of-band also requires the provision of the KDF hash algorithm and the PSK identity. To simplify the design in CoAP-EAP, the KDF hash algorithm can be included in the list of cipher suites exchanged in Step 1 and Step 2 if DTLS wants to be used instead of OSCORE. For the same reason, the PSK identity is derived from (RID-C) (RID-I) as defined in <xref target="dtls-psk"/>.</t>
      <t>Analogously to how the cipher suite is negotiated for OSCORE <xref target="crypto-negotiation"/>, the EAP authenticator sends a list, in decreasing order of preference, with the identifiers of the hash algorithms supported (Step 1). In the response, the EAP peer sends the choice.</t>
      <t>This list is included in the payload after the EAP message with a CBOR array that contains the cipher suites. This CBOR array is enclosed as one of the elements of the CBOR Object used for transporting information in CoAP-EAP (See <xref target="cbor-coap-eap"/>).   An example of how the fields are arranged in the CoAP payload can be seen in <xref target="figure5"/>.</t>
      <t>In case there is no CBOR array stating the cipher suites, the default cipher suites are applied. If the EAP authenticator sends a restricted list of cipher suites that is willing to accept, it <bcp14>MUST</bcp14> include the default value 0 since it is mandatory to implement. The EAP peer will have at least that option available.</t>
      <t>For DTLS, the negotiated cipher suite is used to determine the hash function to be used to derive the “DTLS PSK” from the MSK:</t>
      <t>The hash algorithms considered are the following:</t>
      <ul spacing="normal">
        <li>
          <t>5) TLS_SHA256</t>
        </li>
        <li>
          <t>6) TLS_SHA384</t>
        </li>
        <li>
          <t>7) TLS_SHA512</t>
        </li>
      </ul>
      <t>The inclusion of any of these values, apart from indicating the hash algorithm, indicates if the EAP authenticator intends to establish an OSCORE security association or a DTLS security association after the authentication is completed. If both options appear in the cipher suite negotiation, the OSCORE security association will be preferred over DTLS.</t>
      <section anchor="dtls-psk">
        <name>Deriving DTLS PSK and identity</name>
        <t>To enable DTLS after an EAP authentication, we define the Identity and the PSK for DTLS. The Identity in this case is generated by concatenating the exchanged Sender ID and the Recipient ID.</t>
        <artwork><![CDATA[
               CoAP-EAP PSK Identity = RID-C || RID-I
]]></artwork>
        <t>It is also possible to derive a pre-shared key for DTLS <xref target="RFC9147"/>, referred to here as "DTLS PSK", from the MSK between both the EAP peer and EAP authenticator if required. The length of the DTLS PSK will depend on the cipher suite. To have keying material with sufficient length a key of 32 bytes is derived that can be later truncated if needed:</t>
        <artwork><![CDATA[
               DTLS PSK = KDF(MSK, "CoAP-EAP DTLS PSK", length).
]]></artwork>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>MSK is exported by the EAP method.</t>
          </li>
          <li>
            <t>"CoAP-EAP DTLS PSK" is the ASCII code representation of the non-NULL terminated string (excluding the double quotes around it).</t>
          </li>
          <li>
            <t>length is the size of the output key material.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="using-coap-eap-for-distributing-key-material-for-iot-networks">
      <name>Using CoAP-EAP for distributing key material for IoT networks</name>
      <t>Similarly, to the example of <xref target="dtls-psk"/>, where a shared key PSK for DTLS is derived, it is possible to provide key material to different link-layers after the CoAP-EAP authentication is complete.</t>
      <t>One example is that we could use CoAP-EAP to derive the required PSK required to run the 6TiSCH Constrained Join Protocol (CoJP) <xref target="RFC9031"/>.</t>
      <t>Another example is when a shared Network Key is required by the devices that join a network. An example of this Network Key can be found in ZigBee IP <xref target="ZigbeeIP"/> or THREAD protocol <xref target="THREAD"/>. After CoAP-EAP execution a security association based on OSCORE protects any exchange between the EAP peer and the EAP authenticator. This security association can be used for distributing the Network Key securely and other required parameters. How the Network Key is distributed after a successful CoAP-EAP authentication is out of the scope of this document.</t>
      <t>How a particular link-layer technology uses the MSK to derive further key material for protecting the link-layer or use the OSCORE protection to distribute key material is out of the scope of this document.</t>
    </section>
    <section anchor="examples-of-use-case-scenario">
      <name>Examples of Use Case Scenario</name>
      <t>In IoT, for an EAP peer to act as a trustworthy entity within a security domain, certain key material needs to be shared between the EAP peer and the EAP authenticator.</t>
      <t>Next, we elaborate on examples of different use case scenarios about the usage of CoAP-EAP.</t>
      <t>Generally, we are dealing with 4 entities:</t>
      <ul spacing="normal">
        <li>
          <t>2 EAP peers (A and B), which are EAP peers. They are the EAP peers.</t>
        </li>
        <li>
          <t>1 EAP authenticator (C). The EAP authenticator manages a domain where EAP peers can be deployed. In IoT, it can be considered a more powerful machine than the EAP peers.</t>
        </li>
        <li>
          <t>1 AAA server (AAA) - Optional. The AAA is an Authentication, Authorization, and Accounting Server, which is not constrained. Here, the EAP authenticator acts as an EAP authenticator in pass-through mode.</t>
        </li>
      </ul>
      <t>Generally, any EAP peer wanting to join the domain managed by the EAP authenticator <bcp14>MUST</bcp14> perform a CoAP-EAP authentication with the EAP authenticator (C). This authentication <bcp14>MAY</bcp14> involve an external AAA server.  This means that A and B, once deployed, will run CoAP-EAP once, as a bootstrapping phase, to establish a security association with C. Moreover, any other entity, which wants to join and establish communications with EAP peers under C's domain must also do the same.</t>
      <t>By using EAP, we can have the flexibility of having different types of credentials. For instance, if we have a device that is not battery-dependent, and not very constrained, we could use a heavier authentication method. With varied EAP peers and networks, we might need to resort to more lightweight authentication methods (e.g., EAP-NOOB<xref target="RFC9140"/>, EAP-AKA'<xref target="RFC5448"/>, EAP-PSK<xref target="RFC4764"/>, EAP-EDHOC<xref target="I-D.ingles-eap-edhoc"/>, etc.) being able to adapt to different types of devices according to organization policies or devices capabilities.</t>
      <section anchor="example-1-coap-eap-in-ace">
        <name>Example 1:  CoAP-EAP in ACE</name>
        <t>In ACE, the process of client registration and provisioning of credentials to the client is not specified. The process of Client registration and provisioning can be achieved using CoAP-EAP. Once the process of authentication with EAP is completed, the fresh key material is shared between the EAP peer and the EAP authenticator. In this instance, the EAP authenticator and the Authorization Server (AS) of ACE can be co-located.</t>
        <t>Next, we exemplify how CoAP-EAP can be used to perform Client registration in a general way, to allow two EAP peers (A and B) to communicate and interact after a successful client registration.</t>
        <t>EAP peer A wants to communicate with EAP peer B (e.g., to activate a light switch).  The overall process is divided into three phases.  Let's start with EAP peer A. In the first phase, EAP peer A does not yet belong to EAP authenticator C's domain.  Then, it communicates with C and authenticates with CoAP-EAP, which, optionally, communicates with the AAA server to complete the authentication process. If the authentication is successful, a fresh MSK is shared between C and EAP peer A. This key material allows EAP peer A to establish a security association with the C. Some authorization information may be also provided in this step. In case EAP is used in standalone mode, the AS itself having information about the devices can be the entity providing said authorization information.</t>
        <t>If authentication and authorization are correct, EAP peer A has been enrolled in the  EAP authenticator C's domain for some time. In particular, <xref target="RFC5247"/> recommends 8 hours, though the entity providing the authorization information can establish this lifetime.  In the same manner, B needs to perform the same process with CoAP-EAP to be part of EAP authenticator C's domain.</t>
        <t>In the second phase, when EAP peer A wants to talk with EAP peer B, it contacts EAP authenticator C for authorization to access EAP peer B and obtain all the required information to do that securely (e.g., keys, tokens, authorization information, etc.).  This phase does NOT require the usage of CoAP-EAP.  The details of this phase are out of the scope of this document, and the ACE framework is used for this purpose <xref target="RFC9200"/>.</t>
        <t>In the third phase, EAP peer A can access EAP peer B with the credentials and information obtained from EAP authenticator C in the second phase. This access can be repeated without contacting the EAP authenticator, while the credentials given to A are still valid.  The details of this phase are out of the scope of this document.</t>
        <t>It is worth noting that the first phase with CoAP-EAP is required to join the EAP authenticator C's domain.  Once it is performed with success, the communications are local to the EAP authenticator C's domain and there is no need to perform a new EAP authentication as long as the key material is still valid. When the keys are about to expire, the EAP peer can engage in a re-authentication as explained in <xref target="re-authentication"/>, to renew the key material.</t>
      </section>
      <section anchor="example-2-multi-domain-with-aaa-infrastructures">
        <name>Example 2: Multi-domain with AAA infrastructures</name>
        <t>We assume we have a device (A) of the domain acme.org, which uses a specific kind of credential (e.g., AKA) and intends to join the um.es domain. This user does not belong to this domain, for which first it performs a client registration using CoAP-EAP. For this, it interacts with the EAP authenticator's domain, which in turn communicates with an AAA infrastructure (acting as AAA client). Through the local AAA server communicate with the home AAA server to complete the authentication and integrate the device as a trustworthy entity into the domain of EAP authenticator C. In this scenario, the AS under the role of the EAP authenticator receives the key material from the AAA infrastructure</t>
      </section>
      <section anchor="example-3-single-domain-with-aaa-infrastructure">
        <name>Example 3: Single domain with AAA infrastructure</name>
        <t>As a University Campus, we have several Faculty buildings and each one has its criteria or policies in place to manage EAP peers under an AS. All buildings belong to the same domain (e.g., um.es). All these buildings are managed with AAA infrastructure. A new device (A) with credentials from the domain (e.g., um.es) will be able to perform the device registration with an EAP authenticator (C) of any building if they are managed by the same general domain.</t>
      </section>
      <section anchor="example-4-single-domain-without-aaa-infrastructure">
        <name>Example 4: Single domain without AAA infrastructure</name>
        <t>In another case, without a AAA infrastructure, we have an EAP authenticator that has co-located the EAP server, and using EAP standalone mode we can manage all the devices within the same domain locally. Client registration of an EAP peer (A) with Controller (C) can also be performed in the same manner.</t>
      </section>
      <section anchor="other-use-cases">
        <name>Other use cases</name>
        <section anchor="coap-eap-for-network-access-control">
          <name>CoAP-EAP for network access control</name>
          <t>One of the first steps for an EAP peer's life cycle is to perform the authentication to gain access to the network. To do so, the device first must be authenticated and granted authorization to gain access to the network. Additionally, security parameters such as credentials can be derived from the authentication process allowing the trustworthy operation of the EAP peer in a particular network by joining the security domain. By using EAP, we can achieve this with flexibility and scalability, because of the different EAP methods available and the ability to rely on AAA infrastructures if needed to support multi-domain scenarios, which is a key feature when the EAP peers deployed under the same security domain, belong to different organizations.</t>
          <t>Given that EAP is also used for network access control, we can adapt this service to other technologies. For instance, to provide network access control to very constrained technologies (e.g., LoRa network). Authors in <xref target="lo-coap-eap"/> provide a study of a minimal version of CoAP-EAP for LPWAN networks with interesting results. In this specific case, we could leverage the compression by SCHC for CoAP <xref target="RFC8824"/>.</t>
        </section>
        <section anchor="coap-eap-for-service-authentication">
          <name>CoAP-EAP for service authentication</name>
          <t>It is not uncommon that the infrastructure where the device is deployed and the services of the EAP peer are managed by different organizations. Therefore, in addition to the authentication for network access control, we have to consider the possibility of a secondary authentication to access different services. This process of authentication, for example, will provide the necessary key material to establish a secure channel and interact with the entity in charge of granting access to different services.</t>
          <t>In 5G, for example, consider primary and secondary authentication using EAP <xref target="TS133.501"/>.</t>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank the reviewers of this work: Paul Wouters, Heikki Vatiainen, Josh Howlett, Deb Cooley, Eliot Lear, Alan DeKok, Carsten Bormann, Mohit Sethi, Benjamin Kaduk, Christian Amsuss, John Mattsson, Goran Selander, Alexandre Petrescu, Pedro Moreno-Sanchez and Eduardo Ingles-Sanchez.</t>
      <t>We would also like to thank Gabriel Lopez-Millan for the first review of this document, and we would like to thank Ivan Jimenez-Sanchez for the first proof-of-concept implementation of this idea, and Julian Niklas Schimmelpfennig for the implementation of the Erbium-based IoT device implementation.</t>
      <t>And thank for their valuable comments to Alexander Pelov and Laurent Toutain, especially for the potential optimizations of CoAP-EAP.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V963bbWHbmfz7FGfmHxSqS1t22kuqElmRbXZKliHJVJ921
akEkJKENAmwAlKyWPSsPkllrnmUeJU8y+3ouAEhJru5JRiuppkngXPfZ9/2d
fr/fqZIqjXfNwfC0fxGV8cQM59V1nFXJOKqSPDOjuLhJxrG5zAuzlw9PO5N8
nEVTeGVSRJdVP4mry340jvu3V/1xHs36Mfz/+lonurgo4ptdeqcPrXc6yazY
NVUxL6uNtbXXaxudcn4xTcoSejm/m0GDhwfnbztREUe7ZnSw17nNi09XRT6f
7Zrh3oH5Gf6ZZFfmHX7VgdHtmrKadMZ5VsZZOS+p7bgDX0zgsV0zh3G96syS
XfPMjKPMzMvYREUR3ZnV5NJEaWru4rJrYFrXUXltruMi7hhT5eNd/AE+lnlR
FfFlaf99N/X/CU9O4ll1vWs2O50IFi0vdjt9k2TwxNnAHEdFkvWP8ln8V3iY
V+wsuoxqP+QFDPVjltzERZlUdya/NMfzYpxE8Jsu4YKfSxhdDKuwF01n89JM
YnNQzpIsKia5Gb340DNvo/E85Zf2cnimigszGidxNsaZjqG9XddaEV/BRuya
58/xt3wCw91cW19bo3/Ns6qAh0ezKMngi3gaJemugf2P/nk+HcByyLz3B+Zd
hA3292CpkzTN7dz3YQuav7VM/+QmiSf5wunbn9300zQ2R/OkNCdFlfzVvImL
Ih9HKS/CwSS5TMZJbk7zNLmJUiBtN/t3yZ/zzJv8sKzmRRKVbgk2N9Y2lyzB
Fc1oEmX/PM+S/CbBteh0sryYwum5iXfhSXP2dm9jff21ft7e2Hqpnzdfbr3S
zy83tjf086ud9U37ef3lln7e2Xlp3321ueGe2drasZ9fb9m+Xr7ehs+dJLt0
I4KfDvv7AzgjaVzSaY0n10D1HXrj9dr2pnx8+XrnpXzcfrXzWj6+2lrflo87
L3c25OPWy50tfXb99bp+3OLp0chf72i7rza1i1evNvS11+tb2tvW+uZL9+2a
/fhSW4Dl0TG8Bl5iH3htP65t6hi21tahMZw1srjLAogRGUv/MD+nVTJVVFwh
HV1X1azcffEiieP48yzNi3iAHwdAoi+A582nQDkvXm+/fL356iW/yJxzZRSP
50VsPsQVNmyG43FclnU2iuwTujT7MXLTkhiueaujMTflwBxmk+QmmcyBck+L
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
a44BAQA=

-->

</rfc>
