<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.31 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-selander-lake-authz-02" category="std" consensus="true" submissionType="IETF" tocDepth="2" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title>Lightweight Authorization for EDHOC</title>
    <seriesInfo name="Internet-Draft" value="draft-selander-lake-authz-02"/>
    <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>
    <author initials="A." surname="Schellenbaum" fullname="Aurelio Schellenbaum">
      <organization abbrev="ZHAW">Institute of Embedded Systems, ZHAW</organization>
      <address>
        <postal>
          <country>Switzerland</country>
        </postal>
        <email>aureliorubendario.schellenbaum@zhaw.ch</email>
      </address>
    </author>
    <date year="2023" month="April" day="21"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes a procedure for augmenting the lightweight authenticated Diffie-Hellman key exchange protocol EDHOC with third party assisted authorization, targeting constrained IoT deployments (RFC 7228).</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-selander-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>
    <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 authorization server.
The device and authenticator perform mutual authentication and authorization, assisted by the authorization server which provides relevant authorization information to the device (a "voucher") and to the authenticator.</t>
      <t>The protocol assumes that authentication between device and authenticator is performed with EDHOC, and defines the integration of a lightweight authorization procedure using the External Authorization Data (EAD) field defined in EDHOC.</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 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, and makes the enrollment request.
The domain authenticator, in turn, authenticates the device and authorizes its enrollment.
Authentication between device and domain authenticator is made with the lightweight authenticated Diffie-Hellman key exchange protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>.
The procedure is assisted by a (non-constrained) authorization server (W) located in a non-constrained network behind the domain authenticator providing information to the device 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.
See illustration in <xref target="fig-overview"/>.</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. 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">
              <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="488" y="100">Authorization</text>
                <text x="264" y="116">Authenticator</text>
                <text x="492" y="116">Server</text>
                <text x="56" y="132">(U)</text>
                <text x="264" y="132">(V)</text>
                <text x="376" y="132">Voucher</text>
                <text x="496" 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     +---------->| Authorization |
|          |<---o-------+ Authenticator |<----------+     Server    |
|    (U)   +----+------>|      (V)      |  Voucher  |       (W)     |
|          |    |       |               |  Response |               |
+----------+    |       +---------------+           +---------------+
              Voucher
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="assumptions">
      <name>Assumptions</name>
      <section anchor="device">
        <name>Device (U)</name>
        <t>U takes the role as EDHOC Initiator with authentication credential CRED_I.
CRED_I may for example be an X.509 certificate or a CBOR Web Token (CWT, <xref target="RFC8392"/>).
For identification to W, U is provisioned with an identifier ID_U, from which W shall be able to retrieve CRED_I.
ID_U is for example a reference to the device authentication credential, or an identifier from a separate name space.</t>
        <t>U is also provisioned with information about W:</t>
        <ul spacing="normal">
          <li>A static public DH key of W (G_W) used to protect communication  between device and authorization server (see <xref target="U-W"/>).</li>
          <li>Location information about the authorization server (LOC_W) that can be used by V. This is typically a URI but may be optimized, e.g., only the domain name.</li>
        </ul>
      </section>
      <section anchor="domain-auth">
        <name>Domain Authenticator (V)</name>
        <t>V takes the role as EDHOC Responder with authentication credential CRED_R.
CRED_R is a CWT Claims Set (CCS, <xref target="RFC8392"/>) containing the public authentication key of V, PK_V, see <xref target="V_2"/></t>
        <t>V needs to establish secure communication with W based on information in LOC_W.
The communication between V and W is assumed to be mutually authenticated and protected; authentication credentials and communication security is out of scope, except for as specified below in this section.</t>
        <t>V may in principle use different credentials for authenticating to U and to W (CRED_R is used for the former).
However, V MUST prove possession of private key of PK_V to W, since W is asserting (by means of a voucher sent to U) that this credential belongs to V.</t>
        <t>In this version of the draft is assumed that V authenticates to W with the public key PK_V using some authentication protocol providing proof of possession of the private key, for example TLS 1.3 <xref target="RFC8446"/>.
A future version of this draft may specify explicit proof of possession of the private key of PK_V in VREQ, e.g., by including a signature of the contents of the voucher request made with the private key corresponding to PK_V.</t>
      </section>
      <section anchor="authorization-server-w">
        <name>Authorization Server (W)</name>
        <t>W has the private DH key corresponding to G_W, which is used to secure the communication with U (see <xref target="U-W"/>).</t>
        <t>Authentication credentials and communication security used with V is out of scope, except for the need to verify the possession of the private key of PK_V as specified in <xref target="domain-auth"/>.</t>
        <t>W provides to U the authorization decision for enrollment with V in the form of a voucher, see <xref target="voucher"/>.
