<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-authz-03" category="std" consensus="true" submissionType="IETF" tocDepth="2" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="ELA">Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE (ELA)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-03"/>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J" surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Vučinić" fullname="Mališa Vučinić">
      <organization>INRIA</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>malisa.vucinic@inria.fr</email>
      </address>
    </author>
    <author initials="G." surname="Fedrecheski" fullname="Geovane Fedrecheski">
      <organization>INRIA</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>geovane.fedrecheski@inria.fr</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 112?>

<t>Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight authenticated key exchange protocol intended for use in constrained scenarios.
This document specifies Lightweight Authorization using EDHOC (ELA).
The procedure allows authorizing enrollment of new devices using the extension point defined in EDHOC.
ELA is applicable to zero-touch onboarding of new devices to a constrained network leveraging trust anchors installed at manufacture time.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lake-wg.github.io/authz/draft-ietf-lake-authz.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lake-authz/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Lightweight Authenticated Key Exchange Working Group mailing list (<eref target="mailto:lake@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/lake/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/lake/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lake-wg/authz"/>.</t>
    </note>
  </front>
  <middle>
    <?line 119?>

<section anchor="intro">
      <name>Introduction</name>
      <t>For constrained IoT deployments <xref target="RFC7228"/> the overhead and processing contributed by security protocols may be significant, which motivates the specification of lightweight protocols that are optimizing, in particular, message overhead (see <xref target="I-D.ietf-lake-reqs"/>).
This document describes Lightweight Authorization using EDHOC (ELA), a procedure for augmenting the lightweight authenticated Diffie-Hellman key exchange EDHOC <xref target="RFC9528"/> with third party-assisted authorization.</t>
      <t>ELA involves a device, a domain authenticator, and an enrollment server.
The device and domain authenticator perform mutual authentication and authorization, assisted by the enrollment server that provides relevant authorization information to the device (a "voucher") and to the authenticator. The high-level model is similar to BRSKI <xref target="RFC8995"/>.</t>
      <t>In this document, we consider the target interaction for which authorization is needed to be "enrollment", for example joining a network for the first time (e.g., <xref target="RFC9031"/>), but it can be applied to authorize other target interactions.</t>
      <t>The enrollment server may represent the manufacturer of the device, or some other party with information about the device from which a trust anchor has been pre-provisioned into the device.
The (domain) authenticator may represent the service provider or some other party controlling access to the network in which the device is enrolling.</t>
      <t>ELA assumes that authentication between device and authenticator is performed with EDHOC <xref target="RFC9528"/>, and defines the integration of a lightweight authorization procedure using the External Authorization Data (EAD) fields defined in EDHOC.</t>
      <t>ELA enables a low message count by performing authorization and enrollment in parallel with authentication, instead of in sequence, which is common for network access.
It further reuses protocol elements from EDHOC, leading to reduced message sizes on constrained links.</t>
      <t>This protocol is applicable to a wide variety of settings, and can be mapped to different authorization architectures.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
        <t>Readers are expected to have an understanding of CBOR <xref target="RFC8949"/>, CDDL <xref target="RFC8610"/>, and EDHOC <xref target="RFC9528"/>.
Appendix C.1 of <xref target="RFC9528"/> contains some basic info about CBOR.</t>
      </section>
    </section>
    <section anchor="outline">
      <name>Protocol Outline</name>
      <t>The goal of ELA is to enable a (potentially constrained) device (U) to enroll into a domain over a constrained link.
The device authenticates and enforces authorization of the (non-constrained) domain authenticator (V) with the help of a voucher conveying authorization information.
The voucher has a similar role as in <xref target="RFC8366"/> but should be considerably more compact.
The domain authenticator, in turn, authenticates the device and authorizes its enrollment into the domain.</t>
      <t>The procedure is assisted by a (non-constrained) enrollment server (W) located in a non-constrained network behind the domain authenticator, e.g., on the Internet, providing information to the device (conveyed in the voucher) and to the domain authenticator as part of the protocol.</t>
      <t>The objective of this document is to specify such a protocol that is lightweight over the constrained link, by reusing elements of EDHOC <xref target="RFC9528"/> and by shifting message overhead to the non-constrained side of the network.
See illustration in <xref target="fig-overview"/>.</t>
      <t>Note the cardinality of the involved parties. It is expected that the domain authenticator needs to handle a large unspecified number of devices, but for a given device type or manufacturer it is expected that one or a few nodes host enrollment servers.</t>
      <figure anchor="fig-overview">
        <name>Overview of the message flow. EDHOC is used on the constrained link between U and V. Voucher Info and Voucher are sent in EDHOC External Authorization Data (EAD). The link between V and W is not constrained.</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="560" viewBox="0 0 560 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,160" fill="none" stroke="black"/>
              <path d="M 136,104 L 136,160" fill="none" stroke="black"/>
              <path d="M 152,64 L 152,104" fill="none" stroke="black"/>
              <path d="M 200,64 L 200,160" fill="none" stroke="black"/>
              <path d="M 328,64 L 328,160" fill="none" stroke="black"/>
              <path d="M 424,64 L 424,160" fill="none" stroke="black"/>
              <path d="M 552,64 L 552,160" fill="none" stroke="black"/>
              <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
              <path d="M 200,64 L 328,64" fill="none" stroke="black"/>
              <path d="M 424,64 L 552,64" fill="none" stroke="black"/>
              <path d="M 96,96 L 144,96" fill="none" stroke="black"/>
              <path d="M 160,96 L 192,96" fill="none" stroke="black"/>
              <path d="M 328,96 L 416,96" fill="none" stroke="black"/>
              <path d="M 104,112 L 128,112" fill="none" stroke="black"/>
              <path d="M 144,112 L 200,112" fill="none" stroke="black"/>
              <path d="M 336,112 L 424,112" fill="none" stroke="black"/>
              <path d="M 96,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 96,160" fill="none" stroke="black"/>
              <path d="M 200,160 L 328,160" fill="none" stroke="black"/>
              <path d="M 424,160 L 552,160" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="424,96 412,90.4 412,101.6" fill="black" transform="rotate(0,416,96)"/>
              <polygon class="arrowhead" points="344,112 332,106.4 332,117.6" fill="black" transform="rotate(180,336,112)"/>
              <polygon class="arrowhead" points="200,128 188,122.4 188,133.6" fill="black" transform="rotate(0,192,128)"/>
              <polygon class="arrowhead" points="200,96 188,90.4 188,101.6" fill="black" transform="rotate(0,192,96)"/>
              <polygon class="arrowhead" points="112,112 100,106.4 100,117.6" fill="black" transform="rotate(180,104,112)"/>
              <circle cx="136" cy="112" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="152" cy="96" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="160" y="36">Voucher</text>
                <text x="148" y="52">Info</text>
                <text x="376" y="68">Voucher</text>
                <text x="376" y="84">Request</text>
                <text x="52" y="100">Device</text>
                <text x="260" y="100">Domain</text>
                <text x="492" y="100">Enrollment</text>
                <text x="264" y="116">Authenticator</text>
                <text x="492" y="116">Server</text>
                <text x="48" y="132">(U)</text>
                <text x="264" y="132">(V)</text>
                <text x="376" y="132">Voucher</text>
                <text x="488" y="132">(W)</text>
                <text x="380" y="148">Response</text>
                <text x="144" y="180">Voucher</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                Voucher
                Info
+----------+      |     +---------------+  Voucher  +---------------+
|          |      |     |               |  Request  |               |
|  Device  +------o---->|    Domain     +---------->|   Enrollment  |
|          |<---o-------+ Authenticator |<----------+     Server    |
|   (U)    +----+------>|      (V)      |  Voucher  |      (W)      |
|          |    |       |               |  Response |               |
+----------+    |       +---------------+           +---------------+
              Voucher
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="assumptions">
      <name>Assumptions</name>
      <t>The protocol is based on the following pre-existing relations between the device (U), the domain authenticator (V) and the enrollment server (W), see <xref target="fig-trust"/>.</t>
      <ul spacing="normal">
        <li>
          <t>U and W have an explicit relation: U is configured with a public key of W, see <xref target="device"/>.</t>
        </li>
        <li>
          <t>V and W have an implicit relation, e.g., based on web PKI with trusted CA certificates, see <xref target="domain-auth"/>.</t>
        </li>
        <li>
          <t>U and V need not have any previous relation. This protocol establishes a relation between U and V.</t>
        </li>
      </ul>
      <t>Each of the three parties can gain protected communication with the other two during the protocol.</t>
      <t>V may be able to access credentials over non-constrained networks, but U may be limited to constrained networks. Implementations wishing to leverage the zero-touch capabilities of this protocol are expected to support transmission of credentials from V to U by value during the EDHOC exchange, which will impact the message size depending on the type of credential used.</t>
      <figure anchor="fig-trust">
        <name>Overview of pre-existing relations.</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="568" viewBox="0 0 568 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,96 L 8,192" fill="none" stroke="black"/>
              <path d="M 48,64 L 48,96" fill="none" stroke="black"/>
              <path d="M 48,192 L 48,224" fill="none" stroke="black"/>
              <path d="M 96,96 L 96,192" fill="none" stroke="black"/>
              <path d="M 200,96 L 200,192" fill="none" stroke="black"/>
              <path d="M 264,192 L 264,224" fill="none" stroke="black"/>
              <path d="M 328,96 L 328,192" fill="none" stroke="black"/>
              <path d="M 432,96 L 432,192" fill="none" stroke="black"/>
              <path d="M 496,64 L 496,96" fill="none" stroke="black"/>
              <path d="M 496,192 L 496,224" fill="none" stroke="black"/>
              <path d="M 560,96 L 560,192" fill="none" stroke="black"/>
              <path d="M 64,64 L 480,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 96,96" fill="none" stroke="black"/>
              <path d="M 200,96 L 328,96" fill="none" stroke="black"/>
              <path d="M 432,96 L 560,96" fill="none" stroke="black"/>
              <path d="M 8,192 L 96,192" fill="none" stroke="black"/>
              <path d="M 200,192 L 328,192" fill="none" stroke="black"/>
              <path d="M 432,192 L 560,192" fill="none" stroke="black"/>
              <path d="M 64,224 L 248,224" fill="none" stroke="black"/>
              <path d="M 280,224 L 480,224" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="488,224 476,218.4 476,229.6" fill="black" transform="rotate(0,480,224)"/>
              <polygon class="arrowhead" points="488,64 476,58.4 476,69.6" fill="black" transform="rotate(0,480,64)"/>
              <polygon class="arrowhead" points="288,224 276,218.4 276,229.6" fill="black" transform="rotate(180,280,224)"/>
              <polygon class="arrowhead" points="256,224 244,218.4 244,229.6" fill="black" transform="rotate(0,248,224)"/>
              <polygon class="arrowhead" points="72,224 60,218.4 60,229.6" fill="black" transform="rotate(180,64,224)"/>
              <polygon class="arrowhead" points="72,64 60,58.4 60,69.6" fill="black" transform="rotate(180,64,64)"/>
              <g class="text">
                <text x="108" y="52">Explicit</text>
                <text x="180" y="52">relation</text>
                <text x="244" y="52">(e.g.,</text>
                <text x="292" y="52">from</text>
                <text x="340" y="52">device</text>
                <text x="420" y="52">manufacture)</text>
                <text x="52" y="132">Device</text>
                <text x="148" y="132">con-</text>
                <text x="260" y="132">Domain</text>
                <text x="360" y="132">not</text>
                <text x="396" y="132">con-</text>
                <text x="500" y="132">Enrollment</text>
                <text x="148" y="148">strained</text>
                <text x="264" y="148">Authenticator</text>
                <text x="380" y="148">strained</text>
                <text x="500" y="148">Server</text>
                <text x="48" y="164">(U)</text>
                <text x="144" y="164">network</text>
                <text x="264" y="164">(V)</text>
                <text x="376" y="164">network</text>
                <text x="496" y="164">(W)</text>
                <text x="92" y="244">No</text>
                <text x="140" y="244">previous</text>
                <text x="212" y="244">relation</text>
                <text x="340" y="244">Implicit</text>
                <text x="412" y="244">relation</text>
                <text x="316" y="260">(e.g.,</text>
                <text x="360" y="260">web</text>
                <text x="392" y="260">PKI</text>
                <text x="436" y="260">based)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[

         Explicit relation (e.g., from device manufacture)
     | <---------------------------------------------------> |
     |                                                       |
+----+-----+            +---------------+            +-------+-------+
|          |            |               |            |               |
|  Device  |    con-    |    Domain     |  not con-  |   Enrollment  |
|          |  strained  | Authenticator |  strained  |     Server    |
|   (U)    |  network   |      (V)      |  network   |      (W)      |
|          |            |               |            |               |
+----+-----+            +-------+-------+            +-------+-------+
     |                          |                            |
     | <----------------------> | <------------------------> |
          No previous relation        Implicit relation
                                    (e.g., web PKI based)
]]></artwork>
        </artset>
      </figure>
      <section anchor="device">
        <name>Device (U)</name>
        <t>To authenticate to V, the device (U) runs EDHOC in the role of Initiator with authentication credential CRED_U, for example, an X.509 certificate <xref target="RFC5280"/> or a CBOR Web Token (CWT, <xref target="RFC8392"/>). CRED_U may, for example, be carried by value in ID_CRED_I of EDHOC message_3 or be provisioned to V over a non-constrained network, leveraging a credential identifier in ID_CRED_I (see bottom of <xref target="fig-protocol"/>).</t>
        <t>U also needs to identify itself to W. The device identifier used for this is ID_U. The purpose of ID_U is for W to be able to determine if the device with this identifier is authorized to enroll with V. ID_U may be a reference to CRED_U, like ID_CRED_I in EDHOC (see <xref section="3.5.2" sectionFormat="of" target="RFC9528"/>), or a device identifier from a different name space, such as EUI-64 identifiers.</t>
        <t>U is also provisioned with information about W:</t>
        <ul spacing="normal">
          <li>
            <t>A static public DH key of W (G_W) used to establish secure communication with the enrollment server (see <xref target="U-W"/>).</t>
          </li>
          <li>
            <t>Location information about the enrollment server (LOC_W) that can be used by V to reach W. This is typically a URI but may alternatively be only the domain name.</t>
          </li>
        </ul>
      </section>
      <section anchor="domain-auth">
        <name>Domain Authenticator (V)</name>
        <t>To authenticate to U, the domain authenticator (V) runs EDHOC in the role of Responder with an authentication credential CRED_V containing a public key of V, see <xref target="V_2"/>. This proves to U the possession of the private key corresponding to the public key of CRED_V. CRED_V typically needs to be transported to U in EDHOC (using  ID_CRED_R = CRED_V, see <xref section="3.5.2" sectionFormat="of" target="RFC9528"/>) since there is no previous relation between U and V.</t>
        <t>V and W need to establish a secure (confidentiality and integrity protected) connection for the Voucher Request/Response protocol.
