<?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.1 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lake-authz-00" category="std" consensus="true" submissionType="IETF" tocDepth="2" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="Lightweight Authorization using EDHOC">Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-00"/>
    <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="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="2023" month="October" day="23"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 97?>

<t>This document describes a procedure for authorizing enrollment of new devices using the lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC). The procedure 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://ericssonresearch.github.io/ace-ake-authz/draft-selander-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/EricssonResearch/ace-ake-authz"/>.</t>
    </note>
  </front>
  <middle>
    <?line 101?>

<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 a procedure for augmenting the lightweight authenticated Diffie-Hellman key exchange EDHOC <xref target="I-D.ietf-lake-edhoc"/> with third party-assisted authorization.</t>
      <t>The procedure 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 which provides relevant authorization information to the device (a "voucher") and to the authenticator. The high-level model is similiar 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>The protocol assumes that authentication between device and authenticator is performed with EDHOC <xref target="I-D.ietf-lake-edhoc"/>, and defines the integration of a lightweight authorization procedure using the External Authorization Data (EAD) fields defined in EDHOC.</t>
      <t>The protocol 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"/> and EDHOC <xref target="I-D.ietf-lake-edhoc"/>.
Appendix C.1 of <xref target="I-D.ietf-lake-edhoc"/> contains some basic info about CBOR.</t>
      </section>
    </section>
    <section anchor="prob-desc">
      <name>Problem Description</name>
      <t>The (potentially constrained) device (U) wants 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 (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 which is lightweight over the constrained link by reusing elements of EDHOC <xref target="I-D.ietf-lake-edhoc"/> 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 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 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 have protected communication with the other two during the protocol.</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="272" 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 or a CBOR Web Token (CWT, <xref target="RFC8392"/>). CRED_U may, for example, be carried in ID_CRED_I of EDHOC message_3 or be provisioned to V over a non-constrained network, see bottom of <xref target="fig-protocol"/>.</t>
        <t>U also needs to identify itself to W, this device identifier is denoted by 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="I-D.ietf-lake-edhoc"/>), 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, which is a CWT Claims Set <xref target="RFC8392"/> 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="I-D.ietf-lake-edhoc"/>) 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 access the same credential CRED_V as V used with U, 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>
        <ul spacing="normal">
          <li>
            <t>V and W may protect the Voucher Request/Response protocol using TLS 1.3 with client authentication <xref target="RFC8446"/> if CRED_V is an X.509 certificate of a signature public key. However, note that CRED_V may not be a valid credential to use with TLS 1.3, e.g., when U and V run EDHOC with method 1 or 3, where the public key of CRED_V is a static Diffie-Hellman key.</t>
          </li>
          <li>
            <t>V may run EDHOC with W using ID_CRED_I = CRED_V. In this case the secure connection between V and W may be based on OSCORE <xref target="RFC8613"/>.</t>
          </li>
        </ul>
        <t>Note that both TLS 1.3 and EDHOC may be run between V and W during this setup procedure. For example, W may authenticate to V using TLS 1.3 with server certificates signed by a CA trusted by V, and then V may run EDHOC using CRED_V over the secure TLS connection to W, see <xref target="fig-protocol"/>.</t>
        <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="the-protocol">
      <name>The Protocol</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>The 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="3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <figure anchor="fig-protocol">
          <name>Overview of the protocol: 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="560" viewBox="0 0 560 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 232,48 L 232,224" fill="none" stroke="black"/>
                <path d="M 232,304 L 232,624" fill="none" stroke="black"/>
                <path d="M 232,688 L 232,848" fill="none" stroke="black"/>
                <path d="M 552,48 L 552,224" fill="none" stroke="black"/>
                <path d="M 552,304 L 552,624" fill="none" stroke="black"/>
                <path d="M 552,736 L 552,848" fill="none" stroke="black"/>
                <path d="M 240,96 L 264,96" fill="none" stroke="black"/>
                <path d="M 288,96 L 304,96" fill="none" stroke="black"/>
                <path d="M 328,96 L 344,96" fill="none" stroke="black"/>
                <path d="M 368,96 L 384,96" fill="none" stroke="black"/>
                <path d="M 408,96 L 424,96" fill="none" stroke="black"/>
                <path d="M 448,96 L 464,96" fill="none" stroke="black"/>
                <path d="M 488,96 L 504,96" fill="none" stroke="black"/>
                <path d="M 528,96 L 544,96" fill="none" stroke="black"/>
                <path d="M 240,160 L 264,160" fill="none" stroke="black"/>
                <path d="M 288,160 L 304,160" fill="none" stroke="black"/>
                <path d="M 328,160 L 344,160" fill="none" stroke="black"/>
                <path d="M 368,160 L 384,160" fill="none" stroke="black"/>
                <path d="M 408,160 L 424,160" fill="none" stroke="black"/>
                <path d="M 448,160 L 464,160" fill="none" stroke="black"/>
                <path d="M 488,160 L 504,160" fill="none" stroke="black"/>
                <path d="M 528,160 L 544,160" fill="none" stroke="black"/>
                <path d="M 8,256 L 552,256" fill="none" stroke="black"/>
                <path d="M 8,336 L 224,336" fill="none" stroke="black"/>
                <path d="M 232,400 L 544,400" fill="none" stroke="black"/>
                <path d="M 240,464 L 552,464" fill="none" stroke="black"/>
                <path d="M 16,528 L 232,528" fill="none" stroke="black"/>
                <path d="M 8,608 L 224,608" fill="none" stroke="black"/>
                <path d="M 8,656 L 552,656" fill="none" stroke="black"/>
                <path d="M 232,768 L 256,768" fill="none" stroke="black"/>
                <path d="M 280,768 L 296,768" fill="none" stroke="black"/>
                <path d="M 320,768 L 336,768" fill="none" stroke="black"/>
                <path d="M 360,768 L 376,768" fill="none" stroke="black"/>
                <path d="M 408,768 L 424,768" fill="none" stroke="black"/>
                <path d="M 448,768 L 464,768" fill="none" stroke="black"/>
                <path d="M 488,768 L 504,768" fill="none" stroke="black"/>
                <path d="M 528,768 L 544,768" fill="none" stroke="black"/>
                <path d="M 240,816 L 256,816" fill="none" stroke="black"/>
                <path d="M 280,816 L 296,816" fill="none" stroke="black"/>
                <path d="M 320,816 L 336,816" fill="none" stroke="black"/>
                <path d="M 360,816 L 376,816" fill="none" stroke="black"/>
                <path d="M 400,816 L 416,816" fill="none" stroke="black"/>
                <path d="M 448,816 L 464,816" fill="none" stroke="black"/>
                <path d="M 488,816 L 504,816" fill="none" stroke="black"/>
                <path d="M 528,816 L 552,816" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="552,768 540,762.4 540,773.6" fill="black" transform="rotate(0,544,768)"/>
                <polygon class="arrowhead" points="552,400 540,394.4 540,405.6" fill="black" transform="rotate(0,544,400)"/>
                <polygon class="arrowhead" points="552,160 540,154.4 540,165.6" fill="black" transform="rotate(0,544,160)"/>
                <polygon class="arrowhead" points="552,96 540,90.4 540,101.6" fill="black" transform="rotate(0,544,96)"/>
                <polygon class="arrowhead" points="248,816 236,810.4 236,821.6" fill="black" transform="rotate(180,240,816)"/>
                <polygon class="arrowhead" points="248,464 236,458.4 236,469.6" fill="black" transform="rotate(180,240,464)"/>
                <polygon class="arrowhead" points="248,160 236,154.4 236,165.6" fill="black" transform="rotate(180,240,160)"/>
                <polygon class="arrowhead" points="248,96 236,90.4 236,101.6" fill="black" transform="rotate(180,240,96)"/>
                <polygon class="arrowhead" points="232,608 220,602.4 220,613.6" fill="black" transform="rotate(0,224,608)"/>
                <polygon class="arrowhead" points="232,336 220,330.4 220,341.6" fill="black" transform="rotate(0,224,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="232" y="36">V</text>
                  <text x="552" y="36">W</text>
                  <text x="336" y="84">Establish</text>
                  <text x="404" y="84">secure</text>
                  <text x="464" y="84">channel</text>
                  <text x="308" y="116">(e.g.,</text>
                  <text x="352" y="116">TLS</text>
                  <text x="388" y="116">with</text>
                  <text x="436" y="116">server</text>
                  <text x="492" y="116">cert.)</text>
                  <text x="280" y="148">Proof</text>
                  <text x="316" y="148">of</text>
                  <text x="372" y="148">possession</text>
                  <text x="444" y="148">w.r.t.</text>
                  <text x="492" y="148">CRED</text>
                  <text x="356" y="180">(e.g.,</text>
                  <text x="412" y="180">EDHOC)</text>
                  <text x="212" y="276">CORE</text>
                  <text x="268" y="276">PROTOCOL</text>
                  <text x="80" y="324">EDHOC</text>
                  <text x="144" 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="184" y="356">ENC_ID)</text>
                  <text x="328" y="388">Voucher</text>
                  <text x="392" y="388">Request</text>
                  <text x="452" y="388">(VREQ)</text>
                  <text x="336" y="420">(message_1,</text>
                  <text x="444" y="420">?opaque_state)</text>
                  <text x="328" y="452">Voucher</text>
                  <text x="396" y="452">Response</text>
                  <text x="460" y="452">(VRES)</text>
                  <text x="296" y="484">(message_1,</text>
                  <text x="380" y="484">Voucher,</text>
                  <text x="476" y="484">?opaque_state)</text>
                  <text x="80" y="516">EDHOC</text>
                  <text x="144" y="516">message_2</text>
                  <text x="76" y="548">(EAD_2</text>
                  <text x="112" y="548">=</text>
                  <text x="156" y="548">Voucher)</text>
                  <text x="80" y="596">EDHOC</text>
                  <text x="144" y="596">message_3</text>
                  <text x="516" y="708">Credential</text>
                  <text x="524" y="724">Database</text>
                  <text x="328" y="756">ID_CRED_I</text>
                  <text x="388" y="756">from</text>
                  <text x="448" y="756">message_3</text>
                  <text x="396" 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     |