W may provide V with the authorization credential of U, CRED_I, after V has learnt the identity of U.</t>
        <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>Three security sessions are going on in parallel:</t>
        <ol spacing="normal" type="1"><li>EDHOC <xref target="I-D.ietf-lake-edhoc"/> between device (U) and (domain) authenticator (V)</li>
          <li>Voucher Request/Response between authenticator (V) and authorization server (W)</li>
          <li>An exchange of voucher-related information, including the voucher itself, between device (U) and authorization server (W), mediated by the authenticator (V).</li>
        </ol>
        <t><xref target="fig-protocol"/> provides an overview of the message flow detailed in this section, for more details see Section 3.1 of <xref target="I-D.ietf-lake-edhoc"/>.</t>
        <figure anchor="fig-protocol">
          <name>W-assisted authorization of U and V to each other: EDHOC between U and V (only selected message fields shown for simplicity), and Voucher Request/Response between V and W.</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="552" viewBox="0 0 552 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,48 L 8,384" fill="none" stroke="black"/>
                <path d="M 264,48 L 264,384" fill="none" stroke="black"/>
                <path d="M 544,48 L 544,384" fill="none" stroke="black"/>
                <path d="M 8,80 L 256,80" fill="none" stroke="black"/>
                <path d="M 264,112 L 536,112" fill="none" stroke="black"/>
                <path d="M 272,176 L 544,176" fill="none" stroke="black"/>
                <path d="M 16,224 L 264,224" fill="none" stroke="black"/>
                <path d="M 8,288 L 256,288" fill="none" stroke="black"/>
                <path d="M 272,336 L 536,336" fill="none" stroke="black"/>
                <path d="M 272,352 L 536,352" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="544,336 532,330.4 532,341.6" fill="black" transform="rotate(0,536,336)"/>
                <polygon class="arrowhead" points="544,112 532,106.4 532,117.6" fill="black" transform="rotate(0,536,112)"/>
                <polygon class="arrowhead" points="280,352 268,346.4 268,357.6" fill="black" transform="rotate(180,272,352)"/>
                <polygon class="arrowhead" points="280,176 268,170.4 268,181.6" fill="black" transform="rotate(180,272,176)"/>
                <polygon class="arrowhead" points="264,288 252,282.4 252,293.6" fill="black" transform="rotate(0,256,288)"/>
                <polygon class="arrowhead" points="264,80 252,74.4 252,85.6" fill="black" transform="rotate(0,256,80)"/>
                <polygon class="arrowhead" points="24,224 12,218.4 12,229.6" fill="black" transform="rotate(180,16,224)"/>
                <g class="text">
                  <text x="8" y="36">U</text>
                  <text x="264" y="36">V</text>
                  <text x="544" y="36">W</text>
                  <text x="104" y="68">SUITES_I,</text>
                  <text x="164" y="68">G_X,</text>
                  <text x="208" y="68">EAD_1</text>
                  <text x="432" y="68"> </text>
                  <text x="104" y="100">EDHOC</text>
                  <text x="168" y="100">message_1</text>
                  <text x="308" y="100">H(m1),</text>
                  <text x="352" y="100">SS,</text>
                  <text x="388" y="100">G_X,</text>
                  <text x="440" y="100">ENC_ID,</text>
                  <text x="500" y="100">?PoP_V</text>
                  <text x="336" y="132">Voucher</text>
                  <text x="400" y="132">Request</text>
                  <text x="460" y="132">(VREQ)</text>
                  <text x="388" y="164">H(m1),</text>
                  <text x="448" y="164">Voucher</text>
                  <text x="352" y="196">Voucher</text>
                  <text x="420" y="196">Response</text>
                  <text x="484" y="196">(VRES)</text>
                  <text x="84" y="212">Enc(ID_CRED_R,</text>
                  <text x="168" y="212">SM_2,</text>
                  <text x="220" y="212">EAD_2)</text>
                  <text x="104" y="244">EDHOC</text>
                  <text x="168" y="244">message_2</text>
                  <text x="116" y="276">Enc(ID_CRED_I,</text>
                  <text x="200" y="276">SM_3)</text>
                  <text x="104" y="308">EDHOC</text>
                  <text x="168" y="308">message_3</text>
                  <text x="376" y="308">(Credential</text>
                  <text x="460" y="308">lookup:)</text>
                  <text x="408" y="324">ID_CRED_I</text>
                  <text x="428" y="372">CRED_I</text>
                  <text x="24" y="420">where</text>
                  <text x="24" y="436">H(m1)</text>
                  <text x="56" y="436">=</text>
                  <text x="116" y="436">H(message_1)</text>
                  <text x="24" y="452">EAD_1</text>
                  <text x="84" y="452">contains</text>
                  <text x="176" y="452">Voucher_Info:</text>
                  <text x="260" y="452">LOC_W,</text>
                  <text x="316" y="452">ENC_ID</text>
                  <text x="24" y="468">EAD_2</text>
                  <text x="84" y="468">contains</text>
                  <text x="156" y="468">Voucher:</text>
                  <text x="264" y="468">MAC(H(message_1),</text>
                  <text x="368" y="468">CRED_R)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