Furthermore, W needs to access the same credential CRED_V that V uses with U (to compute the Voucher), and V needs to prove to W the possession of the private key corresponding to the public key of CRED_V.
It is RECOMMENDED that V authenticates to W using the same credential CRED_V as with U.</t>
        <t>Note that the choice of protocols may affect which type of credential and methods should be used by V.
For example, in case V and W select TLS for the secure channel and PoP, then CRED_V is a X.509 certificate, and the EDHOC method used by V is signature-based.
Some of the possible combinations of protocols to secure the connection between V and W are listed in <xref target="creds-table"/> below.</t>
        <table anchor="creds-table">
          <name>Examples of how to secure the connection between V and W.</name>
          <thead>
            <tr>
              <th align="left">Secure channel between V and W</th>
              <th align="left">Proof-of-Possession from V to W</th>
              <th align="left">Type of CRED_V</th>
              <th align="left">EDHOC method used by V</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">[D]TLS 1.3 with mutual authentication, where V is the client and W is the server.</td>
              <td align="left">Provided by [D]TLS.</td>
              <td align="left">Restricted to types that are supported by both [D]TLS and EDHOC, e.g., X.509 certificates.</td>
              <td align="left">V MUST authenticate using a signature.</td>
            </tr>
            <tr>
              <td align="left">[D]TLS 1.3, where V is the client and W is the server.</td>
              <td align="left">Run an EDHOC session on top of the TLS-protected channel.</td>
              <td align="left">Any type supported by EDHOC, e.g., X.509, C509, CWT, or CCS.</td>
              <td align="left">Any method may be used.</td>
            </tr>
            <tr>
              <td align="left">EDHOC and OSCORE, where V is the initiator and W is the responder.</td>
              <td align="left">Already provided by EDHOC during the setup of the secure channel.</td>
              <td align="left">Any type supported by EDHOC.</td>
              <td align="left">Any method may be used.</td>
            </tr>
          </tbody>
        </table>
        <t>Note also that the secure connection between V and W may be long-lived and reused for multiple voucher requests/responses.</t>
        <t>Other details of proof-of-possession related to CRED_V and transport of CRED_V are out of scope of this document.</t>
      </section>
      <section anchor="authz-server">
        <name>Enrollment Server (W)</name>
        <t>The enrollment server (W) is assumed to have the private DH key corresponding to G_W, which is used to establish secure communication with the device (see <xref target="U-W"/>). W provides to U the authorization decision for enrollment with V in the form of a voucher (see <xref target="voucher"/>). Authorization policies are out of scope for this document.</t>
        <t>Authentication credentials and communication security with V is described in <xref target="domain-auth"/>. To calculate the voucher, W needs access to message_1 and CRED_V as used in the EDHOC session between U and V, see <xref target="voucher"/>.</t>
        <ul spacing="normal">
          <li>
            <t>W MUST verify that CRED_V is bound to the secure connection between W and V</t>
          </li>
          <li>
            <t>W MUST verify that V is in possession of the private key corresponding to the public key of CRED_V</t>
          </li>
        </ul>
        <t>W needs to be available during the execution of the protocol between U and V.</t>
      </section>
    </section>
    <section anchor="protocol">
      <name>The Protocol</name>
      <section anchor="protocol-overview">
        <name>Overview</name>
        <t>The ELA protocol consist of three security sessions going on in parallel:</t>
        <ol spacing="normal" type="1"><li>
            <t>The EDHOC session between device (U) and (domain) authenticator (V)</t>
          </li>
          <li>
            <t>Voucher Request/Response between authenticator (V) and enrollment server (W)</t>
          </li>
          <li>
            <t>An exchange of voucher-related information, including the voucher itself, between device (U) and enrollment server (W), mediated by the authenticator (V).</t>
          </li>
        </ol>
        <t><xref target="fig-protocol"/> provides an overview of the message flow detailed in this section. An outline of EDHOC is given in <xref section="2" sectionFormat="of" target="RFC9528"/>.</t>
        <figure anchor="fig-protocol">
          <name>Overview of ELA: W-assisted authorization of U and V to each other: EDHOC between U and V, and Voucher Request/Response between V and W. Before the protocol, V and W are assumed to have established a secure channel and performed proof-of-possession of relevant keys. Credential lookup of CRED_U may involve W or other credential database.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="864" width="584" viewBox="0 0 584 864" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,48 L 8,224" fill="none" stroke="black"/>
                <path d="M 8,304 L 8,624" fill="none" stroke="black"/>
                <path d="M 8,688 L 8,848" fill="none" stroke="black"/>
                <path d="M 256,48 L 256,224" fill="none" stroke="black"/>
                <path d="M 256,304 L 256,624" fill="none" stroke="black"/>
                <path d="M 256,688 L 256,848" fill="none" stroke="black"/>
                <path d="M 576,48 L 576,224" fill="none" stroke="black"/>
                <path d="M 576,304 L 576,624" fill="none" stroke="black"/>
                <path d="M 576,736 L 576,848" fill="none" stroke="black"/>
                <path d="M 264,96 L 288,96" fill="none" stroke="black"/>
                <path d="M 312,96 L 328,96" fill="none" stroke="black"/>
                <path d="M 352,96 L 368,96" fill="none" stroke="black"/>
                <path d="M 392,96 L 408,96" fill="none" stroke="black"/>
                <path d="M 432,96 L 448,96" fill="none" stroke="black"/>
                <path d="M 472,96 L 488,96" fill="none" stroke="black"/>
                <path d="M 512,96 L 528,96" fill="none" stroke="black"/>
                <path d="M 552,96 L 568,96" fill="none" stroke="black"/>
                <path d="M 264,160 L 288,160" fill="none" stroke="black"/>
                <path d="M 312,160 L 328,160" fill="none" stroke="black"/>
                <path d="M 352,160 L 368,160" fill="none" stroke="black"/>
                <path d="M 392,160 L 408,160" fill="none" stroke="black"/>
                <path d="M 432,160 L 448,160" fill="none" stroke="black"/>
                <path d="M 472,160 L 488,160" fill="none" stroke="black"/>
                <path d="M 512,160 L 528,160" fill="none" stroke="black"/>
                <path d="M 552,160 L 568,160" fill="none" stroke="black"/>
                <path d="M 8,256 L 576,256" fill="none" stroke="black"/>
                <path d="M 8,336 L 248,336" fill="none" stroke="black"/>
                <path d="M 256,400 L 568,400" fill="none" stroke="black"/>
                <path d="M 264,464 L 576,464" fill="none" stroke="black"/>
                <path d="M 16,528 L 256,528" fill="none" stroke="black"/>
                <path d="M 8,608 L 248,608" fill="none" stroke="black"/>
                <path d="M 8,656 L 576,656" fill="none" stroke="black"/>
                <path d="M 256,768 L 280,768" fill="none" stroke="black"/>
                <path d="M 304,768 L 320,768" fill="none" stroke="black"/>
                <path d="M 344,768 L 360,768" fill="none" stroke="black"/>
                <path d="M 384,768 L 400,768" fill="none" stroke="black"/>
                <path d="M 432,768 L 448,768" fill="none" stroke="black"/>
                <path d="M 472,768 L 488,768" fill="none" stroke="black"/>
                <path d="M 512,768 L 528,768" fill="none" stroke="black"/>
                <path d="M 552,768 L 568,768" fill="none" stroke="black"/>
                <path d="M 264,816 L 280,816" fill="none" stroke="black"/>
                <path d="M 304,816 L 320,816" fill="none" stroke="black"/>
                <path d="M 344,816 L 360,816" fill="none" stroke="black"/>
                <path d="M 384,816 L 400,816" fill="none" stroke="black"/>
                <path d="M 424,816 L 440,816" fill="none" stroke="black"/>
                <path d="M 472,816 L 488,816" fill="none" stroke="black"/>
                <path d="M 512,816 L 528,816" fill="none" stroke="black"/>
                <path d="M 552,816 L 576,816" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="576,768 564,762.4 564,773.6" fill="black" transform="rotate(0,568,768)"/>
                <polygon class="arrowhead" points="576,400 564,394.4 564,405.6" fill="black" transform="rotate(0,568,400)"/>
                <polygon class="arrowhead" points="576,160 564,154.4 564,165.6" fill="black" transform="rotate(0,568,160)"/>
                <polygon class="arrowhead" points="576,96 564,90.4 564,101.6" fill="black" transform="rotate(0,568,96)"/>
                <polygon class="arrowhead" points="272,816 260,810.4 260,821.6" fill="black" transform="rotate(180,264,816)"/>
                <polygon class="arrowhead" points="272,464 260,458.4 260,469.6" fill="black" transform="rotate(180,264,464)"/>
                <polygon class="arrowhead" points="272,160 260,154.4 260,165.6" fill="black" transform="rotate(180,264,160)"/>
                <polygon class="arrowhead" points="272,96 260,90.4 260,101.6" fill="black" transform="rotate(180,264,96)"/>
                <polygon class="arrowhead" points="256,608 244,602.4 244,613.6" fill="black" transform="rotate(0,248,608)"/>
                <polygon class="arrowhead" points="256,336 244,330.4 244,341.6" fill="black" transform="rotate(0,248,336)"/>
                <polygon class="arrowhead" points="24,528 12,522.4 12,533.6" fill="black" transform="rotate(180,16,528)"/>
                <g class="text">
                  <text x="8" y="36">U</text>
                  <text x="256" y="36">V</text>
                  <text x="576" y="36">W</text>
                  <text x="360" y="84">Establish</text>
                  <text x="428" y="84">secure</text>
                  <text x="488" y="84">channel</text>
                  <text x="332" y="116">(e.g.,</text>
                  <text x="376" y="116">TLS</text>
                  <text x="412" y="116">with</text>
                  <text x="460" y="116">server</text>
                  <text x="516" y="116">cert.)</text>
                  <text x="360" y="148">Proof-of-possession</text>
                  <text x="468" y="148">w.r.t.</text>
                  <text x="524" y="148">CRED_V</text>
                  <text x="380" y="180">(e.g.,</text>
                  <text x="436" y="180">EDHOC)</text>
                  <text x="228" y="276">CORE</text>
                  <text x="284" y="276">PROTOCOL</text>
                  <text x="104" y="324">EDHOC</text>
                  <text x="168" y="324">message_1</text>
                  <text x="52" y="356">(EAD_1</text>
                  <text x="88" y="356">=</text>
                  <text x="124" y="356">LOC_W,</text>
                  <text x="200" y="356">ENC_U_INFO)</text>
                  <text x="352" y="388">Voucher</text>
                  <text x="416" y="388">Request</text>
                  <text x="476" y="388">(VREQ)</text>
                  <text x="360" y="420">(message_1,</text>
                  <text x="468" y="420">?opaque_state)</text>
                  <text x="352" y="452">Voucher</text>
                  <text x="420" y="452">Response</text>
                  <text x="484" y="452">(VRES)</text>
                  <text x="320" y="484">(message_1,</text>
                  <text x="404" y="484">Voucher,</text>
                  <text x="500" y="484">?opaque_state)</text>
                  <text x="104" y="516">EDHOC</text>
                  <text x="168" y="516">message_2</text>
                  <text x="100" y="548">(EAD_2</text>
                  <text x="136" y="548">=</text>
                  <text x="180" y="548">Voucher)</text>
                  <text x="104" y="596">EDHOC</text>
                  <text x="168" y="596">message_3</text>
                  <text x="540" y="708">Credential</text>
                  <text x="548" y="724">Database</text>
                  <text x="352" y="756">ID_CRED_I</text>
                  <text x="412" y="756">from</text>
                  <text x="472" y="756">message_3</text>
                  <text x="420" y="804">CRED_U</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
U                              V                                       W
|                              |                                       |
|                              |                                       |
|                              |        Establish secure channel       |
|                              +<---  ---  ---  ---  ---  ---  ---  -->|
|                              |      (e.g., TLS with server cert.)    |
|                              |                                       |
|                              |   Proof-of-possession w.r.t. CRED_V   |
|                              +<---  ---  ---  ---  ---  ---  ---  -->|
|                              |            (e.g., EDHOC)              |
|                              |                                       |
|                              |                                       |
|                              |                                       |

------------------------------------------------------------------------
                          CORE PROTOCOL

|                              |                                       |
|         EDHOC message_1      |                                       |
+----------------------------->|                                       |
|  (EAD_1 = LOC_W, ENC_U_INFO) |                                       |
|                              |                                       |
|                              |        Voucher Request (VREQ)         |
|                              +-------------------------------------->|
|                              |       (message_1, ?opaque_state)      |
|                              |                                       |
|                              |        Voucher Response (VRES)        |
|                              |<--------------------------------------+
|                              |  (message_1, Voucher, ?opaque_state)  |
|                              |                                       |
|         EDHOC message_2      |                                       |
|<-----------------------------+                                       |
|        (EAD_2 = Voucher)     |                                       |
|                              |                                       |
|                              |                                       |
|         EDHOC message_3      |                                       |
+----------------------------->|                                       |
|                              |                                       |

------------------------------------------------------------------------

