<?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.23 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-wg-coap-eap-13" category="std" consensus="true" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.26.0 -->
  <front>
    <title abbrev="CoAP-EAP">EAP-based Authentication Service for CoAP</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-wg-coap-eap-13"/>
    <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="2025" month="February" day="05"/>
    <area>SEC</area>
    <workgroup>ACE Working Group</workgroup>
    <abstract>
      <?line 155?>

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

<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>The EAP methods that can be transported with CoAP-EAP <bcp14>MUST</bcp14> export cryptographic material <xref target="RFC5247"/> for this specification. Examples of such methods are EAP-GPSK <xref target="RFC5433"/>, EAP-SIM <xref target="RFC4186"/>, EAP-AKA' <xref target="RFC5448"/>, EAP-TLS 1.3 <xref target="RFC9190"/>, EAP-EDHOC <xref target="I-D.ietf-emu-eap-edhoc"/>, etc. In general, any EAP method designed in EMU Working Group that exports the Master Session Key (MSK) can be used with CoAP-EAP. The Master Session Key (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 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.</t>
      <t>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 with fewer exchanges, shorter messages, and cryptographic algorithms suitable for 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 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 Extensible Authentication Protocol (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> support key derivation and export, as specified in <xref target="RFC5247"/>, a Master Session Key (MSK) of at least 64 octets, and an Extended Master Session Key (EMSK) of at least 64 octets. 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>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="480" viewBox="0 0 480 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
              <path d="M 152,32 L 152,80" fill="none" stroke="black"/>
              <path d="M 272,32 L 272,80" fill="none" stroke="black"/>
              <path d="M 384,32 L 384,80" fill="none" stroke="black"/>
              <path d="M 472,32 L 472,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 152,32 L 272,32" fill="none" stroke="black"/>
              <path d="M 384,32 L 472,32" fill="none" stroke="black"/>
              <path d="M 88,64 L 144,64" fill="none" stroke="black"/>
              <path d="M 280,64 L 376,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 152,80 L 272,80" fill="none" stroke="black"/>
              <path d="M 384,80 L 472,80" fill="none" stroke="black"/>
              <path d="M 8,112 L 48,112" fill="none" stroke="black"/>
              <path d="M 232,112 L 272,112" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="384,64 372,58.4 372,69.6" fill="black" transform="rotate(0,376,64)"/>
              <polygon class="arrowhead" points="288,64 276,58.4 276,69.6" fill="black" transform="rotate(180,280,64)"/>
              <polygon class="arrowhead" points="280,112 268,106.4 268,117.6" fill="black" transform="rotate(0,272,112)"/>
              <polygon class="arrowhead" points="152,64 140,58.4 140,69.6" fill="black" transform="rotate(0,144,64)"/>
              <polygon class="arrowhead" points="96,64 84,58.4 84,69.6" fill="black" transform="rotate(180,88,64)"/>
              <polygon class="arrowhead" points="16,112 4,106.4 4,117.6" fill="black" transform="rotate(180,8,112)"/>
              <g class="text">
                <text x="40" y="52">EAP</text>
                <text x="192" y="52">EAP</text>
                <text x="428" y="52">AAA/</text>
                <text x="44" y="68">peer</text>
                <text x="216" y="68">authenticator</text>
                <text x="400" y="68">EAP</text>
                <text x="444" y="68">Server</text>
                <text x="116" y="84">CoAP</text>
                <text x="328" y="84">AAA</text>
                <text x="332" y="100">(Optional)</text>
                <text x="72" y="116">SCOPE</text>
                <text x="108" y="116">OF</text>
                <text x="140" y="116">THIS</text>
                <text x="196" y="116">DOCUMENT</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
  +--------+        +--------------+             +----------+
  |  EAP   |        |   EAP        |             |   AAA/   |
  |  peer  |<------>| authenticator|<----------->|EAP Server|
  +--------+  CoAP  +--------------+     AAA     +----------+
                                      (Optional)
  <----(SCOPE OF THIS DOCUMENT)---->
]]></artwork>
        </artset>
      </figure>
      <figure anchor="stack">
        <name>CoAP-EAP Stack</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="432" viewBox="0 0 432 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,192" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,192" fill="none" stroke="black"/>
              <path d="M 8,32 L 264,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 264,64" fill="none" stroke="black"/>
              <path d="M 280,80 L 296,80" fill="none" stroke="black"/>
              <path d="M 8,96 L 264,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 264,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 264,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 264,192" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="288,80 276,74.4 276,85.6" fill="black" transform="rotate(180,280,80)"/>
              <g class="text">
                <text x="64" y="52">EAP</text>
                <text x="104" y="52">State</text>
                <text x="160" y="52">Machine</text>
                <text x="120" y="84">Application(CoAP-EAP)</text>
                <text x="324" y="84">This</text>
                <text x="380" y="84">Document</text>
                <text x="128" y="116">Request/Responses/Signaling</text>
                <text x="288" y="116">RFC</text>
                <text x="324" y="116">7252</text>
                <text x="352" y="116">/</text>
                <text x="376" y="116">RFC</text>
                <text x="412" y="116">8323</text>
                <text x="48" y="148">Message</text>
                <text x="88" y="148">/</text>
                <text x="128" y="148">Message</text>
                <text x="192" y="148">Framing</text>
                <text x="288" y="148">RFC</text>
                <text x="324" y="148">7252</text>
                <text x="352" y="148">/</text>
                <text x="376" y="148">RFC</text>
                <text x="412" y="148">8323</text>
                <text x="52" y="180">Unreliable</text>
                <text x="104" y="180">/</text>
                <text x="148" y="180">Reliable</text>
                <text x="224" y="180">Transport</text>
                <text x="288" y="180">RFC</text>
                <text x="324" y="180">7252</text>
                <text x="352" y="180">/</text>
                <text x="376" y="180">RFC</text>
                <text x="412" y="180">8323</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" 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>
        </artset>
      </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>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).  The /.well-known/coap-eap URI is used with "coap", "coap+tcp" or "coap+ws".</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 (see <xref target="flow-of-operation"/>, 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.</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, the chosen EAP method is represented 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 as an example "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 proposed cipher suites (CS-C) 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 (CS-I) are included in the payload. In this step, the EAP peer may 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 successfully, 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 reception of the OSCORE-protected POST message 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 to create 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>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="592" width="464" viewBox="0 0 464 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 16,512 L 16,528" fill="none" stroke="black"/>
                <path d="M 64,56 L 64,304" fill="none" stroke="black"/>
                <path d="M 64,336 L 64,560" fill="none" stroke="black"/>
                <path d="M 400,56 L 400,304" fill="none" stroke="black"/>
                <path d="M 400,336 L 400,560" fill="none" stroke="black"/>
                <path d="M 432,448 L 432,464" fill="none" stroke="black"/>
                <path d="M 24,48 L 120,48" fill="none" stroke="black"/>
                <path d="M 344,48 L 432,48" fill="none" stroke="black"/>
                <path d="M 72,112 L 392,112" fill="none" stroke="black"/>
                <path d="M 72,160 L 392,160" fill="none" stroke="black"/>
                <path d="M 72,208 L 392,208" fill="none" stroke="black"/>
                <path d="M 72,256 L 392,256" fill="none" stroke="black"/>
                <path d="M 72,304 L 392,304" fill="none" stroke="black"/>
                <path d="M 72,368 L 392,368" fill="none" stroke="black"/>
                <path d="M 72,416 L 392,416" fill="none" stroke="black"/>
                <path d="M 72,496 L 392,496" fill="none" stroke="black"/>
                <path d="M 72,560 L 392,560" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,560 388,554.4 388,565.6" fill="black" transform="rotate(0,392,560)"/>
                <polygon class="arrowhead" points="400,416 388,410.4 388,421.6" fill="black" transform="rotate(0,392,416)"/>
                <polygon class="arrowhead" points="400,304 388,298.4 388,309.6" fill="black" transform="rotate(0,392,304)"/>
                <polygon class="arrowhead" points="400,208 388,202.4 388,213.6" fill="black" transform="rotate(0,392,208)"/>
                <polygon class="arrowhead" points="400,112 388,106.4 388,117.6" fill="black" transform="rotate(0,392,112)"/>
                <polygon class="arrowhead" points="80,496 68,490.4 68,501.6" fill="black" transform="rotate(180,72,496)"/>
                <polygon class="arrowhead" points="80,368 68,362.4 68,373.6" fill="black" transform="rotate(180,72,368)"/>
                <polygon class="arrowhead" points="80,256 68,250.4 68,261.6" fill="black" transform="rotate(180,72,256)"/>
                <polygon class="arrowhead" points="80,160 68,154.4 68,165.6" fill="black" transform="rotate(180,72,160)"/>
                <g class="text">
                  <text x="48" y="36">EAP</text>
                  <text x="84" y="36">peer</text>
                  <text x="336" y="36">EAP</text>
                  <text x="408" y="36">authenticator</text>
                  <text x="100" y="68">POST</text>
                  <text x="208" y="68">/.well-known/coap-eap</text>
                  <text x="52" y="84">0)</text>
                  <text x="128" y="84">No-Response</text>
                  <text x="160" y="100">Payload("/a/eap/1")</text>
                  <text x="300" y="132">POST</text>
                  <text x="356" y="132">/a/eap/1</text>
                  <text x="176" y="148">Payload(EAP</text>
                  <text x="308" y="148">Req/Id||CS-C||RID-C)</text>
                  <text x="52" y="164">1)</text>
                  <text x="92" y="180">2.01</text>
                  <text x="144" y="180">Created</text>
                  <text x="232" y="180">Location-Path</text>
                  <text x="332" y="180">[/a/eap/2]</text>
                  <text x="120" y="196">Payload(EAP</text>
                  <text x="256" y="196">Resp/Id||CS-I||RID-I)</text>
                  <text x="52" y="212">2)</text>
                  <text x="300" y="228">POST</text>
                  <text x="356" y="228">/a/eap/2</text>
                  <text x="288" y="244">Payload(EAP-X</text>
                  <text x="364" y="244">Req)</text>
                  <text x="52" y="260">3)</text>
                  <text x="92" y="276">2.01</text>
                  <text x="144" y="276">Created</text>
                  <text x="232" y="276">Location-Path</text>
                  <text x="332" y="276">[/a/eap/3]</text>
                  <text x="128" y="292">Payload(EAP-X</text>
                  <text x="208" y="292">Resp)</text>
                  <text x="52" y="308">4)</text>
                  <text x="236" y="324">....</text>
                  <text x="252" y="340">POST</text>
                  <text x="324" y="340">/a/eap/(n-1)</text>
                  <text x="288" y="356">Payload(EAP-X</text>
                  <text x="364" y="356">Req)</text>
                  <text x="52" y="372">5)</text>
                  <text x="92" y="388">2.01</text>
                  <text x="144" y="388">Created</text>
                  <text x="232" y="388">Location-Path</text>
                  <text x="340" y="388">[/a/eap/(n)]</text>
                  <text x="104" y="404">Payload</text>
                  <text x="164" y="404">(EAP-X</text>
                  <text x="216" y="404">Resp)</text>
                  <text x="52" y="420">6)</text>
                  <text x="432" y="436">MSK</text>
                  <text x="284" y="452">POST</text>
                  <text x="348" y="452">/a/eap/(n)</text>
                  <text x="364" y="468">OSCORE</text>
                  <text x="128" y="484">Payload(EAP</text>
                  <text x="288" y="484">Success||*Session-Lifetime)</text>
                  <text x="436" y="484">OSCORE</text>
                  <text x="16" y="500">MSK</text>
                  <text x="52" y="500">7)</text>
                  <text x="432" y="500">CTX</text>
                  <text x="92" y="532">2.04</text>
                  <text x="144" y="532">Changed</text>
                  <text x="28" y="548">OSCORE</text>
                  <text x="100" y="548">OSCORE</text>
                  <text x="16" y="564">CTX</text>
                  <text x="52" y="564">8)</text>
                  <text x="168" y="580">*Session-Lifetime</text>
                  <text x="252" y="580">is</text>
                  <text x="300" y="580">optional</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" 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-C||RID-C) |
     1)|<----------------------------------------|
       | 2.01 Created Location-Path [/a/eap/2]   |
       | Payload(EAP Resp/Id||CS-I||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 |   |
       |  Payload(EAP Success||*Session-Lifetime)| OSCORE
MSK  7)|<----------------------------------------|  CTX
 |     |                                         |
 |     | 2.04 Changed                            |
