<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.6 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="EDHOC and OSCORE profile of ACE">Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-04"/>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE</organization>
      <address>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE</organization>
      <address>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 90?>

<t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework.
It utilizes Ephemeral Diffie-Hellman Over COSE (EDHOC) for achieving mutual authentication between an ACE-OAuth Client and Resource Server, and it binds an authentication credential of the Client to an ACE-OAuth access token.
EDHOC also establishes an Object Security for Constrained RESTful Environments (OSCORE) Security Context, which is used to secure communications when accessing protected resources according to the authorization information indicated in the access token.
This profile can be used to delegate management of authorization information from a resource-constrained server to a trusted host with less severe limitations regarding processing power and memory.</t>
    </abstract>
  </front>
  <middle>
    <?line 97?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the "coap_edhoc_oscore" profile of the ACE-OAuth framework <xref target="RFC9200"/>. This profile addresses a "zero-touch" constrained setting where authenticated and authorized operations can be performed with low overhead without endpoint specific configurations.</t>
      <t>Like in the "coap_oscore" profile <xref target="RFC9203"/>, also in this profile a client (C) and a resource server (RS) use the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> to communicate, and Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/> to protect their communications, but this profile uses the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="I-D.ietf-lake-edhoc"/> to establish the OSCORE Security Context. The processing of requests for specific protected resources is identical to what is defined in the "coap_oscore" profile.</t>
      <t>When using this profile, C accesses protected resources hosted at RS with the use of an access token issued by a trusted authorization server (AS) and bound to an authentication credential of C. This differs from the "coap_oscore" profile, where the access token is bound to a symmetric key used to derive the OSCORE Security Context. As recommended in <xref target="RFC9200"/>, this document recommends the use of CBOR Web Tokens (CWTs) <xref target="RFC8392"/> as access tokens.</t>
      <t>An authentication credential can be a raw public key, e.g., encoded as a CWT Claims Set (CCS, <xref target="RFC8392"/>); or a public key certificate, e.g., encoded as an X.509 certificate <xref target="RFC5280"/> or as a CBOR encoded X.509 certificate (C509, <xref target="I-D.ietf-cose-cbor-encoded-cert"/>); or a different type of data structure containing the public key of the peer in question.</t>
      <t>The ACE protocol establishes what those authentication credentials are, and may transport the actual authentication credentials by value or uniquely refer to them. If an authentication credential is pre-provisioned or can be obtained over less constrained links, then it suffices that ACE provides a unique reference such as a certificate hash (e.g., by using the COSE header parameter "x5t", see <xref target="RFC9360"/>). This is in the same spirit as EDHOC, where the authentication credentials may be transported or referenced in the ID_CRED_x message fields (see <xref section="3.5.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>).</t>
      <t>In general, AS and RS are likely to have trusted access to each other's authentication credentials, since AS acts on behalf of RS as per the trust model of ACE. Also, AS needs to have some information about C, including the relevant authentication credential, in order to identify C when it requests an access token and to determine what access rights it can be granted. However, the authentication credential of C may potentially be conveyed (or uniquely referred to) within the request for access that C makes to AS.</t>
      <t>The establishment of an association between RS and AS in an ACE ecosystem is out of scope, but one solution is to build on the same primitives as used in this document, i.e., EDHOC for authentication and OSCORE for communication security, using for example <xref target="I-D.ietf-lake-authz"/> for onboarding RS with AS, and <xref target="I-D.ietf-ace-coap-est-oscore"/> for establishing a trust anchor in RS. A similar procedure can also be applied between C and AS for registering a client and for the establishment of a trust anchor.</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.
<?line -6?>
        </t>
        <t>Certain security-related terms such as "authentication", "authorization", "confidentiality", "(data) integrity", "Message Authentication Code (MAC)", "Hash-based Message Authentication Code (HMAC)", and "verify" are taken from <xref target="RFC4949"/>.</t>
        <t>RESTful terminology follows HTTP <xref target="RFC9110"/>.</t>
        <t>Readers are expected to be familiar with the terms and concepts defined in CoAP <xref target="RFC7252"/>, OSCORE <xref target="RFC8613"/>, and EDHOC <xref target="I-D.ietf-lake-edhoc"/>.</t>
        <t>Readers are also expected to be familiar with the terms and concepts of the ACE framework described in <xref target="RFC9200"/> and in <xref target="RFC9201"/>.</t>
        <t>Terminology for entities in the architecture is defined in OAuth 2.0 <xref target="RFC6749"/>, such as the client (C), the resource server (RS), and the authorization server (AS).  It is assumed in this document that a given resource on a specific RS is associated with a unique AS.</t>
        <t>Note that the term "endpoint" is used here, as in <xref target="RFC9200"/>, following its OAuth definition, which is to denote resources such as /token and /introspect at AS and /authz-info at RS. The CoAP <xref target="RFC7252"/> definition, which is "An entity participating in the CoAP protocol" is not used in this document.</t>
        <t>The authorization information (authz-info) resource refers to the authorization information endpoint as specified in <xref target="RFC9200"/>. The term "claim" is used in this document with the same semantics as in <xref target="RFC9200"/>, i.e., it denotes information carried in the access token or returned from introspection.</t>
        <t>Concise Binary Object Representation (CBOR) <xref target="RFC8949"/><xref target="RFC8742"/> and Concise Data Definition Language (CDDL) <xref target="RFC8610"/> are used in this document. CDDL predefined type names, especially bstr for CBOR byte strings and tstr for CBOR text strings, are used extensively in this document.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation without the tag and value abbreviations.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <t>This section gives an overview of how to use the ACE framework <xref target="RFC9200"/> together with the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. By doing so, the client (C) and the resource server (RS) generate an OSCORE Security Context <xref target="RFC8613"/> associated with authorization information, and use that Security Context to protect their communications. The parameters needed by C to negotiate the use of this profile with the authorization server (AS), as well as the OSCORE setup process, are described in detail in the following sections.</t>
      <t>RS maintains a collection of authentication credentials. These are associated with OSCORE Security Contexts and with authorization information for all clients that RS is communicating with. The authorization information is used to enforce polices for processing requests from those clients.</t>
      <t>This profile specifies how C requests an access token from AS for the resources it wants to access on RS, by sending an access token request to the /token endpoint, as specified in <xref section="5.8" sectionFormat="of" target="RFC9200"/>.</t>
      <t>This profile also supports the alternative workflow where AS uploads the access token to RS, as defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
      <t>If C has retrieved an access token, there are two options for C to upload it to RS, as further detailed in this document.</t>
      <ol spacing="normal" type="1"><li>
          <t>C posts the access token to the /authz-info endpoint by using the mechanisms specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/>. If the access token is valid, RS replies to the request with a 2.01 (Created) response, after which C initiates the EDHOC protocol with RS. The communication with the /authz-info endpoint is typically not protected, except for the update of access rights (see <xref target="update-access-rights-c-rs"/>).</t>
        </li>
        <li>
          <t>C initiates the EDHOC protocol and includes the access token as External Authorization Data (EAD), see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In this case, the access token is validated in parallel with the EDHOC session. This option cannot be used for the update of access rights.</t>
        </li>
      </ol>
      <t>When running the EDHOC protocol, C uses the authentication credential of RS specified by AS together with the access token, while RS uses the authentication credential of C bound to and specified within the access token. If C and RS complete the EDHOC session successfully, they are mutually authenticated and they derive an OSCORE Security Context as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
      <t>From then on, C effectively gains authorized and secure access to protected resources on RS with the established OSCORE Security Context, for as long as there is a valid access token. The Security Context is discarded when an access token (whether the same or a different one) is used to successfully derive a new Security Context for C.</t>
      <t>After the whole procedure has completed and while the access token is valid, C can contact AS to request an update of its access rights, by sending a similar request to the /token endpoint. This request also includes a "session identifier" (see <xref target="edhoc-parameters-object"/>) provided by AS in the initial request, which allows AS to find the data it has previously shared with C. The session identifier is assigned by AS and used to identify a series of access tokens, called a "token series" (see <xref target="token-series"/>). Upon a successful update of access rights (see <xref target="update-access-rights-c-rs"/>), the new issued access token becomes the latest in its token series, but the session identifier remains the same. When the latest access token of a token series becomes invalid (e.g., when it expires or gets revoked), that token series ends.</t>
      <t>When RS receives a request from C protected with an OSCORE Security Context derived from an EDHOC session implementing this profile, then the associated session identifier, together with the authentication credential of C used in the EDHOC session, enables the RS to look up the unique access token determining the access rights of C.</t>
      <t>An overview of the profile flow for the "coap_edhoc_oscore" profile in case of option 1 above is given in <xref target="protocol-overview"/>. The names of messages coincide with those of <xref target="RFC9200"/> when applicable.</t>
      <figure anchor="protocol-overview">
        <name>Protocol Overview Example</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="608" width="480" viewBox="0 0 480 608" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 32,48 L 32,432" fill="none" stroke="black"/>
              <path d="M 32,496 L 32,576" fill="none" stroke="black"/>
              <path d="M 264,160 L 264,320" fill="none" stroke="black"/>
              <path d="M 264,368 L 264,576" fill="none" stroke="black"/>
              <path d="M 472,48 L 472,576" fill="none" stroke="black"/>
              <path d="M 48,62 L 80,62" fill="none" stroke="black"/>
              <path d="M 48,66 L 80,66" fill="none" stroke="black"/>
              <path d="M 424,62 L 456,62" fill="none" stroke="black"/>
              <path d="M 424,66 L 456,66" fill="none" stroke="black"/>
              <path d="M 48,96 L 96,96" fill="none" stroke="black"/>
              <path d="M 216,96 L 456,96" fill="none" stroke="black"/>
              <path d="M 48,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 424,128 L 456,128" fill="none" stroke="black"/>
              <path d="M 48,176 L 72,176" fill="none" stroke="black"/>
              <path d="M 224,176 L 248,176" fill="none" stroke="black"/>
              <path d="M 48,224 L 88,224" fill="none" stroke="black"/>
              <path d="M 208,224 L 248,224" fill="none" stroke="black"/>
              <path d="M 48,254 L 120,254" fill="none" stroke="black"/>
              <path d="M 48,258 L 120,258" fill="none" stroke="black"/>
              <path d="M 184,254 L 248,254" fill="none" stroke="black"/>
              <path d="M 184,258 L 248,258" fill="none" stroke="black"/>
              <path d="M 48,384 L 72,384" fill="none" stroke="black"/>
              <path d="M 208,384 L 248,384" fill="none" stroke="black"/>
              <path d="M 48,416 L 72,416" fill="none" stroke="black"/>
              <path d="M 216,416 L 248,416" fill="none" stroke="black"/>
              <path d="M 48,512 L 72,512" fill="none" stroke="black"/>
              <path d="M 208,512 L 248,512" fill="none" stroke="black"/>
              <path d="M 48,544 L 72,544" fill="none" stroke="black"/>
              <path d="M 216,544 L 248,544" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="464,96 452,90.4 452,101.6" fill="black" transform="rotate(0,456,96)"/>
              <polygon class="arrowhead" points="464,64 452,58.4 452,69.6" fill="black" transform="rotate(0,456,64)"/>
              <polygon class="arrowhead" points="256,512 244,506.4 244,517.6" fill="black" transform="rotate(0,248,512)"/>
              <polygon class="arrowhead" points="256,384 244,378.4 244,389.6" fill="black" transform="rotate(0,248,384)"/>
              <polygon class="arrowhead" points="256,256 244,250.4 244,261.6" fill="black" transform="rotate(0,248,256)"/>
              <polygon class="arrowhead" points="256,176 244,170.4 244,181.6" fill="black" transform="rotate(0,248,176)"/>
              <polygon class="arrowhead" points="56,544 44,538.4 44,549.6" fill="black" transform="rotate(180,48,544)"/>
              <polygon class="arrowhead" points="56,416 44,410.4 44,421.6" fill="black" transform="rotate(180,48,416)"/>
              <polygon class="arrowhead" points="56,256 44,250.4 44,261.6" fill="black" transform="rotate(180,48,256)"/>
              <polygon class="arrowhead" points="56,224 44,218.4 44,229.6" fill="black" transform="rotate(180,48,224)"/>
              <polygon class="arrowhead" points="56,128 44,122.4 44,133.6" fill="black" transform="rotate(180,48,128)"/>
              <polygon class="arrowhead" points="56,64 44,58.4 44,69.6" fill="black" transform="rotate(180,48,64)"/>
              <g class="text">
                <text x="32" y="36">C</text>
                <text x="268" y="36">RS</text>
                <text x="468" y="36">AS</text>
                <text x="264" y="52">|</text>
                <text x="116" y="68">Mutual</text>
                <text x="204" y="68">authentication</text>
                <text x="280" y="68">and</text>
                <text x="324" y="68">secure</text>
                <text x="384" y="68">channel</text>
                <text x="264" y="84">|</text>
                <text x="124" y="100">POST</text>
                <text x="172" y="100">/token</text>
                <text x="264" y="116">|</text>
                <text x="340" y="132">Access</text>
                <text x="392" y="132">Token</text>
                <text x="288" y="148">+</text>
                <text x="324" y="148">Access</text>
                <text x="400" y="148">Information</text>
                <text x="100" y="180">POST</text>
                <text x="168" y="180">/authz-info</text>
                <text x="148" y="196">(access_token)</text>
                <text x="116" y="228">2.01</text>
                <text x="168" y="228">Created</text>
                <text x="152" y="260">EDHOC</text>
                <text x="76" y="276">Mutual</text>
                <text x="164" y="276">authentication</text>
                <text x="64" y="292">and</text>
                <text x="124" y="292">derivation</text>
                <text x="180" y="292">of</text>
                <text x="204" y="292">an</text>
                <text x="76" y="308">OSCORE</text>
                <text x="140" y="308">Security</text>
                <text x="208" y="308">Context</text>
                <text x="244" y="340">/Proof-of-possession</text>
                <text x="344" y="340">and</text>
                <text x="196" y="356">Security</text>
                <text x="264" y="356">Context</text>
                <text x="332" y="356">storage/</text>
                <text x="108" y="388">OSCORE</text>
                <text x="168" y="388">Request</text>
                <text x="108" y="420">OSCORE</text>
                <text x="172" y="420">Response</text>
                <text x="84" y="452">/Proof-of-possession</text>
                <text x="16" y="468">and</text>
                <text x="68" y="468">Security</text>
                <text x="136" y="468">Context</text>
                <text x="32" y="484">storage</text>
                <text x="104" y="484">(latest)/</text>
                <text x="108" y="516">OSCORE</text>
                <text x="168" y="516">Request</text>
                <text x="108" y="548">OSCORE</text>
                <text x="172" y="548">Response</text>
                <text x="136" y="580">...</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <==== Mutual authentication and secure channel ====> |
   |                            |                         |
   | ------- POST /token  ------------------------------> |
   |                            |                         |
   | <-------------------------------- Access Token ----- |
   |                               + Access Information   |
   |                            |                         |
   | ---- POST /authz-info ---> |                         |
   |       (access_token)       |                         |
   |                            |                         |
   | <----- 2.01 Created ------ |                         |
   |                            |                         |
   | <========= EDHOC ========> |                         |
   |  Mutual authentication     |                         |
   |  and derivation of an      |                         |
   |  OSCORE Security Context   |                         |
   |                            |                         |
   |                /Proof-of-possession and              |
   |                Security Context storage/             |
   |                            |                         |
   | ---- OSCORE Request -----> |                         |
   |                            |                         |
   | <--- OSCORE Response ----- |                         |
   |                            |                         |
/Proof-of-possession            |                         |
and Security Context            |                         |
storage (latest)/               |                         |
   |                            |                         |
   | ---- OSCORE Request -----> |                         |
   |                            |                         |
   | <--- OSCORE Response ----- |                         |
   |                            |                         |
   |           ...              |                         |

]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="c-as-comm">
      <name>Client-AS Communication</name>
      <t>The following subsections describe the details of the POST request and response to the /token endpoint between C and AS.</t>
      <t>In this exchange, AS provides C with the access token, together with a set of parameters that enable C to run EDHOC with RS. In particular, these include information about the authorization credential of RS, AUTH_CRED_RS, transported by value or uniquely referred to.</t>
      <t>The access token is securely associated with the authentication credential of C, AUTH_CRED_C, by including it or uniquely referring to it in the access token.</t>
      <t>AUTH_CRED_C is specified in the "req_cnf" parameter defined in <xref target="RFC9201"/> of the POST request to the /token endpoint from C to AS, either transported by value or uniquely referred to.</t>
      <t>The request to the /token endpoint and the corresponding response can include EDHOC_Information, which is a CBOR map object containing information related to an EDHOC session, in particular the identifier "session_id", see <xref target="edhoc-parameters-object"/>. This object is transported in the "edhoc_info" parameter registered in <xref target="iana-oauth-params"/> and <xref target="iana-oauth-cbor-mappings"/>.</t>
      <section anchor="c-as">
        <name>C-to-AS: POST to /token endpoint</name>
        <t>The client-to-AS request is specified in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>.</t>
        <t>The client MUST send this POST request to the /token endpoint over a secure channel that guarantees authentication, message integrity, and confidentiality (see <xref target="secure-comm-as"/>). This document describes the use of CoAP, EDHOC and OSCORE to reduce the number of libraries that C has to support.</t>
        <t>An example of such a request is shown in <xref target="token-request"/>. In this example, C specifies its own authentication credential by reference, as the hash of an X.509 certificate carried in the "x5t" field of the "req_cnf" parameter. In fact, it is expected that C can typically specify its own authentication credential by reference, since AS is expected to obtain the actual authentication credential during a previous client registration process or secure association establishment with C.</t>
        <figure anchor="token-request">
          <name>Example of C-to-AS POST /token request for an access token.</name>
          <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: application/ace+cbor
   Payload:
   {
     "audience" : "tempSensor4711",
     "scope" : "read",
     "req_cnf" : {
       "x5t" : h'822E4879F2A41B510C1F9B'
     }
   }
]]></artwork>
        </figure>
        <t>If C wants to update its access rights without changing an existing OSCORE Security Context, it MUST include EDHOC_Information in its POST request to the /token endpoint. The EDHOC_Information MUST include the "session_id" field. This POST request MUST omit the "req_cnf" parameter. An example of such a request is shown in <xref target="token-request-update"/>.</t>
        <t>The identifier "session_id" is assigned by AS as discussed in <xref target="token-series"/>, and, together with other information such as audience (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), can be used by AS to determine the token series to which the new requested access token has to be added. Therefore, the session_id MUST identify the pair (AUTH_CRED_C, AUTH_CRED_RS) associated with a still valid access token previously issued for C and RS by AS.</t>
        <t>AS MUST verify that the received "session_id" identifies a token series to which a still valid access token issued for C and RS belongs. If that is not the case, the Client-to-AS request MUST be declined with the error code "invalid_request" as defined in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <figure anchor="token-request-update">
          <name>Example of C-to-AS POST /token request for updating access rights to an access token.</name>
          <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: application/ace+cbor
   Payload:
   {
     "audience" : "tempSensor4711",
     "scope" : "write",
     "edhoc_info" : {
        "session_id" : h'01'
     }
   }
]]></artwork>
        </figure>
      </section>
      <section anchor="token-series">
        <name>Token Series</name>
        <t>This document refers to "token series" as a series of access tokens sorted in chronological order as they are released, characterized by the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>issued by the same AS</t>
          </li>
          <li>
            <t>issued to the same C, and associated with the same authentication credential of C</t>
          </li>
          <li>
            <t>issued for the same RS, identified by the same authentication credential</t>
          </li>
        </ul>
        <t>Upon a successful update of access rights, the new issued access token becomes the latest in its token series. When the latest access token of a token series becomes invalid (e.g., due to its expiration or revocation), the token series it belongs to ends.</t>
        <t>The general token series concept is defined in <xref target="I-D.ietf-ace-workflow-and-params"/>. In this profile, a token series is characterized by access tokens used between a given pair (C, RS) having the same "session_id" in the EDHOC_Information, see <xref target="edhoc-parameters-object"/>.</t>
        <t>AS assigns the "session_id" to the EDHOC_Information when issuing the first access token of a new series and that "session_id" remains fixed throughout the series lifetime. When assigning the identifier, AS MUST ensure that it was not used in a previous series whose access tokens share the following properties with the access tokens of the new series:</t>
        <ul spacing="normal">
          <li>
            <t>i) issued for the same RS; and</t>
          </li>
          <li>
            <t>ii) bound to the same authentication credential AUTH_CRED_C of the requesting client (irrespectively of how the AUTH_CRED_C is identified in the access tokens).</t>
          </li>
        </ul>
        <t>In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), what is defined above applies, with the difference that the token series is associated with all the RSs in the group-audience, as indicated by their respective AUTH_CRED_RS.</t>
      </section>
      <section anchor="as-c">
        <name>AS-to-C: Response</name>
        <t>After verifying the POST request to the /token endpoint and that C is authorized to access, AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, with potential modifications as detailed below. If the request from C was invalid, or not authorized, AS returns an error response as described in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>AS can signal that the use of EDHOC and OSCORE as per this profile is REQUIRED for a specific access token, by including the "ace_profile" parameter with the value "coap_edhoc_oscore" in the access token response. This means that C MUST use EDHOC with RS and derive an OSCORE Security Context, as specified in <xref target="edhoc-exec"/>. After that, C MUST use the established OSCORE Security Context to protect communications with RS, when accessing protected resources at RS according to the authorization information indicated in the access token. Usually, it is assumed that constrained devices will be pre-configured with the necessary profile, so that this kind of profile signaling can be omitted.</t>
        <t>The access token may be sent in the access token response to C for subsequent provisioning to RS, or the access token may be uploaded by AS directly to RS, as specified in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <ul spacing="normal">
          <li>
            <t>In the former case, AS provides the access token to C, by specifying it in the "access_token" parameter of the access token response.</t>
          </li>
          <li>
            <t>In the latter case, AS uploads the access token to the /authz-info endpoint at RS, similarly to what is defined for C in <xref target="c-rs"/> and <xref target="rs-c"/>. In case of successful token upload, the access token response to C does not include the parameter "access_token", and includes the parameter "token_uploaded" encoding the CBOR simple value "true" (0xf5). An example is given in <xref target="example-without-optimization-as-posting"/>.</t>
          </li>
        </ul>
        <t>When issuing any access token, AS MUST send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The "session_id" field of EDHOC_Information, which is the identifier of the token series which the issued access token belongs to.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS MUST send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>A unique identification of the authentication credential of RS, AUTH_CRED_RS. This is specified in the "rs_cnf" parameter defined in <xref target="RFC9201"/>. AUTH_CRED_RS can be transported by value or referred to by means of an appropriate identifier.  </t>
            <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is typically expected that the response to C may include AUTH_CRED_RS by value.  </t>
            <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_RS, it is expected that the response to C includes AUTH_CRED_RS by reference.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS MAY send EDHOC_Information related to RS, see <xref target="edhoc-parameters-object"/>, in corresponding fields of the response to C. This information is based on knowledge that AS have about RS, e.g., from a previous onboarding process, with particular reference to what RS supports as EDHOC peer.</t>
        <t><xref target="fig-token-response"/> shows an example of an AS response. The "rs_cnf" parameter specifies the authentication credential of RS, as an X.509 certificate transported by value in the "x5chain" field. The access token and the authentication credential of RS have been truncated for readability.</t>
        <figure anchor="fig-token-response">
          <name>Example of AS-to-C Access Token response with EDHOC and OSCORE profile.</name>
          <artwork><![CDATA[
   Header: Created (Code=2.01)
      Content-Format: application/ace+cbor
      Payload:
      {
        "access_token" : h'8343a1010aa2044c53/...
         (remainder of access token (CWT) omitted for brevity)/',
        "ace_profile" : "coap_edhoc_oscore",
        "expires_in" : "3600",
        "rs_cnf" : {
          "x5chain" : h'3081ee3081a1a00302/...'
          (remainder of the access credential omitted for brevity)/'
        }
        "edhoc_info" : {
          "session_id" : h'01',
          "methods" : [0, 1, 2, 3],
          "cipher_suites": 0
        }
      }
]]></artwork>
        </figure>
        <section anchor="access-token">
          <name>Access Token</name>
          <t>When issuing any access token of a token series, AS MUST specify the following data in the claims associated with the access token.</t>
          <ul spacing="normal">
            <li>
              <t>The "session_id" field of EDHOC_Information, with the same value specified in the response to C from the /token endpoint.</t>
            </li>
            <li>
              <t>The authentication credential that C specified in its POST request to the /token endpoint (see <xref target="c-as"/>), AUTH_CRED_C. If the access token is a CWT, this information MUST be specified in the "cnf" claim.  </t>
              <t>