|                              |
|                              |                              Credential
|                              |                                Database
|                              |                                       |
|                              |       ID_CRED_I from message_3        |
|                              +---  ---  ---  ---   ---  ---  ---  -->|
|                              |                                       |
|                              |                 CRED_U                |
|                              |<--  ---  ---  ---  ---   ---  ---  ---+
|                              |                                       |
|                              |                                       |
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="reuse">
        <name>Reuse of EDHOC</name>
        <t>The ELA protocol illustrated in <xref target="fig-protocol"/> reuses several components of EDHOC:</t>
        <ul spacing="normal">
          <li>
            <t>G_X, the ephemeral public Diffie-Hellman key of U, is also used in the protocol between U and W.</t>
          </li>
          <li>
            <t>SUITES_I includes the cipher suite for EDHOC selected by U, and also defines the algorithms used between U and W (see <xref section="3.6" sectionFormat="of" target="RFC9528"/>):  </t>
            <ul spacing="normal">
              <li>
                <t>EDHOC AEAD algorithm: used to encrypt ID_U and to generate voucher</t>
              </li>
              <li>
                <t>EDHOC hash algorithm: used for key derivation</t>
              </li>
              <li>
                <t>EDHOC key exchange algorithm: used to calculate the shared secret between U and W</t>
              </li>
            </ul>
          </li>
          <li>
            <t>EAD_1, EAD_2 are the External Authorization Data message fields of message_1 and message_2, respectively, see <xref section="3.8" sectionFormat="of" target="RFC9528"/>. This document specifies the EAD items with ead_label = TBD1, see <xref target="iana-ead"/>).</t>
          </li>
          <li>
            <t>ID_CRED_I and ID_CRED_R are used to identify the authentication credentials CRED_U and CRED_V, respectively. As shown at the bottom of <xref target="fig-protocol"/>, V may use W to obtain CRED_U. CRED_V is transported in ID_CRED_R in message_2, see <xref target="V_2"/>.</t>
          </li>
        </ul>
        <t>The protocol also reuses the EDHOC_Extract and EDHOC_Expand key derivation from EDHOC (see <xref section="4" sectionFormat="of" target="RFC9528"/>).</t>
        <ul spacing="normal">
          <li>
            <t>The intermediate pseudo-random key PRK is derived using EDHOC_Extract():
            </t>
            <ul spacing="normal">
              <li>
                <t>PRK = EDHOC_Extract(salt, IKM)
                </t>
                <ul spacing="normal">
                  <li>
                    <t>where salt = 0x (the zero-length byte string)</t>
                  </li>
                  <li>
                    <t>IKM is computed as an ECDH cofactor Diffie-Hellman shared secret from the public key of W, G_W, and the private key corresponding to G_X (or v.v.), see Section 5.7.1.2 of <xref target="NIST-800-56A"/>.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>The output keying material OKM is derived from PRK using EDHOC_Expand(), which is defined in terms of the EDHOC hash algorithm of the selected cipher suite, see <xref section="4.1.2" sectionFormat="of" target="RFC9528"/>:</t>
        <ul spacing="normal">
          <li>
            <t>OKM = EDHOC_Expand(PRK, info, length)  </t>
            <t>
where</t>
          </li>
        </ul>
        <sourcecode type="cddl"><![CDATA[
info = (
   info_label : int,
   context : bstr,
   length : uint,
)
]]></sourcecode>
      </section>
      <section anchor="stateless-operation-of-v">
        <name>Stateless Operation of V</name>
        <t>V may act statelessly with respect to U: the state of the EDHOC session started by U may be dropped at V until authorization from W is received.
Once V has received EDHOC message_1 from U and extracted LOC_W from EAD_1, message_1 is forwarded unmodified to W in the form of a Voucher Request (see <xref target="voucher_request"/>).
V encapsulates the internal state that it needs to later respond to U, and sends that to W together with EDHOC message_1.
This state typically contains addressing information of U (e.g., U's IP address and port number), together with any other implementation-specific parameter needed by V to respond to U.
At this point, V can drop the EDHOC session that was initiated by U.</t>
        <t>The encapsulated state MUST be protected using a uniformly-distributed (pseudo-)random key, known only to itself and specific for the current EDHOC session to prevent replay attacks of old encapsulated state.</t>
        <t>How V serializes and encrypts its internal state is out of scope in this specification.
For example, V may use CBOR and COSE.</t>
        <t>Editor's note: Consider to include an example of serialized internal state.</t>
        <t>W sends to V the voucher together with the echoed message_1, as received from U, and V's internal state, see <xref target="voucher_response"/>.
This allows V to act as a simple message relay until it has obtained the authorization from W to enroll U.
The reception of a successful Voucher Response at V from W implies the authorization for V to enroll U.
At this point, V can initialize a new EDHOC session with U, based on the message and the state retrieved from the Voucher Response from W.</t>
      </section>
      <section anchor="U-W">
        <name>Device &lt;-&gt; Enrollment Server (U &lt;-&gt; W)</name>
        <t>The protocol between U and W is carried between U and V in message_1 and message_2 (<xref target="U-V"/>), and between V and W in the Voucher Request/Response (<xref target="V-W"/>). The data is protected between the endpoints using secret keys derived from a Diffie-Hellman shared secret (see <xref target="reuse"/>) as further detailed in this section.</t>
        <section anchor="voucher_info">
          <name>Voucher Info</name>
          <t>The external authorization data EAD_1 contains an EAD item with ead_label = TBD1 and ead_value = Voucher_Info, which is a CBOR byte string:</t>
          <sourcecode type="cddl"><![CDATA[
Voucher_Info = bstr .cborseq Voucher_Info_Seq

Voucher_Info_Seq = [ ; used as a CBOR sequence, not array
    LOC_W:      tstr,
    ENC_U_INFO:     bstr
]
]]></sourcecode>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>LOC_W is a text string used by V to locate W, e.g., a URI or a domain name.</t>
            </li>
            <li>
              <t>ENC_U_INFO is a byte string containing an encrypted identifier of U and, optionally, opaque application data prepared by U. It is calculated as follows:</t>
            </li>
          </ul>
          <t>ENC_U_INFO is encrypted using the EDHOC AEAD algorithm of the selected cipher suite specified in SUITE_I of EDHOC message_1.
It consists of 'ciphertext' of COSE_Encrypt0 (<xref section="5.2" sectionFormat="of" target="RFC9052"/>) computed from the following:</t>
          <ul spacing="normal">
            <li>
              <t>The encryption key K_1 and nonce IV_1 are derived as specified below.</t>
            </li>
            <li>
              <t>'protected' is a byte string of size 0</t>
            </li>
            <li>
              <t>'plaintext' and 'external_aad' as below:</t>
            </li>
          </ul>
          <sourcecode type="cddl"><![CDATA[
plaintext = (
    ID_U:            bstr,
)
]]></sourcecode>
          <sourcecode type="cddl"><![CDATA[
external_aad = (
    SS:              int,
)
]]></sourcecode>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>ID_U is an identifier of the device, see <xref target="device"/>.</t>
            </li>
            <li>
              <t>SS is the selected cipher suite in SUITES_I of EDHOC message_1, see <xref target="U-V"/>.</t>
            </li>
          </ul>
          <t>The external_aad is wrapped in an enc_structure as defined in <xref section="5.3" sectionFormat="of" target="RFC9052"/>.</t>
          <t>Editor's note: Add more context to external_aad.</t>
          <t>The derivation of K_1 = EDHOC_Expand(PRK, info, length) uses the following input to the info struct (see OKM in <xref target="reuse"/>):</t>
          <ul spacing="normal">
            <li>
              <t>info_label = 0</t>
            </li>
            <li>
              <t>context  = h'' (the empty CBOR string)</t>
            </li>
            <li>
              <t>length is length of the key of the EDHOC AEAD algorithm in bytes (which is the length of K_1)</t>
            </li>
          </ul>
          <t>The derivation of IV_1 = EDHOC_Expand(PRK, info, length) uses the following input to the info struct (see OKM in <xref target="reuse"/>):</t>
          <ul spacing="normal">
            <li>
              <t>info_label = 1</t>
            </li>
            <li>
              <t>context = h''  (the empty CBOR string)</t>
            </li>
            <li>
              <t>length is length of the nonce of the EDHOC AEAD algorithm in bytes (which is the length of IV_1)</t>
            </li>
          </ul>
        </section>
        <section anchor="voucher">
          <name>Voucher</name>
          <t>The voucher is an assertion to U that W has authorized V.
It is encrypted using the EDHOC AEAD algorithm of the selected cipher suite specified in SUITE_I of EDHOC message_1.
It consists of the 'ciphertext' field of a COSE_Encrypt0 object, which is a byte string, as defined below.</t>
          <sourcecode type="cddl"><![CDATA[
Voucher = bstr
]]></sourcecode>
          <t>Its corresponding plaintext value consists of an opaque field that can be used by W to convey information to U, such as a voucher scope.
The authentication tag present in the ciphertext is also bound to message_1 and the credential of V as described below.</t>
          <ul spacing="normal">
            <li>
              <t>The encryption key K_2 and nonce IV_2 are derived as specified below.</t>
            </li>
            <li>
              <t>'protected' is a byte string of size 0</t>
            </li>
            <li>
              <t>'plaintext' and 'external_aad' as below:</t>
            </li>
          </ul>
          <sourcecode type="cddl"><![CDATA[
plaintext = (
    ?OPAQUE_INFO: bstr
)
]]></sourcecode>
          <sourcecode type="cddl"><![CDATA[
external_aad = (
    H_message_1:  bstr,
    CRED_V:        bstr,
)
]]></sourcecode>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>OPAQUE_INFO is an opaque field provided by the application.
If present, it will contain application data that W may want to convey to U, e.g., a voucher scope.
Note that OPAQUE_INFO is opaque when viewed as an information element in EDHOC.
It is opaque to V, while the application in U and W can read its contents.</t>
            </li>
            <li>
              <t>H_message_1 is the hash of EDHOC message_1, calculated from the associated voucher request, see <xref target="voucher_request"/>.
The hash is computed by using the EDHOC hash algorithm of the selected cipher suite specified in SUITE_I of EDHOC message_1.</t>
            </li>
            <li>
              <t>CRED_V is the credential used by V to authenticate to U and W, see <xref target="V_2"/> and <xref target="creds-table"/>.</t>
            </li>
          </ul>
          <t>The derivation of K_2 = EDHOC_Expand(PRK, info, length) uses the following input to the info struct (see <xref target="reuse"/>):</t>
          <ul spacing="normal">
            <li>
              <t>info_label = 2</t>
            </li>
            <li>
              <t>context  = h'' (the empty CBOR string)</t>
            </li>
            <li>
              <t>length is length of the key of the EDHOC AEAD algorithm in bytes</t>
            </li>
          </ul>
          <t>The derivation of IV_2 = EDHOC_Expand(PRK, info, length) uses the following input to the info struct (see <xref target="reuse"/>):</t>
          <ul spacing="normal">
            <li>
              <t>info_label = 3</t>
            </li>
            <li>
              <t>context = h''  (the empty CBOR string)</t>
            </li>
            <li>
              <t>length is length of the nonce of the EDHOC AEAD algorithm in bytes</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="U-V">
        <name>Device &lt;-&gt; Authenticator (U &lt;-&gt; V)</name>
        <t>This section describes the processing in U and V, which includes the EDHOC protocol, see <xref target="fig-protocol"/>. Normal EDHOC processing is omitted here.</t>
        <section anchor="m1">
          <name>Message 1</name>
          <section anchor="processing-in-u">
            <name>Processing in U</name>
            <t>U composes EDHOC message_1 using authentication method, identifiers, etc. according to an agreed application profile, see <xref section="3.9" sectionFormat="of" target="RFC9528"/>. The selected cipher suite, in this document denoted SS, applies also to the interaction with W as detailed in <xref target="reuse"/>, in particular, with respect to the Diffie-Hellman key agreement algorithm used between U and W. As part of the normal EDHOC processing, U generates the ephemeral public key G_X that is reused in the interaction with W, see <xref target="U-W"/>.</t>
            <t>The device sends EDHOC message_1 with EAD item (-TBD1, Voucher_Info) included in EAD_1, where Voucher_Info is specified in <xref target="U-W"/>. The negative sign indicates that the EAD item is critical, see <xref section="3.8" sectionFormat="of" target="RFC9528"/>.</t>
          </section>
          <section anchor="processing-in-v">
            <name>Processing in V</name>
            <t>V receives EDHOC message_1 from U and processes it as specified in <xref section="5.2.3" sectionFormat="of" target="RFC9528"/>, with the additional step of processing the EAD item in EAD_1. Since the EAD item is critical, if V does not recognize it or it contains information that V cannot process, then V MUST abort the EDHOC session, see <xref section="3.8" sectionFormat="of" target="RFC9528"/>. Otherwise, the ead_label = TBD1 triggers the voucher request to W as described in <xref target="V-W"/>. The exchange between V and W needs to be completed successfully for the EDHOC session to be continued.</t>
          </section>
        </section>
        <section anchor="m2">
          <name>Message 2</name>
          <section anchor="V_2">
            <name>Processing in V</name>
            <t>V receives the voucher response from W as described in <xref target="V-W"/>.</t>
            <t>V sends EDHOC message_2 to U with the critical EAD item (-TBD1, Voucher) included in EAD_2, i.e., ead_label = TBD1 and ead_value = Voucher, as specified in <xref target="voucher"/>.</t>
            <t>The type of CRED_V may depend on the selected mechanism for the establishment of a secure channel between V and W, See <xref target="creds-table"/>.</t>
            <t>In case the network between U and V is constrained, it is recommended that CRED_V be a CWT Claims Set (CCS) <xref target="RFC8392"/>.
The CCS contains the public authentication key of V encoded as a COSE_Key in the 'cnf' claim, see <xref section="3.5.2" sectionFormat="of" target="RFC9528"/>.
ID_CRED_R contains the CWT Claims Set with 'kccs' as COSE header_map, see <xref section="10.6" sectionFormat="of" target="RFC9528"/>.</t>
          </section>
          <section anchor="processing-in-u-1">
            <name>Processing in U</name>
            <t>U receives EDHOC message_2 from V and processes it as specified in <xref section="5.3.3" sectionFormat="of" target="RFC9528"/>, with the additional step of processing the EAD item in EAD_2.</t>
            <t>If U does not recognize the EAD item or the EAD item contains information that U cannot process, then U MUST abort the EDHOC session, see <xref section="3.8" sectionFormat="of" target="RFC9528"/>. Otherwise, U MUST verify the Voucher using H_message_1, CRED_V, and the keys derived as in <xref target="voucher"/>. If the verification fails then U MUST abort the EDHOC session.</t>
            <t>If OPAQUE_INFO is present, it is made available to the application.</t>
          </section>
        </section>
        <section anchor="message-3">
          <name>Message 3</name>
          <section anchor="processing-in-u-2">
            <name>Processing in U</name>
            <t>If all verifications are passed, then U sends EDHOC message_3.</t>
            <t>EDHOC message_3 may be combined with an OSCORE-protected application request, see <xref target="I-D.ietf-core-oscore-edhoc"/>.</t>
          </section>
          <section anchor="processing-in-v-1">
            <name>Processing in V</name>
            <t>V performs the normal EDHOC verifications of message_3. V may retrieve CRED_U from a Credential Database, after having learned ID_CRED_I from U.</t>
          </section>
        </section>
      </section>
      <section anchor="V-W">
        <name>Authenticator &lt;-&gt; Enrollment Server (V &lt;-&gt; W)</name>
        <t>It is assumed that V and W have set up a secure connection, W has accessed the authentication credential CRED_V to be used in the EDHOC session between V and U, and that W has verified that V is in possession of the private key corresponding to CRED_V, see <xref target="domain-auth"/> and <xref target="authz-server"/>.
V and W run the Voucher Request/Response protocol over the secure connection.</t>
        <section anchor="voucher_request">
          <name>Voucher Request</name>
          <section anchor="processing-in-v-2">
            <name>Processing in V</name>
            <t>V sends the voucher request to W.
The Voucher Request SHALL be a CBOR array as defined below:</t>
            <sourcecode type="cddl"><![CDATA[
Voucher_Request = [
    message_1:      bstr,
    ? opaque_state: bstr
]
]]></sourcecode>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>message_1 is a CBOR byte string whose value is the byte serialization of EDHOC message_1 as it was received from U.</t>
              </li>
              <li>
                <t>opaque_state is OPTIONAL and represents the serialized and encrypted opaque state needed by V to statelessly respond to U after the reception of Voucher_Response.</t>
              </li>
            </ul>
          </section>
          <section anchor="processing-in-w">
            <name>Processing in W</name>
            <t>W receives and parses the voucher request received over the secure connection with V. The voucher request essentially contains EDHOC message_1 as sent by U to V. W SHALL NOT process message_1 as if it was an EDHOC message intended for W.</t>
            <t>W extracts from message_1:</t>
            <ul spacing="normal">
              <li>
                <t>SS - the selected cipher suite, which is the (last) integer of SUITES_I.</t>
              </li>
              <li>
                <t>G_X - the ephemeral public key of U</t>
              </li>
              <li>
                <t>ENC_U_INFO - the encryption of the device identifier ID_U, contained in the Voucher_Info field of the EAD item with ead_label = TBD1 (with minus sign indicating criticality)</t>
              </li>
            </ul>
            <t>W verifies and decrypts ENC_U_INFO using the relevant algorithms of the selected cipher suite SS (see <xref target="reuse"/>), and obtains ID_U.</t>
            <t>W calculates the hash of message_1 H_message_1, and associates this session identifier to the device identifier ID_U.
Note that message_1 contains a unique ephemeral key, therefore H_message_1 is expected to be unique.</t>
            <t>If processing fails up until this point, the protocol SHALL be aborted with an error code signaling a generic issue with the request, see <xref target="rest-voucher-request"/>.</t>
            <t>W uses ID_U to look up the associated authorization policies for U and enforces them. This is out of scope for the specification.</t>
            <t>If ID_U is known by W, but authorization fails, the protocol SHALL be aborted with an error code signaling an access control issue, see <xref target="err-handling"/> and <xref target="rest-voucher-request"/>.</t>
          </section>
        </section>
        <section anchor="voucher_response">
          <name>Voucher Response</name>
          <section anchor="processing-in-w-1">
            <name>Processing in W</name>
            <t>W retrieves CRED_V associated with the secure connection with V, and constructs the Voucher for the device with identifier ID_U (see <xref target="voucher"/>).</t>
            <t>W generates the voucher response and sends it to V over the secure connection. The Voucher_Response SHALL be a CBOR array as defined below:</t>
            <sourcecode type="cddl"><![CDATA[
Voucher_Response = [
    message_1:      bstr,
    Voucher:        bstr,
    ? opaque_state: bstr
]
]]></sourcecode>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>message_1 is a CBOR byte string whose value is the byte serialization of EDHOC message_1 as it was received from V.</t>
              </li>
              <li>
                <t>The Voucher is defined in <xref target="voucher"/>.</t>
              </li>
              <li>
                <t>opaque_state is the echoed byte string opaque_state from Voucher_Request, if present.</t>
              </li>
            </ul>
            <t>W signals the successful generation of the voucher via a status code in the REST interface, as defined in <xref target="rest-voucher-request"/>.</t>
          </section>
          <section anchor="processing-in-v-3">
            <name>Processing in V</name>
            <t>V receives the voucher response from W over the secure connection.
If present, V decrypts and verifies opaque_state as received from W. If that verification fails, then the EDHOC session
with U is aborted.
If the voucher response is successfully received from W, then V responds to U with EDHOC message_2 as described in <xref target="V_2"/>.</t>
          </section>
        </section>
      </section>
      <section anchor="err-handling">
        <name>Error Handling</name>
        <t>This section specifies a new EDHOC error code and how it is used in ELA.</t>
        <section anchor="edhoc-error-access-denied">
          <name>EDHOC Error "Access denied"</name>
          <t>This section specifies the new EDHOC error "Access denied", see <xref target="fig-error-codes"/>.</t>
          <figure anchor="fig-error-codes">
            <name>EDHOC error code and error information for ‘Access denied’.</name>
            <artset>
              <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="112" width="568" viewBox="0 0 568 112" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                  <path d="M 96,32 L 96,96" fill="none" stroke="black"/>
                  <path d="M 232,32 L 232,96" fill="none" stroke="black"/>
                  <path d="M 560,32 L 560,96" fill="none" stroke="black"/>
                  <path d="M 8,32 L 560,32" fill="none" stroke="black"/>
                  <path d="M 8,62 L 560,62" fill="none" stroke="black"/>
                  <path d="M 8,66 L 560,66" fill="none" stroke="black"/>
                  <path d="M 8,96 L 560,96" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="52" y="52">ERR_CODE</text>
                    <text x="140" y="52">ERR_INFO</text>
                    <text x="196" y="52">Type</text>
                    <text x="288" y="52">Description</text>
                    <text x="68" y="84">TBD3</text>
                    <text x="160" y="84">error_content</text>
                    <text x="268" y="84">Access</text>
                    <text x="324" y="84">denied</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
+----------+----------------+----------------------------------------+
| ERR_CODE | ERR_INFO Type  | Description                            |
+==========+================+========================================+
|     TBD3 | error_content  | Access denied                          |
+----------+----------------+----------------------------------------+
]]></artwork>
            </artset>
          </figure>
          <t>Error code TBD3 is used to indicate to the receiver that access control has been applied and the sender has aborted the EDHOC session.