U                               V                                  W
|                               |                                  |
|       SUITES_I, G_X, EAD_1    |                                  |
+------------------------------>|                                  |
|         EDHOC message_1       |  H(m1), SS, G_X, ENC_ID, ?PoP_V  |
|                               +--------------------------------->|
|                               |     Voucher Request (VREQ)       |
|                               |                                  |
|                               |            H(m1), Voucher        |
|                               |<---------------------------------+
|                               |       Voucher Response (VRES)    |
|  Enc(ID_CRED_R, SM_2, EAD_2)  |                                  |
|<------------------------------+                                  |
|         EDHOC message_2       |                                  |
|                               |                                  |
|      Enc(ID_CRED_I, SM_3)     |                                  |
+------------------------------>|                                  |
|         EDHOC message_3       |        (Credential lookup:)      |
|                               |             ID_CRED_I            |
|                               |--------------------------------->|
|                               |<---------------------------------|
|                               |                 CRED_I           |
|                               |                                  |

where
H(m1) = H(message_1)
EAD_1 contains Voucher_Info: LOC_W, ENC_ID
EAD_2 contains Voucher: MAC(H(message_1), CRED_R)

]]></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>G_X, the 'x' parameter of the ephemeral public Diffie-Hellman key of party U, is also used in the protocol between U and W.</li>
          <li>
            <t>SUITES_I, the cipher suites relevant to U, which includes the selected cipher suite - here denoted SS, also defines the algorithms used between U and W. In particular SS contains information about (see Section 3.6 of <xref target="I-D.ietf-lake-edhoc"/>):  </t>
            <ul spacing="normal">
              <li>EDHOC AEAD algorithm: used to encrypt the identity of U</li>
              <li>EDHOC hash algorithm: used for key derivation and to calculate the voucher</li>
              <li>EDHOC MAC length in bytes: length of the voucher</li>
              <li>EDHOC key exchange algorithm: used to calculate the shared secret between U and W</li>
            </ul>
          </li>
          <li>EAD_1, EAD_2 are the External Authorization Data message fields of message_1 and message_2, respectively, see Section 3.8 of <xref target="I-D.ietf-lake-edhoc"/>. This document specifies EAD items with ead_label = TBD1, see <xref target="iana-ead"/>).</li>
          <li>ID_CRED_I and ID_CRED_R are used to identify the authentication credentials of U and V. As shown at the bottom of <xref target="fig-protocol"/>, V may use W to obtain CRED_I, the authentication credential of U. The authentication credential of V, CRED_R, is transported in ID_CRED_R in message_2, see <xref target="V_2"/>.</li>
          <li>Signature_or_MAC_2 and Signature_or_MAC_3 (abbreviated SM_2 and SM_3 in <xref target="fig-protocol"/>), containing data generated using the private key of V and U, respectively, are shown here just to be able to reason about the use of credentials. The definition of these fields depend on EDHOC method, see Section 5 of <xref target="I-D.ietf-lake-edhoc"/>).</li>
        </ul>
        <t>The protocol also reuses the Extract and Expand key derivation from EDHOC (Section 4 of <xref target="I-D.ietf-lake-edhoc"/>).</t>
        <ul spacing="normal">
          <li>
            <t>The intermediate pseudo-random key PRK is derived using Extract():
            </t>
            <ul spacing="normal">
              <li>
                <t>PRK = Extract(salt, IKM)
                </t>
                <ul spacing="normal">
                  <li>where salt = 0x (the zero-length byte string)</li>
                  <li>IKM is the ECDH shared secret G_XW (calculated from G_X and W or G_W and X) as defined in Section 6.3.1 of <xref target="RFC9053"/>.</li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>The shared secret is derived using Expand() which is defined in terms of the EDHOC hash algorithm of the selected cipher suite, see Section 4.2. of <xref target="I-D.ietf-lake-edhoc"/>:</t>
        <ul spacing="normal">
          <li>
            <t>shared secret = Expand(PRK, info, length)  </t>
            <t>