OSCORE | OSCORE                                  |
CTX  8)|---------------------------------------->|
            *Session-Lifetime is optional
]]></artwork>
          </artset>
        </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 obtain 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 successfully. 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 has 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>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="432" viewBox="0 0 432 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 56,56 L 56,176" fill="none" stroke="black"/>
                <path d="M 376,56 L 376,176" fill="none" stroke="black"/>
                <path d="M 8,48 L 104,48" fill="none" stroke="black"/>
                <path d="M 312,48 L 408,48" fill="none" stroke="black"/>
                <path d="M 64,112 L 368,112" fill="none" stroke="black"/>
                <path d="M 64,176 L 368,176" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="376,176 364,170.4 364,181.6" fill="black" transform="rotate(0,368,176)"/>
                <polygon class="arrowhead" points="72,112 60,106.4 60,117.6" fill="black" transform="rotate(180,64,112)"/>
                <g class="text">
                  <text x="32" y="36">EAP</text>
                  <text x="68" y="36">peer</text>
                  <text x="304" y="36">EAP</text>
                  <text x="376" y="36">authenticator</text>
                  <text x="252" y="84">DELETE</text>
                  <text x="324" y="84">/a/eap/(n)</text>
                  <text x="340" y="100">OSCORE</text>
                  <text x="84" y="148">2.02</text>
                  <text x="136" y="148">Deleted</text>
                  <text x="92" y="164">OSCORE</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
  EAP peer                          EAP authenticator