The ERR_INFO field contains error_content which is a CBOR Sequence consisting of an integer and an optional byte string.</t>
          <sourcecode type="cddl"><![CDATA[
error_content = (
  REJECT_TYPE : int,
  ? REJECT_INFO : bstr,
)
]]></sourcecode>
          <t>The purpose of REJECT_INFO is for the sender to provide verifiable and actionable information to the receiver about the error, so that an automated action may be taken to enable access.</t>
          <figure anchor="fig-reject">
            <name>REJECT_TYPE and REJECT_INFO for ‘Access denied’.</name>
            <artset>
              <artwork type="svg"><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,128" fill="none" stroke="black"/>
                  <path d="M 120,32 L 120,128" fill="none" stroke="black"/>
                  <path d="M 248,32 L 248,128" fill="none" stroke="black"/>
                  <path d="M 560,32 L 560,128" fill="none" stroke="black"/>
                  <path d="M 8,32 L 560,32" fill="none" stroke="black"/>
                  <path d="M 8,62 L 560,62" fill="none" stroke="black"/>
                  <path d="M 8,66 L 560,66" fill="none" stroke="black"/>
                  <path d="M 8,96 L 560,96" fill="none" stroke="black"/>
                  <path d="M 8,128 L 560,128" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="64" y="52">REJECT_TYPE</text>
                    <text x="176" y="52">REJECT_INFO</text>
                    <text x="304" y="52">Description</text>
                    <text x="104" y="84">0</text>
                    <text x="136" y="84">-</text>
                    <text x="268" y="84">No</text>
                    <text x="328" y="84">REJECT_INFO</text>
                    <text x="104" y="116">1</text>
                    <text x="148" y="116">bstr</text>
                    <text x="304" y="116">REJECT_INFO</text>
                    <text x="372" y="116">from</text>
                    <text x="424" y="116">trusted</text>
                    <text x="480" y="116">third</text>
                    <text x="528" y="116">party</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art"><![CDATA[
+-------------+---------------+--------------------------------------+
| REJECT_TYPE | REJECT_INFO   | Description                          |
+=============+===============+======================================+
|           0 | -             | No REJECT_INFO                       |
+-------------+---------------+--------------------------------------+
|           1 | bstr          | REJECT_INFO from trusted third party |
+-------------+---------------+--------------------------------------+
]]></artwork>
            </artset>
          </figure>
        </section>
        <section anchor="error-handling-in-w-v-and-u">
          <name>Error handling in W, V, and U</name>
          <t>ELA uses the EDHOC Error "Access denied" in the following way:</t>
          <ul spacing="normal">
            <li>
              <t>W generates error_content and transfers it to V via the secure connection.
If REJECT_TYPE is 1, then REJECT_INFO is encrypted from W to U using the EDHOC AEAD algorithm.
W signals the error via an appropriate status code in the REST interface, as defined in <xref target="rest-voucher-request"/>.</t>
            </li>
            <li>
              <t>V receives error_content, prepares an EDHOC "Access denied" error, and sends it to U.</t>
            </li>
            <li>
              <t>U receives the error message and extracts the error_content.
If REJECT_TYPE is 1, then U decrypts REJECT_INFO, based on which it may retry to gain access.</t>
            </li>
          </ul>
          <t>The encryption of REJECT_INFO follows a procedure analogous to the one defined in <xref target="voucher"/>, with the following differences:</t>
          <sourcecode type="cddl"><![CDATA[
plaintext = (
    OPAQUE_INFO:     bstr,
 )
]]></sourcecode>
          <sourcecode type="cddl"><![CDATA[
external_aad = (
    H_message_1:    bstr,
 )
]]></sourcecode>
          <t>where</t>
          <ul spacing="normal">
            <li>
              <t>OPAQUE_INFO is an opaque field that contains actionable information about the error.
It may contain, for example, a list of suggested Vs through which U should join instead.</t>
            </li>
            <li>
              <t>H_message_1 is the hash of EDHOC message_1, calculated from the associated voucher request, see <xref target="voucher_request"/>.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="optimization-strat">
      <name>Optimization Strategies</name>
      <t>When ELA is used for zero-touch enrollment, U normally has little to no knowledge of the available V's.
This may lead to situations where U has to retry several times at different V's until it finds one that works.
This section presents two optimization strategies for such cases.
They were developed to address scenarios where V's are radio gateways to which U wants to enroll, but may also be applicable to other use cases.</t>
      <section anchor="strat-anycast">
        <name>U anycasts message_1</name>
        <t>This strategy consists in U disseminating EDHOC message_1 as anycast (a broadcast from which only one successful message_2 response is expected).