In the access token, AUTH_CRED_C can be transported by value or uniquely referred to by means of an appropriate identifier, regardless of how C specified it in the request to the /token endpoint. Thus, the specific field carried in the access token claim and specifying AUTH_CRED_C depends on the specific way used by AS.  </t>
              <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is typically expected that AUTH_CRED_C is included by value.  </t>
              <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_C, it is expected that AUTH_CRED_C is identified by reference.</t>
            </li>
          </ul>
          <t>When issuing the first access token of a token series, AS MAY specify the following EDHOC_Information (see <xref target="edhoc-parameters-object"/>) in the claims associated with the access token. If these data are specified in the response to C from the /token endpoint, they MUST be included with the same values in the access token.</t>
          <ul spacing="normal">
            <li>
              <t>osc_ms_len: The size of the OSCORE Master Secret. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</t>
            </li>
            <li>
              <t>osc_salt_len: The size of the OSCORE Master Salt. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</t>
            </li>
            <li>
              <t>osc_version: The OSCORE version. If it is not included, the default value of 1 (see <xref section="5.4" sectionFormat="of" target="RFC8613"/>) is assumed.</t>
            </li>
          </ul>
          <t>When CWTs are used as access tokens, EDHOC_Information MUST be transported in the "edhoc_info" claim, defined in <xref target="iana-token-cwt-claims"/>.</t>
          <t>Since the access token does not contain secret information, only its integrity and source authentication are strictly necessary to ensure. Therefore, AS can protect the access token with either of the means discussed in <xref section="6.1" sectionFormat="of" target="RFC9200"/>. Nevertheless, when using this profile, it is RECOMMENDED that the access token is a CBOR web token (CWT) protected with COSE_Encrypt/COSE_Encrypt0 as specified in <xref target="RFC8392"/>.</t>
          <t><xref target="fig-token"/> shows an example CWT Claims Set, including the relevant EDHOC parameters in the "edhoc_info" claim. The "cnf" claim specifies the authentication credential of C, as an X.509 certificate transported by value in the "x5chain" field. The authentication credential of C has been truncated for readability.</t>
          <figure anchor="fig-token">
            <name>Example of CWT Claims Set with EDHOC parameters.</name>
            <artwork><![CDATA[
   {
    "aud" : "tempSensorInLivingRoom",
    "iat" : "1360189224",
    "exp" : "1360289224",
    "scope" :  "temperature_g firmware_p",
    "cnf" : {
      "x5chain" : h'3081ee3081a1a00302/...
      (remainder of the access credential omitted for brevity)/'
    }
    "edhoc_info" : {
      "session_id" : h'01',
      "methods" : [0, 1, 2, 3],
      "cipher_suites": 0
    }
  }
]]></artwork>
          </figure>
        </section>
        <section anchor="processing-in-c">
          <name>Processing in C</name>
          <t>When receiving an Access Token response including the "rs_cnf" parameter, C checks whether it is already storing the authentication credential of RS, namely AUTH_CRED_RS, specified in "rs_cnf" by value or reference.</t>
          <t>If this is not the case, C retrieves AUTH_CRED_RS, either using the "rs_cnf" parameter or some other trusted source. After that, C validates the actual AUTH_CRED_RS. In case of successful validation, C stores AUTH_CRED_RS as a valid authentication credential. Otherwise, C MUST delete the access token.</t>
        </section>
        <section anchor="update-of-access-rights">
          <name>Update of Access Rights</name>
          <t>If C has requested an update to its access rights using the same OSCORE Security Context, which is valid and authorized, then:</t>
          <ul spacing="normal">
            <li>
              <t>The response MUST NOT include the "rs_cnf" parameter.</t>
            </li>
            <li>
              <t>The EDHOC_Information in the response MUST include only the "session_id" field.</t>
            </li>
            <li>
              <t>The EDHOC_Information in the access token MUST include only the "session_id" field. In particular, if the access token is a CWT, the "edhoc_info" claim MUST include only the "session_id" field.</t>
            </li>
          </ul>
          <t>The "session_id" needs to be included in the new access token in order for RS to identify the old access token to supersede, as well as the OSCORE Security Context already shared between C and RS and to be associated with the new access token.</t>
        </section>
      </section>
      <section anchor="edhoc-parameters-object">
        <name>EDHOC_Information</name>
        <t>EDHOC_Information is an object including information that guides two peers towards executing the EDHOC protocol. In particular, the EDHOC_Information is defined to be serialized and transported between nodes, as specified by this document, but it can also be used by other specifications if needed.</t>
        <t>The EDHOC_Information can be encoded either as a JSON object or as a CBOR map. The set of common fields that can appear in an EDHOC_Information can be found in the IANA "EDHOC Information" registry (see <xref target="iana-edhoc-parameters"/>), defined for extensibility, and the initial set of parameters defined in this document is specified below. All parameters are optional.</t>
        <t><xref target="fig-cbor-key-edhoc-params"/> provides a summary of the EDHOC_Information parameters defined in this section.</t>
        <figure anchor="fig-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters</name>
          <artwork align="center"><![CDATA[
+---------------+-------+----------+----------------+-----------------+
| Name          | CBOR  | CBOR     | Registry       | Description     |
|               | label | type     |                |                 |
+---------------+-------+----------+----------------+-----------------+
| session_id    | 0     | bstr     |                | Identifier of   |
|               |       |          |                | a session       |
+---------------+-------+----------+----------------+-----------------+
| methods       | 1     | int /    | EDHOC Method   | Set of          |
|               |       | array    | Type Registry  | supported       |
|               |       |          |                | EDHOC methods   |
+---------------+-------+----------+----------------+-----------------+
| cipher_suites | 2     | int /    | EDHOC Cipher   | Set of          |
|               |       | array    | Suites         | supported EDHOC |
|               |       |          | Registry       | cipher suites   |
+---------------+-------+----------+----------------+-----------------+
| message_4     | 3     | simple   |                | Support for     |
|               |       | value    |                | EDHOC message_4 |
|               |       | "true" / |                |                 |
|               |       | simple   |                |                 |
|               |       | value    |                |                 |
|               |       | "false"  |                |                 |
+---------------+-------+----------+----------------+-----------------+
| comb_req      | 4     | simple   |                | Support for the |
|               |       | value    |                | EDHOC + OSCORE  |
|               |       | "true" / |                | combined        |
|               |       | simple   |                | request         |
|               |       | value    |                |                 |
|               |       | "false"  |                |                 |
+---------------+-------+----------+----------------+-----------------+
| uri_path      | 5     | tstr     |                | URI-path of the |
|               |       |          |                | EDHOC resource  |
+---------------+-------+----------+----------------+-----------------+
| osc_ms_len    | 6     | uint     |                | Length in bytes |
|               |       |          |                | of the OSCORE   |
|               |       |          |                | Master Secret   |
|               |       |          |                | to derive       |
+---------------+-------+----------+----------------+-----------------+
| osc_salt_len  | 7     | uint     |                | Length in bytes |
|               |       |          |                | of the OSCORE   |
|               |       |          |                | Master Salt to  |
|               |       |          |                | derive          |
+---------------+-------+----------+----------------+-----------------+
| osc_version   | 8     | uint     |                | OSCORE version  |
|               |       |          |                | number to use   |
+---------------+-------+----------+----------------+-----------------+
| cred_types    | 9     | int /    | EDHOC          | Set of          |
|               |       | array    | Authentication | supported       |
|               |       |          | Credential     | types of        |
|               |       |          | Types Registry | authentication  |
|               |       |          |                | credentials     |
|               |       |          |                | for EDHOC       |
+---------------+-------+----------+----------------+-----------------+
| id_cred_types | 10    | int /    | COSE Header    | Set of          |
|               |       | tstr /   | Parameters     | supported       |
|               |       | array    | Registry       | types of        |
|               |       |          |                | authentication  |
|               |       |          |                | credential      |
|               |       |          |                | identifiers for |
|               |       |          |                | EDHOC           |
+---------------+-------+----------+----------------+-----------------+
| eads          | 11    | uint /   | EDHOC External | Set of          |
|               |       | array    | Authorization  | supported EDHOC |
|               |       |          | Data Registry  | External        |
|               |       |          |                | Authorization   |
|               |       |          |                | Data (EAD)      |
|               |       |          |                | items           |
+---------------+-------+----------+----------------+-----------------+
| initiator     | 12    | simple   |                | Support for the |
|               |       | value    |                | EDHOC Initiator |
|               |       | "true" / |                | role            |
|               |       | simple   |                |                 |
|               |       | value    |                |                 |
|               |       | "false"  |                |                 |
+---------------+-------+----------+----------------+-----------------+
| responder     | 13    | simple   |                | Support for the |
|               |       | value    |                | EDHOC Responder |
|               |       | "true" / |                | role            |
|               |       | simple   |                |                 |
|               |       | value    |                |                 |
|               |       | "false"  |                |                 |
+---------------+-------+----------+----------------+-----------------+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t>session_id: This parameter identifies a 'session' which the EDHOC information is associated with, but does not necessarily identify a specific EDHOC session. In this document, "session_id" identifies a token series. In JSON, the "session_id" value is a Base64 encoded byte string. In CBOR, the "session_id" type is a byte string, and has label 0.</t>
          </li>
          <li>
            <t>methods: This parameter specifies a set of supported EDHOC methods (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single EDHOC method, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC method. In JSON, the "methods" value is an integer or an array of integers. In CBOR, the "methods" is an integer or an array of integers, and has label 1.</t>
          </li>
          <li>
            <t>cipher_suites: This parameter specifies a set of supported EDHOC cipher suites (see <xref section="3.6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single EDHOC cipher suite, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC cipher suite. In JSON, the "cipher_suites" value is an integer or an array of integers. In CBOR, the "cipher_suites" is an integer or an array of integers, and has label 2.</t>
          </li>
          <li>
            <t>message_4: This parameter indicates whether the EDHOC message_4 (see <xref section="5.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) is supported. In JSON, the "message_4" value is a boolean. In CBOR, "message_4" is the simple value "true" or "false", and has label 4.</t>
          </li>
          <li>
            <t>comb_req: This parameter indicates whether the combined EDHOC + OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>) is supported. In JSON, the "comb_req" value is a boolean. In CBOR, "comb_req" is the simple value "true" or "false", and has label 5.</t>
          </li>
          <li>
            <t>uri_path: This parameter specifies the path component of the URI of the EDHOC resource where EDHOC messages have to be sent as requests. In JSON, the "uri_path" value is a string. In CBOR, "uri_path" is a text string, and has label 6.</t>
          </li>
          <li>
            <t>osc_ms_len: This parameter specifies the size in bytes of the OSCORE Master Secret to derive after the EDHOC session, as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In JSON, the "osc_ms_len" value is an integer. In CBOR, the "osc_ms_len" type is unsigned integer, and has label 7.</t>
          </li>
          <li>
            <t>osc_salt_len: This parameter specifies the size in bytes of the OSCORE Master Salt to derive after the EDHOC session, as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In JSON, the "osc_salt_len" value is an integer. In CBOR, the "osc_salt_len" type is unsigned integer, and has label 8.</t>
          </li>
          <li>
            <t>osc_version: This parameter specifies the OSCORE Version number that the two EDHOC peers have to use when using OSCORE. For more information about this parameter, see <xref section="5.4" sectionFormat="of" target="RFC8613"/>. In JSON, the "osc_version" value is an integer. In CBOR, the "osc_version" type is unsigned integer, and has label 9.</t>
          </li>
          <li>
            <t>cred_types: This parameter specifies a set of supported types of authentication credentials for EDHOC (see <xref section="3.5.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single type of authentication credential, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one type of authentication credential. In JSON, the "cred_types" value is an integer or an array of integers. In CBOR, "cred_types" is an integer or an array of integers, and has label 9. The integer values are taken from the "EDHOC Authentication Credential Types" registry defined in <xref target="I-D.ietf-core-oscore-edhoc"/>.</t>
          </li>
          <li>
            <t>id_cred_types: This parameter specifies a set of supported types of authentication credential identifiers for EDHOC (see <xref section="3.5.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single type of authentication credential identifier, this is encoded as an integer or a text string. Otherwise, the set is encoded as an array, where each array element encodes one type of authentication credential identifier, as an integer or a text string. In JSON, the "id_cred_types" value is an integer, or a text string, or an array of integers and text strings. In CBOR, "id_cred_types" is an integer or a text string, or an array of integers and text strings, and has label 10. The integer or text string values are taken from the 'Label' column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>.</t>
          </li>
          <li>
            <t>eads: This parameter specifies a set of supported EDHOC External Authorization Data (EAD) items, identified by their ead_label (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single ead_label, this is encoded as an unsigned integer. Otherwise, the set is encoded as an array of unsigned integers, where each array element encodes one ead_label. In JSON, the "eads" value is an unsigned integer or an array of unsigned integers. In CBOR, "eads" is an unsigned integer or an array of unsigned integers, and has label 11. The unsigned integer values are taken from the 'Label' column of the "EDHOC External Authorization Data" registry defined in <xref target="I-D.ietf-lake-edhoc"/>.</t>
          </li>
          <li>
            <t>initiator: This parameter specifies whether the EDHOC Initiator role is supported. In JSON, the "initiator" value is a boolean. In CBOR, "initiator" is the simple value "true" (0xf5) or "false" (0xf4), and has label 12.</t>
          </li>
          <li>
            <t>responder: This parameter specifies whether the EDHOC Responder role is supported. In JSON, the "responder" value is a boolean. In CBOR, "responder" is the simple value "true" (0xf5) or "false" (0xf4), and has label 13.</t>
          </li>
        </ul>
        <t>An example of JSON EDHOC_Information is given in <xref target="fig-edhoc-info-json"/>.</t>
        <figure anchor="fig-edhoc-info-json">
          <name>Example of JSON EDHOC_Information</name>
          <artwork><![CDATA[
   "edhoc_info" : {
       "session_id" : b64'AQ==',
       "methods" : 1,
       "cipher_suites" : 0
   }
]]></artwork>
        </figure>
        <t>The CDDL grammar describing the CBOR EDHOC_Information is:</t>
        <artwork><![CDATA[
EDHOC_Information = {
  ?  0 => bstr,                   ; id
  ?  1 => int / array,            ; methods
  ?  2 => int / array,            ; cipher_suites
  ?  3 => true / false,           ; message_4
  ?  4 => true / false,           ; comb_req
  ?  5 => tstr,                   ; uri_path
  ?  6 => uint,                   ; osc_ms_len
  ?  7 => uint,                   ; osc_salt_len
  ?  8 => uint,                   ; osc_version
  ?  9 => int / array,            ; cred_types
  ? 10 => int / tstr / array,     ; id_cred_types
  ? 11 => uint / array,           ; eads
  ? 12 => true / false,           ; initiator
  ? 13 => true / false,           ; responder
  * int / tstr => any
}
]]></artwork>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>This section describes the exchanges between C and RS, which comprise the token uploading to RS, and the execution of the EDHOC protocol. Note that AS may have uploaded the access token directly to RS (see <xref target="as-c"/>).</t>
      <t>In order to upload the access token to RS, C can send a POST request to the /authz-info endpoint at RS. This is detailed in <xref target="c-rs"/> and <xref target="rs-c"/>, and shown by the example in <xref target="example-without-optimization"/>.</t>
      <t>Alternatively, C can upload the access token while executing the EDHOC protocol, by transporting the access token in an EAD field of an EDHOC message sent to RS. This is further discussed in <xref target="AT-in-EAD"/> and <xref target="edhoc-exec"/>, and shown by the example in <xref target="example-with-optimization"/>.</t>
      <t>In either case, C and RS run the EDHOC protocol by exchanging POST requests and related responses to a dedicated EDHOC resource at RS (see <xref target="edhoc-exec"/>). Once completed the EDHOC session, C and RS have agreed on a common secret key PRK_out (see <xref section="4.1.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), from which they establish an OSCORE Security Context (see <xref target="edhoc-exec"/>). After that, C and RS use the established OSCORE Security Context to protect their communications when accessing protected resources at RS, as per the access rights specified in the access token (see <xref target="access-rights-verif"/>).</t>
      <t>C and RS are mutually authenticated once they have successfully completed the EDHOC protocol. RS gets key confirmation of PRK_out by C at the end of the successful EDHOC session. Conversely, C get key confirmation of PRK_out by RS either when receiving and successfully verifying the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the generated OSCORE Security Context.</t>
      <section anchor="c-rs">
        <name>C-to-RS: POST to /authz-info endpoint</name>
        <t>The access token can be uploaded to RS by using the /authz-info endpoint at RS. To this end, C uses CoAP <xref target="RFC7252"/> and the Authorization Information endpoint described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/> in order to transport the access token.</t>
        <t>That is, C sends a POST request to the /authz-info endpoint at RS, with the request payload conveying the access token without any CBOR wrapping. As per <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, the Content-Format of the POST request has to reflect the format of the transported access token. In particular, if the access token is a CWT, the Content-Format MUST be "application/cwt".</t>
        <t>The communication with the /authz-info endpoint is in general not protected, except in the case of updating the access rights (see <xref target="update-access-rights-c-rs"/>).</t>
      </section>
      <section anchor="rs-c">
        <name>RS-to-C: 2.01 (Created)</name>
        <t>Upon receiving an access token from C, RS MUST follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>. That is, RS must verify the validity of the access token. RS may make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token.</t>
        <t>If the access token is valid, RS proceeds as follows.</t>
        <t>RS checks whether it is already storing the authentication credential of C, AUTH_CRED_C, specified in the "cnf" claim of the access token by value or by reference. If not, RS retrieves AUTH_CRED_C, either using the "cnf" claim or some other trusted source.</t>
        <t>If RS fails to find or validate AUTH_CRED_C, then RS MUST respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        <t>If, instead, the access token is valid but associated with claims that RS cannot process (e.g., an unknown scope), or if any of the expected parameters is missing (e.g., any of the mandatory parameters from AS or the identifier "session_id"), or if any parameters received in the EDHOC_Information is unrecognized, then RS MUST respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). In the latter two cases, RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        <t>If all validations are successful, RS MUST reply to the POST request with a 2.01 (Created) response. The access token is stored such that it is possible to retrieve it based on "session_id" and AUTH_CRED_C.</t>
        <t>When an access token becomes invalid (e.g., due to its expiration or revocation), RS MUST delete the access token and the associated OSCORE Security Context, and MUST notify C with an error response with code 4.01 (Unauthorized) for any long running request, as specified in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
      </section>
      <section anchor="AT-in-EAD">
        <name>Access Token in External Authorization Data</name>
        <t>Instead of uploading the access token to the /authz-info endpoint at RS as described in <xref target="c-rs"/>, C MAY include the access token in EDHOC message_3 by making use of the External Authorization Data field EAD_3 (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), see example in <xref target="example-with-optimization"/>. In this case, the access token is encrypted between C and RS enabling protection of potential sensitive information.</t>
        <t>This document defines the EAD item EAD_ACCESS_TOKEN = (ead_label, ead_value), where:</t>
        <ul spacing="normal">
          <li>
            <t>ead_label is the integer value TBD registered in <xref target="iana-edhoc-ead"/> and</t>
          </li>
          <li>
            <t>ead_value is a CBOR byte string, with value the binary serialization of a CBOR map. The CBOR map includes one field, whose label is a CBOR unsigned integer with value either 0 or 1, and whose value is a CBOR byte string:  </t>
            <ul spacing="normal">
              <li>
                <t>For label 0, ead_value = { 0 : access_token }, where access_token is a CBOR byte string equal to the value of the "access_token" field of the access token response from AS, see <xref target="as-c"/>.</t>
              </li>
              <li>
                <t>For label 1, ead_value = { 1 : session_id }, where session_id is a CBOR byte string equal to the value of the "session_id" field of the access token response from AS, see <xref target="token-series"/>.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>This EAD item, which is used in EAD_3, is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must either process the access token or abort the EDHOC session (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). A Client or Resource Server supporting the profile of ACE defined in this document MUST support this EAD item. When EDHOC is used with this profile, this EAD item is included in EAD_3, see <xref target="m_3"/>.</t>
        <t>Access tokens are transported in EAD fields only for the first access token of a token series, and not for the update of access rights, see <xref target="update-access-rights-c-rs"/>.</t>
      </section>
      <section anchor="edhoc-exec">
        <name>EDHOC Session and OSCORE Security Context</name>
        <t>In order to mutually authenticate and establish secure communication for authorized access according to the profile described in this document, C and RS run the EDHOC protocol <xref target="I-D.ietf-lake-edhoc"/> with C as EDHOC Initiator and RS as EDHOC Responder. When a new EDHOC session is established, previous EDHOC sessions associated with the same access token and the same pair (session_id, AUTH_CRED_C) are deleted, see <xref target="m_3"/>. The OSCORE Security Contexts derived from those EDHOC sessions are also deleted.</t>
        <t>As per <xref section="A.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>, C sends EDHOC message_1 and EDHOC message_3 to an EDHOC resource at RS, as CoAP POST requests. RS sends EDHOC message_2 and (optionally) EDHOC message_4 as 2.04 (Changed) CoAP responses. C MUST target the EDHOC resource at RS with the URI path specified in the "uri_path" field of the EDHOC_Information in the access token response received from AS (see <xref target="c-as"/>), if present.</t>
        <t>In order to seamlessly run EDHOC, a client does not have to first upload to RS an access token whose scope explicitly indicates authorized access to the EDHOC resource. At the same time, RS has to ensure that attackers cannot perform requests on the EDHOC resource, other than sending EDHOC messages. Specifically, it SHOULD NOT be possible to perform anything else than POST on an EDHOC resource.</t>
        <section anchor="edhoc-message1">
          <name>EDHOC message_1</name>
          <t>The processing of EDHOC message_1 is specified in <xref section="5.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. Additionally, the following applies:</t>
          <ul spacing="normal">
            <li>
              <t>The EDHOC method MUST be one of the EDHOC methods specified in the "methods" field (if present) in the EDHOC_Information of the access token response to C.</t>
            </li>
            <li>
              <t>The selected cipher suite MUST be an EDHOC cipher suite specified in the "cipher_suites" field (if present) in the EDHOC_Information of the access token response to C.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message2">
          <name>EDHOC message_2</name>
          <t>The processing of EDHOC message_2 is specified in <xref section="5.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R indicated by the message field ID_CRED_R is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="m_3">
          <name>EDHOC message_3</name>
          <t>The processing of EDHOC message_3 is specified in <xref section="5.4" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I indicated by the message field ID_CRED_I is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>The EAD item EAD_ACCESS_TOKEN = (-ead_label, ead_value) MUST be included in the EAD_3 field. If the access token is provisioned with EDHOC message_3 as specified in <xref target="AT-in-EAD"/>, then ead_value = { 0 : access_token}, otherwise ead_value = { 1 : session_id}, where session_id is equal to the value of the "session_id" field of the access token response from AS, see <xref target="token-series"/>.</t>
            </li>
            <li>
              <t>The RS MUST ensure that the access token is valid, potentially first retrieving it using session_id and AUTH_CRED_C, the validation follows the procedure specified in <xref target="rs-c"/>. If such a process fails, RS MUST reply to C with an EDHOC error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), and it MUST abort the EDHOC session. RS MUST have successfully validated the processing of the access token before completing the EDHOC session. If completed successfully, then the EDHOC session is associated with both the access token and the pair (session_id, AUTH_CRED_C). Any old existing EDHOC session associated with the same access token and with the same pair (session_id, AUTH_CRED_C) MUST be deleted, together with the OSCORE Security Context derived from the EDHOC session.</t>
            </li>
          </ul>
          <t>Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied"  defined in draft-ietf-lake-authz</t>
        </section>
        <section anchor="oscore-security-context">
          <name>OSCORE Security Context</name>
          <t>Once successfully completed the EDHOC session, C and RS derive an OSCORE Security Context, as defined in <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In addition, the following applies.</t>
          <ul spacing="normal">
            <li>
              <t>The length in bytes of the OSCORE Master Secret (i.e., the oscore_key_length parameter, see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) MUST be the value specified in the "osc_ms_size" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
            </li>
            <li>
              <t>The length in bytes of the OSCORE Master Salt (i.e., the oscore_salt_length parameter, see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) MUST be the value specified in the "osc_salt_size" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
            </li>
            <li>
              <t>C and RS MUST use the OSCORE version specified in the "osc_version" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
            </li>
            <li>
              <t>RS associates the latest EDHOC session and the derived OSCORE Security Context
with the stored access token, which is bound to the authentication credential (AUTH_CRED_C = CRED_I) used in the EDHOC session and with the session_id identifying the token series to which the access token belongs.</t>
            </li>
          </ul>
          <t>If supported by C, C MAY use the EDHOC + OSCORE combined request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>, unless the "comb_req" field of the EDHOC_Information was present in the access token response and set to the CBOR simple value "false" (0xf4). In the combined request, both EDHOC message_3 and the first OSCORE-protected application request are combined together in a single OSCORE-protected CoAP request, thus saving one round trip. For an example, see <xref target="example-with-optimization"/>. This requires C to derive the OSCORE Security Context with RS already after having successfully processed the received EDHOC message_2 and before sending EDHOC message_3.</t>
        </section>
      </section>
      <section anchor="update-access-rights-c-rs">
        <name>Update of Access Rights</name>
        <t>If C has already established access rights and an OSCORE Security Context with RS, then C can update its access rights by posting a new access token to the /authz-info endpoint.</t>
        <t>The new access token contains the updated access rights for C to access protected resources at RS, and C has to obtain it from AS as a new access token in the same token series of the current one (see <xref target="c-as-comm"/>). When posting the new access token to the /authz-info endpoint, C MUST protect the POST request using the current OSCORE Security Context shared with RS. After successful verification (see <xref target="rs-c"/>), RS will replace the old access token with the new one, while preserving the same OSCORE Security Context. In particular, C and RS do not re-run the EDHOC protocol and they do not establish a new OSCORE Security Context.</t>
        <t>Editor's note: Add description about the alternative when the AS uploads the new access token to RS.</t>
        <t>If RS receives an access token in an OSCORE protected request, it means that C is requesting an update of access rights. In this case, RS MUST check the following conditions:</t>
        <ul spacing="normal">
          <li>
            <t>RS checks whether it stores an access token T_OLD, such that the "session_id" field of EDHOC_Information matches the "session_id" field of EDHOC_Information in the new access token T_NEW.</t>
          </li>
          <li>
            <t>RS checks whether the OSCORE Security Context CTX used to protect the request matches the OSCORE Security Context associated with the stored access token T_OLD.</t>
          </li>
        </ul>
        <t>If both the conditions above hold, RS MUST replace the old access token T_OLD with the new access token T_NEW, and associate T_NEW with the OSCORE Security Context CTX. Then, RS MUST respond with a 2.01 (Created) response protected with the same OSCORE Security Context, with no payload.</t>
        <t>Otherwise, RS MUST respond with a 4.01 (Unauthorized) error response. RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        <t>As specified in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, when receiving an updated access token with updated authorization information from C (see <xref target="c-rs"/>), it is recommended that RS overwrites the previous access token. That is, only the latest authorization information in the access token received by RS is valid. This simplifies the process needed by RS to keep track of authorization information for a given client.</t>
      </section>
      <section anchor="discard-context">
        <name>Discarding the Security Context</name>
        <t>There are a number of cases where C or RS have to discard the OSCORE Security Context, and possibly establish a new one.</t>
        <t>C MUST discard the current OSCORE Security Context shared with RS when any of the following occurs.</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Sender Sequence Number space of C is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</t>
          </li>
          <li>
            <t>C receives a number of unprotected 4.01 (Unauthorized) responses to OSCORE-protected requests, which are sent to RS and protected using the same OSCORE Security Context. The exact number of such received responses needs to be specified by the application. This may for example happen due to lack of storage in RS, which then sends the "AS Request Creation Hints" message (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>).</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid, e.g., due to expiration or revocation, and it was used as CRED_I (CRED_R) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>RS MUST discard the current OSCORE Security Context shared with C when any of the following occurs:</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Sender Sequence Number space of RS is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid (e.g., due to expiration or revocation), and it was used as CRED_I (CRED_R) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>After a new access token is successfully uploaded to RS, and a new OSCORE Security Context is established between C and RS, messages still in transit that were protected with the previous OSCORE Security Context might not be successfully verified by the recipient, since the old OSCORE Security Context might have been discarded. This means that messages sent shortly before C has uploaded the new access token to RS might not be successfully accepted by the recipient.</t>
        <t>Furthermore, implementations may want to cancel CoAP observations at RS, if registered before the new OSCORE Security Context has been established. Alternatively, applications need to implement a mechanism to ensure that, from then on, messages exchanged within those observations are going to be protected with the newly derived OSCORE Security Context.</t>
      </section>
      <section anchor="cases-of-establishing-a-new-oscore-security-context">
        <name>Cases of Establishing a New OSCORE Security Context</name>
        <t>The procedure of provisioning a new access token to RS specified in this section applies to various cases when an OSCORE Security Context shared between C and RS has been deleted, for example as described in <xref target="discard-context"/>.</t>
        <t>Another exceptional case is when there is still a valid OSCORE Security Context but it needs to be updated, e.g., due to a policy limiting its use in terms of time or amount of processed data, or to the imminent exhaustion of the OSCORE Sender Sequence Number space. In this case, C and RS SHALL attempt to run the KUDOS key update protocol <xref target="I-D.ietf-core-oscore-key-update"/>, which is a lightweight alternative independent of ACE and EDHOC that does not require the posting of an access token. If KUDOS is not supported, then C and RS falls back to EDHOC as outlined above.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS MUST associate the new OSCORE Security Context with the current (potentially re-posted) access token. Unless C and RS re-run the EDHOC protocol, they preserve their OSCORE identifiers, i.e., the OSCORE Sender/Recipient IDs.</t>
      </section>
      <section anchor="access-rights-verif">
        <name>Access Rights Verification</name>
        <t>RS MUST follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="RFC9200"/>. That is, if RS receives an OSCORE-protected request targeting a protected resource from C, then RS processes the request according to <xref target="RFC8613"/>, when Version 1 of OSCORE is used. Future specifications may define new versions of OSCORE, which AS can indicate C and RS to use by means of the "osc_version" field of EDHOC_Information (see <xref target="c-as-comm"/>).</t>
        <t>If OSCORE verification succeeds and the target resource requires authorization, RS retrieves the authorization information using the access token associated with the OSCORE Security Context. Then, RS must verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
    </section>
    <section anchor="secure-comm-as">
      <name>Secure Communication with AS</name>
      <t>As specified in the ACE framework (see Sections <xref target="RFC9200" section="5.8" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9" sectionFormat="bare"/> of <xref target="RFC9200"/>), the requesting entity (RS and/or C) and AS communicates via the /token or /introspect endpoint. When using this profile, the use of CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> for this communication is RECOMMENDED. Other protocols fulfilling the security requirements defined in <xref section="5" sectionFormat="of" target="RFC9200"/> (such as HTTP and DTLS <xref target="RFC9147"/> or TLS <xref target="RFC8446"/>) MAY be used instead.</t>
      <t>If OSCORE is used, the requesting entity and AS need to have an OSCORE Security Context in place. While this can be pre-installed, the requesting entity and AS can establish such an OSCORE Security Context, for example, by running the EDHOC protocol, as shown between C and AS by the examples in <xref target="example-without-optimization"/>, <xref target="example-with-optimization"/>, and <xref target="example-without-optimization-as-posting"/>.</t>
      <t>Furthermore, as discussed in <xref target="as-c"/> and shown by the example in <xref target="example-without-optimization-as-posting"/>, AS may upload an access token directly to the /authz-info endpoint at RS. Unless encryption is applied, that exchange between AS and RS discloses the plain text token, just like when C uses the /authz-info endpoint at RS to upload a first token in a series.</t>
      <t>Editor's note: Elaborate on how to encrypt the token from AS to RS, since there is a pre-established security context.</t>
    </section>
    <section anchor="cwt-confirmation-methods">
      <name>CWT Confirmation Methods</name>
      <t>This document defines a number of new CWT confirmation methods (see <xref target="iana-cwt-confirmation-methods"/>). The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-cwt-conf-x5chain">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5chain" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5chain" is like that of the "x5chain" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5bag">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5bag" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5bag" is like that of the "x5bag" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "c5c" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5b" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5t">
        <name>Hash of a C509 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "c5t" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of a COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "c5u" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The semantics of "kcwt" is like that of the "kcwt" COSE Header Parameter specified in <xref target="I-D.ietf-lake-edhoc"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CWT Claims Set (CCS) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The semantics of "kccs" is like that of the "kccs" COSE Header Parameter specified in <xref target="I-D.ietf-lake-edhoc"/>.</t>
      </section>
    </section>
    <section anchor="jwt-confirmation-methods">
      <name>JWT Confirmation Methods</name>
      <t>This document defines a number of new JWT confirmation methods (see <xref target="iana-jwt-confirmation-methods"/>). The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-jwt-conf-x5c">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5c" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5c" is like that of the "x5c" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5b">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5b" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of the "x5b" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "x5b" are like for the "x5bag" COSE Header Parameter defined in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following difference. Each string in the JSON array is a base64-encoded (<xref section="4" sectionFormat="of" target="RFC4648"/> - not base64url-encoded) C509 certificate.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-c5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "c5b" is like for the "c5b" COSE Header Parameter defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5t">
        <name>Hash of a C09 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "x5t" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5t"/>, with the following differences. First, the base64url-encoded SHA-1 thumbprint is computed over the C509 certificate. Second, the public key contained in the C509 certificate does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "x5u" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5u"/>, with the following differences. First, the URI refers to a resource for the C509 certificate chain. Second, the public key contained in one of the C509 certificates and acting as proof-of-possession key does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
      <section anchor="ssec-jwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CWT Claims Set (CCS) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general security considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the security considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="I-D.ietf-lake-edhoc"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>As previously stated, once completed the EDHOC session, C and RS are mutually authenticated through their respective authentication credentials, whose retrieval has been facilitated by AS. Also once completed the EDHOC session, C and RS have established a long-term secret key PRK_out enjoying forward secrecy. This is in turn used by C and RS to establish an OSCORE Security Context.</t>
      <t>Furthermore, RS achieves confirmation that C has PRK_out (proof-of-possession) when completing the EDHOC session. Rather, C achieves confirmation that RS has PRK_out (proof-of-possession) either when receiving the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the established OSCORE Security Context.</t>
      <t>OSCORE is designed to secure point-to-point communication, providing a secure binding between a request and the corresponding response(s). Thus, the basic OSCORE protocol is not intended for use in point-to-multipoint communication (e.g., enforced via multicast or a publish-subscribe model). Implementers of this profile should make sure that their use case of OSCORE corresponds to the expected one, in order to prevent weakening the security assurances provided by OSCORE.</t>
      <t>When using this profile, it is RECOMMENDED that RS stores only one access token per client. The use of multiple access tokens for a single client increases the strain on RS, since it must consider every access token associated with the client and calculate the actual permissions that client has. Also, access tokens indicating different or disjoint permissions from each other may lead RS to enforce wrong permissions.  If one of the access tokens expires earlier than others, the resulting permissions may offer insufficient protection. Developers SHOULD avoid using multiple access tokens for a same client. Furthermore, RS MUST NOT store more than one access token per client per PoP-key (i.e., per client's authentication credential).</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general privacy considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the privacy considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="I-D.ietf-lake-edhoc"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>An unprotected response to an unauthorized request may disclose information about RS and/or its existing relationship with C. It is advisable to include as little information as possible in an unencrypted response. When an OSCORE Security Context already exists between C and RS, more detailed information may be included.</t>
      <t>Except for the case where C attempts to update its access rights, the (encrypted) access token is sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, if C uses the same single access token from multiple locations, it can risk being tracked by the access token's value even when the access token is encrypted.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the EDHOC session. That is, the EDHOC Connection Identifier C_I of C is going to be the OSCORE Recipient ID of C (the OSCORE Sender ID of RS). Conversely, the EDHOC Connection Identifier C_R of RS is going to be the OSCORE Recipient ID of RS (the OSCORE Sender ID of C). These OSCORE identifiers are privacy sensitive (see <xref section="12.8" sectionFormat="of" target="RFC8613"/>). In particular, they could reveal information about C, or may be used for correlating different requests from C, e.g., across different networks that C has joined and left over time. This can be mitigated if C and RS dynamically update their OSCORE identifiers, e.g., by using the method defined in <xref target="I-D.ietf-core-oscore-key-update"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with
the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE OAuth Profile Registry</name>
        <t>IANA is asked to add the following entry to the "ACE OAuth Profile"
Registry following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Profile name: coap_edhoc_oscore</t>
          </li>
          <li>
            <t>Profile Description: Profile for delegating client authentication and
authorization in a constrained environment by establishing an OSCORE Security Context <xref target="RFC8613"/> between resource-constrained nodes, through the execution of the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>.</t>
          </li>
          <li>
            <t>Profile ID:  TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Reference:  [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry.</t>
        <ul spacing="normal">
          <li>
            <t>Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request, token response</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: "edhoc_info"</t>
          </li>
          <li>
            <t>CBOR Key: TBD</t>
          </li>
          <li>
            <t>Value Type: map</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-json-claims">
        <name>JSON Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "JSON Web Token Claims" registry following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Claim Description: Information for EDHOC session</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "CBOR Web Token Claims" registry following the procedure specified in <xref target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Claim Description: Information for EDHOC session</t>
          </li>
          <li>
            <t>JWT Claim Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Claim Key: TBD</t>
          </li>
          <li>
            <t>Claim Value Type(s): map</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-jwt-confirmation-methods">
        <name>JWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "JWT Confirmation Methods" registry following the procedure specified in <xref target="RFC7800"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5c"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5b"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5t"</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5u"</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5c"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5b"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5t"</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5u"</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "kcwt"</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "kccs"</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-cwt-confirmation-methods">
        <name>CWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "CWT Confirmation Methods" registry following the procedure specified in <xref target="RFC8747"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5chain</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5c"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5chain"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5bag</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5b"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5bag"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5t"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5u"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): uri</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5c"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5b"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5t"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5u"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): uri</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kcwt</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "kcwt"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_Messages</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kccs</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "kccs"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): map / #6(map)</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to add the following entry to the "EDHOC External Authorization Data" registry defined in <xref section="9.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <t>The ead_label = TBD and the ead_value defines an access token in EAD_3, with processing specified in <xref target="AT-in-EAD"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Label: TBD</t>
          </li>
          <li>
            <t>Value Type: bstr</t>
          </li>
          <li>
            <t>Description: Access Token</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-parameters">
        <name>EDHOC Information Registry</name>
        <t>It is requested that IANA create a new registry entitled "EDHOC Information" registry. The registry is to be created with registration policy Expert Review <xref target="RFC8126"/>. Guidelines for the experts are provided in <xref target="iana-expert-review"/>. It should be noted that in addition to the expert review, some portions of the registry require a specification, potentially on Standards Track, be supplied as well.</t>
        <t>The columns of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: A descriptive name that enables easier reference to this item. Because a core goal of this document is for the resulting representations to be compact, it is RECOMMENDED that the name be short.  </t>
            <t>
This name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts determine that there is a compelling reason to allow an exception. The name is not used in the CBOR encoding.</t>
          </li>
          <li>
            <t>CBOR label: The value to be used as CBOR abbreviation of the item.  </t>
            <t>
The value MUST be unique. The value can be a positive integer, a negative integer or a string. Integer values between -256 and 255 and strings of length 1 are to be registered by Standards Track documents (Standards Action). Integer values from -65536 to -257 and from 256 to 65535 and strings of maximum length 2 are to be registered by public specifications (Specification Required). Integer values greater than 65535 and strings of length greater than 2 are subject to the Expert Review policy. Integer values less than -65536 are marked as private use.</t>
          </li>
          <li>
            <t>CBOR type: The CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</t>
          </li>
          <li>
            <t>Registry: The registry that values of the item may come from, if one exists.</t>
          </li>
          <li>
            <t>Description: A brief description of this item.</t>
          </li>
          <li>
            <t>Specification: A pointer to the public specification for the item, if one exists.</t>
          </li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="fig-cbor-key-edhoc-params"/>. The "Specification" column for all of these entries will be this document and <xref target="I-D.ietf-lake-edhoc"/>.</t>
      </section>
      <section anchor="iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>The IANA registry established in this document is defined to use the registration policy Expert Review. This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason so they should be given substantial latitude.</t>
        <t>Expert reviewers should take into consideration the following points:</t>
        <ul spacing="normal">
          <li>
            <t>Point squatting should be discouraged. Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered and that the point is likely to be used in deployments. The zones tagged as private use are intended for testing purposes and closed environments; code points in other ranges should not be assigned for testing.</t>
          </li>
          <li>
            <t>Specifications are required for the Standards Action range of point assignment. Specifications should exist for Specification Required ranges, but early assignment before a specification is available is considered to be permissible. Specifications are needed for the first-come, first-serve range if they are expected to be used outside of closed environments in an interoperable way. When specifications are not provided, the description provided needs to have sufficient information to identify what the point is being used for.</t>
          </li>
          <li>
            <t>Experts should take into account the expected usage of fields when approving point assignment. The fact that there is a range for Standards Track documents does not mean that a Standards Track document cannot have points assigned outside of that range. The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <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="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC8174">
          <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="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8392">
          <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="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613">
          <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="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949">
          <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="RFC9053">
          <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="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc">
          <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="22" month="January" year="2024"/>
            <abstract>
              <t>   This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a
   very compact and lightweight authenticated Diffie-Hellman key
   exchange with ephemeral keys.  EDHOC provides mutual authentication,
   forward secrecy, and identity protection.  EDHOC is intended for
   usage in constrained scenarios and a main use case is to establish an
   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-23"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="29" month="November" year="2023"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol Ephemeral Diffie-
   Hellman Over COSE (EDHOC) can be run over the Constrained Application
   Protocol (CoAP) and used by two peers to establish a Security Context
   for the security protocol Object Security for Constrained RESTful
   Environments (OSCORE).  This document details this use of the EDHOC
   protocol, by specifying a number of additional and optional
   mechanisms.  These especially include an optimization approach for
   combining the execution of EDHOC with the first OSCORE transaction.
   This combination reduces the number of round trips required to set up
   an OSCORE Security Context and to complete an OSCORE transaction
   using that Security Context.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-10"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <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="4" month="March" year="2024"/>
            <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% while also significantly reducing memory and code size
   compared to ASN.1.  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 Certificate Signing Requests, 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-09"/>
        </reference>
        <reference anchor="I-D.ietf-ace-workflow-and-params">
          <front>
            <title>Alternative Workflow and OAuth Parameters for the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <date day="2" month="January" year="2024"/>
            <abstract>
              <t>   This document updates the Authentication and Authorization for
   Constrained Environments Framework (ACE, RFC 9200) as follows.
   First, it defines a new, alternative workflow that the Authorization
   Server can use for uploading an access token to a Resource Server on
   behalf of the Client.  Second, it defines new parameters and
   encodings for the OAuth 2.0 token endpoint at the Authorization
   Server.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-00"/>
        </reference>
        <reference anchor="COSE.Header.Parameters" target="https://www.iana.org/assignments/cose/cose.xhtml#header-parameters">
          <front>
            <title>COSE Header Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="RFC8446">
          <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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.  Also, this document
   defines a procedure that two endpoints can use to update their OSCORE
   identifiers, run either stand-alone or during a KUDOS execution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-07"/>
        </reference>
        <reference anchor="I-D.ietf-lake-authz">
          <front>
            <title>Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE</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="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>INRIA</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-00"/>
        </reference>
        <reference anchor="I-D.ietf-ace-coap-est-oscore">
          <front>
            <title>Protecting EST Payloads with OSCORE</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>Inria</organization>
            </author>
            <author fullname="Timothy Claeys" initials="T." surname="Claeys">
         </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   This document specifies public-key certificate enrollment procedures
   protected with lightweight application-layer security protocols
   suitable for Internet of Things (IoT) deployments.  The protocols
   leverage payload formats defined in Enrollment over Secure Transport
   (EST) and existing IoT standards including the Constrained
   Application Protocol (CoAP), Concise Binary Object Representation
   (CBOR) and the CBOR Object Signing and Encryption (COSE) format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-est-oscore-03"/>
        </reference>
      </references>
    </references>
    <?line 1130?>

<section anchor="examples">
      <name>Examples</name>
      <t>This appendix provides examples where this profile of ACE is used. In particular:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="example-without-optimization"/> does not make use of use of any optimization.</t>
        </li>
        <li>
          <t><xref target="example-with-optimization"/> makes use of the optimizations defined in this specification, hence reducing the roundtrips of the interactions between the Client and the Resource Server.</t>
        </li>
        <li>
          <t><xref target="example-without-optimization-as-posting"/> considers an alternative workflow where AS uploads the access token to RS.</t>
        </li>
      </ul>
      <t>All these examples build on the following assumptions, as relying on expected early procedures performed at AS. These include the registration of RSs by the respective Resource Owners as well as the registrations of Clients authorized to request access token for those RSs.</t>
      <ul spacing="normal">
        <li>
          <t>AS knows the authentication credential AUTH_CRED_C of the Client C.</t>
        </li>
        <li>
          <t>The Client knows the authentication credential AUTH_CRED_AS of AS.</t>
        </li>
        <li>
          <t>AS knows the authentication credential AUTH_CRED_RS of RS.</t>
        </li>
        <li>
          <t>RS knows the authentication credential AUTH_CRED_AS of AS.  </t>
          <t>
This is relevant in case AS and RS actually require a secure association (e.g., for RS to perform token introspection at AS, or for AS to upload an access token to RS on behalf of the Client).</t>
        </li>
      </ul>
      <t>As a result of the assumptions above, it is possible to limit the transport of AUTH_CRED_C and AUTH_CRED_RS by value only to the following two cases, and only when the Client requests an access token for RS in question for the first time when considering the pair (AUTH_CRED_C, AUTH_CRED_RS).</t>
      <ul spacing="normal">
        <li>
          <t>In the Token Response from AS to the Client, where AUTH_CRED_RS is specified by the 'rs_cnf' parameter.</t>
        </li>
        <li>
          <t>In the access token, where AUTH_CRED_C is specified by the 'cnf' claim.</t>
        </li>
      </ul>
      <t>Note that, even under the circumstances mentioned above, AUTH_CRED_C might rather be indicated by reference. This is possible if RS can effectively use such a reference from the access token to retrieve AUTH_CRED_C (e.g., from a trusted repository of authentication credentials reachable through a non-constrained link), and if AS is in turn aware of that.</t>
      <t>In any other case, it is otherwise possible to indicate both AUTH_CRED_C and AUTH_CRED_RS by reference, when performing the ACE access control workflow as well as later on when the Client and RS run EDHOC.</t>
      <section anchor="example-without-optimization">
        <name>Workflow without Optimizations</name>
        <t>The example below considers the simplest (though least efficient) interaction between the Client and RS. That is: first C uploads the access token to RS; then C and RS run EDHOC; and, finally, the Client accesses the protected resource at RS.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="3216" width="576" viewBox="0 0 576 3216" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,816" fill="none" stroke="black"/>
              <path d="M 40,912 L 40,976" fill="none" stroke="black"/>
              <path d="M 40,1072 L 40,1616" fill="none" stroke="black"/>
              <path d="M 40,1792 L 40,1808" fill="none" stroke="black"/>
              <path d="M 40,1872 L 40,1888" fill="none" stroke="black"/>
              <path d="M 40,2032 L 40,3200" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,816" fill="none" stroke="black"/>
              <path d="M 320,912 L 320,952" fill="none" stroke="black"/>
              <path d="M 320,1072 L 320,1112" fill="none" stroke="black"/>
              <path d="M 320,1128 L 320,1192" fill="none" stroke="black"/>
              <path d="M 320,1208 L 320,1256" fill="none" stroke="black"/>
              <path d="M 320,1272 L 320,1384" fill="none" stroke="black"/>
              <path d="M 320,1400 L 320,1528" fill="none" stroke="black"/>
              <path d="M 320,1544 L 320,1592" fill="none" stroke="black"/>
              <path d="M 320,1792 L 320,1808" fill="none" stroke="black"/>
              <path d="M 320,1872 L 320,1888" fill="none" stroke="black"/>
              <path d="M 320,2032 L 320,2584" fill="none" stroke="black"/>
              <path d="M 320,2600 L 320,2664" fill="none" stroke="black"/>
              <path d="M 320,2680 L 320,2744" fill="none" stroke="black"/>
              <path d="M 320,2760 L 320,2824" fill="none" stroke="black"/>
              <path d="M 320,2840 L 320,2952" fill="none" stroke="black"/>
              <path d="M 320,2968 L 320,3096" fill="none" stroke="black"/>
              <path d="M 320,3112 L 320,3176" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,816" fill="none" stroke="black"/>
              <path d="M 568,912 L 568,976" fill="none" stroke="black"/>
              <path d="M 568,1072 L 568,1616" fill="none" stroke="black"/>
              <path d="M 568,1792 L 568,1808" fill="none" stroke="black"/>
              <path d="M 568,1872 L 568,1888" fill="none" stroke="black"/>
              <path d="M 568,2032 L 568,3200" fill="none" stroke="black"/>
              <path d="M 48,80 L 312,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 312,144" fill="none" stroke="black"/>
              <path d="M 48,256 L 312,256" fill="none" stroke="black"/>
              <path d="M 48,384 L 312,384" fill="none" stroke="black"/>
              <path d="M 48,496 L 312,496" fill="none" stroke="black"/>
              <path d="M 48,960 L 560,960" fill="none" stroke="black"/>
              <path d="M 48,1120 L 560,1120" fill="none" stroke="black"/>
              <path d="M 48,1200 L 560,1200" fill="none" stroke="black"/>
              <path d="M 48,1264 L 560,1264" fill="none" stroke="black"/>
              <path d="M 48,1392 L 560,1392" fill="none" stroke="black"/>
              <path d="M 48,1536 L 560,1536" fill="none" stroke="black"/>
              <path d="M 48,1600 L 560,1600" fill="none" stroke="black"/>
              <path d="M 48,2080 L 312,2080" fill="none" stroke="black"/>
              <path d="M 48,2208 L 312,2208" fill="none" stroke="black"/>
              <path d="M 48,2592 L 560,2592" fill="none" stroke="black"/>
              <path d="M 48,2672 L 560,2672" fill="none" stroke="black"/>
              <path d="M 48,2752 L 560,2752" fill="none" stroke="black"/>
              <path d="M 48,2832 L 560,2832" fill="none" stroke="black"/>
              <path d="M 48,2960 L 560,2960" fill="none" stroke="black"/>
              <path d="M 48,3104 L 560,3104" fill="none" stroke="black"/>
              <path d="M 48,3184 L 560,3184" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,3104 556,3098.4 556,3109.6" fill="black" transform="rotate(0,560,3104)"/>
              <polygon class="arrowhead" points="568,2960 556,2954.4 556,2965.6" fill="black" transform="rotate(0,560,2960)"/>
              <polygon class="arrowhead" points="568,2752 556,2746.4 556,2757.6" fill="black" transform="rotate(0,560,2752)"/>
              <polygon class="arrowhead" points="568,2592 556,2586.4 556,2597.6" fill="black" transform="rotate(0,560,2592)"/>
              <polygon class="arrowhead" points="568,1536 556,1530.4 556,1541.6" fill="black" transform="rotate(0,560,1536)"/>
              <polygon class="arrowhead" points="568,1392 556,1386.4 556,1397.6" fill="black" transform="rotate(0,560,1392)"/>
              <polygon class="arrowhead" points="568,1200 556,1194.4 556,1205.6" fill="black" transform="rotate(0,560,1200)"/>
              <polygon class="arrowhead" points="568,960 556,954.4 556,965.6" fill="black" transform="rotate(0,560,960)"/>
              <polygon class="arrowhead" points="320,2080 308,2074.4 308,2085.6" fill="black" transform="rotate(0,312,2080)"/>
              <polygon class="arrowhead" points="320,384 308,378.4 308,389.6" fill="black" transform="rotate(0,312,384)"/>
              <polygon class="arrowhead" points="320,256 308,250.4 308,261.6" fill="black" transform="rotate(0,312,256)"/>
              <polygon class="arrowhead" points="320,80 308,74.4 308,85.6" fill="black" transform="rotate(0,312,80)"/>
              <polygon class="arrowhead" points="56,3184 44,3178.4 44,3189.6" fill="black" transform="rotate(180,48,3184)"/>
              <polygon class="arrowhead" points="56,2832 44,2826.4 44,2837.6" fill="black" transform="rotate(180,48,2832)"/>
              <polygon class="arrowhead" points="56,2672 44,2666.4 44,2677.6" fill="black" transform="rotate(180,48,2672)"/>
              <polygon class="arrowhead" points="56,2208 44,2202.4 44,2213.6" fill="black" transform="rotate(180,48,2208)"/>
              <polygon class="arrowhead" points="56,1600 44,1594.4 44,1605.6" fill="black" transform="rotate(180,48,1600)"/>
              <polygon class="arrowhead" points="56,1264 44,1258.4 44,1269.6" fill="black" transform="rotate(180,48,1264)"/>
              <polygon class="arrowhead" points="56,1120 44,1114.4 44,1125.6" fill="black" transform="rotate(180,48,1120)"/>
              <polygon class="arrowhead" points="56,496 44,490.4 44,501.6" fill="black" transform="rotate(180,48,496)"/>
              <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
              <circle cx="80" cy="736" r="6" class="closeddot" fill="black"/>
              <circle cx="80" cy="768" r="6" class="closeddot" fill="black"/>
              <circle cx="80" cy="2448" r="6" class="closeddot" fill="black"/>
              <circle cx="80" cy="2480" r="6" class="closeddot" fill="black"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="316" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="80" y="68">EDHOC</text>
                <text x="144" y="68">message_1</text>
                <text x="196" y="68">to</text>
                <text x="236" y="68">/edhoc</text>
                <text x="16" y="84">M01</text>
                <text x="80" y="132">EDHOC</text>
                <text x="144" y="132">message_2</text>
                <text x="16" y="148">M02</text>
                <text x="96" y="164">ID_CRED_R</text>
                <text x="180" y="164">identifies</text>
                <text x="108" y="180">CRED_R</text>
                <text x="144" y="180">=</text>
                <text x="204" y="180">AUTH_CRED_AS</text>
                <text x="92" y="196">by</text>
                <text x="144" y="196">reference</text>
                <text x="80" y="244">EDHOC</text>
                <text x="144" y="244">message_3</text>
                <text x="196" y="244">to</text>
                <text x="236" y="244">/edhoc</text>
                <text x="16" y="260">M03</text>
                <text x="96" y="276">ID_CRED_I</text>
                <text x="180" y="276">identifies</text>
                <text x="108" y="292">CRED_I</text>
                <text x="144" y="292">=</text>
                <text x="200" y="292">AUTH_CRED_C</text>
                <text x="92" y="308">by</text>
                <text x="144" y="308">reference</text>
                <text x="80" y="356">Token</text>
                <text x="136" y="356">request</text>
                <text x="180" y="356">to</text>
                <text x="220" y="356">/token</text>
                <text x="128" y="372">(OSCORE-protected</text>
                <text x="236" y="372">message)</text>
                <text x="16" y="388">M04</text>
                <text x="96" y="404">'req_cnf'</text>
                <text x="180" y="404">identifies</text>
                <text x="128" y="420">AUTH_CRED_C</text>
                <text x="188" y="420">by</text>
                <text x="240" y="420">reference</text>
                <text x="80" y="468">Token</text>
                <text x="140" y="468">response</text>
                <text x="128" y="484">(OSCORE-protected</text>
                <text x="236" y="484">message)</text>
                <text x="16" y="500">M05</text>
                <text x="92" y="516">'rs_cnf'</text>
                <text x="168" y="516">specifies</text>
                <text x="132" y="532">AUTH_CRED_RS</text>
                <text x="196" y="532">by</text>
                <text x="232" y="532">value</text>
                <text x="112" y="564">'ace_profile'</text>
                <text x="176" y="564">=</text>
                <text x="216" y="580">coap_edhoc_oscore</text>
                <text x="108" y="612">'edhoc_info'</text>
                <text x="204" y="612">specifies:</text>
                <text x="88" y="628">{</text>
                <text x="140" y="644">session_id</text>
                <text x="192" y="644">:</text>
                <text x="228" y="644">h'01',</text>
                <text x="152" y="660">cipher_suites</text>
                <text x="216" y="660">:</text>
                <text x="236" y="660">2,</text>
                <text x="128" y="676">methods</text>
                <text x="168" y="676">:</text>
                <text x="184" y="676">3</text>
                <text x="88" y="692">}</text>
                <text x="68" y="724">In</text>
                <text x="96" y="724">the</text>
                <text x="140" y="724">access</text>
                <text x="196" y="724">token:</text>
                <text x="104" y="740">the</text>
                <text x="144" y="740">'cnf'</text>
                <text x="192" y="740">claim</text>
                <text x="256" y="740">specifies</text>
                <text x="136" y="756">AUTH_CRED_C</text>
                <text x="196" y="756">by</text>
                <text x="232" y="756">value</text>
                <text x="104" y="772">the</text>
                <text x="172" y="772">'edhoc_info'</text>
                <text x="248" y="772">claim</text>
                <text x="128" y="788">specifies</text>
                <text x="184" y="788">the</text>
                <text x="220" y="788">same</text>
                <text x="252" y="788">as</text>
                <text x="140" y="804">'edhoc_info'</text>
                <text x="216" y="804">above</text>
                <text x="76" y="852">Possibly</text>
                <text x="136" y="852">after</text>
                <text x="184" y="852">chain</text>
                <text x="264" y="852">verification,</text>
                <text x="336" y="852">the</text>
                <text x="380" y="852">Client</text>
                <text x="428" y="852">adds</text>
                <text x="500" y="852">AUTH_CRED_RS</text>
                <text x="52" y="868">to</text>
                <text x="80" y="868">the</text>
                <text x="112" y="868">set</text>
                <text x="140" y="868">of</text>
                <text x="168" y="868">its</text>
                <text x="216" y="868">trusted</text>
                <text x="268" y="868">peer</text>
                <text x="348" y="868">authentication</text>
                <text x="460" y="868">credentials,</text>
                <text x="72" y="884">relying</text>
                <text x="116" y="884">on</text>
                <text x="140" y="884">AS</text>
                <text x="164" y="884">as</text>
                <text x="208" y="884">trusted</text>
                <text x="280" y="884">provider/</text>
                <text x="80" y="932">Token</text>
                <text x="132" y="932">upload</text>
                <text x="172" y="932">to</text>
                <text x="232" y="932">/authz-info</text>
                <text x="108" y="948">(unprotected</text>
                <text x="196" y="948">message)</text>
                <text x="16" y="964">M06</text>
                <text x="320" y="980">|</text>
                <text x="76" y="1012">Possibly</text>
                <text x="136" y="1012">after</text>
                <text x="184" y="1012">chain</text>
                <text x="264" y="1012">verification,</text>
                <text x="332" y="1012">RS</text>
                <text x="364" y="1012">adds</text>
                <text x="432" y="1012">AUTH_CRED_C</text>
                <text x="52" y="1028">to</text>
                <text x="80" y="1028">the</text>
                <text x="112" y="1028">set</text>
                <text x="140" y="1028">of</text>
                <text x="168" y="1028">its</text>
                <text x="216" y="1028">trusted</text>
                <text x="268" y="1028">peer</text>
                <text x="348" y="1028">authentication</text>
                <text x="460" y="1028">credentials,</text>
                <text x="72" y="1044">relying</text>
                <text x="116" y="1044">on</text>
                <text x="140" y="1044">AS</text>
                <text x="164" y="1044">as</text>
                <text x="208" y="1044">trusted</text>
                <text x="280" y="1044">provider/</text>
                <text x="84" y="1092">2.01</text>
                <text x="144" y="1092">(Created)</text>
                <text x="116" y="1108">(unprotected</text>
                <text x="204" y="1108">message)</text>
                <text x="16" y="1124">M07</text>
                <text x="80" y="1172">EDHOC</text>
                <text x="144" y="1172">message_1</text>
                <text x="196" y="1172">to</text>
                <text x="236" y="1172">/edhoc</text>
                <text x="72" y="1188">(no</text>
                <text x="116" y="1188">access</text>
                <text x="176" y="1188">control</text>
                <text x="220" y="1188">is</text>
                <text x="272" y="1188">enforced)</text>
                <text x="16" y="1204">M08</text>
                <text x="80" y="1252">EDHOC</text>
                <text x="144" y="1252">message_2</text>
                <text x="16" y="1268">M09</text>
                <text x="96" y="1284">ID_CRED_R</text>
                <text x="180" y="1284">identifies</text>
                <text x="108" y="1300">CRED_R</text>
                <text x="144" y="1300">=</text>
                <text x="204" y="1300">AUTH_CRED_RS</text>
                <text x="92" y="1316">by</text>
                <text x="144" y="1316">reference</text>
                <text x="80" y="1364">EDHOC</text>
                <text x="144" y="1364">message_3</text>
                <text x="196" y="1364">to</text>
                <text x="236" y="1364">/edhoc</text>
                <text x="72" y="1380">(no</text>
                <text x="116" y="1380">access</text>
                <text x="176" y="1380">control</text>
                <text x="220" y="1380">is</text>
                <text x="272" y="1380">enforced)</text>
                <text x="16" y="1396">M10</text>
                <text x="96" y="1412">ID_CRED_I</text>
                <text x="180" y="1412">identifies</text>
                <text x="108" y="1428">CRED_I</text>
                <text x="144" y="1428">=</text>
                <text x="200" y="1428">AUTH_CRED_C</text>
                <text x="92" y="1444">by</text>
                <text x="144" y="1444">reference</text>
                <text x="84" y="1492">Access</text>
                <text x="124" y="1492">to</text>
                <text x="176" y="1492">protected</text>
                <text x="252" y="1492">resource</text>
                <text x="128" y="1508">(OSCORE-protected</text>
                <text x="236" y="1508">message)</text>
                <text x="88" y="1524">(access</text>
                <text x="152" y="1524">control</text>
                <text x="196" y="1524">is</text>
                <text x="248" y="1524">enforced)</text>
                <text x="16" y="1540">M11</text>
                <text x="92" y="1572">Response</text>
                <text x="128" y="1588">(OSCORE-protected</text>
                <text x="236" y="1588">message)</text>
                <text x="16" y="1604">M12</text>
                <text x="320" y="1620">|</text>
                <text x="64" y="1652">Later</text>
                <text x="104" y="1652">on,</text>
                <text x="136" y="1652">the</text>
                <text x="180" y="1652">access</text>
                <text x="232" y="1652">token</text>
                <text x="288" y="1652">expires</text>
                <text x="336" y="1652">...</text>
                <text x="56" y="1668">-</text>
                <text x="80" y="1668">The</text>
                <text x="124" y="1668">Client</text>
                <text x="168" y="1668">and</text>
                <text x="196" y="1668">RS</text>
                <text x="236" y="1668">delete</text>
                <text x="288" y="1668">their</text>
                <text x="340" y="1668">OSCORE</text>
                <text x="404" y="1668">Security</text>
                <text x="472" y="1668">Context</text>
                <text x="520" y="1668">and</text>
                <text x="88" y="1684">purge</text>
                <text x="128" y="1684">the</text>
                <text x="168" y="1684">EDHOC</text>
                <text x="224" y="1684">session</text>
                <text x="276" y="1684">used</text>
                <text x="308" y="1684">to</text>
                <text x="348" y="1684">derive</text>
                <text x="388" y="1684">it</text>
                <text x="432" y="1684">(unless</text>
                <text x="480" y="1684">the</text>
                <text x="516" y="1684">same</text>
                <text x="96" y="1700">session</text>
                <text x="140" y="1700">is</text>
                <text x="172" y="1700">also</text>
                <text x="212" y="1700">used</text>
                <text x="248" y="1700">for</text>
                <text x="288" y="1700">other</text>
                <text x="352" y="1700">reasons).</text>
                <text x="56" y="1716">-</text>
                <text x="76" y="1716">RS</text>
                <text x="120" y="1716">retains</text>
                <text x="200" y="1716">AUTH_CRED_C</text>
                <text x="260" y="1716">as</text>
                <text x="296" y="1716">still</text>
                <text x="348" y="1716">valid,</text>
                <text x="80" y="1732">and</text>
                <text x="108" y="1732">AS</text>
                <text x="144" y="1732">knows</text>
                <text x="192" y="1732">about</text>
                <text x="232" y="1732">it.</text>
                <text x="56" y="1748">-</text>
                <text x="80" y="1748">The</text>
                <text x="124" y="1748">Client</text>
                <text x="184" y="1748">retains</text>
                <text x="268" y="1748">AUTH_CRED_RS</text>
                <text x="332" y="1748">as</text>
                <text x="368" y="1748">still</text>
                <text x="420" y="1748">valid,</text>
                <text x="80" y="1764">and</text>
                <text x="108" y="1764">AS</text>
                <text x="144" y="1764">knows</text>
                <text x="192" y="1764">about</text>
                <text x="232" y="1764">it.</text>
                <text x="60" y="1844">Time</text>
                <text x="108" y="1844">passes</text>
                <text x="152" y="1844">...</text>
                <text x="56" y="1924">The</text>
                <text x="100" y="1924">Client</text>
                <text x="148" y="1924">asks</text>
                <text x="184" y="1924">for</text>
                <text x="208" y="1924">a</text>
                <text x="232" y="1924">new</text>
                <text x="276" y="1924">access</text>
                <text x="332" y="1924">token;</text>
                <text x="376" y="1924">now</text>
                <text x="408" y="1924">all</text>
                <text x="440" y="1924">the</text>
                <text x="100" y="1940">authentication</text>
                <text x="208" y="1940">credentials</text>
                <text x="272" y="1940">can</text>
                <text x="300" y="1940">be</text>
                <text x="352" y="1940">indicated</text>
                <text x="404" y="1940">by</text>
                <text x="456" y="1940">reference</text>
                <text x="56" y="1972">The</text>
                <text x="96" y="1972">price</text>
                <text x="132" y="1972">to</text>
                <text x="160" y="1972">pay</text>
                <text x="188" y="1972">is</text>
                <text x="212" y="1972">on</text>
                <text x="240" y="1972">AS,</text>
                <text x="280" y="1972">about</text>
                <text x="352" y="1972">remembering</text>
                <text x="420" y="1972">that</text>
                <text x="452" y="1972">at</text>
                <text x="488" y="1972">least</text>
                <text x="56" y="1988">one</text>
                <text x="100" y="1988">access</text>
                <text x="152" y="1988">token</text>
                <text x="192" y="1988">has</text>
                <text x="228" y="1988">been</text>
                <text x="276" y="1988">issued</text>
                <text x="320" y="1988">for</text>
                <text x="352" y="1988">the</text>
                <text x="388" y="1988">pair</text>
                <text x="444" y="1988">(Client,</text>
                <text x="496" y="1988">RS)</text>
                <text x="56" y="2004">and</text>
                <text x="120" y="2004">considering</text>
                <text x="184" y="2004">the</text>
                <text x="220" y="2004">pair</text>
                <text x="296" y="2004">(AUTH_CRED_C,</text>
                <text x="408" y="2004">AUTH_CRED_RS)</text>
                <text x="80" y="2052">Token</text>
                <text x="136" y="2052">request</text>
                <text x="180" y="2052">to</text>
                <text x="220" y="2052">/token</text>
                <text x="128" y="2068">(OSCORE-protected</text>
                <text x="236" y="2068">message)</text>
                <text x="16" y="2084">M13</text>
                <text x="96" y="2100">'req_cnf'</text>
                <text x="180" y="2100">identifies</text>
                <text x="108" y="2116">CRED_I</text>
                <text x="144" y="2116">=</text>
                <text x="200" y="2116">AUTH_CRED_C</text>
                <text x="92" y="2132">by</text>
                <text x="144" y="2132">reference</text>
                <text x="80" y="2180">Token</text>
                <text x="140" y="2180">response</text>
                <text x="128" y="2196">(OSCORE-protected</text>
                <text x="236" y="2196">message)</text>
                <text x="16" y="2212">M14</text>
                <text x="92" y="2228">'rs_cnf'</text>
                <text x="172" y="2228">identifies</text>
                <text x="132" y="2244">AUTH_CRED_RS</text>
                <text x="196" y="2244">by</text>
                <text x="248" y="2244">reference</text>
                <text x="112" y="2276">'ace_profile'</text>
                <text x="176" y="2276">=</text>
                <text x="216" y="2292">coap_edhoc_oscore</text>
                <text x="108" y="2324">'edhoc_info'</text>
                <text x="204" y="2324">specifies:</text>
                <text x="88" y="2340">{</text>
                <text x="140" y="2356">session_id</text>
                <text x="192" y="2356">:</text>
                <text x="228" y="2356">h'05',</text>
                <text x="152" y="2372">cipher_suites</text>
                <text x="216" y="2372">:</text>
                <text x="236" y="2372">2,</text>
                <text x="128" y="2388">methods</text>
                <text x="168" y="2388">:</text>
                <text x="184" y="2388">3</text>
                <text x="88" y="2404">}</text>
                <text x="68" y="2436">In</text>
                <text x="96" y="2436">the</text>
                <text x="140" y="2436">access</text>
                <text x="196" y="2436">token:</text>
                <text x="104" y="2452">the</text>
                <text x="144" y="2452">'cnf'</text>
                <text x="192" y="2452">claim</text>
                <text x="256" y="2452">specifies</text>
                <text x="136" y="2468">AUTH_CRED_C</text>
                <text x="196" y="2468">by</text>
                <text x="248" y="2468">reference</text>
                <text x="104" y="2484">the</text>
                <text x="172" y="2484">'edhoc_info'</text>
                <text x="248" y="2484">claim</text>
                <text x="128" y="2500">specifies</text>
                <text x="184" y="2500">the</text>
                <text x="220" y="2500">same</text>
                <text x="252" y="2500">as</text>
                <text x="140" y="2516">'edhoc_info'</text>
                <text x="216" y="2516">above</text>
                <text x="80" y="2564">Token</text>
                <text x="132" y="2564">upload</text>
                <text x="172" y="2564">to</text>
                <text x="232" y="2564">/authz-info</text>
                <text x="108" y="2580">(unprotected</text>
                <text x="196" y="2580">message)</text>
                <text x="16" y="2596">M15</text>
                <text x="76" y="2644">2.01</text>
                <text x="136" y="2644">(Created)</text>
                <text x="108" y="2660">(unprotected</text>
                <text x="196" y="2660">message)</text>
                <text x="16" y="2676">M16</text>
                <text x="80" y="2724">EDHOC</text>
                <text x="144" y="2724">message_1</text>
                <text x="196" y="2724">to</text>
                <text x="236" y="2724">/edhoc</text>
                <text x="72" y="2740">(no</text>
                <text x="116" y="2740">access</text>
                <text x="176" y="2740">control</text>
                <text x="220" y="2740">is</text>
                <text x="272" y="2740">enforced)</text>
                <text x="16" y="2756">M17</text>
                <text x="80" y="2804">EDHOC</text>
                <text x="144" y="2804">message_2</text>
                <text x="72" y="2820">(no</text>
                <text x="116" y="2820">access</text>
                <text x="176" y="2820">control</text>
                <text x="220" y="2820">is</text>
                <text x="272" y="2820">enforced)</text>
                <text x="16" y="2836">M18</text>
                <text x="96" y="2852">ID_CRED_R</text>
                <text x="176" y="2852">specifies</text>
                <text x="108" y="2868">CRED_R</text>
                <text x="144" y="2868">=</text>
                <text x="204" y="2868">AUTH_CRED_RS</text>
                <text x="92" y="2884">by</text>
                <text x="144" y="2884">reference</text>
                <text x="80" y="2932">EDHOC</text>
                <text x="144" y="2932">message_3</text>
                <text x="196" y="2932">to</text>
                <text x="236" y="2932">/edhoc</text>
                <text x="72" y="2948">(no</text>
                <text x="116" y="2948">access</text>
                <text x="176" y="2948">control</text>
                <text x="220" y="2948">is</text>
                <text x="272" y="2948">enforced)</text>
                <text x="16" y="2964">M19</text>
                <text x="96" y="2980">ID_CRED_I</text>
                <text x="180" y="2980">identifies</text>
                <text x="108" y="2996">CRED_I</text>
                <text x="144" y="2996">=</text>
                <text x="200" y="2996">AUTH_CRED_C</text>
                <text x="92" y="3012">by</text>
                <text x="144" y="3012">reference</text>
                <text x="84" y="3060">Access</text>
                <text x="124" y="3060">to</text>
                <text x="176" y="3060">protected</text>
                <text x="252" y="3060">resource</text>
                <text x="300" y="3060">/r</text>
                <text x="128" y="3076">(OSCORE-protected</text>
                <text x="236" y="3076">message)</text>
                <text x="88" y="3092">(access</text>
                <text x="152" y="3092">control</text>
                <text x="196" y="3092">is</text>
                <text x="248" y="3092">enforced)</text>
                <text x="16" y="3108">M20</text>
                <text x="92" y="3156">Response</text>
                <text x="128" y="3172">(OSCORE-protected</text>
                <text x="236" y="3172">message)</text>
                <text x="16" y="3188">M21</text>
                <text x="320" y="3204">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
M03 |--------------------------------->|                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M04 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     AUTH_CRED_C by reference     |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M05 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       session_id : h'01',        |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |    * the 'cnf' claim specifies   |                              |
    |      AUTH_CRED_C by value        |                              |
    |    * the 'edhoc_info' claim      |                              |
    |      specifies the same as       |                              |
    |      'edhoc_info' above          |                              |
    |                                  |                              |

     Possibly after chain verification, the Client adds AUTH_CRED_RS
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider/

    |                                  |                              |
    |  Token upload to /authz-info     |                              |
    |  (unprotected message)           |                              |
M06 |---------------------------------------------------------------->|
    |                                  |                              |

     Possibly after chain verification, RS adds AUTH_CRED_C
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider/

    |                                  |                              |
    |   2.01 (Created)                 |                              |
    |   (unprotected message)          |                              |
M07 |<----------------------------------------------------------------|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M08 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M09 |<----------------------------------------------------------------|
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M10 |---------------------------------------------------------------->|
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource    |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M11 |---------------------------------------------------------------->|
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M12 |<----------------------------------------------------------------|
    |                                  |                              |

     Later on, the access token expires ...
      - The Client and RS delete their OSCORE Security Context and
        purge the EDHOC session used to derive it (unless the same
        session is also used for other reasons).
      - RS retains AUTH_CRED_C as still valid,
        and AS knows about it.
      - The Client retains AUTH_CRED_RS as still valid,
        and AS knows about it.

    |                                  |                              |
    |                                  |                              |

     Time passes ...

    |                                  |                              |
    |                                  |                              |

     The Client asks for a new access token; now all the
     authentication credentials can be indicated by reference

     The price to pay is on AS, about remembering that at least
     one access token has been issued for the pair (Client, RS)
     and considering the pair (AUTH_CRED_C, AUTH_CRED_RS)

    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M13 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M14 |<---------------------------------|                              |
    |  'rs_cnf' identifies             |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       session_id : h'05',        |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |    * the 'cnf' claim specifies   |                              |
    |      AUTH_CRED_C by reference    |                              |
    |    * the 'edhoc_info' claim      |                              |
    |      specifies the same as       |                              |
    |      'edhoc_info' above          |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token upload to /authz-info     |                              |
    |  (unprotected message)           |                              |
M15 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  2.01 (Created)                  |                              |
    |  (unprotected message)           |                              |
M16 |<----------------------------------------------------------------|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M17 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
    |  (no access control is enforced) |                              |
M18 |<----------------------------------------------------------------|
    |  ID_CRED_R specifies             |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M19 |---------------------------------------------------------------->|
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M20 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M21 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
        </artset>
      </section>
      <section anchor="example-with-optimization">
        <name>Workflow with Optimizations</name>
        <t>The example below builds on the example in <xref target="example-without-optimization"/>, while additionally relying on the two following optimizations.</t>
        <ul spacing="normal">
          <li>
            <t>The access token is not separately uploaded to the /authz-info endpoint at RS, but rather included in the EAD_3 field of EDHOC message_3 sent by C to RS.</t>
          </li>
          <li>
            <t>The Client uses the EDHOC+OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/> is used, when running EDHOC both with AS and with RS.</t>
          </li>
        </ul>
        <t>These two optimizations used together result in the most efficient interaction between C and RS, as consisting of only two roundtrips to upload the access token, run EDHOC and access the protected resource at RS.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1520" width="576" viewBox="0 0 576 1520" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,800" fill="none" stroke="black"/>
              <path d="M 40,896 L 40,960" fill="none" stroke="black"/>
              <path d="M 40,1056 L 40,1344" fill="none" stroke="black"/>
              <path d="M 40,1440 L 40,1504" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,800" fill="none" stroke="black"/>
              <path d="M 320,896 L 320,936" fill="none" stroke="black"/>
              <path d="M 320,1056 L 320,1080" fill="none" stroke="black"/>
              <path d="M 320,1096 L 320,1192" fill="none" stroke="black"/>
              <path d="M 320,1208 L 320,1344" fill="none" stroke="black"/>
              <path d="M 320,1440 L 320,1480" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,800" fill="none" stroke="black"/>
              <path d="M 568,896 L 568,960" fill="none" stroke="black"/>
              <path d="M 568,1056 L 568,1344" fill="none" stroke="black"/>
              <path d="M 568,1440 L 568,1504" fill="none" stroke="black"/>
              <path d="M 48,80 L 312,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 312,144" fill="none" stroke="black"/>
              <path d="M 48,256 L 312,256" fill="none" stroke="black"/>
              <path d="M 64,336 L 80,336" fill="none" stroke="black"/>
              <path d="M 96,336 L 112,336" fill="none" stroke="black"/>
              <path d="M 128,336 L 144,336" fill="none" stroke="black"/>
              <path d="M 48,480 L 312,480" fill="none" stroke="black"/>
              <path d="M 48,944 L 560,944" fill="none" stroke="black"/>
              <path d="M 48,1088 L 560,1088" fill="none" stroke="black"/>
              <path d="M 48,1200 L 560,1200" fill="none" stroke="black"/>
              <path d="M 64,1296 L 80,1296" fill="none" stroke="black"/>
              <path d="M 96,1296 L 112,1296" fill="none" stroke="black"/>
              <path d="M 128,1296 L 144,1296" fill="none" stroke="black"/>
              <path d="M 48,1488 L 560,1488" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,1200 556,1194.4 556,1205.6" fill="black" transform="rotate(0,560,1200)"/>
              <polygon class="arrowhead" points="568,944 556,938.4 556,949.6" fill="black" transform="rotate(0,560,944)"/>
              <polygon class="arrowhead" points="320,256 308,250.4 308,261.6" fill="black" transform="rotate(0,312,256)"/>
              <polygon class="arrowhead" points="320,80 308,74.4 308,85.6" fill="black" transform="rotate(0,312,80)"/>
              <polygon class="arrowhead" points="56,1488 44,1482.4 44,1493.6" fill="black" transform="rotate(180,48,1488)"/>
              <polygon class="arrowhead" points="56,1088 44,1082.4 44,1093.6" fill="black" transform="rotate(180,48,1088)"/>
              <polygon class="arrowhead" points="56,480 44,474.4 44,485.6" fill="black" transform="rotate(180,48,480)"/>
              <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
              <circle cx="64" cy="272" r="6" class="closeddot" fill="black"/>
              <circle cx="64" cy="352" r="6" class="closeddot" fill="black"/>
              <circle cx="64" cy="1216" r="6" class="closeddot" fill="black"/>
              <circle cx="64" cy="1312" r="6" class="closeddot" fill="black"/>
              <circle cx="80" cy="720" r="6" class="closeddot" fill="black"/>
              <circle cx="80" cy="752" r="6" class="closeddot" fill="black"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="316" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="80" y="68">EDHOC</text>
                <text x="144" y="68">message_1</text>
                <text x="196" y="68">to</text>
                <text x="236" y="68">/edhoc</text>
                <text x="16" y="84">M01</text>
                <text x="80" y="132">EDHOC</text>
                <text x="144" y="132">message_2</text>
                <text x="16" y="148">M02</text>
                <text x="96" y="164">ID_CRED_R</text>
                <text x="180" y="164">identifies</text>
                <text x="108" y="180">CRED_R</text>
                <text x="144" y="180">=</text>
                <text x="204" y="180">AUTH_CRED_AS</text>
                <text x="92" y="196">by</text>
                <text x="144" y="196">reference</text>
                <text x="108" y="244">EDHOC+OSCORE</text>
                <text x="192" y="244">request</text>
                <text x="236" y="244">to</text>
                <text x="276" y="244">/token</text>
                <text x="16" y="260">M03</text>
                <text x="96" y="276">EDHOC</text>
                <text x="160" y="276">message_3</text>
                <text x="128" y="292">ID_CRED_I</text>
                <text x="212" y="292">identifies</text>
                <text x="140" y="308">CRED_I</text>
                <text x="176" y="308">=</text>
                <text x="232" y="308">AUTH_CRED_C</text>
                <text x="124" y="324">by</text>
                <text x="176" y="324">reference</text>
                <text x="140" y="356">OSCORE-protected</text>
                <text x="228" y="356">part</text>
                <text x="112" y="372">Token</text>
                <text x="168" y="372">request</text>
                <text x="152" y="388">'req_cnf'</text>
                <text x="236" y="388">identifies</text>
                <text x="160" y="404">AUTH_CRED_C</text>
                <text x="220" y="404">by</text>
                <text x="272" y="404">reference</text>
                <text x="80" y="452">Token</text>
                <text x="140" y="452">response</text>
                <text x="128" y="468">(OSCORE-protected</text>
                <text x="236" y="468">message)</text>
                <text x="16" y="484">M04</text>
                <text x="92" y="500">'rs_cnf'</text>
                <text x="168" y="500">specifies</text>
                <text x="132" y="516">AUTH_CRED_RS</text>
                <text x="196" y="516">by</text>
                <text x="232" y="516">value</text>
                <text x="112" y="548">'ace_profile'</text>
                <text x="176" y="548">=</text>
                <text x="216" y="564">coap_edhoc_oscore</text>
                <text x="108" y="596">'edhoc_info'</text>
                <text x="204" y="596">specifies:</text>
                <text x="88" y="612">{</text>
                <text x="140" y="628">session_id</text>
                <text x="192" y="628">:</text>
                <text x="228" y="628">h'01',</text>
                <text x="152" y="644">cipher_suites</text>
                <text x="216" y="644">:</text>
                <text x="236" y="644">2,</text>
                <text x="128" y="660">methods</text>
                <text x="168" y="660">:</text>
                <text x="184" y="660">3</text>
                <text x="88" y="676">}</text>
                <text x="68" y="708">In</text>
                <text x="96" y="708">the</text>
                <text x="140" y="708">access</text>
                <text x="196" y="708">token:</text>
                <text x="104" y="724">the</text>
                <text x="144" y="724">'cnf'</text>
                <text x="192" y="724">claim</text>
                <text x="256" y="724">specifies</text>
                <text x="136" y="740">AUTH_CRED_C</text>
                <text x="196" y="740">by</text>
                <text x="232" y="740">value</text>
                <text x="104" y="756">the</text>
                <text x="172" y="756">'edhoc_info'</text>
                <text x="248" y="756">claim</text>
                <text x="128" y="772">specifies</text>
                <text x="184" y="772">the</text>
                <text x="220" y="772">same</text>
                <text x="252" y="772">as</text>
                <text x="140" y="788">'edhoc_info'</text>
                <text x="216" y="788">above</text>
                <text x="76" y="836">Possibly</text>
                <text x="136" y="836">after</text>
                <text x="184" y="836">chain</text>
                <text x="264" y="836">verification,</text>
                <text x="336" y="836">the</text>
                <text x="380" y="836">Client</text>
                <text x="428" y="836">adds</text>
                <text x="500" y="836">AUTH_CRED_RS</text>
                <text x="52" y="852">to</text>
                <text x="80" y="852">the</text>
                <text x="112" y="852">set</text>
                <text x="140" y="852">of</text>
                <text x="168" y="852">its</text>
                <text x="216" y="852">trusted</text>
                <text x="268" y="852">peer</text>
                <text x="348" y="852">authentication</text>
                <text x="460" y="852">credentials,</text>
                <text x="72" y="868">relying</text>
                <text x="116" y="868">on</text>
                <text x="140" y="868">AS</text>
                <text x="164" y="868">as</text>
                <text x="208" y="868">trusted</text>
                <text x="276" y="868">provider</text>
                <text x="80" y="916">EDHOC</text>
                <text x="144" y="916">message_1</text>
                <text x="196" y="916">to</text>
                <text x="236" y="916">/edhoc</text>
                <text x="72" y="932">(no</text>
                <text x="116" y="932">access</text>
                <text x="176" y="932">control</text>
                <text x="220" y="932">is</text>
                <text x="272" y="932">enforced)</text>
                <text x="16" y="948">M05</text>
                <text x="320" y="964">|</text>
                <text x="76" y="996">Possibly</text>
                <text x="136" y="996">after</text>
                <text x="184" y="996">chain</text>
                <text x="264" y="996">verification,</text>
                <text x="332" y="996">RS</text>
                <text x="364" y="996">adds</text>
                <text x="432" y="996">AUTH_CRED_C</text>
                <text x="52" y="1012">to</text>
                <text x="80" y="1012">the</text>
                <text x="112" y="1012">set</text>
                <text x="140" y="1012">of</text>
                <text x="168" y="1012">its</text>
                <text x="216" y="1012">trusted</text>
                <text x="268" y="1012">peer</text>
                <text x="348" y="1012">authentication</text>
                <text x="460" y="1012">credentials,</text>
                <text x="72" y="1028">relying</text>
                <text x="116" y="1028">on</text>
                <text x="140" y="1028">AS</text>
                <text x="164" y="1028">as</text>
                <text x="208" y="1028">trusted</text>
                <text x="276" y="1028">provider</text>
                <text x="80" y="1076">EDHOC</text>
                <text x="144" y="1076">message_2</text>
                <text x="16" y="1092">M06</text>
                <text x="96" y="1108">ID_CRED_R</text>
                <text x="180" y="1108">identifies</text>
                <text x="108" y="1124">CRED_R</text>
                <text x="144" y="1124">=</text>
                <text x="204" y="1124">AUTH_CRED_RS</text>
                <text x="92" y="1140">by</text>
                <text x="144" y="1140">reference</text>
                <text x="108" y="1188">EDHOC+OSCORE</text>
                <text x="192" y="1188">request</text>
                <text x="236" y="1188">to</text>
                <text x="260" y="1188">/r</text>
                <text x="16" y="1204">M07</text>
                <text x="96" y="1220">EDHOC</text>
                <text x="160" y="1220">message_3</text>
                <text x="112" y="1236">EAD_3</text>
                <text x="172" y="1236">contains</text>
                <text x="236" y="1236">access</text>
                <text x="288" y="1236">token</text>
                <text x="128" y="1252">ID_CRED_I</text>
                <text x="212" y="1252">identifies</text>
                <text x="140" y="1268">CRED_I</text>
                <text x="176" y="1268">=</text>
                <text x="232" y="1268">AUTH_CRED_C</text>
                <text x="124" y="1284">by</text>
                <text x="176" y="1284">reference</text>
                <text x="140" y="1316">OSCORE-protected</text>
                <text x="228" y="1316">part</text>
                <text x="136" y="1332">Application</text>
                <text x="216" y="1332">request</text>
                <text x="260" y="1332">to</text>
                <text x="284" y="1332">/r</text>
                <text x="64" y="1380">After</text>
                <text x="104" y="1380">the</text>
                <text x="144" y="1380">EDHOC</text>
                <text x="212" y="1380">processing</text>
                <text x="268" y="1380">is</text>
                <text x="324" y="1380">completed,</text>
                <text x="396" y="1380">access</text>
                <text x="456" y="1380">control</text>
                <text x="52" y="1396">is</text>
                <text x="100" y="1396">enforced</text>
                <text x="148" y="1396">on</text>
                <text x="176" y="1396">the</text>
                <text x="224" y="1396">rebuilt</text>
                <text x="324" y="1396">OSCORE-protected</text>
                <text x="428" y="1396">request,</text>
                <text x="60" y="1412">like</text>
                <text x="92" y="1412">if</text>
                <text x="116" y="1412">it</text>
                <text x="144" y="1412">had</text>
                <text x="180" y="1412">been</text>
                <text x="220" y="1412">sent</text>
                <text x="288" y="1412">stand-alone</text>
                <text x="92" y="1460">Response</text>
                <text x="128" y="1476">(OSCORE-protected</text>
                <text x="236" y="1476">message)</text>
                <text x="16" y="1492">M08</text>
                <text x="320" y="1508">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /token  |                              |
M03 |--------------------------------->|                              |
    |  * EDHOC message_3               |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Token request               |                              |
    |         'req_cnf' identifies     |                              |
    |         AUTH_CRED_C by reference |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M04 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       session_id : h'01',        |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |    * the 'cnf' claim specifies   |                              |
    |      AUTH_CRED_C by value        |                              |
    |    * the 'edhoc_info' claim      |                              |
    |      specifies the same as       |                              |
    |      'edhoc_info' above          |                              |
    |                                  |                              |

     Possibly after chain verification, the Client adds AUTH_CRED_RS
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M05 |---------------------------------------------------------------->|
    |                                  |                              |

     Possibly after chain verification, RS adds AUTH_CRED_C
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                  |                              |
    |  EDHOC message_2                 |                              |
M06 |<----------------------------------------------------------------|
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /r      |                              |
M07 |---------------------------------------------------------------->|
    |  * EDHOC message_3               |                              |
    |      EAD_3 contains access token |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Application request to /r   |                              |
    |                                  |                              |

     After the EDHOC processing is completed, access control
     is enforced on the rebuilt OSCORE-protected request,
     like if it had been sent stand-alone

    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M08 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
        </artset>
      </section>
      <section anchor="example-without-optimization-as-posting">
        <name>Alternative Workflow (AS token posting)</name>
        <t>The example below builds on the example in <xref target="example-with-optimization"/>, but assumes that AS is uploading the access token to RS as specified in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1776" width="576" viewBox="0 0 576 1776" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,688" fill="none" stroke="black"/>
              <path d="M 40,784 L 40,1136" fill="none" stroke="black"/>
              <path d="M 40,1232 L 40,1584" fill="none" stroke="black"/>
              <path d="M 40,1680 L 40,1744" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,688" fill="none" stroke="black"/>
              <path d="M 320,784 L 320,1136" fill="none" stroke="black"/>
              <path d="M 320,1232 L 320,1272" fill="none" stroke="black"/>
              <path d="M 320,1288 L 320,1336" fill="none" stroke="black"/>
              <path d="M 320,1352 L 320,1448" fill="none" stroke="black"/>
              <path d="M 320,1464 L 320,1584" fill="none" stroke="black"/>
              <path d="M 320,1680 L 320,1720" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,688" fill="none" stroke="black"/>
              <path d="M 568,784 L 568,1136" fill="none" stroke="black"/>
              <path d="M 568,1232 L 568,1584" fill="none" stroke="black"/>
              <path d="M 568,1680 L 568,1744" fill="none" stroke="black"/>
              <path d="M 48,112 L 312,112" fill="none" stroke="black"/>
              <path d="M 48,176 L 312,176" fill="none" stroke="black"/>
              <path d="M 48,288 L 312,288" fill="none" stroke="black"/>
              <path d="M 64,368 L 80,368" fill="none" stroke="black"/>
              <path d="M 96,368 L 112,368" fill="none" stroke="black"/>
              <path d="M 128,368 L 144,368" fill="none" stroke="black"/>
              <path d="M 328,496 L 560,496" fill="none" stroke="black"/>
              <path d="M 328,816 L 560,816" fill="none" stroke="black"/>
              <path d="M 48,896 L 312,896" fill="none" stroke="black"/>
              <path d="M 48,1280 L 560,1280" fill="none" stroke="black"/>
              <path d="M 48,1344 L 560,1344" fill="none" stroke="black"/>
              <path d="M 48,1456 L 560,1456" fill="none" stroke="black"/>
              <path d="M 64,1536 L 80,1536" fill="none" stroke="black"/>
              <path d="M 96,1536 L 112,1536" fill="none" stroke="black"/>
              <path d="M 128,1536 L 144,1536" fill="none" stroke="black"/>
              <path d="M 48,1728 L 560,1728" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,1456 556,1450.4 556,1461.6" fill="black" transform="rotate(0,560,1456)"/>
              <polygon class="arrowhead" points="568,1280 556,1274.4 556,1285.6" fill="black" transform="rotate(0,560,1280)"/>
              <polygon class="arrowhead" points="568,496 556,490.4 556,501.6" fill="black" transform="rotate(0,560,496)"/>
              <polygon class="arrowhead" points="336,816 324,810.4 324,821.6" fill="black" transform="rotate(180,328,816)"/>
              <polygon class="arrowhead" points="320,288 308,282.4 308,293.6" fill="black" transform="rotate(0,312,288)"/>
              <polygon class="arrowhead" points="320,112 308,106.4 308,117.6" fill="black" transform="rotate(0,312,112)"/>
              <polygon class="arrowhead" points="56,1728 44,1722.4 44,1733.6" fill="black" transform="rotate(180,48,1728)"/>
              <polygon class="arrowhead" points="56,1344 44,1338.4 44,1349.6" fill="black" transform="rotate(180,48,1344)"/>
              <polygon class="arrowhead" points="56,896 44,890.4 44,901.6" fill="black" transform="rotate(180,48,896)"/>
              <polygon class="arrowhead" points="56,176 44,170.4 44,181.6" fill="black" transform="rotate(180,48,176)"/>
              <circle cx="64" cy="304" r="6" class="closeddot" fill="black"/>
              <circle cx="64" cy="384" r="6" class="closeddot" fill="black"/>
              <circle cx="64" cy="1472" r="6" class="closeddot" fill="black"/>
              <circle cx="64" cy="1552" r="6" class="closeddot" fill="black"/>
              <circle cx="360" cy="528" r="6" class="closeddot" fill="black"/>
              <circle cx="360" cy="576" r="6" class="closeddot" fill="black"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="316" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="80" y="100">EDHOC</text>
                <text x="144" y="100">message_1</text>
                <text x="196" y="100">to</text>
                <text x="236" y="100">/edhoc</text>
                <text x="16" y="116">M01</text>
                <text x="80" y="164">EDHOC</text>
                <text x="144" y="164">message_2</text>
                <text x="16" y="180">M02</text>
                <text x="96" y="196">ID_CRED_R</text>
                <text x="180" y="196">identifies</text>
                <text x="108" y="212">CRED_R</text>
                <text x="144" y="212">=</text>
                <text x="204" y="212">AUTH_CRED_AS</text>
                <text x="92" y="228">by</text>
                <text x="144" y="228">reference</text>
                <text x="108" y="276">EDHOC+OSCORE</text>
                <text x="192" y="276">request</text>
                <text x="236" y="276">to</text>
                <text x="276" y="276">/token</text>
                <text x="16" y="292">M03</text>
                <text x="96" y="308">EDHOC</text>
                <text x="160" y="308">message_3</text>
                <text x="128" y="324">ID_CRED_I</text>
                <text x="212" y="324">identifies</text>
                <text x="140" y="340">CRED_I</text>
                <text x="176" y="340">=</text>
                <text x="232" y="340">AUTH_CRED_C</text>
                <text x="124" y="356">by</text>
                <text x="176" y="356">reference</text>
                <text x="140" y="388">OSCORE-protected</text>
                <text x="228" y="388">part</text>
                <text x="112" y="404">Token</text>
                <text x="168" y="404">request</text>
                <text x="152" y="420">'req_cnf'</text>
                <text x="236" y="420">identifies</text>
                <text x="160" y="436">AUTH_CRED_C</text>
                <text x="220" y="436">by</text>
                <text x="272" y="436">reference</text>
                <text x="360" y="484">Token</text>
                <text x="412" y="484">upload</text>
                <text x="452" y="484">to</text>
                <text x="512" y="484">/authz-info</text>
                <text x="16" y="500">M04</text>
                <text x="348" y="516">In</text>
                <text x="376" y="516">the</text>
                <text x="420" y="516">access</text>
                <text x="476" y="516">token:</text>
                <text x="384" y="532">the</text>
                <text x="424" y="532">'cnf'</text>
                <text x="472" y="532">claim</text>
                <text x="408" y="548">specifies</text>
                <text x="496" y="548">AUTH_CRED_C</text>
                <text x="380" y="564">by</text>
                <text x="416" y="564">value</text>
                <text x="384" y="580">the</text>
                <text x="452" y="580">'edhoc_info'</text>
                <text x="392" y="596">claim</text>
                <text x="456" y="596">specifies</text>
                <text x="392" y="612">{</text>
                <text x="444" y="628">session_id</text>
                <text x="496" y="628">:</text>
                <text x="532" y="628">h'01',</text>
                <text x="456" y="644">cipher_suites</text>
                <text x="520" y="644">:</text>
                <text x="540" y="644">2,</text>
                <text x="436" y="660">methods:</text>
                <text x="480" y="660">3</text>
                <text x="392" y="676">}</text>
                <text x="76" y="724">Possibly</text>
                <text x="136" y="724">after</text>
                <text x="184" y="724">chain</text>
                <text x="264" y="724">verification,</text>
                <text x="332" y="724">RS</text>
                <text x="364" y="724">adds</text>
                <text x="432" y="724">AUTH_CRED_C</text>
                <text x="52" y="740">to</text>
                <text x="80" y="740">the</text>
                <text x="112" y="740">set</text>
                <text x="140" y="740">of</text>
                <text x="168" y="740">its</text>
                <text x="216" y="740">trusted</text>
                <text x="268" y="740">peer</text>
                <text x="348" y="740">authentication</text>
                <text x="460" y="740">credentials,</text>
                <text x="72" y="756">relying</text>
                <text x="116" y="756">on</text>
                <text x="140" y="756">AS</text>
                <text x="164" y="756">as</text>
                <text x="208" y="756">trusted</text>
                <text x="276" y="756">provider</text>
                <text x="356" y="804">2.01</text>
                <text x="416" y="804">(Created)</text>
                <text x="16" y="820">M05</text>
                <text x="80" y="868">Token</text>
                <text x="140" y="868">response</text>
                <text x="128" y="884">(OSCORE-protected</text>
                <text x="236" y="884">message)</text>
                <text x="16" y="900">M06</text>
                <text x="92" y="916">'rs_cnf'</text>
                <text x="168" y="916">specifies</text>
                <text x="132" y="932">AUTH_CRED_RS</text>
                <text x="196" y="932">by</text>
                <text x="232" y="932">value</text>
                <text x="112" y="964">'ace_profile'</text>
                <text x="176" y="964">=</text>
                <text x="216" y="980">coap_edhoc_oscore</text>
                <text x="124" y="1012">'token_uploaded'</text>
                <text x="200" y="1012">=</text>
                <text x="228" y="1012">true</text>
                <text x="108" y="1044">'edhoc_info'</text>
                <text x="204" y="1044">specifies:</text>
                <text x="88" y="1060">{</text>
                <text x="140" y="1076">session_id</text>
                <text x="192" y="1076">:</text>
                <text x="228" y="1076">h'01',</text>
                <text x="152" y="1092">cipher_suites</text>
                <text x="224" y="1092">:</text>
                <text x="244" y="1092">2,</text>
                <text x="128" y="1108">methods</text>
                <text x="168" y="1108">:</text>
                <text x="184" y="1108">3</text>
                <text x="88" y="1124">}</text>
                <text x="76" y="1172">Possibly</text>
                <text x="136" y="1172">after</text>
                <text x="184" y="1172">chain</text>
                <text x="264" y="1172">verification,</text>
                <text x="336" y="1172">the</text>
                <text x="380" y="1172">Client</text>
                <text x="428" y="1172">adds</text>
                <text x="500" y="1172">AUTH_CRED_RS</text>
                <text x="52" y="1188">to</text>
                <text x="80" y="1188">the</text>
                <text x="112" y="1188">set</text>
                <text x="140" y="1188">of</text>
                <text x="168" y="1188">its</text>
                <text x="216" y="1188">trusted</text>
                <text x="268" y="1188">peer</text>
                <text x="348" y="1188">authentication</text>
                <text x="460" y="1188">credentials,</text>
                <text x="72" y="1204">relying</text>
                <text x="116" y="1204">on</text>
                <text x="140" y="1204">AS</text>
                <text x="164" y="1204">as</text>
                <text x="208" y="1204">trusted</text>
                <text x="276" y="1204">provider</text>
                <text x="80" y="1252">EDHOC</text>
                <text x="144" y="1252">message_1</text>
                <text x="196" y="1252">to</text>
                <text x="236" y="1252">/edhoc</text>
                <text x="72" y="1268">(no</text>
                <text x="116" y="1268">access</text>
                <text x="176" y="1268">control</text>
                <text x="220" y="1268">is</text>
                <text x="272" y="1268">enforced)</text>
                <text x="16" y="1284">M07</text>
                <text x="80" y="1332">EDHOC</text>
                <text x="144" y="1332">message_2</text>
                <text x="16" y="1348">M08</text>
                <text x="96" y="1364">ID_CRED_R</text>
                <text x="180" y="1364">identifies</text>
                <text x="108" y="1380">CRED_R</text>
                <text x="144" y="1380">=</text>
                <text x="204" y="1380">AUTH_CRED_RS</text>
                <text x="92" y="1396">by</text>
                <text x="144" y="1396">reference</text>
                <text x="108" y="1444">EDHOC+OSCORE</text>
                <text x="192" y="1444">request</text>
                <text x="236" y="1444">to</text>
                <text x="260" y="1444">/r</text>
                <text x="16" y="1460">M09</text>
                <text x="96" y="1476">EDHOC</text>
                <text x="160" y="1476">message_3</text>
                <text x="128" y="1492">ID_CRED_I</text>
                <text x="212" y="1492">identifies</text>
                <text x="140" y="1508">CRED_I</text>
                <text x="176" y="1508">=</text>
                <text x="232" y="1508">AUTH_CRED_C</text>
                <text x="124" y="1524">by</text>
                <text x="176" y="1524">reference</text>
                <text x="140" y="1556">OSCORE-protected</text>
                <text x="228" y="1556">part</text>
                <text x="136" y="1572">Application</text>
                <text x="216" y="1572">request</text>
                <text x="260" y="1572">to</text>
                <text x="284" y="1572">/r</text>
                <text x="64" y="1620">After</text>
                <text x="104" y="1620">the</text>
                <text x="144" y="1620">EDHOC</text>
                <text x="212" y="1620">processing</text>
                <text x="268" y="1620">is</text>
                <text x="324" y="1620">completed,</text>
                <text x="396" y="1620">access</text>
                <text x="456" y="1620">control</text>
                <text x="52" y="1636">is</text>
                <text x="100" y="1636">enforced</text>
                <text x="148" y="1636">on</text>
                <text x="176" y="1636">the</text>
                <text x="224" y="1636">rebuilt</text>
                <text x="324" y="1636">OSCORE-protected</text>
                <text x="428" y="1636">request,</text>
                <text x="60" y="1652">like</text>
                <text x="92" y="1652">if</text>
                <text x="116" y="1652">it</text>
                <text x="144" y="1652">had</text>
                <text x="180" y="1652">been</text>
                <text x="220" y="1652">sent</text>
                <text x="288" y="1652">stand-alone</text>
                <text x="92" y="1700">Response</text>
                <text x="128" y="1716">(OSCORE-protected</text>
                <text x="236" y="1716">message)</text>
                <text x="16" y="1732">M10</text>
                <text x="320" y="1748">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /token  |                              |
M03 |--------------------------------->|                              |
    |  * EDHOC message_3               |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Token request               |                              |
    |         'req_cnf' identifies     |                              |
    |         AUTH_CRED_C by reference |                              |
    |                                  |                              |
    |                                  |                              |
    |                                  |  Token upload to /authz-info |
M04 |                                  |----------------------------->|
    |                                  |  In the access token:        |
    |                                  |    * the 'cnf' claim         |
    |                                  |      specifies AUTH_CRED_C   |
    |                                  |      by value                |
    |                                  |    * the 'edhoc_info'        |
    |                                  |      claim specifies         |
    |                                  |        {                     |
    |                                  |          session_id : h'01', |
    |                                  |          cipher_suites : 2,  |
    |                                  |          methods: 3          |
    |                                  |        }                     |
    |                                  |                              |

     Possibly after chain verification, RS adds AUTH_CRED_C
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                  |                              |
    |                                  |  2.01 (Created)              |
M05 |                                  |<-----------------------------|
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M06 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'token_uploaded' = true         |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       session_id : h'01',        |                              |
    |       cipher_suites  : 2,        |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |

     Possibly after chain verification, the Client adds AUTH_CRED_RS
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M07 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M08 |<----------------------------------------------------------------|
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /r      |                              |
M09 |---------------------------------------------------------------->|
    |  * EDHOC message_3               |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Application request to /r   |                              |
    |                                  |                              |

     After the EDHOC processing is completed, access control
     is enforced on the rebuilt OSCORE-protected request,
     like if it had been sent stand-alone

    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M10 |<----------------------------------------------------------------|
    |                                  |                              |

]]></artwork>
        </artset>
      </section>
    </section>
    <section anchor="sec-profile-requirements">
      <name>Profile Requirements</name>
      <t>This section lists the specifications of this profile based on the requirements of the framework, as requested in <xref section="C" sectionFormat="of" target="RFC9200"/>.</t>
      <ul spacing="normal">
        <li>
          <t>Optionally, define new methods for the client to discover the necessary permissions and AS for accessing a resource, different from the one proposed in <xref target="RFC9200"/>: Not specified</t>
        </li>
        <li>
          <t>Optionally, specify new grant types: Not specified</t>
        </li>
        <li>
          <t>Optionally, define the use of client certificates as client credential type: C can use authentication credentials of any type admitted by the EDHOC protocol, including public key certificates such as X.509 and C509 certificates.</t>
        </li>
        <li>
          <t>Specify the communication protocol the client and RS must use: CoAP</t>
        </li>
        <li>
          <t>Specify the security protocol the client and RS must use to protect their communication: OSCORE</t>
        </li>
        <li>
          <t>Specify how the client and RS mutually authenticate: Explicitly, by successfully executing the EDHOC protocol, after which a common OSCORE Security Context is exported from the EDHOC session. As per the EDHOC authentication method used during the EDHOC session, authentication is provided by digital signatures, or by Message Authentication Codes (MACs) computed from an ephemeral-static ECDH shared secret.</t>
        </li>
        <li>
          <t>Specify the proof-of-possession protocol(s) and how to select one, if several are available. Also specify which key types (e.g., symmetric/asymmetric) are supported by a specific proof-of-possession protocol: proof-of-possession is first achieved by RS when successfully processing EDHOC message_3 during the EDHOC session with C, through EDHOC algorithms and symmetric EDHOC session keys. Also, proof-of-possession is later achieved by C when receiving from RS: i) the optional EDHOC message_4 during the EDHOC session with RS, through EDHOC algorithms and symmetric EDHOC session keys; or ii) the first response protected with the OSCORE Security Context established after the EDHOC session with RS, through OSCORE algorithms and OSCORE symmetric keys derived from the completed EDHOC session.</t>
        </li>
        <li>
          <t>Specify a unique ace_profile identifier: coap_edhoc_oscore</t>
        </li>
        <li>
          <t>If introspection is supported, specify the communication and security protocol for introspection: HTTP/CoAP (+ TLS/DTLS/OSCORE)</t>
        </li>
        <li>
          <t>Specify the communication and security protocol for interactions between client and AS: HTTP/CoAP (+ TLS/DTLS/OSCORE)</t>
        </li>
        <li>
          <t>Specify if/how the authz-info endpoint is protected, including how error responses are protected: Not protected</t>
        </li>
        <li>
          <t>Optionally, define methods of token transport other than the authz-info endpoint: C can upload the access token when executing EDHOC with RS, by including the access token in the EAD_3 field of EDHOC message_3 (see <xref target="edhoc-exec"/>).</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-document-updates">
      <name>Document Updates</name>
      <t>RFC EDITOR: PLEASE REMOVE THIS SECTION.</t>
      <section anchor="sec-04-05">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>
            <t>Removed the case of transporting access token in EAD_1</t>
          </li>
          <li>
            <t>Removed redundant normative text</t>
          </li>
          <li>
            <t>Clarifications of association between access token, session_id, EDHOC session and OSCORE security context</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>Fixed column name and prefilling of the "EDHOC Information" registry.</t>
          </li>
          <li>
            <t>Added EDHOC_Information Parameters originally in draft-tiloca-lake-app-profiles-00.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>Restructured presentation of content.</t>
          </li>
          <li>
            <t>Simplified description of the use of EDHOC_Information.</t>
          </li>
          <li>
            <t>Merged the concepts of EDHOC "session_id" and identifier of token series.</t>
          </li>
          <li>
            <t>Enabled the transport of the access token also in EDHOC EAD_3.</t>
          </li>
          <li>
            <t>Defined semantics of the newly defined CWT/JWT Confirmation Methods.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>
            <t>Removed use of EDHOC_KeyUpdate.</t>
          </li>
          <li>
            <t>The Security Context is updated either by KUDOS or a rerun of EDHOC.</t>
          </li>
          <li>
            <t>The alternative workflow (AS token posting) is specified in separate draft.</t>
          </li>
          <li>
            <t>Fixed and updated examples.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>
            <t>Fixed semantics of the ead_value for transporting an Access Token in the EAD_1 field.</t>
          </li>
          <li>
            <t>Error handling aligned with EDHOC.</t>
          </li>
          <li>
            <t>Precise characterization of the EDHOC execution considered for EDHOC-KeyUpdate.</t>
          </li>
          <li>
            <t>Fixed message exchange examples.</t>
          </li>
          <li>
            <t>Added appendix with profile requirements.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/> and <contact fullname="Carsten Bormann"/> for their comments and feedback.</t>
      <t>Work on this document has in part been supported by the H2020 project SIFIS-Home (grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
MLm43JXlY3DzigEtn0m1/xo8KN2NeuA26EH5JgQ1jPP1eGK6h5/FE+NHn1Xg
XBsYtOI4zQ8uOc43T8zC9Xw+T8zRN0/MP6EnZs37/s0T8yXG+XpcG92jr1H5
3tQ4C3wGXxLOj74qJX7D43w9ToPu4//K+Hxvp4E8tAE4P/k8zgd/CNKqetM3
54N/nK/I+fD0m/NhqXGaH/zC4zQ6Hx5mX07vVuPc2/mwv1En2KKfL31eX48T
Y7/7Vck/Vu5NNYNpQfrS4twlyvjNVcqv+o4KuTQnaWPSFqZ7qzpjkgeqg20o
ffI2tXIgnaxrnSVbbvKIad95hFmDBeXUkeLBbhMcsr5zJVeIkGQ+1XhT1avi
unZchQDjiEr9uw+4eSZ1f1Tp0U4Sr+6ESS/+QZxAyiq8uEGf6sYqWfGS8ZbN
E6rEyKuhpDk6VMmwpd9pLZw6jeB0U9fFoTSOxClEqa6y5WlqZ515k85MJ9NQ
amRweZF0JGmsMKGV625Scas5nDrbjIZU333LKuNxvmWVNY/zLats2XGaH/zC
43iJoeUiW+LcN+rT+r6iNay3L/xpktNXhHOtnL7iOLU4tOw4AEv9f++DS47z
fVARsrDEy8rj4I/rX11vPfJT69JccZxa8/Tv9Z5+PT7Ivc/jg/yWDbZoPd98
kP5xvmWDLVrPBsb5Hfggv2WDbfLcOX7r95ENtvGIsa/Hw7T3dXlMl8aKf1wy
2GdGhrVU4426Y7/lznyZcWpV42zJcSh3b3OXd5Oq8dnJKbwvnWRy14L7TcX+
+lTskxnXsbaqYGtU/MIiwcmokDJ9jI5Wixkq04wOhwLt4y7j45ct7qc8DFmE
DoyiCizZp9B9LMWN1e5iLPc75Bh0svhjmcBhO5ykSbRx0v/1eLT2NhoBsehn
4Xocjxa6tE6sQrbavbVDtSeRpkj5292F1fnsWrn3cHZVPF3oWKLKoSSdU4lS
8uSQM0RlJnhqk4Z5uXGSdg6Bht9W5QzbiIO6R8LW78gx8rWN881R0zzON0fN
wnH+uaTRb46ab1LkEuPgzzdHzVcxTlM8vjhYlhhnwTVeYT1Ntt3V4FO17a43
jm1LdS/yquOU7cLrrcdjI15rnMBj8V5vnDr3yTr47HOfrDOOz32yzjjiPnG8
J6uP43effDOFrrXZ5cdpSoIRe/YS4zTLp18t8f+KvPRLmZyXXc83L/3S6/k6
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

-->

</rfc>