where</t>
          </li>
        </ul>
        <artwork><![CDATA[
info = (
   label : int,
   context : bstr,
   length : uint,
)
]]></artwork>
      </section>
      <section anchor="U-W">
        <name>Device &lt;-&gt; Authorization Server (U &lt;-&gt; W)</name>
        <t>The protocol between U and W is carried out via V with certain data protected between the endpoints using the equivalent of a hybrid public key encryption scheme such as <xref target="RFC9180"/>.
U uses the public DH key of the W, G_W, together with the private DH key corresponding to ephemeral key G_X in EDHOC message_1, and vice versa for W.
The endpoints calculate a shared secret G_XW (see <xref target="reuse"/>), which is used to derive secret keys to protect data between U and W, as detailed in this section.</t>
        <t>The data exchanged 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"/>).</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>LOC_W is location information of W, used by V</li>
            <li>ENC_ID is the encrypted blob carrying an identifier of U passed on from V to W, calculated as follows:</li>
          </ul>
          <t>ENC_ID is 'ciphertext' of COSE_Encrypt0 (Section 5.2-5.3 of <xref target="RFC9052"/>) computed from the following:</t>
          <ul spacing="normal">
            <li>The encryption key K_1 and nonce IV_1 are derived as specified below.</li>
            <li>'protected' is a byte string of size 0</li>
            <li>'plaintext and 'external_aad' as below:</li>
          </ul>
          <artwork><![CDATA[
plaintext = (
    ID_U:            bstr,
 )
]]></artwork>
          <artwork><![CDATA[
external_aad = (
    SS:              int,
 )
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>ID_U is an identity of the device, for example a reference to the device authentication credential, see <xref target="device"/>.</li>
            <li>SS is the selected cipher suite in SUITES_I.</li>
          </ul>
          <t>The derivation of K_1 = Expand(PRK, info, length) uses the following input to the info struct (<xref target="reuse"/>):</t>
          <ul spacing="normal">
            <li>label = TBD1</li>
            <li>context  = h''</li>
            <li>length is length of key of the EDHOC AEAD algorithm in bytes</li>
          </ul>
          <t>The derivation of IV_1 = Expand(PRK, info, length) uses the following input to the info struct (<xref target="reuse"/>):</t>
          <ul spacing="normal">
            <li>label = TBD1</li>
            <li>context = h'00'</li>
            <li>length is length of nonce of the EDHOC AEAD algorithm in bytes</li>
          </ul>
        </section>
        <section anchor="voucher">
          <name>Voucher</name>
          <t>The voucher is an assertion for U that W has performed the relevant verifications and that U is authorized to continue the protocol with V. The voucher is essentially a message authentication code which binds the authentication credential of V to message_1 of EDHOC, integrity protected with the shared secret context between U and W.</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 Expand(PRK, info, length)
]]></artwork>
          <t>calculated with the following input to the info struct (<xref target="reuse"/>):</t>
          <ul spacing="normal">
            <li>label is TBD1</li>
            <li>context  = bstr .cbor voucher_input</li>
            <li>length is EDHOC MAC length in bytes</li>
          </ul>
          <t>where context is a CBOR bstr wrapping of the following CBOR sequence:</t>
          <artwork><![CDATA[
voucher_input = (
    H(message_1):  bstr,
    CRED_R:        bstr,
)
]]></artwork>
          <t>where</t>
          <ul spacing="normal">
            <li>H(message_1) is copied from the associated voucher request.</li>
            <li>CRED_R is a CWT Claims Set (CCS, <xref target="RFC8392"/>) containing the public authentication key of V, PK_V, see <xref target="V_2"/></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 execute the EDHOC protocol using their respective authentication credentials, 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 Section 3.9 of <xref 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, to the key agreement algorithm which is used with the static public DH key G_W of 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 Section 3.8 in <xref 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 Section 5.2.3 of <xref 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 discontinue EDHOC, see Section 3.8 in <xref 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 exchange 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_R is a CWT Claims Set (CCS, <xref target="RFC8392"/>) containing the public authentication key of the authenticator PK_V encoded as a COSE_Key in the 'cnf' claim, see Section 3.5.2 of <xref target="I-D.ietf-lake-edhoc"/>.</t>
            <t>ID_CRED_R contains the CCS with 'kccs' as COSE header_map, see Section 9.6 of <xref target="I-D.ietf-lake-edhoc"/>. The Signature_or_MAC_2 field calculated using the private key corresponding to PK_V is either a signature or a MAC depending on EDHOC method.</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 Section 5.3.2 of <xref 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 discontinue EDHOC, see Section 3.8 in <xref 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_R 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 discontinue the protocol.</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>The Signature_or_MAC_3 field calculated using the private key corresponding to PK_U is either a signature or a MAC depending on EDHOC method.</t>
            <t>EAD_3 MAY contain a certificate enrollment request, see e.g., CSR specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, or other request which the device is now authorized to make.</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_I from W, after V learnt ID_CRED_I from U.</t>
          </section>
        </section>
      </section>
      <section anchor="V-W">
        <name>Authenticator &lt;-&gt; Authorization Server (V &lt;-&gt; W)</name>
        <t>V and W are assumed to be able to authenticate and set up a secure connection, out of scope for this specification, for example TLS 1.3 authenticated with certificates. V is assumed to authenticate with the public key PK_V, see <xref target="domain-auth"/>.</t>
        <t>This secure connection protects the Voucher Request/Response Protocol (see protocol between V and W in <xref target="fig-protocol"/>).</t>
        <t>The hash of EDHOC message_1, H(message_1), acts as session identifier of the Voucher Request/Response protocol, and binds together instances of the two protocols (U&lt;-&gt;V and V&lt;-&gt;W).</t>
        <section anchor="voucher_request">
          <name>Voucher Request</name>
          <section anchor="processing-in-v-2">
            <name>Processing in V</name>
            <t>Unless already in place, V and W establish a secure connection. V uses H(message_1) as a session identifier associated to this connection with W. If the same value of H(message_1) is already used for a connection with this or other W, the protocol SHALL be discontinued.</t>
            <t>V sends the voucher request to W. The Voucher Request SHALL be a CBOR array as defined below:</t>
            <artwork><![CDATA[
Voucher_Request = [
    H(message_1):    bstr,
    SS:              int,
    G_X:             bstr,
    ENC_ID:          bstr,
  ? PoP_V:           bstr,
]
]]></artwork>
            <t>where the parameters are defined in <xref target="U-W"/>, except:</t>
            <ul spacing="normal">
              <li>PoP_V is a proof-of-possession of public key PK_V using the corresponding private key. PoP_V is optional.</li>
            </ul>
            <t>Editor's note: Define PoP_V (include G_X, ENC_ID in the calculation for binding to this EDHOC session). One case to study is when V authenticates to U with static DH and to W with signature.</t>
          </section>
          <section anchor="processing-in-w">
            <name>Processing in W</name>
            <t>W receives the voucher request, verifies and decrypts ENC_ID, and associates the session identifier H(message_1) to ID_U. If H(message_1) is not unique among session identifiers associated to this identity, the protocol SHALL be discontinued.</t>
            <t>W uses the identity of the device, ID_U, to look up and verify the associated authorization policies for U. 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 the public key of V, PK_V, used to authenticate the secure connection with V, and constructs the CCS (see <xref target="V_2"/>) and the Voucher (see <xref target="voucher"/>).</t>
            <t>Editor's note: Make sure the CCS is defined to allow W to generate it uniquely from PK_V.</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 = [
    H(message_1):   bstr,
    Voucher:        bstr
]
]]></artwork>
            <t>where</t>
            <ul spacing="normal">
              <li>H(message_1) is copied from the associated voucher request.</li>
              <li>The Voucher is defined in <xref target="voucher"/>.</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 the received session identifier does not match the session identifier H(message_1) associated to the secure connection, the protocol SHALL be discontinued.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="rest-interface-at-w">
      <name>REST Interface at W</name>
      <t>The interaction between V and W is enabled through a RESTful interface exposed by W.