When each of the V's in radio range of U receive message_1, one of the following can happen:</t>
        <ul spacing="normal">
          <li>
            <t>V does not implement EDHOC, and drops the message</t>
          </li>
          <li>
            <t>V does not implement ELA, and since EAD_1 is critical, it either responds with an error or drops the message (Editor's note: dropping actually conflicts with the EAD field being critical)</t>
          </li>
          <li>
            <t>V forwards message_1 to W as VREQ, but W does not authorize it, and error handling is applied</t>
          </li>
          <li>
            <t>V forwards message_1 to W as VREQ, W authorizes it, and the protocol continues normally</t>
          </li>
        </ul>
        <t>U is expected to receive at most one message_2 as response, which contains the Voucher.
In case U receives additional message_2's, they MUST be silently dropped.</t>
        <t>This strategy may increase the number of messages that need to be processed by V and W, in exchange for reducing resource usage in U.</t>
        <t>Security concerns related to this strategy, including potential reuse of G_X and double processing of message_2, are discussed in <xref target="sec-cons"/>.</t>
      </section>
      <section anchor="strat-advertise">
        <name>V advertises support for ELA</name>
        <t>In this strategy, V shares some information (V_INFO) with a potential U, that can help it decide whether to try to enroll with that V.</t>
        <t>The exact contents of the V_INFO structure, as well as the mechanism used to transport it, will depend on the underlying communication technology and also on application needs.
For example, V_INFO may state that:</t>
        <ul spacing="normal">
          <li>
            <t>V implements ELA -- similarly to how EAPOL <xref target="IEEE802.1X"/> frames state support for IEEE 802.1X.</t>
          </li>
          <li>
            <t>V is part of a certain domain -- similarly to how Eduroam <xref target="RFC7593"/> is used in the SSID field of IEEE 802.11 packets</t>
          </li>
        </ul>
        <t>V_INFO can be sent over a network beacon (see <xref target="adv-beacon"/>), which may require technology specific profiling, e.g., the IEEE 802.15.4 enhanced beacon may be extended according to <xref target="RFC8137"/>.
Alternatively, V_INFO can be sent as part of an EAD field, as shown in <xref target="adv-ead1"/>.</t>
        <t>As a guideline for implementers, we define the following field that can be included in a V_INFO structure:</t>
        <sourcecode type="cddl"><![CDATA[
DOMAIN_ID: bstr
]]></sourcecode>
        <t>The DOMAIN_ID field identifies the domain to which V belongs to, for example an URL or UUID.</t>
        <t><xref target="example-advert"/> presents three examples of how the advertisement strategy may be applied according to different application needs.</t>
      </section>
    </section>
    <section anchor="rest_interface">
      <name>REST Interface at W</name>
      <t>The interaction between V and W is enabled through a RESTful interface exposed by W.
This RESTful interface MAY be implemented using either HTTP or CoAP.
V SHOULD access the resources exposed by W through the protocol indicated by the scheme in the LOC_W URI.</t>
      <section anchor="scheme-https">
        <name>Scheme "https"</name>
        <t>In case the scheme indicates "https", V MUST perform a TLS handshake with W and access the resources defined in <xref target="uris"/> using HTTP.
If the authentication credential CRED_V can be used in a TLS handshake, e.g., an X.509 certificate of a signature public key, then V SHOULD use it to authenticate to W as a client.
If the authentication credential CRED_V cannot be used in a TLS handshake, e.g., if the public key is a static Diffie-Hellman key, then V SHOULD first perform a TLS handshake with W using available compatible keys.
V MUST then perform an EDHOC session over the TLS connection proving to W the possession of the private key corresponding to CRED_V.
Performing the EDHOC session is only necessary if V did not authenticate with CRED_V in the TLS handshake with W.</t>
        <t>Editor's note: Clarify that performing TLS handshake is not necessary for each device request; if there already is a TLS connection between V and W that should be reused. Similar considerations for 5.2 and 5.3.</t>
      </section>
      <section anchor="scheme-coaps">
        <name>Scheme "coaps"</name>
        <t>In case the scheme indicates "coaps", V SHOULD perform a DTLS handshake with W and access the resources defined in <xref target="uris"/> using CoAP.
The normative requirements in <xref target="scheme-https"/> on performing the DTLS handshake and EDHOC session remain the same, except that TLS is replaced with DTLS.</t>
      </section>
      <section anchor="scheme-coap">
        <name>Scheme "coap"</name>
        <t>In case the scheme indicates "coap", V SHOULD perform an EDHOC session with W, as specified in <xref section="A" sectionFormat="of" target="RFC9528"/> and access the resources defined in <xref target="uris"/> using OSCORE and CoAP.
The authentication credential in this EDHOC session MUST be CRED_V.</t>
      </section>
      <section anchor="uris">
        <name>URIs</name>
        <t>The URIs defined below are valid for both HTTP and CoAP.
W MUST support the use of the path-prefix "/.well-known/", as defined in <xref target="RFC8615"/>, and the registered name "lake-authz".
A valid URI in case of HTTP thus begins with</t>
        <ul spacing="normal">
          <li>
            <t>"https://www.example.com/.well-known/lake-authz"</t>
          </li>
        </ul>
        <t>In case of CoAP with DTLS:</t>
        <ul spacing="normal">
          <li>
            <t>"coaps://example.com/.well-known/lake-authz"</t>
          </li>
        </ul>
        <t>In case of EDHOC and OSCORE:</t>
        <ul spacing="normal">
          <li>
            <t>"coap://example.com/.well-known/lake-authz"</t>
          </li>
        </ul>
        <t>Each operation specified in the following is indicated by a path-suffix.</t>
        <section anchor="rest-voucher-request">
          <name>Voucher Request (/voucherrequest)</name>
          <t>To request a voucher, V MUST issue a request such that:</t>
          <ul spacing="normal">
            <li>
              <t>Method is POST</t>
            </li>
            <li>
              <t>Payload is the serialization of the Voucher Request object, as specified in <xref target="voucher_request"/>.</t>
            </li>
            <li>
              <t>Content-Format (Content-Type) is set to "application/lake-authz-voucherrequest+cbor"</t>
            </li>
          </ul>
          <t>In case of successful processing at W, W MUST issue a response such that:</t>
          <ul spacing="normal">
            <li>
              <t>Status code is 200 OK if using HTTP, or 2.04 Changed if using CoAP</t>
            </li>
            <li>
              <t>Payload is the serialized Voucher Response object, as specified in <xref target="voucher_response"/></t>
            </li>
            <li>
              <t>Content-Format (Content-Type) is set to "application/lake-authz-voucherresponse+cbor"</t>
            </li>
          </ul>
          <t>In case of error, two cases should be considered:</t>
          <ul spacing="normal">
            <li>
              <t>U cannot be identified: this happens either if W fails to process the Voucher Request, or if it succeeds but ID_U is considered unknown to W. In this case, W MUST reply with 400 Bad Request if using HTTP, or 4.00 if using CoAP.</t>
            </li>
            <li>
              <t>U is identified but unauthorized: this happens if W is able to process the Voucher Request, and W recognizes ID_U as a known device, but the access policies forbid enrollment. For example, the policy could enforce enrollment within a delimited time window, via a specific V, etc. In this case, W MUST reply with a 403 Forbidden code if using HTTP, or 4.03 if using CoAP; the payload is the serialized error_content object, with Content-Format (Content-Type) set to "application/lake-authz-vouchererror+cbor". The payload MAY be used by V to prepare an EDHOC error "Access Denied", see <xref target="err-handling"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="certificate-request-certrequest">
          <name>Certificate Request (/certrequest)</name>
          <t>V requests the public key certificate of U from W through the "/certrequest" path-suffix.
To request U's authentication credential, V MUST issue a request such that:</t>
          <ul spacing="normal">
            <li>
              <t>Method is POST</t>
            </li>
            <li>
              <t>Payload is the serialization of the ID_CRED_I object, as received in EDHOC message_3.</t>
            </li>
            <li>
              <t>Content-Format (Content-Type) is set to "application/lake-authz-certrequest+cbor"</t>
            </li>
          </ul>
          <t>In case of a successful lookup of the authentication credential at W, W MUST issue a response such that:</t>
          <ul spacing="normal">
            <li>
              <t>Status code is 200 OK if using HTTP, or 2.04 Changed if using CoAP</t>
            </li>
            <li>
              <t>Payload is the serialized CRED_U</t>
            </li>
            <li>
              <t>Content-Format (Content-Type) is set to "application/lake-authz-certresponse+cbor"</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>This specification builds on and reuses many of the security constructions of EDHOC, e.g., shared secret calculation and key derivation. The security considerations of EDHOC <xref target="RFC9528"/> apply with modifications discussed here.</t>
      <t>EDHOC provides identity protection of the Initiator, here the device. The encryption of the device identifier ID_U in the first message should consider potential information leaking from the length of ID_U, either by making all identifiers having the same length or the use of a padding scheme.</t>
      <t>Although W learns about the identity of U after receiving VREQ, this information must not be disclosed to V, until U has revealed its identity to V with ID_CRED_I in message_3. W may be used for lookup of CRED_U from ID_CRED_I, or this credential lookup function may be separate from the authorization function of W, see <xref target="fig-protocol"/>. The trust model used here is that U decides to which V it reveals its identity. In an alternative trust model where U trusts W to decide to which V it reveals U's identity, CRED_U could be sent in Voucher Response.</t>
      <t>As noted in <xref section="9.2" sectionFormat="of" target="RFC9528"/> an ephemeral key may be used to calculate several ECDH shared secrets. In this specification, the ephemeral key G_X is also used to calculate G_XW, the shared secret with the enrollment server.</t>
      <t>The private ephemeral key is thus used in the device for calculations of key material relating to both the authenticator and the enrollment server. There are different options for where to implement these calculations. One option is as an addition to EDHOC, i.e., to extend the EDHOC API in the device, so that EDHOC can import the public key of W (G_W) and the device identifier of U (ID_U), and then produce the encryption of ID_U which is included in Voucher_Info in EAD_1.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA has registered the following entry in the "EDHOC External Authorization Data" registry under the group name "Ephemeral Diffie-
   Hellman Over COSE (EDHOC)".
The ead_label = TBD1 corresponds to the ead_value Voucher_Info in EAD_1, and Voucher in EAD_2 with processing specified in <xref target="m1"/> and <xref target="m2"/>, respectively, of this document.</t>
        <table anchor="ead-table">
          <name>Addition to the EDHOC EAD registry</name>
          <thead>
            <tr>
              <th align="right">Label</th>
              <th align="left">Value Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBD1</td>
              <td align="left">bstr</td>
              <td align="left">Voucher related information</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="the-well-known-uri-registry">
        <name>The Well-Known URI Registry</name>
        <t>IANA has registered the following entry in "The Well-Known URI Registry", using the template from <xref target="RFC8615"/>:</t>
        <ul spacing="normal">
          <li>
            <t>URI suffix: lake-authz</t>
          </li>
          <li>
            <t>Change controller: IETF</t>
          </li>
          <li>
            <t>Specification document: [[this document]]</t>
          </li>
          <li>
            <t>Related information: None</t>
          </li>
        </ul>
      </section>
      <section anchor="well-known-name-under-arpa-name-space">
        <name>Well-Known Name Under ".arpa" Name Space</name>
        <t>This document allocates a well-known name under the .arpa name space according to the rules given in <xref target="RFC3172"/> and <xref target="RFC6761"/>.
The name "lake-authz.arpa" is requested.
No subdomains are expected, and addition of any such subdomains requires the publication of an IETF Standards Track RFC.
No A, AAAA, or PTR record is requested.</t>
      </section>
      <section anchor="media-types-registry">
        <name>Media Types Registry</name>
        <t>IANA has added the media types "application/lake-authz-voucherrequest+cbor" to the "Media Types" registry.</t>
        <section anchor="applicationlake-authz-voucherrequestcbor-media-type-registration">
          <name>application/lake-authz-voucherrequest+cbor Media Type Registration</name>
          <ul spacing="normal">
            <li>
              <t>Type name: application</t>
            </li>
            <li>
              <t>Subtype name: lake-authz-voucherrequest+cbor</t>
            </li>
            <li>
              <t>Required parameters: N/A</t>
            </li>
            <li>
              <t>Optional parameters: N/A</t>
            </li>
            <li>
              <t>Encoding considerations: binary (CBOR)</t>
            </li>
            <li>
              <t>Security considerations: See <xref target="sec-cons"/> of this document.</t>
            </li>
            <li>
              <t>Interoperability considerations: N/A</t>
            </li>
            <li>
              <t>Published specification: [[this document]] (this document)</t>
            </li>
            <li>
              <t>Application 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 &amp; email address to contact for further information: IETF LAKE Working Group (lake@ietf.org)</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: N/A</t>
            </li>
            <li>
              <t>Author: LAKE WG</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="coap-content-formats-registry">
        <name>CoAP Content-Formats Registry</name>
        <t>IANA has added the following Content-Format number in the "CoAP Content-Formats" registry under the registry group "Constrained RESTful Environments (CoRE) Parameters".</t>
        <table anchor="coap-content-formats">
          <name>Addition to the CoAP Content-Formats registry</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Encoding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/lake-authz-voucherrequest+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD2</td>
              <td align="left">[[this document]]</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8366" target="https://www.rfc-editor.org/info/rfc8366" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8366.xml">
          <front>
            <title>A Voucher Artifact for Bootstrapping Protocols</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This document defines a strategy to securely assign a pledge to an owner using an artifact signed, directly or indirectly, by the pledge's manufacturer. This artifact is known as a "voucher".</t>
              <t>This document defines an artifact format as a YANG-defined JSON document that has been signed using a Cryptographic Message Syntax (CMS) structure. Other YANG-derived formats are possible. The voucher artifact is normally generated by the pledge's manufacturer (i.e., the Manufacturer Authorized Signing Authority (MASA)).</t>
              <t>This document only defines the voucher artifact, leaving it to other documents to describe specialized protocols for accessing it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8366"/>
          <seriesInfo name="DOI" value="10.17487/RFC8366"/>
        </reference>
        <reference anchor="RFC8392" target="https://www.rfc-editor.org/info/rfc8392" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8392.xml">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <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="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </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="RFC9052" target="https://www.rfc-editor.org/info/rfc9052" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9052.xml">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="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="RFC9528" target="https://www.rfc-editor.org/info/rfc9528" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9528.xml">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="NIST-800-56A" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography - NIST Special Publication 800-56A, Revision 3</title>
            <author initials="E." surname="Barker" fullname="Elaine Barker">
              <organization/>
            </author>
            <author initials="L." surname="Chen" fullname="Lily Chen">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky" fullname="Allen Roginsky">
              <organization/>
            </author>
            <author initials="A." surname="Vassilev" fullname="Apostol Vassilev">
              <organization/>
            </author>
            <author initials="R." surname="Davis" fullname="Richard Davis">
              <organization/>
            </author>
            <date year="2018" month="April"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative 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="RFC3172" target="https://www.rfc-editor.org/info/rfc3172" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3172.xml">
          <front>
            <title>Management Guidelines &amp; Operational Requirements for the Address and Routing Parameter Area Domain ("arpa")</title>
            <author fullname="G. Huston" initials="G." role="editor" surname="Huston"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo describes the management and operational requirements for the address and routing parameter area ("arpa") domain. 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="52"/>
          <seriesInfo name="RFC" value="3172"/>
          <seriesInfo name="DOI" value="10.17487/RFC3172"/>
        </reference>
        <reference anchor="RFC5280" target="https://www.rfc-editor.org/info/rfc5280" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC6761" target="https://www.rfc-editor.org/info/rfc6761" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6761.xml">
          <front>
            <title>Special-Use Domain Names</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes what it means to say that a Domain Name (DNS name) is reserved for special use, when reserving such a name is appropriate, and the procedure for doing so. It establishes an IANA registry for such domain names, and seeds it with entries for some of the already established special domain names.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6761"/>
          <seriesInfo name="DOI" value="10.17487/RFC6761"/>
        </reference>
        <reference anchor="RFC7228" target="https://www.rfc-editor.org/info/rfc7228" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC7593" target="https://www.rfc-editor.org/info/rfc7593" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7593.xml">
          <front>
            <title>The eduroam Architecture for Network Roaming</title>
            <author fullname="K. Wierenga" initials="K." surname="Wierenga"/>
            <author fullname="S. Winter" initials="S." surname="Winter"/>
            <author fullname="T. Wolniewicz" initials="T." surname="Wolniewicz"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document describes the architecture of the eduroam service for federated (wireless) network access in academia. The combination of IEEE 802.1X, the Extensible Authentication Protocol (EAP), and RADIUS that is used in eduroam provides a secure, scalable, and deployable service for roaming network access. The successful deployment of eduroam over the last decade in the educational sector may serve as an example for other sectors, hence this document. In particular, the initial architectural choices and selection of standards are described, along with the changes that were prompted by operational experience.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7593"/>
          <seriesInfo name="DOI" value="10.17487/RFC7593"/>
        </reference>
        <reference anchor="RFC8137" target="https://www.rfc-editor.org/info/rfc8137" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8137.xml">
          <front>
            <title>IEEE 802.15.4 Information Element for the IETF</title>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <author fullname="P. Kinney" initials="P." surname="Kinney"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>IEEE Std 802.15.4 defines Information Elements (IEs) that can be used to extend 802.15.4 in an interoperable manner. The IEEE 802.15 Assigned Numbers Authority (ANA) manages the registry of the Information Elements. This document formulates a request for ANA to allocate a number from that registry for the IETF and describes how the IE is formatted to provide subtypes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8137"/>
          <seriesInfo name="DOI" value="10.17487/RFC8137"/>
        </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="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="RFC8610" target="https://www.rfc-editor.org/info/rfc8610" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8610.xml">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </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="RFC8995" target="https://www.rfc-editor.org/info/rfc8995" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8995.xml">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8995"/>
          <seriesInfo name="DOI" value="10.17487/RFC8995"/>
        </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="I-D.ietf-core-oscore-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-edhoc-11" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-edhoc.xml">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="9" month="April" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie- Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol, by specifying a number of additional and optional mechanisms. These especially include an optimization approach for combining the execution of EDHOC with the first OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-11"/>
        </reference>
        <reference anchor="I-D.ietf-lake-reqs" target="https://datatracker.ietf.org/doc/html/draft-ietf-lake-reqs-04" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-reqs.xml">
          <front>
            <title>Requirements for a Lightweight AKE for OSCORE</title>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>Inria</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Dan Garcia-Carillo" initials="D." surname="Garcia-Carillo">
              <organization>Odin Solutions S.L.</organization>
            </author>
            <date day="8" month="June" year="2020"/>
            <abstract>
              <t>This document compiles the requirements for a lightweight authenticated key exchange protocol for OSCORE. This draft has completed a working group last call (WGLC) in the LAKE working group. Post-WGLC, the requirements are considered sufficiently stable for the working group to proceed with its work. It is not currently planned to publish this draft as an RFC.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-reqs-04"/>
        </reference>
        <reference anchor="I-D.amsuess-core-coap-over-gatt" target="https://datatracker.ietf.org/doc/html/draft-amsuess-core-coap-over-gatt-07" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.amsuess-core-coap-over-gatt.xml">
          <front>
            <title>CoAP over GATT (Bluetooth Low Energy Generic Attributes)</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss"/>
            <date day="25" month="September" year="2024"/>
            <abstract>
              <t>Interaction from computers and cell phones to constrained devices is limited by the different network technologies used, and by the available APIs. This document describes a transport for the Constrained Application Protocol (CoAP) that uses Bluetooth GATT (Generic Attribute Profile) and its use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-coap-over-gatt-07"/>
        </reference>
        <reference anchor="IEEE802.15.4">
          <front>
            <title>IEEE Std 802.15.4 Standard for Low-Rate Wireless Networks</title>
            <author initials="" surname="IEEE standard for Information Technology">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IEEE802.1X">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks - Port-Based Network Access Control</title>
            <author initials="" surname="IEEE standard for Information Technology">
              <organization/>
            </author>
            <date year="2010" month="February"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 903?>

<section anchor="edhoc-reverse">
      <name>Use with EDHOC reverse flow</name>
      <t>Editor's note: I am not sure if this should be an appendix or an actual section in the main document.</t>
      <t>This appendix describes how the protocol can be used with the EDHOC reverse message flow defined in <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>, where the CoAP client is the Responder and the CoAP server is the initiator.</t>
      <section anchor="reverse-u-init">
        <name>U is the Initiator</name>
        <t>The reverse flow can be applied when U implements a CoAP server, but acts as an EDHOC Initiator.
In this case, U awaits for a CoAP request to be sent from V, which will act as a trigger message to start the EDHOC handshake with ELA.
Next, U replies with an EDHOC message_1, thus executing the protocol normally.</t>
        <figure anchor="fig-reverse-u-init">
          <name>ELA with EDHOC reverse mesasge flow when U is initiator.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="424" viewBox="0 0 424 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 72,32 L 72,64" fill="none" stroke="black"/>
                <path d="M 72,104 L 72,224" fill="none" stroke="black"/>
                <path d="M 144,32 L 144,96" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,96" fill="none" stroke="black"/>
                <path d="M 344,32 L 344,56" fill="none" stroke="black"/>
                <path d="M 344,104 L 344,224" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 144,32" fill="none" stroke="black"/>
                <path d="M 280,32 L 416,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 144,64" fill="none" stroke="black"/>
                <path d="M 280,64 L 416,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 144,96" fill="none" stroke="black"/>
                <path d="M 280,96 L 416,96" fill="none" stroke="black"/>
                <path d="M 80,144 L 336,144" fill="none" stroke="black"/>
                <path d="M 72,192 L 336,192" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="344,192 332,186.4 332,197.6" fill="black" transform="rotate(0,336,192)"/>
                <polygon class="arrowhead" points="88,144 76,138.4 76,149.6" fill="black" transform="rotate(180,80,144)"/>
                <g class="text">
                  <text x="36" y="52">Init</text>
                  <text x="108" y="52">Server</text>
                  <text x="308" y="52">Resp</text>
                  <text x="380" y="52">Client</text>
                  <text x="72" y="84">U</text>
                  <text x="344" y="84">V</text>
                  <text x="172" y="132">CoAP</text>
                  <text x="224" y="132">request</text>
                  <text x="160" y="180">EDHOC</text>
                  <text x="224" y="180">message_1</text>
                  <text x="140" y="212">(EAD_1</text>
                  <text x="176" y="212">=</text>
                  <text x="240" y="212">Voucher_Info)</text>
                  <text x="56" y="260">(</text>
                  <text x="80" y="260">...</text>
                  <text x="132" y="260">protocol</text>
                  <text x="208" y="260">continues</text>
                  <text x="284" y="260">normally</text>
                  <text x="336" y="260">...</text>
                  <text x="360" y="260">)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-------+--------+                +-------+--------+
| Init  | Server |                | Resp  | Client |
+-------+--------+                +----------------+
|       U        |                |       V        |
+----------------+                +----------------+
        |                                 |
        |          CoAP request           |
        |<--------------------------------|
        |                                 |
        |        EDHOC message_1          |
        +-------------------------------->|
        |     (EAD_1 = Voucher_Info)      |
        |                                 |

      ( ... protocol continues normally ... )

]]></artwork>
          </artset>
        </figure>
        <t>One use case is to perform ELA over Bluetooth Low Energy, as discussed in <xref target="I-D.amsuess-core-coap-over-gatt"/>.</t>
      </section>
      <section anchor="reverse-u-resp">
        <name>U is the Responder</name>
        <t>The reverse flow can also be used when U implements a CoAP client, but acts as a Responder, as illustrated in <xref target="fig-reverse"/>.