-------------                         -------------
      |                                       |
      |                     DELETE /a/eap/(n) |
      |                                OSCORE |
      |<--------------------------------------|
      |                                       |
      | 2.02 Deleted                          |
      | OSCORE                                |
      |-------------------------------------->|
]]></artwork>
          </artset>
        </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-responsive endpoint lost messages, or an initial POST message arriving out of place.</t>
        <section anchor="eap-authentication-failure">
          <name>EAP authentication failure</name>
          <t>The EAP authentication may 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 Master Session Key (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-responsive-endpoint">
          <name>Non-responsive endpoint</name>
          <t>If, for any reason, one of the entities becomes non-responsive, the CoAP-EAP state <bcp14>SHOULD</bcp14> be removed after a stipulated amount of time. The amount of time can be adjusted according to the policies established by the application or use case where CoAP-EAP is used. As a default value, the CoAP EXCHANGE_LIFETIME parameter, as defined in CoAP<xref target="RFC7252"/> will be used.</t>
          <t>The removal of the CoAP-EAP state in the EAP authenticator assumes that the EAP peer will need to authenticate again.</t>
          <t>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, if 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>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="432" viewBox="0 0 432 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 32,56 L 32,208" fill="none" stroke="black"/>
                  <path d="M 368,56 L 368,208" fill="none" stroke="black"/>
                  <path d="M 8,48 L 80,48" fill="none" stroke="black"/>
                  <path d="M 328,48 L 400,48" fill="none" stroke="black"/>
                  <path d="M 160,112 L 360,112" fill="none" stroke="black"/>
                  <path d="M 40,160 L 360,160" fill="none" stroke="black"/>
                  <path d="M 40,208 L 360,208" fill="none" stroke="black"/>
                  <path d="M 276,152 L 292,120" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="368,208 356,202.4 356,213.6" fill="black" transform="rotate(0,360,208)"/>
                  <polygon class="arrowhead" points="368,112 356,106.4 356,117.6" fill="black" transform="rotate(0,360,112)"/>
                  <polygon class="arrowhead" points="48,160 36,154.4 36,165.6" fill="black" transform="rotate(180,40,160)"/>
                  <g class="text">
                    <text x="16" y="36">EAP</text>
                    <text x="52" y="36">peer</text>
                    <text x="304" y="36">EAP</text>
                    <text x="376" y="36">authenticator</text>
                    <text x="72" y="68">*POST</text>
                    <text x="184" y="68">/.well-known/coap-eap</text>
                    <text x="12" y="84">0)</text>
                    <text x="96" y="84">No-Response</text>
                    <text x="128" y="100">Payload("/a/eap/1")</text>
                    <text x="260" y="132">POST</text>
                    <text x="320" y="132">a/eap/1</text>
                    <text x="176" y="148">Payload</text>
                    <text x="228" y="148">(EAP</text>
                    <text x="264" y="148">Req</text>
                    <text x="320" y="148">Id||CS-C)</text>
                    <text x="12" y="164">1)</text>
                    <text x="60" y="196">4.04</text>
                    <text x="96" y="196">Not</text>
                    <text x="136" y="196">found</text>
                    <text x="196" y="228">*Old</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" 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-C) |
 1) |<----------------------------------------|
    |                                         |
    | 4.04 Not found                          |
    |---------------------------------------->|
                       *Old
]]></artwork>
            </artset>
          </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, it should be considered 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="coap-eap-media-type">
      <name>CoAP-EAP Media type format</name>
      <t>In the CoAP-EAP exchange, the following format will be used. This is the format is specified by application/coap-eap media type, see <xref target="mediatypes"/>.</t>
      <t>In CoAP-EAP there are 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, an EAP message will be 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],     ; Cipher Suite (CS-C or CS-I)
      ?  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: Is an array with the list of 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 cipher suite.</t>
        </li>
        <li>
          <t>RID-I: Is 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: Is 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: Is 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 65001 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 array. 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 it 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>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="400" viewBox="0 0 400 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 56,32 L 56,64" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,64" fill="none" stroke="black"/>
                <path d="M 216,32 L 216,64" fill="none" stroke="black"/>
                <path d="M 272,32 L 272,64" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
                <path d="M 392,32 L 392,64" fill="none" stroke="black"/>
                <path d="M 8,32 L 392,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 392,64" fill="none" stroke="black"/>
                <path d="M 264,32 C 272.83064,32 280,39.16936 280,48" fill="none" stroke="black"/>
                <path d="M 288,32 C 279.16936,32 272,39.16936 272,48" fill="none" stroke="black"/>
                <path d="M 264,64 C 272.83064,64 280,56.83064 280,48" fill="none" stroke="black"/>
                <path d="M 288,64 C 279.16936,64 272,56.83064 272,48" fill="none" stroke="black"/>
                <g class="text">
                  <text x="28" y="52">Code</text>
                  <text x="100" y="52">Identifier</text>
                  <text x="180" y="52">Length</text>
                  <text x="244" y="52">Data</text>
                  <text x="308" y="52">cipher</text>
                  <text x="364" y="52">suites</text>
                  <text x="80" y="84">EAP</text>
                  <text x="124" y="84">Packet</text>
                  <text x="316" y="84">CBOR</text>
                  <text x="360" y="84">array</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-----+-----------+-------+------++-------------+