V SHOULD access the resources exposed by W through the protocol indicated by the scheme in LOC_W URI.
In case the scheme indicates "https", V SHOULD perform a TLS handshake with W and use HTTP.
In case the scheme indicates "coaps", V SHOULD perform a DTLS handshake with W and access the same resources using CoAP.
In both cases, V MUST perform client authentication to authenticate to W, using a certificate containing the PK_V public key.</t>
      <section anchor="http-uris">
        <name>HTTP URIs</name>
        <t>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 thus begins with "https://www.example.com/.well-known/lake-authz".
Each operation specified in the following is indicated by a path-suffix.</t>
      </section>
      <section anchor="voucher-request-voucherrequest">
        <name>Voucher Request (/voucherrequest)</name>
        <t>To request a voucher, V MUST issue an HTTP request:</t>
        <ul spacing="normal">
          <li>Method is POST</li>
          <li>Payload is the serialization of the Voucher Request object, as specified in <xref target="voucher_request"/>.</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 an HTTP request:</t>
        <ul spacing="normal">
          <li>Method is POST</li>
          <li>Payload is the serialization of the ID_CRED_I object, as received in EDHOC message_3.</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_I.</t>
      </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 identity in the first message should consider potential information leaking from the length of the identifier 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_I from ID_CRED_I, or this credential lookup function may be separate from the authorization function of W. 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 reveal's U's identity, CRED_I could be sent in Voucher Response.</t>
      <t>As noted Section 8.2 of <xref 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 authorization 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 authorization 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 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>URI suffix: lake-authz</li>
          <li>Change controller: IETF</li>
          <li>Specification document: [[this document]]</li>
          <li>Related information: None</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>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="RFC9053" target="https://www.rfc-editor.org/info/rfc9053" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9053.xml">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-lake-edhoc-19" 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="3" month="February" 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-19"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <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://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <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="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="RFC9180" target="https://www.rfc-editor.org/info/rfc9180" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9180.xml">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-edhoc-07" 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="March" 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-07"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert" target="https://datatracker.ietf.org/doc/html/draft-ietf-cose-cbor-encoded-cert-05" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-cbor-encoded-cert.xml">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="10" month="January" year="2023"/>
            <abstract>
              <t>This document specifies a CBOR encoding of X.509 certificates. The resulting certificates are called C509 Certificates. The CBOR encoding supports a large subset of RFC 5280 and all certificates compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA eUICC, and CA/Browser Forum Baseline Requirements profiles. When used to re-encode DER encoded X.509 certificates, the CBOR encoding can in many cases reduce the size of RFC 7925 profiled certificates with over 50%. The CBOR encoded structure can alternatively be signed directly ("natively signed"), which does not require re- encoding for the signature to be verified. The document also specifies C509 COSE headers, a C509 TLS certificate type, and a C509 file format.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-05"/>
        </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>
    <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">
              <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 Section 4.1. of <xref 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>The request method is POST.</li>
            <li>The type is Confirmable (CON).</li>
            <li>The Proxy-Scheme option is set to "coap".</li>
            <li>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.</li>
            <li>The Uri-Path option is set to ".well-known/edhoc".</li>
            <li>The Content-Format option is set to "application/cid-edhoc+cbor-seq"</li>
            <li>The payload is the (true, EDHOC message_1) CBOR sequence, where EDHOC message_1 is constructed as defined in <xref target="U-V"/>.</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 authorization 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>The response code is 2.04 Changed.</li>
            <li>The Content-Format option is set to "application/edhoc+cbor-seq"</li>
            <li>The payload is the EDHOC message_2, as defined in <xref target="U-V"/>.</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 Section 8.4.1. of <xref target="RFC9031"/>.
OSCORE protection leverages the OSCORE Security Context derived from the EDHOC exchange, 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>The request method is POST.</li>
            <li>The type is Confirmable (CON).</li>
            <li>The Proxy-Scheme option is set to "coap".</li>
            <li>The Uri-Host option is set to "lake-authz.arpa".</li>
            <li>The Uri-Path option is set to ".well-known/edhoc".</li>
            <li>The EDHOC option <xref target="I-D.ietf-core-oscore-edhoc"/> is set and is empty.</li>
            <li>The payload is prepared as described in Section 3.2. of <xref target="I-D.ietf-core-oscore-edhoc"/>, with EDHOC message_3 and the CoJP Join Request object as the OSCORE-protected payload.</li>
          </ul>
          <t>Note that the OSCORE Sender IDs are derived from the connection identifiers of the EDHOC exchange.
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 handshake, 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 Section 8.4.2. of <xref target="RFC9031"/>.</t>
        </section>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