The main changes in this case are:</t>
        <ul spacing="normal">
          <li>
            <t>Instead of sending EDHOC message_1, U sends an initial trigger packet to V, e.g., a CoAP request, which then initiates the handshake by replying with an EDHOC message_1.</t>
          </li>
          <li>
            <t>The Voucher_Info and Voucher structs are sent over EAD_2 and EAD_3, respectively (instead of over EAD_1 and EAD_2).</t>
          </li>
        </ul>
        <figure anchor="fig-reverse">
          <name>ELA with EDHOC reverse mesasge flow when U is responder.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="432" viewBox="0 0 432 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 72,32 L 72,64" fill="none" stroke="black"/>
                <path d="M 72,104 L 72,368" fill="none" stroke="black"/>
                <path d="M 144,32 L 144,96" fill="none" stroke="black"/>
                <path d="M 232,32 L 232,96" fill="none" stroke="black"/>
                <path d="M 296,32 L 296,56" fill="none" stroke="black"/>
                <path d="M 296,104 L 296,368" fill="none" stroke="black"/>
                <path d="M 368,32 L 368,96" fill="none" stroke="black"/>
                <path d="M 424,240 L 424,336" fill="none" stroke="black"/>
                <path d="M 8,32 L 144,32" fill="none" stroke="black"/>
                <path d="M 232,32 L 368,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 144,64" fill="none" stroke="black"/>
                <path d="M 232,64 L 368,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 144,96" fill="none" stroke="black"/>
                <path d="M 232,96 L 368,96" fill="none" stroke="black"/>
                <path d="M 72,144 L 288,144" fill="none" stroke="black"/>
                <path d="M 80,192 L 288,192" fill="none" stroke="black"/>
                <path d="M 72,240 L 288,240" fill="none" stroke="black"/>
                <path d="M 296,272 L 416,272" fill="none" stroke="black"/>
                <path d="M 304,304 L 416,304" fill="none" stroke="black"/>
                <path d="M 80,352 L 288,352" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="424,304 412,298.4 412,309.6" fill="black" transform="rotate(0,416,304)"/>
                <polygon class="arrowhead" points="424,272 412,266.4 412,277.6" fill="black" transform="rotate(0,416,272)"/>
                <polygon class="arrowhead" points="312,304 300,298.4 300,309.6" fill="black" transform="rotate(180,304,304)"/>
                <polygon class="arrowhead" points="296,240 284,234.4 284,245.6" fill="black" transform="rotate(0,288,240)"/>
                <polygon class="arrowhead" points="296,144 284,138.4 284,149.6" fill="black" transform="rotate(0,288,144)"/>
                <polygon class="arrowhead" points="88,352 76,346.4 76,357.6" fill="black" transform="rotate(180,80,352)"/>
                <polygon class="arrowhead" points="88,192 76,186.4 76,197.6" fill="black" transform="rotate(180,80,192)"/>
                <g class="text">
                  <text x="36" y="52">Resp</text>
                  <text x="108" y="52">Client</text>
                  <text x="260" y="52">Init</text>
                  <text x="332" y="52">Server</text>
                  <text x="72" y="84">U</text>
                  <text x="296" y="84">V</text>
                  <text x="148" y="132">CoAP</text>
                  <text x="200" y="132">request</text>
                  <text x="136" y="180">EDHOC</text>
                  <text x="200" y="180">message_1</text>
                  <text x="136" y="228">EDHOC</text>
                  <text x="200" y="228">message_2</text>
                  <text x="424" y="228">W</text>
                  <text x="124" y="260">(EAD_2</text>
                  <text x="160" y="260">=</text>
                  <text x="224" y="260">Voucher_Info)</text>
                  <text x="332" y="292">VREQ</text>
                  <text x="360" y="292">/</text>
                  <text x="388" y="292">VRES</text>
                  <text x="136" y="340">EDHOC</text>
                  <text x="200" y="340">message_3</text>
                  <text x="140" y="372">(EAD_3</text>
                  <text x="176" y="372">=</text>
                  <text x="220" y="372">Voucher)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-------+--------+          +-------+--------+
| Resp  | Client |          | Init  | Server |
+-------+--------+          +----------------+
|       U        |          |       V        |
+----------------+          +----------------+
        |                           |
        |       CoAP request        |
        +-------------------------->|
        |                           |
        |     EDHOC message_1       |
        +<--------------------------|
        |                           |
        |     EDHOC message_2       |               W
        +-------------------------->|               |
        |   (EAD_2 = Voucher_Info)  |               |
        |                           +-------------->|
        |                           |  VREQ / VRES  |
        |                           |<------------->|
        |                           |               |
        |     EDHOC message_3       |               |
        +<--------------------------|
        |     (EAD_3 = Voucher)     |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="use-with-constrained-join-protocol-cojp">
      <name>Use with Constrained Join Protocol (CoJP)</name>
      <t>This section outlines how ELA is used for network enrollment and parameter provisioning.
An IEEE 802.15.4 network is used as an example of how a new device (U) can be enrolled into the domain managed by the domain authenticator (V).</t>
      <figure anchor="fig-cojp">
        <name>Use of draft-ietf-lake-authz with CoJP.</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="560" viewBox="0 0 560 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,400" fill="none" stroke="black"/>
              <path d="M 304,48 L 304,384" fill="none" stroke="black"/>
              <path d="M 552,48 L 552,384" fill="none" stroke="black"/>
              <path d="M 280,80 L 296,80" fill="none" stroke="black"/>
              <path d="M 16,112 L 304,112" fill="none" stroke="black"/>
              <path d="M 8,160 L 296,160" fill="none" stroke="black"/>
              <path d="M 304,192 L 544,192" fill="none" stroke="black"/>
              <path d="M 312,224 L 552,224" fill="none" stroke="black"/>
              <path d="M 16,256 L 304,256" fill="none" stroke="black"/>
              <path d="M 8,320 L 296,320" fill="none" stroke="black"/>
              <path d="M 16,368 L 296,368" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="552,192 540,186.4 540,197.6" fill="black" transform="rotate(0,544,192)"/>
              <polygon class="arrowhead" points="320,224 308,218.4 308,229.6" fill="black" transform="rotate(180,312,224)"/>
              <polygon class="arrowhead" points="304,320 292,314.4 292,325.6" fill="black" transform="rotate(0,296,320)"/>
              <polygon class="arrowhead" points="304,160 292,154.4 292,165.6" fill="black" transform="rotate(0,296,160)"/>
              <polygon class="arrowhead" points="304,80 292,74.4 292,85.6" fill="black" transform="rotate(0,296,80)"/>
              <polygon class="arrowhead" points="24,368 12,362.4 12,373.6" fill="black" transform="rotate(180,16,368)"/>
              <polygon class="arrowhead" points="24,256 12,250.4 12,261.6" fill="black" transform="rotate(180,16,256)"/>
              <polygon class="arrowhead" points="24,112 12,106.4 12,117.6" fill="black" transform="rotate(180,16,112)"/>
              <g class="text">
                <text x="8" y="36">U</text>
                <text x="304" y="36">V</text>
                <text x="552" y="36">W</text>
                <text x="24" y="84">-</text>
                <text x="40" y="84">-</text>
                <text x="56" y="84">-</text>
                <text x="72" y="84">-</text>
                <text x="88" y="84">-</text>
                <text x="104" y="84">-</text>
                <text x="120" y="84">-</text>
                <text x="136" y="84">-</text>
                <text x="152" y="84">-</text>
                <text x="168" y="84">-</text>
                <text x="184" y="84">-</text>
                <text x="200" y="84">-</text>
                <text x="216" y="84">-</text>
                <text x="232" y="84">-</text>
                <text x="248" y="84">-</text>
                <text x="264" y="84">-</text>
                <text x="76" y="100">Optional</text>
                <text x="144" y="100">network</text>
                <text x="228" y="100">solicitation</text>
                <text x="120" y="132">Network</text>
                <text x="192" y="132">discovery</text>
                <text x="112" y="180">EDHOC</text>
                <text x="176" y="180">message_1</text>
                <text x="368" y="212">Voucher</text>
                <text x="432" y="212">Request</text>
                <text x="492" y="212">(VREQ)</text>
                <text x="368" y="244">Voucher</text>
                <text x="436" y="244">Response</text>
                <text x="500" y="244">(VRES)</text>
                <text x="112" y="276">EDHOC</text>
                <text x="176" y="276">message_2</text>
                <text x="56" y="340">EDHOC</text>
                <text x="120" y="340">message_3</text>
                <text x="168" y="340">+</text>
                <text x="196" y="340">CoJP</text>
                <text x="248" y="340">request</text>
                <text x="124" y="388">CoJP</text>
                <text x="180" y="388">response</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