|Code |Identifier |Length | Data ||cipher suites|
+-----+-----------+-------+------++-------------+
        EAP Packet                   CBOR array

]]></artwork>
          </artset>
        </figure>
        <figure anchor="figure6">
          <name>cipher suite negotiation</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="424" viewBox="0 0 424 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 32,72 L 32,208" fill="none" stroke="black"/>
                <path d="M 368,72 L 368,208" fill="none" stroke="black"/>
                <path d="M 8,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 320,64 L 416,64" fill="none" stroke="black"/>
                <path d="M 40,112 L 360,112" fill="none" stroke="black"/>
                <path d="M 40,160 L 360,160" fill="none" stroke="black"/>
                <path d="M 40,208 L 360,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="368,208 356,202.4 356,213.6" fill="black" transform="rotate(0,360,208)"/>
                <polygon class="arrowhead" points="368,112 356,106.4 356,117.6" fill="black" transform="rotate(0,360,112)"/>
                <polygon class="arrowhead" points="48,160 36,154.4 36,165.6" fill="black" transform="rotate(180,40,160)"/>
                <g class="text">
                  <text x="24" y="36">EAP</text>
                  <text x="60" y="36">peer</text>
                  <text x="328" y="36">EAP</text>
                  <text x="368" y="36">Auth.</text>
                  <text x="24" y="52">(CoAP</text>
                  <text x="80" y="52">server)</text>
                  <text x="336" y="52">(CoAP</text>
                  <text x="392" y="52">client)</text>
                  <text x="168" y="100">...</text>
                  <text x="260" y="132">POST</text>
                  <text x="316" y="132">/a/eap/1</text>
                  <text x="80" y="148">Payload</text>
                  <text x="132" y="148">(EAP</text>
                  <text x="184" y="148">Req/Id,</text>
                  <text x="288" y="148">CBORArray[0,1,2])</text>
                  <text x="12" y="164">1)</text>
                  <text x="60" y="180">2.01</text>
                  <text x="112" y="180">Created</text>
                  <text x="200" y="180">Location-Path</text>
                  <text x="300" y="180">[/a/eap/2]</text>
                  <text x="72" y="196">Payload</text>
                  <text x="124" y="196">(EAP</text>
                  <text x="180" y="196">Resp/Id,</text>
                  <text x="272" y="196">CBORArray[0])</text>
                  <text x="12" y="212">2)</text>
                  <text x="200" y="228">...</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" 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>
          </artset>
        </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 HMAC-based Extract-and-Expand Key Derivation Function (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 HKDF defined in <xref target="RFC5869"/> to derive the necessary key material. Since the key derivation process uses the Master Session Key (MSK), which is considered fresh key material, the HKDF-Expand function will be used (shortened here as KDF). Why the use of this function 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>Once Master Secret and Master Salt are derived, they can be used to derive the rest of the OSCORE Security Context (see Section 3.2.1 of <xref target="RFC8613"/>). It should be noted that ID Context is not provided for the OSCORE Security Context derivation.</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 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 concatenation of two CBOR arrays CS-C and CS-I (with CBOR ints as elements), as defined in <xref target="cbor-coap-eap"/>. If CS-C or CS-I were not sent, (i.e., default algorithms are used) the value used to generate CS will be the same as if the default algorithms were explicitly sent in CS-C or CS-I (i.e., a CBOR array with the cipher suite 0).</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 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, that is, the concatenation of two CBOR arrays CS-C and CS-I (with CBOR ints as elements), as defined in <xref target="cbor-coap-eap"/>. If CS-C or CS-I were not sent, (i.e., default algorithms are used) the value used to generate CS will be the same as if the default algorithms were explicitly sent in CS-C or CS-I (i.e., a CBOR array with the cipher suite 0).</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 suite negotiation (which is referred 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.). For simplicity, CoAP-EAP delegates error detection to the lower layers, such as the link layer or transport layer (e.g., UDP over IPv6 or TCP).</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-I || 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 found in IoT, with limited capabilities.</t>
        <t>Note: For constrained devices and network scenarios, the use of the latest versions of EAP methods (e.g., EAP-AKA' <xref target="RFC5448"/>, EAP-TLS 1.3 <xref target="RFC9190"/>) is recommended in favor of older versions with the goal of economization, or EAP methods more adapted for IoT (e.g., EAP-NOOB <xref target="RFC9140"/>, EAP-EDHOC <xref target="I-D.ietf-emu-eap-edhoc"/>, etc.).</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 Master Session Key (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 document 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-coap-eap-traffic-to-perform-authentication">
        <name>Allowing CoAP-EAP traffic 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 an intermediate entity helps with this process (i.e., CoAP proxy) and the same comment applies to the communication between the EAP peer and the intermediary.</t>
        <t>Alternatively, the link-layer <bcp14>MAY</bcp14> provide support to transport CoAP-EAP without an IP address by using link-layer frames (e.g. by defining a new Key Management Protocol ID in IEEE 802.15.9 <xref target="ieee802159"/>).</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, the EAP lower layer identifier (To be assigned by IANA) needs to be sent, 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 procedures are "Specification Required", "Private Use", "Standards Action with Expert Review" and "Specification Required" following the indications in <xref target="ciphersute-registration-ranges"/>.</t>
        <table anchor="ciphersute-registration-ranges">
          <name>CoAP-EAP Cipher Suites Registration Procedures</name>
          <thead>
            <tr>
              <th align="center">Range</th>
              <th align="center">Registration Procedures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">-65536 to -25</td>
              <td align="center">Specification Required</td>
            </tr>
            <tr>
              <td align="center">-24 to -21</td>
              <td align="center">Private Use</td>
            </tr>
            <tr>
              <td align="center">-20 to 23</td>
              <td align="center">Standards Action with Expert Review</td>
            </tr>
            <tr>
              <td align="center">24 to 65535</td>
              <td align="center">Specification Required</td>
            </tr>
          </tbody>
        </table>
        <t>The columns of the registry are Value, Algorithms, Description and Reference, where Value is an integer, and the other columns are text strings.  The initial contents of the registry are shown in <xref target="ciphersute-initial-value"/>.</t>
        <table anchor="ciphersute-initial-value">
          <name>CoAP-EAP Cipher Suites initial values</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Algorithms</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">10, -16</td>
              <td align="left">AES-CCM-16-64-128, SHA-256</td>
              <td align="left">[[this document]]</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">1, -16</td>
              <td align="left">A128GCM, SHA-256</td>
              <td align="left">[[this document]]</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">3, -43</td>
              <td align="left">A256GCM, SHA-384</td>
              <td align="left">[[this document]]</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">24, -16</td>
              <td align="left">ChaCha20/Poly1305, SHA-256</td>
              <td align="left">[[this document]]</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">24, -45</td>
              <td align="left">ChaCha20/Poly1305, SHAKE256</td>
              <td align="left">[[this document]]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="llid">
        <name>CDDL in 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 are "Specification Required", "Private Use", "Standards Action with Expert Review" and "Specification Required" following the indications in  <xref target="coap-eap-ie-registration-ranges"/>.</t>
        <table anchor="coap-eap-ie-registration-ranges">
          <name>CoAP-EAP Information Elements Registration Procedures</name>
          <thead>
            <tr>
              <th align="center">Range</th>
              <th align="center">Registration Procedures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">0 to 23</td>
              <td align="center">Standards Action with Expert Review</td>
            </tr>
            <tr>
              <td align="center">24 to 49</td>
              <td align="center">Private Use</td>
            </tr>
            <tr>
              <td align="center">50 to 65000</td>
              <td align="center">Specification Required</td>
            </tr>
            <tr>
              <td align="center">65001 to 65535</td>
              <td align="center">Experimental Use</td>
            </tr>
          </tbody>
        </table>
        <t>The columns of the registry are Name, Label, CBOR Type, Description and Reference, where Value is an integer, and the other columns are text strings.  The initial contents of the registry are described in <xref target="coap-eap-ie-values"/>.</t>
        <table anchor="coap-eap-ie-values">
          <name>CoAP-EAP Information Elements initial content</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Label</th>
              <th align="left">CBOR Type</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Cipher Suite</td>
              <td align="left">1</td>
              <td align="left">CBOR Array</td>
              <td align="left">List of the proposed or selected COSE algorithms for OSCORE</td>
              <td align="left">[[this document]]</td>
            </tr>
            <tr>
              <td align="left">RID-C</td>
              <td align="left">2</td>
              <td align="left">Byte String</td>
              <td align="left">It contains the Recipient ID of the EAP authenticator</td>
              <td align="left">[[this document]]</td>
            </tr>
            <tr>
              <td align="left">RID-I</td>
              <td align="left">3</td>
              <td align="left">Byte String</td>
              <td align="left">It contains the Recipient ID of the EAP peer</td>
              <td align="left">[[this document]]</td>
            </tr>
            <tr>
              <td align="left">Session-Lifetime</td>
              <td align="left">4</td>
              <td align="left">uint</td>
              <td align="left">Contains the time the session is valid in seconds</td>
              <td align="left">[[this document]]</td>
            </tr>
          </tbody>
        </table>
      </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"/>.</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"/>.</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. <xref target="coap-eap-media-type"/> 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: ace@ietf.org</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 of [[this document]].</t>
          </li>
          <li>
            <t>Change Controller: IETF</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"/>.</t>
        <table anchor="content-format_registry">
          <name>CoAP Content-Formats Registry</name>
          <thead>
            <tr>
              <th align="center">Media Type</th>
              <th align="center">Content Encoding</th>
              <th align="center">ID</th>
              <th align="center">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">application/coap-eap</td>
              <td align="center">-</td>
              <td align="center">TBD</td>
              <td align="center">[[this document]]</td>
            </tr>
          </tbody>
        </table>
      </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>
            <ul spacing="normal">
              <li>
                <t>Description: CoAP-EAP resource.</t>
              </li>
              <li>
                <t>Reference: [[this document]]</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="expert-review-instructions">
        <name>Expert Review Instructions</name>
        <t>The IANA registries established in this document are defined as
   "Specification Required", "Private Use", "Standards Action with Expert Review", "Experimental Use" and "Specification Required".
   This section provides general guidelines for what experts should focus on, but as they are designated experts for a reason, they should be granted flexibility.</t>
        <ul spacing="normal">
          <li>
            <t>When defining the use of CoAP-EAP Information Elements: Experts are expected to evaluate how the values are defined, their scope, and whether they align with CoAP-EAP's functionality and constraints. They are expected to assess if the values are clear, well-structured, and follow CoAP and CoAP-EAP conventions, such as concise encoding for constrained environments. They should ensure these IEs can seamlessly integrate with existing CoAP implementations and extensions. It is also expected that they verify if IE values are protected from unauthorized modification or misuse during transmission.</t>
          </li>
          <li>
            <t>When adding new cipher suites:  Experts must ensure that algorithm values are sourced from the appropriate registry when required. They should also consider seeking input from relevant IETF working groups regarding the accuracy of registered parameters.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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.ietf-emu-eap-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-emu-eap-edhoc-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-emu-eap-edhoc.xml">
          <front>
            <title>Using the Extensible Authentication Protocol (EAP) with Ephemeral Diffie-Hellman over COSE (EDHOC)</title>
            <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="21" month="October" year="2024"/>
            <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 EAP authentication method EAP- EDHOC, based on Ephemeral Diffie-Hellman Over COSE (EDHOC). EDHOC provides a lightweight authenticated Diffie-Hellman key exchange with ephemeral keys, using COSE to provide security services efficiently encoded in CBOR. This document also provides guidance on authentication and authorization for EAP-EDHOC.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-emu-eap-edhoc-02"/>
        </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="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="RFC5433" target="https://www.rfc-editor.org/info/rfc5433" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5433.xml">
          <front>
            <title>Extensible Authentication Protocol - Generalized Pre-Shared Key (EAP-GPSK) Method</title>
            <author fullname="T. Clancy" initials="T." surname="Clancy"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="February" year="2009"/>
            <abstract>
              <t>This memo defines an Extensible Authentication Protocol (EAP) method called EAP Generalized Pre-Shared Key (EAP-GPSK). This method is a lightweight shared-key authentication protocol supporting mutual authentication and key derivation. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5433"/>
          <seriesInfo name="DOI" value="10.17487/RFC5433"/>
        </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="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="RFC4186" target="https://www.rfc-editor.org/info/rfc4186" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4186.xml">
          <front>
            <title>Extensible Authentication Protocol Method for Global System for Mobile Communications (GSM) Subscriber Identity Modules (EAP-SIM)</title>
            <author fullname="H. Haverinen" initials="H." role="editor" surname="Haverinen"/>
            <author fullname="J. Salowey" initials="J." role="editor" surname="Salowey"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document specifies an Extensible Authentication Protocol (EAP) mechanism for authentication and session key distribution using the Global System for Mobile Communications (GSM) Subscriber Identity Module (SIM). GSM is a second generation mobile network standard. The EAP-SIM mechanism specifies enhancements to GSM authentication and key agreement whereby multiple authentication triplets can be combined to create authentication responses and session keys of greater strength than the individual GSM triplets. The mechanism also includes network authentication, user anonymity support, result indications, and a fast re-authentication procedure. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4186"/>
          <seriesInfo name="DOI" value="10.17487/RFC4186"/>
        </reference>
        <reference anchor="RFC4187" target="https://www.rfc-editor.org/info/rfc4187" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4187.xml">
          <front>
            <title>Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement (EAP-AKA)</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="H. Haverinen" initials="H." surname="Haverinen"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document specifies an Extensible Authentication Protocol (EAP) mechanism for authentication and session key distribution that uses the Authentication and Key Agreement (AKA) mechanism. AKA is used in the 3rd generation mobile networks Universal Mobile Telecommunications System (UMTS) and CDMA2000. AKA is based on symmetric keys, and typically runs in a Subscriber Identity Module, which is a UMTS Subscriber Identity Module, USIM, or a (Removable) User Identity Module, (R)UIM, similar to a smart card.</t>
              <t>EAP-AKA includes optional identity privacy support, optional result indications, and an optional fast re-authentication procedure. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4187"/>
          <seriesInfo name="DOI" value="10.17487/RFC4187"/>
        </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="ieee802159" target="">
          <front>
            <title>IEEE Standard for Transport of Key Management Protocol (KMP) Datagrams</title>
            <author initials="" surname="IEEE" fullname="IEEE">
              <organization/>
            </author>
            <date year="2021"/>
          </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 790?>

<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>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="504" viewBox="0 0 504 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 88,80 L 88,208" fill="none" stroke="black"/>
              <path d="M 424,80 L 424,208" fill="none" stroke="black"/>
              <path d="M 16,48 L 112,48" fill="none" stroke="black"/>
              <path d="M 336,48 L 432,48" fill="none" stroke="black"/>
              <path d="M 96,112 L 416,112" fill="none" stroke="black"/>
              <path d="M 96,160 L 416,160" fill="none" stroke="black"/>
              <path d="M 96,190 L 208,190" fill="none" stroke="black"/>
              <path d="M 96,194 L 208,194" fill="none" stroke="black"/>
              <path d="M 320,190 L 416,190" fill="none" stroke="black"/>
              <path d="M 320,194 L 416,194" fill="none" stroke="black"/>
              <path d="M 152,224 L 168,224" fill="none" stroke="black"/>
              <path d="M 344,224 L 360,224" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="424,112 412,106.4 412,117.6" fill="black" transform="rotate(0,416,112)"/>
              <polygon class="arrowhead" points="368,224 356,218.4 356,229.6" fill="black" transform="rotate(0,360,224)"/>
              <polygon class="arrowhead" points="160,224 148,218.4 148,229.6" fill="black" transform="rotate(180,152,224)"/>
              <polygon class="arrowhead" points="104,160 92,154.4 92,165.6" fill="black" transform="rotate(180,96,160)"/>
              <g class="text">
                <text x="40" y="36">EAP</text>
                <text x="76" y="36">peer</text>
                <text x="344" y="36">EAP</text>
                <text x="416" y="36">authenticator</text>
                <text x="216" y="68">...</text>
                <text x="116" y="84">2.01</text>
                <text x="168" y="84">Created</text>
                <text x="256" y="84">Location-Path</text>
                <text x="364" y="84">[/a/eap/(n)]</text>
                <text x="128" y="100">Payload</text>
                <text x="188" y="100">(EAP-X</text>
                <text x="240" y="100">Resp)</text>
                <text x="68" y="116">6)</text>
                <text x="448" y="132">MSK</text>
                <text x="172" y="148">(D)TLS</text>
                <text x="216" y="148">1.3</text>
                <text x="260" y="148">Client</text>
                <text x="312" y="148">Hello</text>
                <text x="448" y="148">|</text>
                <text x="32" y="164">MSK</text>
                <text x="68" y="164">7)</text>
                <text x="32" y="180">|</text>
                <text x="468" y="180">DTLS_PSK</text>
                <text x="228" y="196">DTLS</text>
                <text x="284" y="196">hanshake</text>
                <text x="36" y="212">DTLS_PSK</text>
                <text x="208" y="228">Protected</text>
                <text x="268" y="228">with</text>
                <text x="316" y="228">(D)TLS</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" 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>
        </artset>
      </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>Analogous 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 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, the Identity and the PSK for DTLS is defined. 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 CoAP-EAP could be used 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, examples of different use case scenarios will be elaborated on, about the usage of CoAP-EAP.</t>
      <t>Generally, four entities are involved:</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, the flexibility of having different types of credentials can be achieved. For instance, if a device that is not battery-dependent and not very constrained is available, a heavier authentication method could be used. With varied EAP peers and networks, more lightweight authentication methods might need to be used (e.g., EAP-NOOB<xref target="RFC9140"/>, EAP-AKA'<xref target="RFC5448"/>, EAP-PSK<xref target="RFC4764"/>, EAP-EDHOC<xref target="I-D.ietf-emu-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, a general way to exemplify how Client registration can be performed using CoAP-EAP is presented, 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 also be 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 to 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 successfully, 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>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, with 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, with an EAP authenticator that has co-located the EAP server, and using EAP standalone mode, all the devices can be managed 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-network-access-control">
          <name>CoAP-EAP for network access authentication</name>
          <t>One of the first steps for an EAP peer 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, this can be achieved 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, for example, to different organizations.</t>
          <t>In the process of joining a network, there are two cases: 1) the node does not have an IPv6 address; 2) the node does have an IPv6 address (e.g., link-local IPv6 or IPv6 global address).</t>
          <t>In networks where the device is placed, and no IP support is available until the EAP peer is authenticated, specific support for this EAP lower layer has to be defined to allow CoAP-EAP messages to be exchanged between the EAP peer and the EAP authenticator. For example, in IEEE 802.15.4 networks, a new KMP ID can be defined to add such support in the case of IEEE 802.15.9 <xref target="ieee802159"/>. Where can be assumed that the device has at least a link-layer IPv6 address.</t>
          <t>When the EAP peer intends to be admitted into the network, it would search for an entity that offers the CoAP-EAP service, be it the EAP authenticator directly, or through the intermediary (i.e., proxy). See <xref target="discovery-section"/>.</t>
          <t>CoAP-EAP will run between the EAP peer and the EAP authenticator or through an intermediary entity such as a proxy, as happens in a mesh network, where the EAP authenticator could be placed to 1 or more hops from the EAP peer. In the case a proxy participates in CoAP-EAP, it will be because it is already a trustworthy entity within the domain, which communicates through a secure channel with the EAP authenticator, as illustrated by <xref target="fig-network-proxy"/>.</t>
          <t>Thus, the EAP peer follows the same process described in <xref target="coap-eap-network-access-control"/> to perform the authentication. As mentioned, either with a direct link to the EAP authenticator, or through an intermediary entity (proxy) that is already part of the network (already shares key material and communicates through a secure channel with the authenticator) and can aid in running CoAP-EAP.</t>
          <t>When CoAP-EAP is completed, and the OSCORE security association is established with the EAP authenticator, the EAP peer receives the local configuration parameters for the network (e.g. a network key) and can configure a global IPv6 address. Moreover, there is no need of a CoAP proxy after a successful authentication.</t>
          <t>For removal, if the EAP authenticator decides to remove a particular EAP peer from the network or the peer itself intends to leave, either EAP peer or EAP authenticator can directly send a DELETE command to explicitly express that the network access state is removed, and the device will no longer belong to the network. Thus, any state related to the EAP peer is removed in the EAP authenticator. Forced removal can be done by sending new specific key material to the devices that still belong to the network, excluding the removed device, following a similar model as 6TiSCH Join Protocol <xref target="RFC9031"/> or Zigbee IP<xref target="ZigbeeIP"/>. The specifics on how this process is to be done, is out of the scope of this document.</t>
          <figure anchor="fig-network-proxy">
            <name>CoAP-EAP through CoAP proxy</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="568" viewBox="0 0 568 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
                  <path d="M 72,32 L 72,80" fill="none" stroke="black"/>
                  <path d="M 144,32 L 144,80" fill="none" stroke="black"/>
                  <path d="M 216,32 L 216,80" fill="none" stroke="black"/>
                  <path d="M 440,32 L 440,80" fill="none" stroke="black"/>
                  <path d="M 560,32 L 560,80" fill="none" stroke="black"/>
                  <path d="M 8,32 L 72,32" fill="none" stroke="black"/>
                  <path d="M 144,32 L 216,32" fill="none" stroke="black"/>
                  <path d="M 440,32 L 560,32" fill="none" stroke="black"/>
                  <path d="M 80,64 L 136,64" fill="none" stroke="black"/>
                  <path d="M 224,64 L 432,64" fill="none" stroke="black"/>
                  <path d="M 8,80 L 72,80" fill="none" stroke="black"/>
                  <path d="M 144,80 L 216,80" fill="none" stroke="black"/>
                  <path d="M 440,80 L 560,80" fill="none" stroke="black"/>
                  <path d="M 224,112 L 248,112" fill="none" stroke="black"/>
                  <path d="M 416,112 L 440,112" fill="none" stroke="black"/>
                  <polygon class="arrowhead" points="448,112 436,106.4 436,117.6" fill="black" transform="rotate(0,440,112)"/>
                  <polygon class="arrowhead" points="440,64 428,58.4 428,69.6" fill="black" transform="rotate(0,432,64)"/>
                  <polygon class="arrowhead" points="232,112 220,106.4 220,117.6" fill="black" transform="rotate(180,224,112)"/>
                  <polygon class="arrowhead" points="232,64 220,58.4 220,69.6" fill="black" transform="rotate(180,224,64)"/>
                  <polygon class="arrowhead" points="144,64 132,58.4 132,69.6" fill="black" transform="rotate(0,136,64)"/>
                  <polygon class="arrowhead" points="88,64 76,58.4 76,69.6" fill="black" transform="rotate(180,80,64)"/>
                  <g class="text">
                    <text x="32" y="52">EAP</text>
                    <text x="180" y="52">CoAP</text>
                    <text x="480" y="52">EAP</text>
                    <text x="36" y="68">peer</text>
                    <text x="184" y="68">Proxy</text>
                    <text x="504" y="68">authenticator</text>
                    <text x="108" y="84">CoAP</text>
                    <text x="324" y="84">CoAP</text>
                    <text x="328" y="100">OSCORE/DTLS</text>
                    <text x="284" y="116">Security</text>
                    <text x="368" y="116">Association</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
  +-------+        +--------+                           +--------------+
  | EAP   |        |  CoAP  |                           |   EAP        |
  | peer  |<------>|  Proxy |<------------------------->| authenticator|
  +-------+  CoAP  +--------+           CoAP            +--------------+
                                     OSCORE/DTLS
                             <--(Security Association)-->
]]></artwork>
            </artset>
          </figure>
          <t>Given that EAP is also used for network access authentication, this service can be adapted 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, the compression by SCHC for CoAP <xref target="RFC8824"/> can be leveraged.</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, the possibility of a secondary authentication to access different services has to be considered. 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:
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
57w1ujVXTykGMlnDvxx0M8iL1ZJ20haKb82sHI1OROi6iDW0lw9FQzuoFwFA
gFSSpLLvXKIr15pvRjV9vy6D1ZYVJ2QLkdU1AYA8gBNJUJusxdLX1FYvTg7k
ImQHo1YW1SIZ/oWrGnSq6HnBIW6VhGo1i52Ist2t3i/iAkOhkFaIITnyKp70
OyOEumATRdEFnCmQpUpYPEiUSyYsMIlNkEGhv9UBrhe+Fg5TT150EfsSBO+n
jDhvOid+cgTYbJaw48NeWxYYBmo59aMZpZRNIxexLRqkR4pGI71ScihtTGen
sCHsD6DXEQ7ezGxmBbTD/kFCRILtGtJ7ivDDws/E9Gtr1LXDxOlsdebV43cj
/LqQoKn6XmSLXYtH6W6JldvRPDFjIrHSh0Nkkkgn8qR9JSNVd7Ahy3ae5bJ5
M0bmfX4Xk3ae1MLRZ8mMQ8F4AJAB2uUVlcmw9rK+QpHrIjfU7Hlta7i4WZY1
AdEG8u+g1/FDjho6gOu5lyoruQgqc75h+5qvln5j0MsjtFL6V9NLQav7zePi
XUDv2iDX8ZNiXZ4a6FLXMlfpdW3Pe//CCJf28X1/fhDmQnr1Zv/RWrLqyU9y
UtPzIa589fnHLqc7QuM3J+nsETrxG9WJ2zGDqB4QkA6i2B2gt0qpRq36FDPz
PQ924ipcgIpNeftfaqn33sOllC+3dlWUTuA3ZBKWUItq2MwWT2oRao9wXRD3
59T3WvSbqFuLvKTSdJ5qqX5jksVxRzhvrYY0FzUoyoZUHfgh6yW/cFKtawr7
5+jmUtsL1Cv84Tx4tlTwSx5CDdZPvS2D8n5YNMMlZtPM90xmhX8rqUOxRaue
6UguJdevVRhLUD0HBDtHN73pHRHCKMk6YUFxCbxfhWjtaaL25Y3mLHoRulYD
sVZwmzgIon+exkM0uBZl5CrByAuX8XWSkXSj+qWuSAqYStZhYIl1WBUmG4su
0o1rkUsr13xdqWHs4hdYHxORy1ZH5e/z1GbOkB8FBNjL2A8Dd4JLYAPvXJH3
rOZBe+cQcZUNXZYuhvVzFcQ2eAx+0i/NCA/dAT5K+bhS12x5csH6mJUbqcOA
D3M3X7i9OsAHXkS9n+xKTrwgcaotB8VqhorbeDNIJubiEVgBMrpNcp4Yxtca
uaK8ooijJTheuDhZV/Y0DExrzVLRJBVbPsrmSYGoxEpbDcacc42l8WLBZG9T
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

-->

</rfc>