|                           +<---  ---  ---  ---  ---  ---  ---  -->|
|                           |            (e.g., EDHOC)              |
|                           |                                       |
|                           |                                       |
|                           |                                       |

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

|                           |                                       |
|      EDHOC message_1      |                                       |
+-------------------------->|                                       |
|  (EAD_1 = LOC_W, ENC_ID)  |                                       |
|                           |                                       |
|                           |        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 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="I-D.ietf-lake-edhoc"/>):  </t>
            <ul spacing="normal">
              <li>
                <t>EDHOC AEAD algorithm: used to encrypt ID_U</t>
              </li>
              <li>
                <t>EDHOC hash algorithm: used for key derivation and to calculate the voucher</t>
              </li>
              <li>
                <t>EDHOC MAC length in bytes: length of the voucher</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="I-D.ietf-lake-edhoc"/>. 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="I-D.ietf-lake-edhoc"/>).</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.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>:</t>
        <ul spacing="normal">
          <li>
            <t>OKM = EDHOC-Expand(PRK, info, length)  </t>
            <t>
where</t>
          </li>
        </ul>
        <artwork><![CDATA[
info = (
   info_label : int,
   context : bstr,
   length : uint,
)
]]></artwork>
      </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.
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 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>V MUST encrypt and integrity protect the encapsulated state using a uniformly-distributed (pseudo-)random key, known only to itself.
How V serializes and encrypts its internal state is out of scope of this specification.
For example, V may use the existing CBOR and COSE libraries.</t>
        <t>Editor's note: Consider to include an example of serialized internal state.</t>
        <t>W sends to V the voucher together with echoed message_1, as received from U, and V's internal state.
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>
          <artwork><![CDATA[
Voucher_Info = bstr .cbor Voucher_Info_Seq
]]></artwork>
          <artwork><![CDATA[
Voucher_Info_Seq = (
    LOC_W:      tstr,
    ENC_ID:     bstr
)
]]></artwork>
          <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_ID is a byte string containing an encrypted identifier of U, calculated as follows:</t>
            </li>
          </ul>
          <t>ENC_ID is '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>
          <artwork><![CDATA[
plaintext = (
    ID_U:            bstr,
 )
]]></artwork>
          <artwork><![CDATA[
external_aad = (
    SS:              int,
 )
]]></artwork>
          <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>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 <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 key of the EDHOC AEAD algorithm in bytes</t>
            </li>
          </ul>
          <t>The derivation of IV_1 = 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 = 1</t>
            </li>
            <li>
              <t>context = h''  (the empty CBOR string)</t>
            </li>
            <li>
              <t>length is length of nonce of the EDHOC AEAD algorithm in bytes</t>
            </li>
          </ul>
        </section>
        <section anchor="voucher">
          <name>Voucher</name>
          <t>The voucher is an assertion to U that W has authorized V. The voucher is essentially a message authentication code which binds the authentication credential of V, CRED_V, to message_1 of EDHOC.</t>
          <t>The external authorization data EAD_2 contains an EAD item with ead_label = TBD1 and ead_value = Voucher, which is a CBOR byte string:</t>
          <artwork><![CDATA[
Voucher = bstr .cbor EDHOC-Expand(PRK, info, length)
]]></artwork>
          <t>The voucher is calculated with 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  = bstr .cbor voucher_input</t>
            </li>
            <li>
              <t>length is EDHOC MAC length in bytes</t>
            </li>
          </ul>
          <t>where context is a CBOR byte string wrapping of the following CBOR sequence:</t>
          <artwork><![CDATA[
voucher_input = (
    H(message_1):  bstr,
    CRED_V:        bstr,
)
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <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>
            <li>
              <t>CRED_V is the CWT Claims Set <xref target="RFC8392"/> containing the public authentication key of V, see <xref target="V_2"/></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 include 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="I-D.ietf-lake-edhoc"/>. 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 which 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="I-D.ietf-lake-edhoc"/>.</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="I-D.ietf-lake-edhoc"/>, 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="I-D.ietf-lake-edhoc"/>. 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, where the Voucher is specified in <xref target="U-W"/>.</t>
            <t>CRED_V is a CWT Claims Set <xref target="RFC8392"/> containing the public authentication key of V encoded as a COSE_Key in the 'cnf' claim, see <xref section="3.5.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
            <t>ID_CRED_R contains the CWT Claims Set with 'kccs' as COSE header_map, see <xref section="9.6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</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.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>, 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="I-D.ietf-lake-edhoc"/>. Otherwise U MUST verify the Voucher by performing the same calculation as in <xref target="voucher"/> using H(message_1) and CRED_V received in ID_CRED_R of message_2. If the voucher calculated in this way is not identical to what was received in message_2, then U MUST abort the EDHOC session.</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 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 learnt 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 with 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>
            <artwork><![CDATA[
Voucher_Request = [
    message_1:      bstr,
    ? opaque_state: bstr
]
]]></artwork>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>message_1 is the 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_ID - 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_ID 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. If H(message_1) is not unique among session identifiers associated to this device identifier of U, the EDHOC session SHALL be aborted.</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>
          </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 to the secure connection with V, and constructs the 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>
            <artwork><![CDATA[
Voucher_Response = [
    message_1:      bstr,
    Voucher:        bstr,
    ? opaque_state: bstr
]
]]></artwork>
            <t>where</t>
            <ul spacing="normal">
              <li>
                <t>message_1 is the 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>
          </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 EDHOC 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>
    <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 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 use 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="I-D.ietf-lake-edhoc"/> 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="voucher-request-voucherrequest">
          <name>Voucher Request (/voucherrequest)</name>
          <t>To request a voucher, V MUST issue a request:</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 200 OK response with payload containing the serialized Voucher Response object, as specified in <xref target="voucher_response"/>.</t>
        </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:</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>
          </ul>
          <t>In case of a successful lookup of the authentication credential at W, W MUST issue 200 OK response with payload containing the serialized CRED_U.</t>
        </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="I-D.ietf-lake-edhoc"/> 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="8.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> 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 with input of public key of W (G_W) and device identifier of U (ID_U), and 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 = TBD_1 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 paramaters: N/A</t>
            </li>
            <li>
              <t>Encoding considerations: binary</t>
            </li>
            <li>
              <t>Security cosniderations: 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: See "Authors' Addresses" section.</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: N/A</t>
            </li>
            <li>
              <t>Author: See "Authors' Addresses" section.</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="coap-content-formats-registry">
        <name>CoAP Content-Formats Registry</name>
        <t>IANA has added the media type "application/lake-authz-voucherrequest+cbor" to 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">Media Type</th>
              <th align="left">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>
      <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="I-D.ietf-lake-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-lake-edhoc-22" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-edhoc.xml">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="25" month="August" year="2023"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios and a main use case is to establish an OSCORE security context. By reusing COSE for cryptography, CBOR for encoding, and CoAP for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-22"/>
        </reference>
        <reference anchor="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="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="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="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-09" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-edhoc.xml">
          <front>
            <title>Using EDHOC with CoAP and OSCORE</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="13" month="October" year="2023"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol EDHOC can be run over CoAP and used by two peers to establish an OSCORE Security Context. This document details this use of the EDHOC protocol, by specifying a number of additional and optional mechanisms. These especially include an optimization approach for combining the execution of EDHOC with the first OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-09"/>
        </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="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>
      </references>
    </references>
    <?line 709?>

<section anchor="use-with-constrained-join-protocol-cojp">
      <name>Use with Constrained Join Protocol (CoJP)</name>
      <t>This section outlines how the protocol 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-selander-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"/>).
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 the 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>The Uri-Path option is set to ".well-known/edhoc".</t>
            </li>
            <li>
              <t>The Content-Format option is set to "application/cid-edhoc+cbor-seq"</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 Content-Format option is set to "application/edhoc+cbor-seq"</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="I-D.ietf-lake-edhoc"/>.
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 numbered="false" anchor="acknowledgment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Aurelio Schellenbaum"/> and <contact fullname="Marco Tiloca"/> for their comments and feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA91923IbR5bgO74iA4xYkRZQEklZtrEtT1MkbdGWRA6vM9Ht
UBSABFBWoQpdVSDFlrSv+7TfsLs/sR+wM/tfe255qyqApK32TizsEIG65OXk
yXM/J/v9fqdKqlQP1OtkOqtuNP6r9pbVLC+Sv8dVkmdqWSbZVB0uZnquizhV
B8lkkuj+K52m8zhTx9e6UPvHZ4edcT7K4jm0NS7iSdVPdDXpp/F73Y+hvb/3
nz7txMNhoa/v0dnBq+P9TrIoBqoqlmW18/Tpd093OqO4GqiyGnfK5XCelCW8
UN0uoMOjw/MfOnGh44E606NlkVS3nZu8eD8t8uUCutv7+VBdwW9s+0e81nmv
b+GBMbyaVbrIdNU/wEF3RvkYHhqoJYz9284iGagNNYpxXFrFRRHfqs1kouI0
Vbe63FJ5oWZxOVMzXeiOUlU+GuAN+FrmRVXoSWl/3879n/DkWC+q2UDtdDox
gWDQ6SuG34//9r8K6PNMp3E21gW+vSz4lnctL2Cch0UyKksA3N5LuDTKl1lV
3MJjN3qsM7ii53GSDtQ0hwajUl7+s5a3olE+t73+lM8ydVLo5b/9d/Umrip8
AFpIsqRK4hRG/pM/kOaDDxnPr9BXNJd324fzJk6T//M/Y3W5/Pf/BmP49//q
9+5fpH6P3p4e7fk9/gATHmnX4xyaK+PoejmC90Z/TrIiiaNJ4bpLRrNYp+oU
/xZjnpLtL7hKHZ4hJGkDnOWT6gaQjzCs9MewH2fxOPbGMCoe4674c2lejkZx
p9PJ8gJgkVzrQQcePv1h/9vd588H5ut3O+brd8++k6/fPf3aXn2+vYtfj/oH
kdtyejwDXITLb4/OzvvfPn3a//r5Hv5WymCbok9f/uJCwxofRuplXLwnBOMP
A+AwjZNMh/dqr76O1P6MFtl/8XWS3vrXay/tReo0n8LX97e1F/fSVGf1m823
L2OgA6m+rr+9yMsqT+u3a++fRuogvk7K2suy2t49IZKnGjB0rrMxE6sJbP+T
OCn6VwmQh5/1bf+wrOIhINoMHqrU2QhpZqkuiKgdJOWo0JVWr/NpDCRqNlf7
xe2iyqdFvJjdqj6tlTpb6BHsN3WyhIZG3JGsXw8GACPCK7s0LBgHjGrn6fa3
/afPeKBxMdVAJWdVtSgHT55k1+liOSyjLCmraJpfP8EveOWJ9ON1Uz7BAURn
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
MGKH4SRdTiad/wsUzN/khK4AAA==

-->

</rfc>