U                                    V                              W
|                                    |                              |
|                                    |                              |
+ - - - - - - - - - - - - - - - - -->|                              |
|    Optional network solicitation   |                              |
|<-----------------------------------+                              |
|          Network discovery         |                              |
|                                    |                              |
+----------------------------------->|                              |
|          EDHOC message_1           |                              |
|                                    +----------------------------->|
|                                    |    Voucher Request (VREQ)    |
|                                    |<-----------------------------+
|                                    |    Voucher Response (VRES)   |
|<-----------------------------------+                              |
|          EDHOC message_2           |                              |
|                                    |                              |
|                                    |                              |
+----------------------------------->|                              |
|   EDHOC message_3 + CoJP request   |                              |
|                                    |                              |
+<-----------------------------------|                              |
|            CoJP response           |                              |
|
]]></artwork>
        </artset>
      </figure>
      <section anchor="network-discovery">
        <name>Network Discovery</name>
        <t>When a device first boots, it needs to discover the network it attempts to join.
The network discovery procedure is defined by the link-layer technology in use.
In case of Time-slotted Channel Hopping (TSCH) networks, a mode of <xref target="IEEE802.15.4"/>, the device scans the radio channels for Enhanced Beacon (EB) frames, a procedure known as passive scan.
EBs carry the information about the network, and particularly the network identifier.
Based on the EB, the network identifier, the information pre-configured into the device, the device makes the decision on whether it should join the network advertised by the received EB frame.
This process is described in <xref section="4.1" sectionFormat="of" target="RFC9031"/>.
In case of other, non-TSCH modes of IEEE 802.15.4, it is possible to use the active scan procedure and send solicitation frames.
These solicitation frames trigger the nearest network coordinator to respond by emitting a beacon frame.
The network coordinator emitting beacons may be multiple link-layer hops away from the domain authenticator (V), in which case it plays the role of a Join Proxy (see <xref target="RFC9031"/>).
The Join Proxy does not participate in the protocol and acts as a transparent router between the device and the domain authenticator.
For simplicity, <xref target="fig-cojp"/> illustrates the case when the device and the domain authenticator are a single hop away and can communicate directly.</t>
      </section>
      <section anchor="the-enrollment-protocol-with-parameter-provisioning">
        <name>The Enrollment Protocol with Parameter Provisioning</name>
        <section anchor="flight-1">
          <name>Flight 1</name>
          <t>Once the device has discovered the network it wants to join, it constructs EDHOC message_1, as described in <xref target="U-V"/>.
The device SHALL map the message to a CoAP request:</t>
          <ul spacing="normal">
            <li>
              <t>The request method is POST.</t>
            </li>
            <li>
              <t>The type is Confirmable (CON).</t>
            </li>
            <li>
              <t>The Proxy-Scheme option is set to "coap".</t>
            </li>
            <li>
              <t>The Uri-Host option is set to "lake-authz.arpa". This is an anycast type of identifier of the domain authenticator (V) that is resolved to its IPv6 address by the Join Proxy.</t>
            </li>
            <li>
              <t>By means of Uri-Path options, the Uri-Path is set to ".well-known/edhoc".</t>
            </li>
            <li>
              <t>The payload is the (true, EDHOC message_1) CBOR sequence, where EDHOC message_1 is constructed as defined in <xref target="U-V"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="flight-2">
          <name>Flight 2</name>
          <t>The domain authenticator receives message_1 and processes it as described in <xref target="U-V"/>.
The message triggers the exchange with the enrollment server, as described in <xref target="V-W"/>.
If the exchange between V and W completes successfully, the domain authenticator prepares EDHOC message_2, as described in <xref target="U-V"/>.
The authenticator SHALL map the message to a CoAP response:</t>
          <ul spacing="normal">
            <li>
              <t>The response code is 2.04 Changed.</t>
            </li>
            <li>
              <t>The payload is the EDHOC message_2, as defined in <xref target="U-V"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="flight-3">
          <name>Flight 3</name>
          <t>The device receives EDHOC message_2 and processes it as described in <xref target="U-V"/>.
Upon successful processing of message_2, the device prepares flight 3, which is an OSCORE-protected CoJP request containing an EDHOC message_3, as described in <xref target="I-D.ietf-core-oscore-edhoc"/>.
EDHOC message_3 is prepared as described in <xref target="U-V"/>.
The OSCORE-protected payload is the CoJP Join Request object specified in <xref section="8.4.1" sectionFormat="of" target="RFC9031"/>.
OSCORE protection leverages the OSCORE Security Context derived from the EDHOC session, as specified in Appendix A of <xref target="RFC9528"/>.
To that end, <xref target="I-D.ietf-core-oscore-edhoc"/> specifies that the Sender ID of the client (device) must be set to the connection identifier selected by the domain authenticator, C_R.
OSCORE includes the Sender ID as the kid in the OSCORE option.
The network identifier in the CoJP Join Request object is set to the network identifier obtained from the network discovery phase.
In case of IEEE 802.15.4 networks, this is the PAN ID.</t>
          <t>The device SHALL map the message to a CoAP request:</t>
          <ul spacing="normal">
            <li>
              <t>The request method is POST.</t>
            </li>
            <li>
              <t>The type is Confirmable (CON).</t>
            </li>
            <li>
              <t>The Proxy-Scheme option is set to "coap".</t>
            </li>
            <li>
              <t>The Uri-Host option is set to "lake-authz.arpa".</t>
            </li>
            <li>
              <t>The Uri-Path option is set to ".well-known/edhoc".</t>
            </li>
            <li>
              <t>The EDHOC option <xref target="I-D.ietf-core-oscore-edhoc"/> is set and is empty.</t>
            </li>
            <li>
              <t>The payload is prepared as described in <xref section="3.2" sectionFormat="of" target="I-D.ietf-core-oscore-edhoc"/>, with EDHOC message_3 and the CoJP Join Request object as the OSCORE-protected payload.</t>
            </li>
          </ul>
          <t>Note that the OSCORE Sender IDs are derived from the connection identifiers of the EDHOC session.
This is in contrast with <xref target="RFC9031"/> where ID Context of the OSCORE Security Context is set to the device identifier (pledge identifier).
Since the device identity is exchanged during the EDHOC session, and the certificate of the device is communicated to the authenticator as part of the Voucher Response message, there is no need to transport the device identity in OSCORE messages.
The authenticator playing the role of the <xref target="RFC9031"/> JRC obtains the device identity from the execution of the authorization protocol.</t>
        </section>
        <section anchor="flight-4">
          <name>Flight 4</name>
          <t>Flight 4 is the OSCORE response carrying CoJP response message.
The message is processed as specified in <xref section="8.4.2" sectionFormat="of" target="RFC9031"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="example-advert">
      <name>Example Advertisement Strategies</name>
      <t>This appendix presents three example strategies that can be used to advertise the presence of a V.
It includes sending V_INFO in network beacons, as part of EAD_1 in reverse message flow, or as part of a periodic CoAP multicast packet.
It also presents the advantages, costs, and security impacts of each strategy.</t>
      <section anchor="adv-beacon">
        <name>V_INFO in network beacons</name>
        <t><em>PR editor's note: this is approach A1</em></t>
        <t>This approach allows carrying V_INFO in beacons sent over the network layer, as shown in <xref target="fig-adv-beacon"/>.
It requires that the network layer offers a mechanism to configure its beacon packets.
Depending on the network type, a solicitation packet may also be needed, as is the case of non-beaconed IEEE 802.15.4 and BLE with GATT.</t>
        <figure anchor="fig-adv-beacon">
          <name>Advertising ELA using V_INFO in network-layer beacons.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="480" viewBox="0 0 480 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 72,32 L 72,64" fill="none" stroke="black"/>
                <path d="M 72,104 L 72,272" fill="none" stroke="black"/>
                <path d="M 144,32 L 144,96" fill="none" stroke="black"/>
                <path d="M 336,32 L 336,96" fill="none" stroke="black"/>
                <path d="M 400,32 L 400,56" fill="none" stroke="black"/>
                <path d="M 400,104 L 400,272" fill="none" stroke="black"/>
                <path d="M 472,32 L 472,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 144,32" fill="none" stroke="black"/>
                <path d="M 336,32 L 472,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 144,64" fill="none" stroke="black"/>
                <path d="M 336,64 L 472,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 144,96" fill="none" stroke="black"/>
                <path d="M 336,96 L 472,96" fill="none" stroke="black"/>
                <path d="M 376,128 L 392,128" fill="none" stroke="black"/>
                <path d="M 80,176 L 400,176" fill="none" stroke="black"/>
                <path d="M 72,240 L 392,240" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="400,240 388,234.4 388,245.6" fill="black" transform="rotate(0,392,240)"/>
                <polygon class="arrowhead" points="400,128 388,122.4 388,133.6" fill="black" transform="rotate(0,392,128)"/>
                <polygon class="arrowhead" points="88,176 76,170.4 76,181.6" fill="black" transform="rotate(180,80,176)"/>
                <g class="text">
                  <text x="36" y="52">Init</text>
                  <text x="108" y="52">Client</text>
                  <text x="364" y="52">Resp</text>
                  <text x="436" y="52">Server</text>
                  <text x="72" y="84">U</text>
                  <text x="400" y="84">V</text>
                  <text x="88" y="132">-</text>
                  <text x="104" y="132">-</text>
                  <text x="120" y="132">-</text>
                  <text x="136" y="132">-</text>
                  <text x="152" y="132">-</text>
                  <text x="168" y="132">-</text>
                  <text x="184" y="132">-</text>
                  <text x="200" y="132">-</text>
                  <text x="216" y="132">-</text>
                  <text x="232" y="132">-</text>
                  <text x="248" y="132">-</text>
                  <text x="264" y="132">-</text>
                  <text x="280" y="132">-</text>
                  <text x="296" y="132">-</text>
                  <text x="312" y="132">-</text>
                  <text x="328" y="132">-</text>
                  <text x="344" y="132">-</text>
                  <text x="360" y="132">-</text>
                  <text x="148" y="148">Optional</text>
                  <text x="216" y="148">network</text>
                  <text x="300" y="148">solicitation</text>
                  <text x="128" y="196">Network</text>
                  <text x="200" y="196">discovery</text>
                  <text x="280" y="196">(contains</text>
                  <text x="352" y="196">V_INFO)</text>
                  <text x="192" y="228">EDHOC</text>
                  <text x="256" y="228">message_1</text>
                  <text x="168" y="260">(?EAD_1</text>
                  <text x="208" y="260">=</text>
                  <text x="272" y="260">Voucher_Info)</text>
                  <text x="80" y="308">(</text>
                  <text x="104" y="308">...</text>
                  <text x="156" y="308">protocol</text>
                  <text x="232" y="308">continues</text>
                  <text x="308" y="308">normally</text>
                  <text x="360" y="308">...</text>
                  <text x="384" y="308">)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-------+--------+                       +-------+--------+
| Init  | Client |                       | Resp  | Server |
+-------+--------+                       +----------------+
|       U        |                       |       V        |
+----------------+                       +----------------+
        |                                        |
        + - - - - - - - - - - - - - - - - - - -->|
        |     Optional network solicitation      |
        |                                        |
        |<---------------------------------------+
        |   Network discovery (contains V_INFO)  |
        |                                        |
        |            EDHOC message_1             |
        +--------------------------------------->|
        |        (?EAD_1 = Voucher_Info)         |
        |                                        |

         ( ... protocol continues normally ... )
]]></artwork>
          </artset>
        </figure>
        <t>This strategy can be used, for example, in IEEE 802.15.4, where an Enhanced Beacon <xref target="IEEE802.15.4"/> can be used to transmit V_INFO.
Specifically, a new information element for carrying V_INFO can be defined according to <xref target="RFC8137"/>.</t>
        <t>This approach has the advantage of requiring minimal changes to the default protocol as presented in <xref target="protocol-overview"/>, i.e., no reverse flow.
It requires, however, some profiling of the lower layer beacons.</t>
      </section>
      <section anchor="adv-ead1">
        <name>V_INFO in EAD_1</name>
        <t><em>PR editor's note: this is approach A2</em></t>
        <t>ELA with EDHOC in the reverse flow allows implementing advertising where U first sends a trigger packet, in the format of a CoAP request that is broadcasted to the newtork.
When a suitable V receives the solicitation, if it implements ELA, it should respond with an EDHOC message_1 whose EAD_1 has label TBD1 and value V_INFO (see Section <xref target="optimization-strat"/>).</t>
        <figure anchor="fig-adv-ead1">
          <name>Advertising ELA using V_INFO in EAD_1, eploying the EDHOC reverse flow with U as responder.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="424" viewBox="0 0 424 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 72,32 L 72,64" fill="none" stroke="black"/>
                <path d="M 72,104 L 72,224" fill="none" stroke="black"/>
                <path d="M 144,32 L 144,96" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,96" fill="none" stroke="black"/>
                <path d="M 344,32 L 344,56" fill="none" stroke="black"/>
                <path d="M 344,104 L 344,224" fill="none" stroke="black"/>
                <path d="M 416,32 L 416,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 144,32" fill="none" stroke="black"/>
                <path d="M 280,32 L 416,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 144,64" fill="none" stroke="black"/>
                <path d="M 280,64 L 416,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 144,96" fill="none" stroke="black"/>
                <path d="M 280,96 L 416,96" fill="none" stroke="black"/>
                <path d="M 72,128 L 336,128" fill="none" stroke="black"/>
                <path d="M 80,192 L 336,192" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="344,128 332,122.4 332,133.6" fill="black" transform="rotate(0,336,128)"/>
                <polygon class="arrowhead" points="88,192 76,186.4 76,197.6" fill="black" transform="rotate(180,80,192)"/>
                <g class="text">
                  <text x="36" y="52">Resp</text>
                  <text x="108" y="52">Client</text>
                  <text x="308" y="52">Init</text>
                  <text x="380" y="52">Server</text>
                  <text x="72" y="84">U</text>
                  <text x="344" y="84">V</text>
                  <text x="116" y="148">CoAP</text>
                  <text x="228" y="148">discovery/solicitation</text>
                  <text x="160" y="180">EDHOC</text>
                  <text x="224" y="180">message_1</text>
                  <text x="160" y="212">(?EAD_1</text>
                  <text x="200" y="212">=</text>
                  <text x="240" y="212">V_INFO)</text>
                  <text x="48" y="260">(</text>
                  <text x="72" y="260">...</text>
                  <text x="120" y="260">reverse</text>
                  <text x="172" y="260">flow</text>
                  <text x="232" y="260">continues</text>
                  <text x="308" y="260">normally</text>
                  <text x="360" y="260">...</text>
                  <text x="384" y="260">)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+-------+--------+                +-------+--------+
| Resp  | Client |                | Init  | Server |
+-------+--------+                +----------------+
|       U        |                |       V        |
+----------------+                +----------------+
        |                                 |
        +-------------------------------->|
        |   CoAP discovery/solicitation   |
        |                                 |
        |        EDHOC message_1          |
        +<--------------------------------|
        |       (?EAD_1 = V_INFO)         |
        |                                 |

     ( ... reverse flow continues normally ... )
]]></artwork>
          </artset>
        </figure>
        <t>Note that V will only reply if it supports ELA, therefore in this strategy there is no need to transport ELA_ID.
V_INFO can then be structured to contain only the optional domain identifier:</t>
        <sourcecode type="cddl"><![CDATA[
V_INFO = (
  ?DOMAIN_ID: bstr,
)
]]></sourcecode>
        <t>This approach enables a simple filtering mechanism, where only V's that support ELA will reply.
It also encrypts Voucher_Info (as part of EAD_2), wehereas it is sent in the clear in the original flow.
In addition, it may not require layer-two profiling (in case the network allows transporting data before authorization).
Finally, note that the reverse flow with U as Responder protects the identity of V (instead of U's as in the forward flow).</t>
      </section>
      <section anchor="adv-coap-mult">
        <name>V_INFO in a CoAP Multicast Packet</name>
        <t><em>PR editor's note: this is approach A3</em></t>
        <t>In this approach, V periodically multicasts a CoAP packet containing V_INFO, see <xref target="fig-adv-coap-mult"/>.
Upon receiving one or more CoAP messages and processing V_INFO, U can decide whether or not to initiate the ELA protocol with a given V.
Next, the application can either keep U acting as a server, and thus employ the EDHOC reverse flow, or implement a CoAP client and use the forward flow.</t>
        <figure anchor="fig-adv-coap-mult">
          <name>Advertising ELA using the network layer.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="512" viewBox="0 0 512 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,96" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,64" fill="none" stroke="black"/>
                <path d="M 80,104 L 80,240" fill="none" stroke="black"/>
                <path d="M 160,32 L 160,96" fill="none" stroke="black"/>
                <path d="M 352,32 L 352,96" fill="none" stroke="black"/>
                <path d="M 424,32 L 424,56" fill="none" stroke="black"/>
                <path d="M 424,104 L 424,240" fill="none" stroke="black"/>
                <path d="M 504,32 L 504,96" fill="none" stroke="black"/>
                <path d="M 8,32 L 160,32" fill="none" stroke="black"/>
                <path d="M 352,32 L 504,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 160,64" fill="none" stroke="black"/>
                <path d="M 352,64 L 504,64" fill="none" stroke="black"/>
                <path d="M 8,96 L 160,96" fill="none" stroke="black"/>
                <path d="M 352,96 L 504,96" fill="none" stroke="black"/>
                <path d="M 88,144 L 424,144" fill="none" stroke="black"/>
                <path d="M 80,208 L 416,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="424,208 412,202.4 412,213.6" fill="black" transform="rotate(0,416,208)"/>
                <polygon class="arrowhead" points="96,144 84,138.4 84,149.6" fill="black" transform="rotate(180,88,144)"/>
                <g class="text">
                  <text x="44" y="52">Init</text>
                  <text x="120" y="52">Cli/Ser</text>
                  <text x="388" y="52">Resp</text>
                  <text x="464" y="52">Cli/Ser</text>
                  <text x="80" y="84">U</text>
                  <text x="424" y="84">V</text>
                  <text x="180" y="132">POST</text>
                  <text x="276" y="132">/ela-advertisement</text>
                  <text x="140" y="164">CoAP</text>
                  <text x="200" y="164">multicast</text>
                  <text x="280" y="164">(contains</text>
                  <text x="352" y="164">V_INFO)</text>
                  <text x="216" y="196">EDHOC</text>
                  <text x="280" y="196">message_1</text>
                  <text x="192" y="228">(?EAD_1</text>
                  <text x="232" y="228">=</text>
                  <text x="296" y="228">Voucher_Info)</text>
                  <text x="88" y="276">(</text>
                  <text x="112" y="276">...</text>
                  <text x="164" y="276">protocol</text>
                  <text x="240" y="276">continues</text>
                  <text x="316" y="276">normally</text>
                  <text x="368" y="276">...</text>
                  <text x="392" y="276">)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
+--------+---------+                       +--------+---------+
|  Init  | Cli/Ser |                       |  Resp  | Cli/Ser |
+--------+---------+                       +------------------+
|        U         |                       |        V         |
+------------------+                       +------------------+
         |                                          |
         |          POST /ela-advertisement         |
         |<-----------------------------------------+
         |     CoAP multicast (contains V_INFO)     |
         |                                          |
         |              EDHOC message_1             |
         +----------------------------------------->|
         |          (?EAD_1 = Voucher_Info)         |
         |                                          |

          ( ... protocol continues normally ... )
]]></artwork>
          </artset>
        </figure>
        <t>The V_INFO structure is sent as part of the CoAP payload.
It is encoded as a CBOR sequence:</t>
        <sourcecode type="cddl"><![CDATA[
V_INFO = (
  ?DOMAIN_ID: bstr,
)
]]></sourcecode>
        <t>One advantage of this approach is that, since U is the initiator, it's identity is protected in the context of the EDHOC handshake.
On the other hand, the periodic multicast may have resource usage impacts in the network.</t>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This section presents high level examples of the protocol execution.</t>
      <t>Note: the examples below include samples of access policies used by W. These are provided for the sake of completeness only, since the authorization mechanism used by W is out of scope in this document.</t>
      <section anchor="example_minimal">
        <name>Minimal</name>
        <t>This is a simple example that demonstrates a successful execution of ELA.</t>
        <t>Premises:</t>
        <ul spacing="normal">
          <li>
            <t>device u1 has ID_U = key id = 14</t>
          </li>
          <li>
            <t>the access policy in W specifies, via a list of ID_U, that device u1 can enroll via any domain authenticator, i.e., the list contains ID_U = 14.
In this case, the policy only specifies a restriction in terms of U, effectively allowing enrollment via any V.</t>
          </li>
        </ul>
        <t>Execution:</t>
        <ol spacing="normal" type="1"><li>
            <t>device u1 discovers a gateway (v1) and tries to enroll</t>
          </li>
          <li>
            <t>gateway v1 identifies the zero-touch join attempt by checking that the label of EAD_1 = TBD1, and prepares a Voucher Request using the information contained in the value of EAD_1</t>
          </li>
          <li>
            <t>upon receiving the request, W obtains ID_U = 14, authorizes the access, and replies with Voucher Response</t>
          </li>
        </ol>
      </section>
      <section anchor="example_wrong_gateway">
        <name>Wrong gateway</name>
        <t>In this example, a device u1 tries to enroll a domain via gateway v1, but W denies the request because the pairing (u1, v1) is not configured in its access policies.</t>
        <t>This example also illustrates how the REJECT_INFO field of the EDHOC error Access Denied could be used, in this case to suggest that the device should select another gateway for the join procedure.</t>
        <t>Premises:</t>
        <ul spacing="normal">
          <li>
            <t>devices and gateways communicate via Bluetooth Low Energy (BLE), therefore their network identifiers are MAC addresses (EUI-48)</t>
          </li>
          <li>
            <t>device u1 has ID_U = key id = 14</t>
          </li>
          <li>
            <t>there are 3 gateways in the radio range of u1:
            </t>
            <ul spacing="normal">
              <li>
                <t>v1 with MAC address = A2-A1-88-EE-97-75</t>
              </li>
              <li>
                <t>v2 with MAC address = 28-0F-70-84-51-E4</t>
              </li>
              <li>
                <t>v3 with MAC address = 39-63-C9-D0-5C-62</t>
              </li>
            </ul>
          </li>
          <li>
            <t>the access policy in W specifies, via a mapping of shape (ID_U; MAC1, MAC2, ...) that device u1 can only join via gateway v3, i.e., the mapping is: (14; 39-63-C9-D0-5C-62)</t>
          </li>
          <li>
            <t>W is able to map the PoP key of the gateways to their respective MAC addresses</t>
          </li>
        </ul>
        <t>Execution:</t>
        <ol spacing="normal" type="1"><li>
            <t>device u1 tries to join via gateway v1, which forwards the request to W</t>
          </li>
          <li>
            <t>W determines that MAC address A2-A1-88-EE-97-75 is not in the access policy mapping, and replies with an error. The error_content has REJECT_TYPE = 1, and the plaintext OPAQUE_INFO (used to compute the encrypted REJECT_INFO) specifies a list of suggested gateways = [h'3963C9D05C62']. The single element in the list is the 6-byte MAC address of v3, serialized as a bstr.</t>
          </li>
          <li>
            <t>gateway v1 assembles an EDHOC error "Access Denied" with error_content, and sends it to u1</t>
          </li>
          <li>
            <t>device u1 processes the error, decrypts REJECT_INFO, and retries the protocol via gateway v3</t>
          </li>
        </ol>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Aurelio Schellenbaum"/> for his contribution in the initial phase of this work, and Marco Tiloca for extensively reviewing the document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
OGEbntuHO3Mf5tEUWzRRhqf4i+asBVNRrldcMQ0bMm4+hUdohw7wyH11ZoMC
tKKttkTk0oeyLh2dGDj3XuImoYsljn6pYIa2kbhwOjfK0jafVnP6CTl4XSQR
u13Lc1vug0Ae5VMO5wKt5fLSZHqGtrCTCVDSVWJ9+aECEUC22Xd2peomNd3h
vn5B+2ZT6qTlceQ09Wtt9c0zN5vV1jdOW0UK1pWQbcQeIMXjD0zWRLRlY4Xx
IHExMAlNNn1Qa9kclja6ZjgBsKUPbPrQwXHVc182LG1QAZZnVe+jOaCu2/rN
Ik9XapQ69Q+qLlWuRZVnMIlCyl6FW/z8XD7/bJDA6clpz6UCevyOkQ1P1R6C
aYOHZYULd2NARsahyoGzkM2H7Tm8gacrfTW8IG3yFFVojNonTdciVMTc2FYt
8OH1c9W+V5Y6cxFkrwayLf3IZl0vfRtrUnBfUoszGkjP5jEOuoETYTKvIFGq
Ryhogq2baQarAqabpRtSi1BuSqoP2q/fDjuuyg6/xXlDTA1HNLwb7GqIJkzX
Ho72e09fdNamWlJ3cdsuUg2gfmfJ+SbWPerhrSS0dKaF0QZbvcFm78WL3nDY
e/lt79tn/OxW07NbL3pP3vS+fdJ78bT3bLM3fMrPbjc9u/2y93y7t/uyt/ek
92y393zrHqR2GnI6BfKT6xD4CRVe/BXOACgK/93qoiTVaaLCRCTpgL3LsO2S
Xh0/LnaC9ubTX9UXi6fg1WXXgKTD7FCLRuKfbrdTPmybY++f7woya65zfdmb
GmJoOlK6txgr2SMFwyuOxJ/yXgkm7lnUTlgvuKCLfyICmwZypl0+pQCxV1Yd
8dTtEf0q2HR6Ypp+ym4z47apigqyx7z0imhGXuvyjsf06q2JzSG8Cv70x+uH
2y+fb+++3HvybPf51sM//SQFnTlUXr0ysnUaS6TM572LRekdGs6CiONUyiYp
GGXafmvb43chtpZl29bK2u4Mykp372rT7vlm66mLIDaktVTId5d03uZTE4xy
5Ur/NmAqFlBcbV1MPgZURbhUVzR5tZFmqj0wuytYIMwjMhKG6Yfg48ePAyCf
CdAajJ9Lkii9COfTz9hfEXurchA3LOVi7laH0ioaFDJolACbffQuzMdZcBJj
6UVx51E1NhJl8gi9U8qmHfES9L7gMplfXrb+H4HS75eWCAEA

-->

</rfc>
