<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.23 (Ruby 3.3.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.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-07"/>
    <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="2025" month="March" day="03"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 96?>

<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 between the client and resource server 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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ace-edhoc-oscore-profile/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Authentication and Authorization for Constrained Environments (ace) Working Group mailing list (<eref target="mailto:ace@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ace/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ace-wg/ace-edhoc-oscore-profile"/>.</t>
    </note>
  </front>
  <middle>
    <?line 103?>

<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. However, this profile uses the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="RFC9528"/> 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 according to the authorization information specified in an access token, which is issued by a trusted authorization server (AS) and is bound to an authentication credential of C. This differs from the "coap_oscore" profile, where the access token is bound to a secret that is generated by AS and is used to derive the OSCORE Security Context.</t>
      <t>Whereas <xref target="RFC9200"/> recommends the use of CBOR Web Tokens (CWTs) <xref target="RFC8392"/> as access tokens, this profile requires it (see <xref target="access-token"/>). Furthermore, this profile requires that, for messages exchanged between C and AS to request and provide an access token, the payload is encoded in CBOR <xref target="RFC8949"/> (see <xref target="c-as"/> and <xref target="as-c"/>), which ACE requires if CoAP is used (see <xref section="5" sectionFormat="of" target="RFC9200"/>) and recommends otherwise (see <xref section="3" sectionFormat="of" target="RFC9200"/>).</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., an X.509 certificate <xref target="RFC5280"/> or a CBOR-encoded C509 certificate <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 framework 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" <xref target="RFC9360"/>). This is in the same spirit as EDHOC, where the authentication credentials specified in the ID_CRED_x message fields can be transported by value or referred to (see <xref section="3.5.3" sectionFormat="of" target="RFC9528"/>).</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 an access token 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 "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>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="RFC9528"/>.</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 as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>. Diagnostic notation comments are often used to provide a textual representation of the numeric parameter names and values.</t>
        <t>In the CBOR diagnostic notation used in this document, constructs of the form e'SOME_NAME' are replaced by the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. For example, {e'session_id' : h'01', e'cipher_suites': 3} stands for {0 : h'01', 2 : 3}.</t>
        <t>Note to RFC Editor: Please delete the paragraph immediately preceding this note. Also, in the CBOR diagnostic notation used in this document, please replace the constructs of the form e'SOME_NAME' with the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. Finally, please delete this note.</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 lightweight authenticated key exchange protocol EDHOC <xref target="RFC9528"/>. 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 policies for processing requests from those clients.</t>
      <t>The ACE framework describes how integrity protected authorization information propagates from AS to RS. This profile describes how C requests from AS an access token specifying authorization information for the resources that C wants to access at RS, by sending an access token request to the /token endpoint at AS (see <xref section="5.8" sectionFormat="of" target="RFC9200"/>).</t>
      <t>If the request is granted, then AS can provide C with an access token when sending a response to C, or instead upload the access token directly to RS as per the alternative workflow defined in <xref target="I-D.ietf-ace-workflow-and-params"/>. The latter option is not detailed further in this document.</t>
      <t>After that, C and RS run the EDHOC protocol, with C using the authentication credential of RS obtained from AS. If C has obtained an access token from AS, then C specifies the access token within an External Authorization Data (EAD) field of an EDHOC message sent during the EDHOC session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). RS uses the authentication credential of C bound to and specified in the access token. How C and RS run EDHOC is detailed in <xref target="edhoc-exec"/>.</t>
      <t>If C and RS successfully complete the EDHOC execution and the validation of each other's authentication credential, they are mutually authenticated and derive the OSCORE Security Context as per <xref section="A.1" sectionFormat="of" target="RFC9528"/>.</t>
      <t><xref target="protocol-overview"/> outlines an example of the message flow. A more detailed description of the message flow is shown in <xref target="example-without-optimization"/>.</t>
      <t>From then on and as long as there is a valid access token, C effectively gains authorized and secure access to protected resources at RS using the established OSCORE Security Context. When RS receives a request from C protected with an OSCORE Security Context derived from an EDHOC session implementing this profile, then that OSCORE Security Context is used to retrieve the uniquely associated access token determining the access rights of C.</t>
      <t>The OSCORE Security Context is discarded when an access token (whether the same or a different one) is used to successfully derive a new OSCORE Security Context for C.</t>
      <figure anchor="protocol-overview">
        <name>Protocol Outline using the EDHOC Forward Message Flow.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="480" viewBox="0 0 480 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 32,48 L 32,256" fill="none" stroke="black"/>
              <path d="M 32,304 L 32,480" fill="none" stroke="black"/>
              <path d="M 264,160 L 264,368" fill="none" stroke="black"/>
              <path d="M 264,416 L 264,480" fill="none" stroke="black"/>
              <path d="M 472,48 L 472,480" 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 32,96 L 96,96" fill="none" stroke="black"/>
              <path d="M 216,96 L 464,96" fill="none" stroke="black"/>
              <path d="M 40,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 424,128 L 472,128" fill="none" stroke="black"/>
              <path d="M 32,176 L 88,176" fill="none" stroke="black"/>
              <path d="M 208,176 L 256,176" fill="none" stroke="black"/>
              <path d="M 40,224 L 88,224" fill="none" stroke="black"/>
              <path d="M 208,224 L 264,224" fill="none" stroke="black"/>
              <path d="M 32,320 L 88,320" fill="none" stroke="black"/>
              <path d="M 208,320 L 256,320" fill="none" stroke="black"/>
              <path d="M 32,432 L 72,432" fill="none" stroke="black"/>
              <path d="M 208,432 L 256,432" fill="none" stroke="black"/>
              <path d="M 40,464 L 72,464" fill="none" stroke="black"/>
              <path d="M 216,464 L 256,464" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,96 460,90.4 460,101.6" fill="black" transform="rotate(0,464,96)"/>
              <polygon class="arrowhead" points="464,64 452,58.4 452,69.6" fill="black" transform="rotate(0,456,64)"/>
              <polygon class="arrowhead" points="264,432 252,426.4 252,437.6" fill="black" transform="rotate(0,256,432)"/>
              <polygon class="arrowhead" points="264,320 252,314.4 252,325.6" fill="black" transform="rotate(0,256,320)"/>
              <polygon class="arrowhead" points="264,176 252,170.4 252,181.6" fill="black" transform="rotate(0,256,176)"/>
              <polygon class="arrowhead" points="56,64 44,58.4 44,69.6" fill="black" transform="rotate(180,48,64)"/>
              <polygon class="arrowhead" points="48,464 36,458.4 36,469.6" fill="black" transform="rotate(180,40,464)"/>
              <polygon class="arrowhead" points="48,224 36,218.4 36,229.6" fill="black" transform="rotate(180,40,224)"/>
              <polygon class="arrowhead" points="48,128 36,122.4 36,133.6" fill="black" transform="rotate(180,40,128)"/>
              <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="116" y="180">POST</text>
                <text x="164" y="180">/edhoc</text>
                <text x="100" y="196">(EDHOC</text>
                <text x="172" y="196">message_1)</text>
                <text x="116" y="228">2.04</text>
                <text x="168" y="228">Changed</text>
                <text x="100" y="244">(EDHOC</text>
                <text x="172" y="244">message_2)</text>
                <text x="8" y="276">/</text>
                <text x="60" y="276">Derivation</text>
                <text x="116" y="276">of</text>
                <text x="156" y="276">OSCORE</text>
                <text x="36" y="292">Security</text>
                <text x="104" y="292">Context</text>
                <text x="144" y="292">/</text>
                <text x="116" y="324">POST</text>
                <text x="164" y="324">/edhoc</text>
                <text x="84" y="340">(EDHOC</text>
                <text x="152" y="340">message_3</text>
                <text x="212" y="340">with</text>
                <text x="108" y="356">access_token</text>
                <text x="172" y="356">in</text>
                <text x="212" y="356">EAD_3)</text>
                <text x="168" y="388">/</text>
                <text x="220" y="388">Derivation</text>
                <text x="276" y="388">of</text>
                <text x="316" y="388">OSCORE</text>
                <text x="212" y="404">Security</text>
                <text x="280" y="404">Context</text>
                <text x="320" y="404">/</text>
                <text x="108" y="436">OSCORE</text>
                <text x="168" y="436">Request</text>
                <text x="108" y="468">OSCORE</text>
                <text x="172" y="468">Response</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <==== Mutual authentication and secure channel ====> |
   |                            |                         |
   +-------- POST /token  ------------------------------->|
   |                            |                         |
   |<--------------------------------- Access Token ------+
   |                               + Access Information   |
   |                            |                         |
   +------- POST /edhoc  ------>|                         |
   |     (EDHOC message_1)      |                         |
   |                            |                         |
   |<------ 2.04 Changed -------+                         |
   |     (EDHOC message_2)      |                         |
   |                            |                         |
/ Derivation of OSCORE          |                         |
Security Context /              |                         |
   |                            |                         |
   +------- POST /edhoc  ------>|                         |
   |   (EDHOC message_3 with    |                         |
   |   access_token in EAD_3)   |                         |
   |                            |                         |
   |                / Derivation of OSCORE                |
   |                  Security Context /                  |
   |                            |                         |
   +----- OSCORE Request ------>|                         |
   |                            |                         |
   |<---- OSCORE Response ------|                         |
   |                            |                         |
]]></artwork>
        </artset>
      </figure>
      <t>As long as the OSCORE Security Context and the access token are valid, C can contact AS to request an update of its access rights, by sending a similar request as described above to the /token endpoint. This request also includes a "session identifier" (see <xref target="edhoc-parameters-object"/>) provided by AS in the response to the initial access token request, which allows AS to retrieve the data that it 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"/>).</t>
      <t>If C has obtained an access token from AS for updating its access rights belonging to the same token series, then C transfers the access token to RS using the /authz-info endpoint as specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/>, where the exchanged CoAP messages are protected by the previously established OSCORE Security Context (see <xref target="update-access-rights-c-rs"/>). If the access token is valid, RS replies to the request with a 2.01 (Created) response.</t>
      <t>Upon successful update of access rights, the new issued access token effectively becomes the latest in its token series also for RS, 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><xref target="update-overview"/> outlines the message flow for updating access rights.</t>
      <figure anchor="update-overview">
        <name>Protocol Outline for Updating Access Rights.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="456" viewBox="0 0 456 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,368" fill="none" stroke="black"/>
              <path d="M 240,160 L 240,224" fill="none" stroke="black"/>
              <path d="M 240,256 L 240,368" fill="none" stroke="black"/>
              <path d="M 448,48 L 448,368" fill="none" stroke="black"/>
              <path d="M 24,62 L 56,62" fill="none" stroke="black"/>
              <path d="M 24,66 L 56,66" fill="none" stroke="black"/>
              <path d="M 400,62 L 432,62" fill="none" stroke="black"/>
              <path d="M 400,66 L 432,66" fill="none" stroke="black"/>
              <path d="M 8,96 L 72,96" fill="none" stroke="black"/>
              <path d="M 192,96 L 440,96" fill="none" stroke="black"/>
              <path d="M 16,128 L 280,128" fill="none" stroke="black"/>
              <path d="M 400,128 L 448,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 32,176" fill="none" stroke="black"/>
              <path d="M 192,176 L 232,176" fill="none" stroke="black"/>
              <path d="M 16,272 L 64,272" fill="none" stroke="black"/>
              <path d="M 184,272 L 240,272" fill="none" stroke="black"/>
              <path d="M 8,320 L 48,320" fill="none" stroke="black"/>
              <path d="M 184,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 16,352 L 48,352" fill="none" stroke="black"/>
              <path d="M 192,352 L 232,352" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="448,96 436,90.4 436,101.6" fill="black" transform="rotate(0,440,96)"/>
              <polygon class="arrowhead" points="440,64 428,58.4 428,69.6" fill="black" transform="rotate(0,432,64)"/>
              <polygon class="arrowhead" points="240,320 228,314.4 228,325.6" fill="black" transform="rotate(0,232,320)"/>
              <polygon class="arrowhead" points="240,176 228,170.4 228,181.6" fill="black" transform="rotate(0,232,176)"/>
              <polygon class="arrowhead" points="32,64 20,58.4 20,69.6" fill="black" transform="rotate(180,24,64)"/>
              <polygon class="arrowhead" points="24,352 12,346.4 12,357.6" fill="black" transform="rotate(180,16,352)"/>
              <polygon class="arrowhead" points="24,272 12,266.4 12,277.6" fill="black" transform="rotate(180,16,272)"/>
              <polygon class="arrowhead" points="24,128 12,122.4 12,133.6" fill="black" transform="rotate(180,16,128)"/>
              <g class="text">
                <text x="8" y="36">C</text>
                <text x="244" y="36">RS</text>
                <text x="444" y="36">AS</text>
                <text x="240" y="52">|</text>
                <text x="164" y="68">Existing</text>
                <text x="236" y="68">security</text>
                <text x="304" y="68">context</text>
                <text x="240" y="84">|</text>
                <text x="100" y="100">POST</text>
                <text x="148" y="100">/token</text>
                <text x="240" y="116">|</text>
                <text x="316" y="132">Access</text>
                <text x="368" y="132">Token</text>
                <text x="264" y="148">+</text>
                <text x="300" y="148">Access</text>
                <text x="376" y="148">Information</text>
                <text x="60" y="180">POST</text>
                <text x="128" y="180">/authz-info</text>
                <text x="56" y="196">(OSCORE</text>
                <text x="128" y="196">protected</text>
                <text x="188" y="196">with</text>
                <text x="84" y="212">access_token</text>
                <text x="148" y="212">in</text>
                <text x="196" y="212">payload)</text>
                <text x="136" y="244">/</text>
                <text x="176" y="244">Updated</text>
                <text x="236" y="244">access</text>
                <text x="292" y="244">rights</text>
                <text x="328" y="244">/</text>
                <text x="92" y="276">2.04</text>
                <text x="144" y="276">Changed</text>
                <text x="84" y="324">OSCORE</text>
                <text x="144" y="324">Request</text>
                <text x="84" y="356">OSCORE</text>
                <text x="148" y="356">Response</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <====         Existing security context        ====> |
   |                            |                         |
   +-------- POST /token  ------------------------------->|
   |                            |                         |
   |<--------------------------------- Access Token ------+
   |                               + Access Information   |
   |                            |                         |
   +--- POST /authz-info  ----->|                         |
   |  (OSCORE protected with    |                         |
   |   access_token in payload) |                         |
   |                            |                         |
   |               / Updated access rights /              |
   |                            |                         |
   |<------ 2.04 Changed -------+                         |
   |                            |                         |
   |                            |                         |
   +----- 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, C provides AS with its own authentication credential AUTH_CRED_C. Then, AS issues the access token as securely bound to AUTH_CRED_C, by including it or uniquely referring to it in the access token. Together with the access token, AS provides C with a set of parameters that enable C to run EDHOC with RS. In particular, these parameters include information about the authentication credential AUTH_CRED_RS of RS, which is 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 implementation (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 <bcp14>MUST</bcp14> 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"/>).</t>
        <t>When using this profile, the payload of the POST request <bcp14>MUST</bcp14> be encoded in CBOR <xref target="RFC8949"/>, i.e., the request has media-type "application/ace+cbor". In order to reduce the number of libraries that C has to support, it is <bcp14>RECOMMENDED</bcp14> that C and AS use CoAP as message transfer protocol, OSCORE as security protocol, and EDHOC to establish an OSCORE Security Context.</t>
        <t>AUTH_CRED_C is specified in the "req_cnf" parameter <xref target="RFC9201"/> of the POST request, either transported by value or uniquely referred to.</t>
        <t>For AUTH_CRED_C, its authentication credential type <bcp14>MUST</bcp14> be one of those supported by EDHOC, e.g., CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC5280"/>, and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. Consequently, the "req_cnf" parameter <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_C, e.g., "x5chain" or "x5t" when AUTH_CRED_C is an X.509 certificate transported by value or referred to, respectively.</t>
        <t>Note that EDHOC does not admit the use of naked COSE_Keys as authentication credentials. The closest admitted authentication credential type is a CCS containing a COSE_Key in a "cnf" claim and possibly other claims, which can be transported by value using the confirmation method "kccs". Therefore, the "req_cnf" parameter <bcp14>MUST NOT</bcp14> specify the confirmation method "COSE_Key" (CBOR abbreviation: 1).</t>
        <t>When receiving an Access Token request including the "req_cnf" parameter, AS checks whether it is already storing the authentication credential of C, namely AUTH_CRED_C, specified in "req_cnf" by value or reference.</t>
        <t>If this is not the case, AS retrieves AUTH_CRED_C, either using the "req_cnf" parameter or some other trusted source. After that, AS validates the actual AUTH_CRED_C. In case of successful validation, AS stores AUTH_CRED_C as a valid authentication credential. Otherwise, the Client-to-AS request <bcp14>MUST</bcp14> be declined with the error code "unsupported_pop_key" as defined in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>An example of client-to-AS 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.</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 / 5 : "tempSensor4711",
     / scope /    9 : "read",
     / req_cnf /  4 : {
       e'x5t' : [-15, h'79F2A41B510C1F9B']
     }
   }
]]></artwork>
        </figure>
        <t>If C wants to update its access rights without changing an existing OSCORE Security Context, it <bcp14>MUST</bcp14> specify an EDHOC_Information object in the "edhoc_info" parameter of its POST request to the /token endpoint. The EDHOC_Information object <bcp14>MUST</bcp14> include the "session_id" field. This POST request <bcp14>MUST NOT</bcp14> include 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 identifies an ongoing token series associated with the pair (AUTH_CRED_C, AUTH_CRED_RS). That is, previous access tokens in that series were issued by AS to C, as bound to AUTH_CRED_C and intended for RS as identified by AUTH_CRED_RS.</t>
        <t>Note that the same "session_id" value might identify multiple ongoing token series, e.g., if those are associated with the same client but different resource servers. In this case, AS can use the "session_id" value together with other information such as the targeted audience (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>) and the authenticated identity of C, in order to determine the exact token series to which the new requested access token has to be added.</t>
        <!--
Editor's note: When retrieving the access token it is required to consider the pair (session id, AUTH_CRED_C). Here it is stated that the session id identifies the pair (AUTH_CRED_C, AUTH_CRED_RS). Why then isn't the session id sufficient for retrieving the access token, considering it identifies AUTH_CRED_C?

MT: Retrieving an access token based on the pair (session id, AUTH_CRED_C) happens at RS, when using the session id specified in the EDHOC EAD item.

Here on the AS, a series might be ongoing for (C, RS1) and another series might also be ongoing for (C, RS2). If C uses an authentication credential with RS1 and a different one with RS2, then both series can be legitimately identified by the same series id value, which thus might not sufficient to identify precisely one of C's authentication credentials. In practice, this is not an issue, since AS can rely on additional information such as audience.

The text above has been revisited, also based on the revised safer criterion for assigning new sender IDs at the AS in the next subsection.
-->

<t>If the identifier specified in the "session_id" parameter of the POST request identifies multiple, ongoing token series of which C has an access token, then C <bcp14>MUST</bcp14> specify the "audience" parameter in the POST request. In particular, the value of the "audience" parameter <bcp14>MUST</bcp14> be the same value of the "audience" parameter in the POST request that C previously sent to AS, for requesting the first access token in the token series to which the new requested access token has to be added.</t>
        <t>AS <bcp14>MUST</bcp14> 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 <bcp14>MUST</bcp14> 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 /      5 : "tempSensor4711",
     / scope /         9 : "write",
     e'edhoc_info_param' : {
        e'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 that are sorted in chronological order of release and are 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 as identified by the same authentication credential.</t>
          </li>
        </ul>
        <t>Upon a successful update of access rights (see <xref target="update-access-rights-c-as"/>), 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>In this profile, a token series comprises access tokens that are used between a given pair (C, RS), are bound to the same authentication credential AUTH_CRED_C of C, and specify the same value in the "session_id" field of the EDHOC_Information object (see <xref target="edhoc-parameters-object"/>) in their "edhoc_info" claim.</t>
        <t>AS assigns the value of "session_id" when issuing the first access token of a new series. That "session_id" value remains fixed throughout the series lifetime.</t>
        <t>When assigning the "session_id" value, AS <bcp14>MUST</bcp14> ensure that it was not used in a previous series whose access tokens share both the following properties with the access tokens of the new series, irrespective of the used ACE profile:</t>
        <ul spacing="normal">
          <li>
            <t>issued to the same client C; and</t>
          </li>
          <li>
            <t>issued for the same RS.</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 protected resources at RS, AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, with potential modifications as detailed below.</t>
        <t>When using this profile, consistent with what is specified in <xref target="c-as"/>, the payload of the response from AS <bcp14>MUST</bcp14> be encoded in CBOR <xref target="RFC8949"/>, i.e., the response has media-type "application/ace+cbor".</t>
        <t>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 <bcp14>REQUIRED</bcp14> 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 <bcp14>MUST</bcp14> use EDHOC with RS and derive an OSCORE Security Context, as specified in <xref target="edhoc-exec"/>. After that, C <bcp14>MUST</bcp14> 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>According to this document, the AS provides the access token to C, by specifying it in the "access_token" parameter of the access token response. An alternative workflow where the access token is uploaded by AS directly to RS is described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>When issuing the first access token of a token series, AS <bcp14>MUST</bcp14> include the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The "edhoc_info" parameter conveying an EDHOC_Information object (see <xref target="edhoc-parameters-object"/>). The EDHOC_Information object <bcp14>MUST</bcp14> include the "session_id" field specifying the identifier of the token series which the issued access token belongs to.  </t>
            <t>
The EDHOC_Information object <bcp14>MAY</bcp14> include additional fields (see <xref target="edhoc-parameters-object"/>) to convey information about RS. This information is based on knowledge that AS has about RS, e.g., from a previous onboarding process, with particular reference to what RS supports as EDHOC peer.  </t>
            <t>
In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), the information specified in the EDHOC_Information object refers to the group-audience as a whole. Therefore, it is appropriate for AS to define group-audiences comprising RSs that are all aligned in terms of supported EDHOC features and configurations.</t>
          </li>
          <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 expected that the response to C includes 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>
            <t>
For AUTH_CRED_RS, its authentication credential type <bcp14>MUST</bcp14> be one of those supported by EDHOC. Consequently, the "rs_cnf" parameter <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_RS. That is, the same considerations about AUTH_CRED_C and the "req_cnf" parameter made in <xref target="c-as"/> hold for AUTH_CRED_RS and the "rs_cnf" parameter.</t>
          </li>
        </ul>
        <t>When issuing an access token for dynamically updating access rights (i.e., the access token is not the first in its token series), the response from AS <bcp14>MUST NOT</bcp14> include the "edhoc_info" and "rs_cnf" parameters (see <xref target="update-access-rights-c-as"/>).</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 / 1 : h'8343a1010aa2044c53...0f6a'
          / remainder of access token (CWT) omitted for brevity /,
        / ace_profile / 38 : e'coap_edhoc_oscore',
        / expires_in /   2 : 3600,
        / rs_cnf /      41 : {
          e'x5chain' : h'3081ee3081a1a00302...77bc'
            / remainder of the credential omitted for brevity /
        }
        e'edhoc_info_param' : {
          e'session_id'    : h'01',
          e'methods'       : [0, 1, 2, 3],
          e'cipher_suites' : 0
        }
      }
]]></artwork>
        </figure>
        <section anchor="access-token">
          <name>Access Token</name>
          <t>To avoid the complexity of different encodings, an access token of this profile <bcp14>SHALL</bcp14> be a CBOR Web Token (CWT) <xref target="RFC8392"/>.</t>
          <t>When issuing any access token of a token series, AS <bcp14>MUST</bcp14> include the following claims in the access token:</t>
          <ul spacing="normal">
            <li>
              <t>The "edhoc_info" claim defined in <xref target="iana-token-cwt-claims"/> and conveying an EDHOC_Information object (see <xref target="edhoc-parameters-object"/>).  </t>
              <t>
The EDHOC_Information object <bcp14>MUST</bcp14> include the "session_id" field specifying the identifier of the token series which the issued access token belongs to. The "session_id" value is the same one included in the EDHOC_Information object of the response to C from the /token endpoint (see <xref target="as-c"/>), when providing C with the first access token in the series.</t>
            </li>
            <li>
              <t>The "cnf" claim, specifying the authentication credential AUTH_CRED_C that C specified in its POST request to the /token endpoint, when requesting the first access token in the series which the issued access token belongs to (see <xref target="c-as"/>).  </t>
              <t>
In the access token, AUTH_CRED_C can be transported by value or uniquely referred to by means of an appropriate identifier. Yet, consistent with the considerations about AUTH_CRED_C and the "req_cnf" parameter made in <xref target="c-as"/>, the "cnf" claim of the access token <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_C.  </t>
              <t>
When issuing the first access token of a token series, the confirmation method used in the "cnf" claim <bcp14>MUST</bcp14> be the same one used in the "req_cnf" parameter of the corresponding POST request from C to the /token endpoint.  </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 expected that AUTH_CRED_C is included by value in the "cnf" claim of the access token.  </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 in the "cnf" claim of the access token.</t>
            </li>
          </ul>
          <t>When issuing the first access token of a token series, AS <bcp14>MAY</bcp14> include additional fields in the EDHOC_Information object (see <xref target="edhoc-parameters-object"/>) specified in the "edhoc_info" claim of the access token. Specifically, if the following fields of the EDHOC_Information object are specified in the response to C from the /token endpoint, they <bcp14>MUST</bcp14> be included with the same values in the EDHOC_Information object within 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="RFC9528"/> 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="RFC9528"/> 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>The access token needs to be protected for various reasons. To prevent manipulation of the content, it needs to be integrity protected. Also, RS has to be able to verify that the access token is issued by a trusted AS, by achieving source authentication. Depending on the use case and deployment, the access token may need to be confidentiality protected, for example due to privacy reasons.</t>
          <t>AS protects the access token using a COSE method <xref target="RFC9052"/> as specified in <xref target="RFC8392"/>. Depending on the audience, there can be different ways to most appropriately ensure the confidentiality of an access token. For an audience comprising a single RS, the CWT Claims Set may be wrapped in COSE_Encrypt / COSE_Encrypt0. Instead, if the access token needs to be read by multiple RSs, then the CWT Claims Set may be wrapped in COSE_Sign / COSE_Sign1 and confidentiality protection is applied during transport, by including the access token in the EAD_3 field of EDHOC message_3 sent by C to RS, when using the EDHOC forward message flow (see <xref target="edhoc-exec"/>).</t>
          <t><xref target="fig-token"/> shows an example of 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 /   3 : "tempSensorInLivingRoom",
    / iat /   6 : 1563451500,
    / exp /   4 : 1563453000,
    / scope / 9 :  "temperature_g firmware_p",
    / cnf /   8 : {
      e'x5chain' : h'3081ee3081a1a00302...77bc'
        / remainder of the credential omitted for brevity /
    }
    e'edhoc_info_claim' : {
      e'session_id'    : h'01',
      e'methods'       : [0, 1, 2, 3],
      e'cipher_suites' : 0
    }
  }
]]></artwork>
          </figure>
        </section>
        <section anchor="processing-at-c">
          <name>Processing at 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 <bcp14>MUST</bcp14> delete the access token.</t>
        </section>
        <section anchor="update-access-rights-c-as">
          <name>Update of Access Rights</name>
          <t>If C has a valid OSCORE Security Context associated with a valid access token, then C can send a request to AS for updating its access rights while preserving the same OSCORE Security Context.</t>
          <t>If the request is granted, then AS generates a new access token, where the EDHOC_Information object specified in the "edhoc_info" claim <bcp14>MUST</bcp14> include only the "session_id" field. The access token is provisioned to RS either via C as specified in this document, or directly as described in <xref target="I-D.ietf-ace-workflow-and-params"/>. In either case, the access token response from AS to C <bcp14>MUST NOT</bcp14> include the "edhoc_info" and "rs_cnf" parameters.</t>
          <t>As defined in <xref target="access-token"/>, the "session_id" field is included in the EDHOC_Information object specified in the "edhoc_info" claim of the new access token. This allows 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.</t>
        <t>In the "coap_edhoc_oscore" profile of the ACE-OAuth framework, which is specified in this document, the EDHOC_Information object <bcp14>MUST</bcp14> be encoded as CBOR. However, for easy applicability to other contexts, we define also the JSON encoding.</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 defined in <xref target="iana-edhoc-parameters"/> for extensibility. The initial set of parameters defined in this document is specified below. All parameters are optional.</t>
        <t><xref target="_table-cbor-key-edhoc-params"/> provides a summary of the EDHOC_Information parameters defined in this section.</t>
        <table align="center" anchor="_table-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">CBOR label</th>
              <th align="left">CBOR type</th>
              <th align="left">Registry</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">session_id</td>
              <td align="left">0</td>
              <td align="left">bstr</td>
              <td align="left"> </td>
              <td align="left">Identifier of a session</td>
            </tr>
            <tr>
              <td align="left">methods</td>
              <td align="left">1</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Method Type registry</td>
              <td align="left">Set of supported EDHOC methods</td>
            </tr>
            <tr>
              <td align="left">cipher_suites</td>
              <td align="left">2</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Cipher Suites registry</td>
              <td align="left">Set of supported EDHOC cipher suites</td>
            </tr>
            <tr>
              <td align="left">message_4</td>
              <td align="left">3</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for EDHOC message_4</td>
            </tr>
            <tr>
              <td align="left">comb_req</td>
              <td align="left">4</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC + OSCORE combined request</td>
            </tr>
            <tr>
              <td align="left">uri_path</td>
              <td align="left">5</td>
              <td align="left">tstr</td>
              <td align="left"> </td>
              <td align="left">URI-path of the EDHOC resource</td>
            </tr>
            <tr>
              <td align="left">osc_ms_len</td>
              <td align="left">6</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">Length in bytes of the OSCORE Master Secret to derive</td>
            </tr>
            <tr>
              <td align="left">osc_salt_len</td>
              <td align="left">7</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">Length in bytes of the OSCORE Master Salt to derive</td>
            </tr>
            <tr>
              <td align="left">osc_version</td>
              <td align="left">8</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">OSCORE version number to use</td>
            </tr>
            <tr>
              <td align="left">cred_types</td>
              <td align="left">9</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Authentication Credential Types registry</td>
              <td align="left">Set of supported types of authentication credentials for EDHOC</td>
            </tr>
            <tr>
              <td align="left">id_cred_types</td>
              <td align="left">10</td>
              <td align="left">int or tstr or array</td>
              <td align="left">COSE Header Parameters registry</td>
              <td align="left">Set of supported types of authentication credential identifiers for EDHOC</td>
            </tr>
            <tr>
              <td align="left">eads</td>
              <td align="left">11</td>
              <td align="left">uint or array</td>
              <td align="left">EDHOC External Authorization Data registry</td>
              <td align="left">Set of supported EDHOC External Authorization Data (EAD) items</td>
            </tr>
            <tr>
              <td align="left">initiator</td>
              <td align="left">12</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Initiator role</td>
            </tr>
            <tr>
              <td align="left">responder</td>
              <td align="left">13</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Responder role</td>
            </tr>
            <tr>
              <td align="left">max_msgsize</td>
              <td align="left">14</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">Maximum size of EDHOC messages in bytes</td>
            </tr>
            <tr>
              <td align="left">coap_ct</td>
              <td align="left">15</td>
              <td align="left">True of False</td>
              <td align="left"> </td>
              <td align="left">Requested use of the CoAP Content-Format Option in CoAP messages whose payload includes exclusively an EDHOC message, possibly prepended by an EDHOC connection identifier</td>
            </tr>
            <tr>
              <td align="left">ep_id_types</td>
              <td align="left">16</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Endpoint Identity Types registry</td>
              <td align="left">Set of supported types of endpoint identities for EDHOC</td>
            </tr>
            <tr>
              <td align="left">transports</td>
              <td align="left">17</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Transports registry</td>
              <td align="left">Set of supported means for transporting EDHOC messages</td>
            </tr>
            <tr>
              <td align="left">trust_anchors</td>
              <td align="left">18</td>
              <td align="left">map</td>
              <td align="left">EDHOC Trust Anchor Purposes registry and EDHOC Trust Anchor Types registry</td>
              <td align="left">Set of supported trust anchors</td>
            </tr>
          </tbody>
        </table>
        <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="RFC9528"/>). 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="RFC9528"/>). 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="RFC9528"/>) 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="RFC9668"/>) 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="RFC9528"/>. 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="RFC9528"/>. 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="RFC9528"/>). 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="RFC9668"/>.</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="RFC9528"/>). 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="RFC9528"/>). 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="RFC9528"/>.</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>
          <li>
            <t>max_msgsize: This parameter specifies the admitted maximum size of EDHOC messages in bytes. In JSON, the "max_msgsize" value is an unsigned integer. In CBOR, "max_msgsize" is an unsigned integer and has label 14.</t>
          </li>
          <li>
            <t>coap_cf: This parameter specifies whether it is required that CoAP messages include the CoAP Content-Format Option with value 64 (application/edhoc+cbor-seq) or 65 (application/cid-edhoc+cbor-seq) as appropriate, when the message payload includes exclusively an EDHOC message possibly prepended by an EDHOC connection identifier (see Sections <xref target="RFC9528" section="3.4.1" sectionFormat="bare"/> and <xref target="RFC9528" section="A.2" sectionFormat="bare"/> of <xref target="RFC9528"/>). In JSON, the "coap_cf" value is a boolean. In CBOR, "coap_cf" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 15.</t>
          </li>
          <li>
            <t>ep_id_types: This parameter specifies a set of supported types of endpoint identities for EDHOC. If the set is composed of a single type of endpoint identity, this is encoded as an integer. Otherwise, the set is encoded as an array, where each array element encodes one type of endpoint identity as an integer. In JSON, the "ep_id_types" value is an integer or an array of integers. In CBOR, "ep_id_types" is an integer or an array of integers, and has label 16. The integer values are taken from the 'CBOR Label' column of the "EDHOC Endpoint Identity Types" registry defined in <xref target="iana-edhoc-endpoint-identity-types"/> of this document.</t>
          </li>
          <li>
            <t>transports: This parameter specifies a set of supported means for transporting EDHOC messages. If the set is composed of a single means for transporting EDHOC messages, this is encoded as an integer. Otherwise, the set is encoded as an array, where each array element encodes one means for transporting EDHOC messages as an integer. In JSON, the "transports" value is an integer or an array of integers. In CBOR, "transports" is an integer or an array of integers, and has label 17. The integer values are taken from the 'Transport ID' column of the "EDHOC Transports" Registry defined in <xref target="iana-edhoc-transports"/> of this document.</t>
          </li>
          <li>
            <t>trust_anchors: This parameter specifies a collection of supported trust anchors for performing authentication. According to what is specified within the collection, these trust anchors are used for different purposes, e.g., for verifying authentication credentials of other EDHOC peers in EDHOC sessions.  </t>
            <t>
More in detail, the collection of trust anchors is composed of one or more sets. Each set includes one or more trust anchors to use for one specific purpose associated with that set.  </t>
            <t>
In particular, each set is composed of pairs, each of which specifies a trust anchor type and an identifier of a trust anchor of that type. If the set is composed of a single pair, this pair is specified as a single item. If the set is composed of multiple pairs, these pairs are specified as elements of an array.  </t>
            <t>
Trust anchor purposes are selected from the "EDHOC Trust Anchor Purposes" registry defined in <xref target="iana-edhoc-ta-purposes"/> of this document. Trust anchor types are selected from the "EDHOC Trust Anchor Types" registry defined in <xref target="iana-edhoc-ta-types"/> of this document.  </t>
            <t>
In JSON, the "trust_anchors" value is an object with one or more outer entries, each of which is associated with a trust anchor purpose. The following applies for each outer entry:  </t>
            <ul spacing="normal">
              <li>
                <t>The outer entry's key specifies the associated trust anchor purpose taken from the 'Name' column' of the "EDHOC Trust Anchor Purposes" registry.</t>
              </li>
              <li>
                <t>The outer entry's value is an object or an array of at least two objects. Each object includes one inner entry, specifying the pair for a trust anchor TA of type TYPE. The inner entry is formatted as follows:      </t>
                <ul spacing="normal">
                  <li>
                    <t>The inner entry's key specifies the TA's type TYPE taken from the 'Name' column of the "EDHOC Trust Anchor Types" registry.</t>
                  </li>
                  <li>
                    <t>The inner entry's value is the identifier of TA, whose encoding depends on TYPE. Such an encoding is what results from applying the conversion in <xref section="6.1" sectionFormat="of" target="RFC8949"/> to the CBOR encoding of the identifier of TA when "trust_anchors" is encoded in CBOR (see below).</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>
In CBOR, the "trust_anchors" value is a map and has label 18. The map includes one or more outer entries, each of which is associated with a trust anchor purpose. The following applies for each outer entry:  </t>
            <ul spacing="normal">
              <li>
                <t>The outer entry's key specifies the associated trust anchor purpose encoded as a CBOR integer, with integer value taken from the 'CBOR label' column of the "EDHOC Trust Anchor Purposes" registry.</t>
              </li>
              <li>
                <t>The outer entry's value is a map or an array of at least two maps. Each map includes one inner entry, specifying the pair for a trust anchor TA of type TYPE. The inner entry is formatted as follows:      </t>
                <ul spacing="normal">
                  <li>
                    <t>The inner entry's key specifies the TA's type TYPE encoded as a CBOR integer, with integer value taken from the 'CBOR label' column of the "EDHOC Trust Anchor Types" registry.</t>
                  </li>
                  <li>
                    <t>The inner entry's value specifies the identifier of TA, whose encoding depends on TYPE and is specified by the 'Value type' column of the "EDHOC Trust Anchor Types" registry, for the registry entry that has TYPE as value of the 'Name' column.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </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,
       "trust_anchors" : {
         "edhoc_cred" : [
           { "c5u" : "coap://certs.c509.example" },
           { "x5u" : "coap://certs.x509.example" }
         ]
       }
   }
]]></artwork>
        </figure>
        <t>An example of CBOR EDHOC_Information is given in <xref target="fig-edhoc-info-cbor"/>.</t>
        <figure anchor="fig-edhoc-info-cbor">
          <name>Example of CBOR EDHOC_Information</name>
          <artwork><![CDATA[
   e'edhoc_info_param'  : {
     e'session_id'    : h'01',
     e'methods'       : 1,
     e'cipher_suites' : 0,
     e'trust_anchors' : {
       e'edhoc_cred' : [
         { e'c5t_ta_type' : [-15, h'81DC2F32CB87E163'] },
         { e'c5u_ta_type' : "coap://certs.c509.example" },
         { e'x5t_ta_type' : [-15, h'79F2A41B510C1F9B'] },
         { e'x5u_ta_type' : "coap://certs.x509.example" }
       ]
     }
   }
]]></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
  ? 14 => uint,                   ; max_msgsize
  ? 15 => true / false,           ; coap_ct
  ? 16 => int / array,            ; ep_id_types
  ? 17 => int / array,            ; transports
  ? 18 => map,                    ; trust_anchors
  * int / tstr => any
}
]]></artwork>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>This section describes the exchange between C and RS, including the execution of the EDHOC protocol and the uploading of the access token from C to RS. The alternative workflow, where AS uploads the access token directly to RS, is described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
      <t>C and RS run the EDHOC protocol (see <xref target="edhoc-exec"/>), and C uploads the access token in an EAD field (see <xref target="AT-in-EAD"/>) of an EDHOC message. Once successfully completed the EDHOC session, C and RS derive an OSCORE Security Context (see <xref target="oscore-security-context"/>). After that, OSCORE is used for protecting communications when C accesses resources at RS, as per the access rights specified in the access token (see <xref target="access-rights-verif"/>).</t>
      <t>Detailed examples are given in <xref target="examples"/>.</t>
      <section anchor="AT-in-EAD">
        <name>EAD items for Access Token and Session Identifier</name>
        <t>This document defines EAD items (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>) for transporting an access token or a session identifier in EDHOC.</t>
        <ul spacing="normal">
          <li>
            <t>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"/>.</t>
              </li>
              <li>
                <t>ead_value 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>
            </ul>
            <t>
This EAD item is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must progress the protocol using the received access token, or else abort the EDHOC session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). A client or resource server supporting the profile of ACE defined in this document <bcp14>MUST</bcp14> support this EAD item.  </t>
            <t>
EAD_ACCESS_TOKEN is used only when uploading the first access token of a token series, but not for the update of access rights (see <xref target="update-access-rights-c-rs"/>).  </t>
            <t>
Editor's note: Add example.</t>
          </li>
          <li>
            <t>EAD_SESSION_ID  = (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"/>.</t>
              </li>
              <li>
                <t>ead_value is a CBOR byte string equal to the value of the "session_id" field within the EDHOC_Information object specified by AS in the "edhoc_info" parameter of the response from the /token endpoint, when issuing the first access token of a token series (see <xref target="as-c"/>).</t>
              </li>
            </ul>
            <t>
This EAD item is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must progress the protocol using the access token associated with the identifier specified in "ead_value" and with the AUTH_CRED_C used in the EDHOC session, or else abort the EDHOC session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). A client or resource server supporting the profile of ACE defined in this document <bcp14>MUST</bcp14> support this EAD item.  </t>
            <t>
EAD_SESSION_ID is used only if the access token has been provisioned to RS and is valid, but there is a need to establish a (new) OSCORE Security Context between C and RS through EDHOC.  </t>
            <t>
Editor's note: Add example.</t>
          </li>
        </ul>
      </section>
      <section anchor="edhoc-exec">
        <name>EDHOC Session</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 augmented with an access token. During the EDHOC session, C specifies the access token to RS by value as conveyed in EAD item EAD_ACCESS_TOKEN, or by reference through a session identifier SESSION_ID conveyed in the EAD item EAD_SESSION_ID (see <xref target="AT-in-EAD"/>).</t>
        <t>As per <xref section="A.2" sectionFormat="of" target="RFC9528"/>, EDHOC can be transferred over CoAP using either the forward or the reverse message flow, thus manifesting the two possible mappings between the ACE roles (client and resource server) and the EDHOC roles (Initiator and Responder), whereas the CoAP roles (client and server) remain the same. The choice of message flow and corresponding mapping depends on the deployment setting and in particular on which identity to protect the most, since EDHOC protects the identity of the Initiator against active attackers.</t>
        <t>In case the EDHOC forward message flow is used (see <xref target="forward"/>), C acts as EDHOC Initiator, and the access token <bcp14>MUST</bcp14> be specified by value or by reference in the EAD_3 field of EDHOC message_3. In case the EDHOC reverse message flow is used (see <xref target="reverse"/>), C acts as EDHOC Responder, and the access token <bcp14>MUST</bcp14> be specified by value or by reference either in the EAD_2 field of EDHOC message_2 or in the EAD_4 field of EDHOC message_4. By doing so, the access token or the associated session identifier gets at least the same confidentiality protection by EDHOC as provided to the authentication credential used by C in the EDHOC session (see <xref section="9.1" sectionFormat="of" target="RFC9528"/>).</t>
        <t>When RS processes the EAD item EAD_ACCESS_TOKEN or EAD_SESSION_ID, RS <bcp14>MUST</bcp14> verify that the authentication credential AUTH_CRED_C that C specifies in the ID_CRED_X field during the EDHOC session is the same authentication credential correlated with the EAD item. If such a verification fails, RS <bcp14>MUST</bcp14> abort the EDHOC session. Note that:</t>
        <ul spacing="normal">
          <li>
            <t>The ID_CRED_X field in question is the ID_CRED_I or ID_CRED_R field, when using the EDHOC forward or reverse message flow, respectively.</t>
          </li>
          <li>
            <t>If the processed EAD item is EAD_ACCESS_TOKEN, then the authentication credential correlated with the EAD item is specified in the 'cnf' claim of the access token conveyed in the EAD item.</t>
          </li>
          <li>
            <t>If the processed EAD item is EAD_SESSION_ID, then the authentication credential correlated with the EAD item is specified in the 'cnf' claim of an access token stored at the RS, which is associated with the authentication credential specified by ID_CRED_X and with the SESSION_ID conveyed in the EAD item.</t>
          </li>
        </ul>
        <t>RS <bcp14>MUST</bcp14> have successfully validated 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). If the EAD item used in the EDHOC session is EAD_ACCESS_TOKEN, then SESSION_ID is specified by the "session_id" field, within the EDHOC_Information object specified by the "cnf" claim of the access token.</t>
        <t>Any previous EDHOC session associated with the same access token and with the same pair (SESSION_ID, AUTH_CRED_C) <bcp14>MUST</bcp14> be deleted. The OSCORE Security Context derived from that EDHOC session <bcp14>MUST</bcp14> also be deleted.</t>
        <t>Depending on the message flow used, the EDHOC messages will be carried either in CoAP POST requests or in CoAP 2.04 (Changed) responses, as detailed in <xref section="A.2" sectionFormat="of" target="RFC9528"/>.</t>
        <t>C <bcp14>MUST</bcp14> target the EDHOC resource at RS with the URI path specified in the "uri_path" field (if present) of the EDHOC_Information object within the access token response received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>). If the "uri_path" field is not present in that EDHOC_Information object, C assumes the target resource at RS to be the well-known EDHOC resource at the path /.well-known/edhoc.</t>
        <t>RS has to ensure that no requests can be performed on an EDHOC resource other than for running the EDHOC protocol. Specifically, it <bcp14>SHOULD NOT</bcp14> be possible to perform any other operation than POST on an EDHOC resource.</t>
      </section>
      <section anchor="forward">
        <name>Forward Message Flow</name>
        <t>This section details the case where the EDHOC forward message flow is used (see <xref section="A.2.1" sectionFormat="of" target="RFC9528"/>), i.e., where C acts as the Initiator I and RS acts as the Responder R.</t>
        <t>Consistently with the EDHOC forward message flow, 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 CoAP 2.04 (Changed) responses.</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="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The EDHOC method <bcp14>MUST</bcp14> be one of the EDHOC methods specified in the "methods" field (if present) of the EDHOC_Information object within the access token response received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>)</t>
            </li>
            <li>
              <t>The selected cipher suite <bcp14>MUST</bcp14> be an EDHOC cipher suite specified in the "cipher_suites" field (if present) of the EDHOC_Information object within the access token response received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>)</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="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R specified by the message field ID_CRED_R is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message3">
          <name>EDHOC message_3</name>
          <t>The processing of EDHOC message_3 is specified in <xref section="5.4" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I specified by the message field ID_CRED_I is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>Exactly one of the EAD items EAD_ACCESS_TOKEN or EAD_SESSION_ID <bcp14>MUST</bcp14> be included in the EAD_3 field. If this is not the case, RS <bcp14>MUST</bcp14> abort the EDHOC session.</t>
            </li>
            <li>
              <t>If the EAD_3 field includes the EAD item EAD_ACCESS_TOKEN, then RS <bcp14>MUST</bcp14> ensure that the access token specified in the EAD item is valid. If the EAD_3 field includes the EAD item EAD_SESSION_ID, then RS <bcp14>MUST</bcp14> ensure that the access token associated with the session identifier SESSION_ID specified in the EAD item and with the AUTH_CRED_C used in the EDHOC session is valid.  </t>
              <t>
The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with an EDHOC error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>) and it <bcp14>MUST</bcp14> abort the EDHOC session.  </t>
              <t>
Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied" defined in draft-ietf-lake-authz</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="reverse">
        <name>Reverse Message Flow</name>
        <t>This section details the case where the EDHOC reverse message flow is used (see <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>), i.e., where C acts as the Responder R and RS acts as the Initiator I.</t>
        <t>Consistently with the EDHOC reverse message flow, C sends a trigger message, EDHOC message_2, and (optionally) EDHOC message_4 to RS as CoAP POST requests. RS sends EDHOC message_1 and EDHOC message_3 as CoAP 2.04 (Changed) responses.</t>
        <t>Exactly one of the EAD items EAD_ACCESS_TOKEN or EAD_SESSION_ID <bcp14>MUST</bcp14> be included in either the EAD_2 field of EDHOC message_2 or the EAD_4 field of EDHOC message_4. If this is not the case, RS <bcp14>MUST</bcp14> abort the EDHOC session.</t>
        <t>Specific instructions for the different messages are provided in the following subsections.</t>
        <section anchor="trigger-message">
          <name>Trigger Message</name>
          <t>As specified in <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>, the trigger message is an empty POST request that C sends to the EDHOC resource at RS, as intended to trigger a response conveying EDHOC message_1.</t>
          <t>In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), then C can perform an EDHOC "roll call", by sending the trigger message as a group request over IP multicast <xref target="I-D.ietf-core-groupcomm-bis"/>. For the sake of efficiency, it is expected that the group-audience is appropriately associated with a CoAP group and/or application group (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>), so that only the RSs belonging to the group-audience receive the trigger message. After that, C can receive a different EDHOC message_1 from each of the targeted RSs and separately progresses the corresponding EDHOC sessions, by sending a different EDHOC message_2 to each RS that has replied with an EDHOC message_1.</t>
        </section>
        <section anchor="edhoc-message1-1">
          <name>EDHOC message_1</name>
          <t>The processing of EDHOC message_1 is specified in <xref section="5.2" sectionFormat="of" target="RFC9528"/>.</t>
        </section>
        <section anchor="edhoc-message2-1">
          <name>EDHOC message_2</name>
          <t>The processing of EDHOC message_2 is specified in <xref section="5.3" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R specified by the message field ID_CRED_R is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>If the EAD_2 field includes the EAD item EAD_ACCESS_TOKEN, then RS <bcp14>MUST</bcp14> ensure that the access token specified in the EAD item is valid. If the EAD_2 field includes the EAD item EAD_SESSION_ID, then RS <bcp14>MUST</bcp14> ensure that the access token associated with the session identifier SESSION_ID specified in the EAD item and with the AUTH_CRED_C used in the EDHOC session is valid.  </t>
              <t>
The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with an EDHOC error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>) and it <bcp14>MUST</bcp14> abort the EDHOC session.  </t>
              <t>
Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied"  defined in draft-ietf-lake-authz</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message3-1">
          <name>EDHOC message_3</name>
          <t>The processing of EDHOC message_3 is specified in <xref section="5.4" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I specified by the message field ID_CRED_I is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message4">
          <name>EDHOC message_4</name>
          <t>The processing of EDHOC message_4 is specified in <xref section="5.5" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>If the EAD_4 field includes the EAD item EAD_ACCESS_TOKEN, then RS <bcp14>MUST</bcp14> ensure that the access token specified in the EAD item is valid. If the EAD_4 field includes the EAD item EAD_SESSION_ID, then RS <bcp14>MUST</bcp14> ensure that the access token associated with the session identifier SESSION_ID specified in the EAD item and with the AUTH_CRED_C used in the EDHOC session is valid.  </t>
              <t>
The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with an EDHOC error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>) and it <bcp14>MUST</bcp14> abort the EDHOC session.  </t>
              <t>
Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied"  defined in draft-ietf-lake-authz</t>
            </li>
          </ul>
        </section>
      </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="RFC9528"/>. 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="RFC9528"/>) <bcp14>MUST</bcp14> be the value specified in the "osc_ms_size" field (if present) within the EDHOC_Information object specified by:  </t>
            <ul spacing="normal">
              <li>
                <t>The "edhoc_info" parameter of the access token response that C received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>).</t>
              </li>
              <li>
                <t>The "edhoc_info" claim of the access token provisioned to RS (see <xref target="access-token"/>).</t>
              </li>
            </ul>
          </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="RFC9528"/>) <bcp14>MUST</bcp14> be the value specified in the "osc_salt_size" field (if present) within the EDHOC_Information object specified by:  </t>
            <ul spacing="normal">
              <li>
                <t>The "edhoc_info" parameter of the access token response that C received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>).</t>
              </li>
              <li>
                <t>The "edhoc_info" claim of the access token provisioned to RS (see <xref target="access-token"/>).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>C and RS <bcp14>MUST</bcp14> use the OSCORE version specified in the "osc_version" field (if present) within the EDHOC_Information object specified by:  </t>
            <ul spacing="normal">
              <li>
                <t>The "edhoc_info" parameter of the access token response that C received from AS, through which C obtained the first access token of the token series (see <xref target="c-as"/>).</t>
              </li>
              <li>
                <t>The "edhoc_info" claim of the access token provisioned to RS (see <xref target="access-token"/>).</t>
              </li>
            </ul>
          </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 used in the EDHOC session. The access token is also associated with the pair (SESSION_ID, AUTH_CRED_C), where SESSION_ID is the identifier of the token series to which the access token belongs.</t>
          </li>
        </ul>
        <t>If supported by C, C <bcp14>MAY</bcp14> use the EDHOC + OSCORE combined request defined in <xref target="RFC9668"/>, unless the EDHOC_Information object specified by the "edhoc_info" parameter of the access token response included the "comb_req" field encoding the CBOR simple value "false" (0xf4).</t>
        <t>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. 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. An example is provided in <xref target="example-with-optimization"/>.</t>
      </section>
      <section anchor="update-access-rights-c-rs">
        <name>Update of Access Rights</name>
        <t>If C has a valid OSCORE Security Context associated with a valid access token at RS, then C can request from AS an update of the access rights as described in <xref target="c-as"/>.</t>
        <t>If the request is granted, then AS generates a new access token containing updated access rights for C (see <xref target="update-access-rights-c-as"/>), in the same token series of the current access token (see <xref target="token-series"/>).</t>
        <t>According to this document, AS provides the new access token to C (see <xref target="as-c"/>) for further uploading to RS. Alternatively, the new access token can be uploaded by AS directly to RS, as described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>If all validations are successful, C can access protected resources at RS according to the updated access rights, using the previously established OSCORE Security Context.</t>
        <t>The rest of this section describes the message exchange for the uploading of the new access token from C to RS.</t>
        <section anchor="c-rs">
          <name>C-to-RS: POST to /authz-info endpoint</name>
          <t>C can update its access rights by uploading the updated access token to RS using CoAP <xref target="RFC7252"/> and the Authorization Information endpoint as described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>.</t>
          <t>That is, C sends a POST request to the /authz-info endpoint at RS, with the request payload containing 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 <bcp14>MUST</bcp14> be "application/cwt" to reflect the format of the transported access token.</t>
          <t>C <bcp14>MUST</bcp14> protect the POST request using the current OSCORE Security Context shared with RS.</t>
          <t>Upon receiving an access token from C, RS <bcp14>MUST</bcp14> follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>. That is, RS <bcp14>MUST</bcp14> verify the validity of the access token. RS <bcp14>MAY</bcp14> make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token at AS.</t>
          <t>RS <bcp14>MUST</bcp14> 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 the EDHOC_Information object specified by the "cnf" claim matches the "session_id" field of the EDHOC_Information object specified by the "cnf" claim of 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 <bcp14>MUST</bcp14> supersede the old access token T_OLD by replacing the corresponding authorization information with the one specified in the new access token T_NEW, and <bcp14>MUST</bcp14> associate T_NEW with the OSCORE Security Context CTX.</t>
          <t>Note that C and RS do not execute the EDHOC protocol, they do not establish a new OSCORE Security Context, and AUTH_CRED_C remains the same.</t>
        </section>
        <section anchor="rs-c">
          <name>RS-to-C: 2.01 (Created)</name>
          <t>If all validations are successful, RS stores the new access token in such a way that it is possible to retrieve it based on the pair (SESSION_ID, AUTH_CRED_C), where SESSION_ID is the identifier of the token series to which the access token belongs. Note that SESSION_ID is specified in the "session_id" field of the EDHOC_Information object, within the "cnf" claim of the access token.</t>
          <t>Then, RS <bcp14>MUST</bcp14> reply to the POST request by sending a 2.01 (Created) response with no payload. The response is protected with the same OSCORE Security Context used to protect the corresponding request. After that, C can access protected resources at RS according to the updated access rights, using the previously established OSCORE Security Context.</t>
          <t>Instead, if any validation fails, RS <bcp14>MUST</bcp14> respond with a 4.01 (Unauthorized) error response. RS <bcp14>MAY</bcp14> 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 a valid 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>
      <section anchor="discard-context">
        <name>Discarding the OSCORE Security Context</name>
        <t>There are a number of cases where C or RS have to discard the OSCORE Security Context that they share, and may establish a new one (see <xref target="establish-new-context"/>).</t>
        <t>C <bcp14>MUST</bcp14> 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 can happen, for example, due to lack of storage at 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 AUTH_CRED_C (AUTH_CRED_RS) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>RS <bcp14>MUST</bcp14> 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 AUTH_CRED_C (AUTH_CRED_RS) 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="establish-new-context">
        <name>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 <bcp14>SHALL</bcp14> 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 uploading 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 <bcp14>MUST</bcp14> associate the new OSCORE Security Context with the current (potentially re-uploaded) access token. Furthermore, the SESSION_ID identifying the token series to which the access token belongs to remains unchanged, even if C and RS have established a new EDHOC session. Unless C and RS re-run the EDHOC protocol, they preserve their OSCORE identifiers, i.e., their OSCORE Sender/Recipient IDs.</t>
      </section>
      <section anchor="access-rights-verif">
        <name>Access Rights Verification</name>
        <t>RS <bcp14>MUST</bcp14> 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 the EDHOC_Information object (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 <bcp14>MUST</bcp14> verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
      <section anchor="access-token-invalidity">
        <name>Access Token Invalidity</name>
        <t>When an access token becomes invalid (e.g., due to its expiration or revocation), RS <bcp14>MUST</bcp14> delete the access token and the associated OSCORE Security Context, and <bcp14>MUST</bcp14> 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="auth-cred-validity">
        <name>Authentication Credential Invalidity</name>
        <t>If an authentication credential AUTH_CRED_C of C is invalidated (e.g., it expires), then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>RS <bcp14>MUST</bcp14> delete all the stored access tokens that specify AUTH_CRED_C in the "cnf" claim.</t>
          </li>
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token such that C obtained the first access token of the same series through the response to an access token request specifying AUTH_CRED_C, e.g., in the "req_cnf" parameter (see <xref target="c-as"/>).</t>
          </li>
          <li>
            <t>RS and C <bcp14>MUST</bcp14> abort and purge all the EDHOC sessions that used AUTH_CRED_C and successfully completed, as well as the OSCORE Security Context derived from those sessions (see <xref target="discard-context"/>).</t>
          </li>
        </ul>
        <t>If an authentication credential AUTH_CRED_RS of RS is invalidated (e.g., it expires), then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token such that C obtained the first access token of the same series through an access token response specifying AUTH_CRED_RS, e.g., in the 'rs_cnf' parameter (see <xref target="as-c"/>).</t>
          </li>
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token that C specified (by value or be reference) during an EDHOC session that used AUTH_CRED_RS and successfully completed.</t>
          </li>
          <li>
            <t>RS and C <bcp14>MUST</bcp14> abort and purge all the EDHOC sessions that used AUTH_CRED_RS and successfully completed, as well as the OSCORE Security Context derived from those sessions (see <xref target="discard-context"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="session-validity">
        <name>EDHOC Session Invalidity</name>
        <t>If an EDHOC session is aborted and purged for other reasons than those in <xref target="auth-cred-validity"/>, then RS and C that established the session <bcp14>MUST</bcp14> delete the OSCORE Security Context derived from that session (see <xref target="discard-context"/>).</t>
      </section>
      <section anchor="as-creation-hints">
        <name>Using AS Request Creation Hints</name>
        <t>When replying to an unauthorized resource request message from a client, RS can send an unprotected AS Request Creation Hints message as a 4.01 (Unauthorized) error response (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>).</t>
        <t>The message payload can specify a number of parameters that help the sender client acquire a valid access token from AS. These parameters include "audience" and "scope".</t>
        <t>When using this profile and running EDHOC per its reverse message flow (see <xref target="reverse"/>), RS acts as EDHOC Initiator. A compelling reason to do so is the wish to protect the identity of RS against active attackers, consistently with the EDHOC security properties.</t>
        <t>However, the identity protection achieved through EDHOC can be defeated if RS exposes information such as audience and scope, when specifying the corresponding parameters in an unprotected AS Request Creation Hints message.</t>
        <t>Therefore, if RS supports the EDHOC reverse message flow and sends an AS Request Creation Hints, the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>The message payload <bcp14>MUST NOT</bcp14> include the "audience" parameter.</t>
          </li>
          <li>
            <t>The message payload <bcp14>SHOULD NOT</bcp14> include the "scope" parameter, unless its value cannot contribute to expose the identity of RS.</t>
          </li>
        </ul>
      </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 <bcp14>RECOMMENDED</bcp14>. 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"/>) <bcp14>MAY</bcp14> 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"/> and <xref target="example-with-optimization"/>. This also applies for communication between RS and AS, for example to protect the upload of access tokens from AS directly to RS as described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
    </section>
    <section anchor="cwt-confirmation-methods">
      <name>CWT Confirmation Methods</name>
      <t>This document defines a number of new CWT confirmation methods, which are registered in <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="RFC9528"/>.</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="RFC9528"/>.</t>
      </section>
    </section>
    <section anchor="jwt-confirmation-methods">
      <name>JWT Confirmation Methods</name>
      <t>This document defines a number of new JWT confirmation methods, which are registered in <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="sec-edhoc-endpoint-identity-types">
      <name>EDHOC Endpoint Identity Types</name>
      <t>This document defines the following identifier of type of endpoint identity for EDHOC.</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>
      <table align="center" anchor="_table-edhoc-endpoint-identity-types">
        <name>EDHOC Endpoint Identity Types</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">EUI-64</td>
            <td align="left">0</td>
            <td align="left">An EUI-64 identity</td>
            <td align="left">[RFC-XXXX]<xref target="RFC4291"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-edhoc-transports">
      <name>EDHOC Transports</name>
      <t>This document defines the following identifiers of means for transporting EDHOC messages.</t>
      <table align="center" anchor="_table-edhoc-transports">
        <name>EDHOC Transports</name>
        <thead>
          <tr>
            <th align="left">Transport ID</th>
            <th align="left">Name</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">CoAP over UDP</td>
            <td align="left">EDHOC messages are transported as payload of CoAP messages, in turn transported over UDP</td>
            <td align="left">
              <xref target="RFC7252"/>, <xref section="A.2" sectionFormat="of" target="RFC9528"/></td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">CoAP over TCP</td>
            <td align="left">EDHOC messages are transported as payload of CoAP messages, in turn transported over TCP</td>
            <td align="left">
              <xref target="RFC7252"/><xref target="RFC8323"/></td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">CoAP over WebSockets</td>
            <td align="left">EDHOC messages are transported as payload of CoAP messages, in turn transported over WebSockets</td>
            <td align="left">
              <xref target="RFC7252"/><xref target="RFC8323"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-edhoc-ta-purposes">
      <name>EDHOC Trust Anchor Purposes</name>
      <t>This document defines the following EDHOC trust anchor purpose.</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>
      <table align="center" anchor="_table-edhoc-ta-purposes">
        <name>EDHOC Trust Anchor Purposes</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">edhoc_cred</td>
            <td align="left">0</td>
            <td align="left">Verifying authentication credentials of other EDHOC peers in EDHOC sessions</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9528"/></td>
          </tr>
        </tbody>
      </table>
      <t>Trust anchors with purpose "edhoc_cred" are used for verifying authentication credentials of other EDHOC peers in an EDHOC session, and they typically are authentication credentials of Certificate Authorities (CAs).</t>
    </section>
    <section anchor="sec-edhoc-ta-types">
      <name>EDHOC Trust Anchor Types</name>
      <t>This document defines the following EDHOC trust anchor types.</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>
      <table align="center" anchor="_table-edhoc-ta-types">
        <name>EDHOC Trust Anchor Types</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Value type</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">uuid</td>
            <td align="left">0</td>
            <td align="left">#6.37(bstr)</td>
            <td align="left">Binary CBOR-encoded UUID</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9562"/></td>
          </tr>
          <tr>
            <td align="left">kid</td>
            <td align="left">4</td>
            <td align="left">bstr</td>
            <td align="left">Key identifier</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9052"/></td>
          </tr>
          <tr>
            <td align="left">c5t</td>
            <td align="left">22</td>
            <td align="left">COSE_CertHash</td>
            <td align="left">Hash of a C509 certificate</td>
            <td align="left">[RFC-XXXX][draft-ietf-cose-cbor-encoded-cert]</td>
          </tr>
          <tr>
            <td align="left">c5u</td>
            <td align="left">23</td>
            <td align="left">uri</td>
            <td align="left">URI pointing to a COSE_C509 containing a ordered chain of certificates</td>
            <td align="left">[RFC-XXXX][draft-ietf-cose-cbor-encoded-cert]</td>
          </tr>
          <tr>
            <td align="left">x5t</td>
            <td align="left">34</td>
            <td align="left">COSE_CertHash</td>
            <td align="left">Hash of an X.509 certificate</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9360"/></td>
          </tr>
          <tr>
            <td align="left">x5u</td>
            <td align="left">35</td>
            <td align="left">uri</td>
            <td align="left">URI pointing to an X.509 certificate</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9360"/></td>
          </tr>
        </tbody>
      </table>
    </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="RFC9528"/> 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. Instead, 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 <bcp14>RECOMMENDED</bcp14> 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 <bcp14>SHOULD</bcp14> avoid using multiple access tokens for a same client. Furthermore, RS <bcp14>MUST NOT</bcp14> 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="RFC9528"/> 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 (see also <xref target="as-creation-hints"/>). When an OSCORE Security Context already exists between C and RS, more detailed information may be included.</t>
      <t>The (encrypted) access token is never sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, even if C uses the same single access token from multiple locations, the access token's value does not contribute to the risk of C being tracked.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the EDHOC session. When using the EDHOC forward (reverse) message flow:</t>
      <ul spacing="normal">
        <li>
          <t>The EDHOC Connection Identifier C_I (C_R) of C is going to be the OSCORE Recipient ID of C, i.e., the OSCORE Sender ID of RS.</t>
        </li>
        <li>
          <t>The EDHOC Connection Identifier C_R (C_I) of RS is going to be the OSCORE Recipient ID of RS, i.e., the OSCORE Sender ID of C.</t>
        </li>
      </ul>
      <t>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-id-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 Profiles Registry</name>
        <t>IANA is asked to add the following entry to the "ACE Profiles" registry, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: coap_edhoc_oscore</t>
          </li>
          <li>
            <t>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 lightweight authenticated key exchange protocol EDHOC <xref target="RFC9528"/>.</t>
          </li>
          <li>
            <t>CBOR Value:  TBD (value between 1 and 23)</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 entry to the "OAuth Parameters" registry.</t>
        <ul spacing="normal">
          <li>
            <t>Name: edhoc_info</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request and token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</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 entry to the "OAuth Parameters CBOR Mappings" registry, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: edhoc_info</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: map</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [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 (CWT) Claims Registry</name>
        <t>IANA is asked to add the following entries to the "CBOR Web Token (CWT) 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 (value between 1 and 255)</t>
          </li>
          <li>
            <t>Claim Value Type: map</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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: IETF</t>
          </li>
          <li>
            <t>Reference: <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 (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5chain"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5bag"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: uri</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: uri</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_Messages</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></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 (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: map / #6(map)</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <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 entries to the "EDHOC External Authorization Data" registry defined in <xref section="10.5" sectionFormat="of" target="RFC9528"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: ACE-OAuth Access Token</t>
          </li>
          <li>
            <t>Label: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Description: An Access Token as used in the ACE-OAuth framework <xref target="RFC9200"/></t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="AT-in-EAD"/></t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: Session ID</t>
          </li>
          <li>
            <t>Label: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Description: The identifier of an EDHOC session</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="AT-in-EAD"/></t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-parameters">
        <name>EDHOC Information Registry</name>
        <t>IANA is requested to create a new "EDHOC Information" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>, or "Expert Review" per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, review and approval by the designated expert are also required, in order for the WG chairs to determine that the conditions for early allocation are met (see step 2 in <xref section="3.1" sectionFormat="of" target="RFC7120"/>).</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 <bcp14>RECOMMENDED</bcp14> 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 <bcp14>MUST</bcp14> 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 designated as "Standards Action with Expert Review". Integer values from -65536 to -257 and from 256 to 65535 and strings of maximum length 2 are designated as "Specification Required". Integer values greater than 65535 and strings of length greater than 2 are designated as "Expert Review". 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="_table-cbor-key-edhoc-params"/>. In the "Specification" column, the value for all of these entries will be [RFC-XXXX] and <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="iana-edhoc-endpoint-identity-types">
        <name>EDHOC Endpoint Identity Types Registry</name>
        <t>IANA is requested to create a new "EDHOC Endpoint Identity Types" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the name of the EDHOC endpoint identity type.</t>
          </li>
          <li>
            <t>CBOR label: The value to be used to identify this EDHOC endpoint identity type. These values <bcp14>MUST</bcp14> be unique. The value can be a positive integer or a negative integer. Different ranges of values use different registration policies <xref target="RFC8126"/>. Integer values from -24 to 23 are designated as "Standards Action with Expert Review". Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required". Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
          </li>
          <li>
            <t>Description: This field contains a short description of the EDHOC endpoint identity type.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the EDHOC endpoint identity type.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="_table-edhoc-endpoint-identity-types"/>.</t>
      </section>
      <section anchor="iana-edhoc-transports">
        <name>EDHOC Transports Registry</name>
        <t>IANA is requested to create a new "EDHOC Transports" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Transport ID: The value to be used to identify this means for transporting EDHOC messages. These values <bcp14>MUST</bcp14> be unique. The value can be a positive integer or a negative integer. Different ranges of values use different registration policies <xref target="RFC8126"/>. Integer values from -24 to 23 are designated as "Standards Action with Expert Review". Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required". Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
          </li>
          <li>
            <t>Name: This field contains the name of the means for transporting EDHOC messages.</t>
          </li>
          <li>
            <t>Description: This field contains a short description of the means used for transporting EDHOC messages.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the means used for transporting EDHOC messages.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="_table-edhoc-transports"/>.</t>
      </section>
      <section anchor="iana-edhoc-ta-purposes">
        <name>EDHOC Trust Anchor Purposes Registry</name>
        <t>IANA is requested to create a new "EDHOC Trust Anchor Purposes" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the descriptive name of the trust anchor purpose, to enable easier reference to the item. These names <bcp14>MUST</bcp14> be unique.</t>
          </li>
          <li>
            <t>CBOR label: This field contains the value used to identify the trust anchor purpose. These values <bcp14>MUST</bcp14> be unique. The value can be an unsigned integer or a negative integer. Different ranges of values use different registration policies:  </t>
            <ul spacing="normal">
              <li>
                <t>Integer values from -24 to 23 are designated as "Standards Action with Expert Review".</t>
              </li>
              <li>
                <t>Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required".</t>
              </li>
              <li>
                <t>Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Description: This field contains a short description of the trust anchor purpose.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the trust anchor purpose.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="sec-edhoc-ta-purposes"/>.</t>
      </section>
      <section anchor="iana-edhoc-ta-types">
        <name>EDHOC Trust Anchor Types Registry</name>
        <t>IANA is requested to create a new "EDHOC Trust Anchor Types" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the descriptive name of the type of trust anchor, to enable easier reference to the item. These names <bcp14>MUST</bcp14> be unique.</t>
          </li>
          <li>
            <t>CBOR label: This field contains the value used to identify the type of trust anchor. These values <bcp14>MUST</bcp14> be unique. The value can be an unsigned integer or a negative integer. Different ranges of values use different registration policies:  </t>
            <ul spacing="normal">
              <li>
                <t>Integer values from -24 to 23 are designated as "Standards Action with Expert Review".</t>
              </li>
              <li>
                <t>Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required".</t>
              </li>
              <li>
                <t>Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Value type: This field contains the CBOR type for the value portion of the label.</t>
          </li>
          <li>
            <t>Description: This field contains a short description of the type of trust anchor.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the type of trust anchor.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the values in <xref target="_table-edhoc-ta-types"/>.</t>
      </section>
      <section anchor="iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>"Standards Action with Expert Review", "Specification Required", and "Expert Review" are three of the registration policies defined for the IANA registries established in this document. 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>Clarity and correctness of registrations. Experts are expected to check the clarity of purpose and use of the requested entries. Experts need to make sure that the object of registration is clearly defined in the corresponding specification. Entries that do not meet these objective of clarity and completeness must not be registered.</t>
          </li>
          <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 with Expert Review" range of point assignment. Specifications should exist for "Specification Required" ranges, but early assignment before a specification is available is considered to be permissible. 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. Documents published via Standards Action can also register points outside the Standards Action 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 anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC4291">
          <front>
            <title>IP Version 6 Addressing Architecture</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol. The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
              <t>This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture". [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4291"/>
          <seriesInfo name="DOI" value="10.17487/RFC4291"/>
        </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="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="RFC7120">
          <front>
            <title>Early IANA Allocation of Standards Track Code Points</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <date month="January" year="2014"/>
            <abstract>
              <t>This memo describes the process for early allocation of code points by IANA from registries for which "Specification Required", "RFC Required", "IETF Review", or "Standards Action" policies apply. This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation. The procedures in this document are intended to apply only to IETF Stream documents.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="100"/>
          <seriesInfo name="RFC" value="7120"/>
          <seriesInfo name="DOI" value="10.17487/RFC7120"/>
        </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="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="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="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <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="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="RFC9668">
          <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="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="R. Höglund" initials="R." surname="Höglund"/>
            <author fullname="S. Hristozov" initials="S." surname="Hristozov"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol by specifying a number of additional and optional mechanisms, including 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="RFC" value="9668"/>
          <seriesInfo name="DOI" value="10.17487/RFC9668"/>
        </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="8" month="January" year="2025"/>
            <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-12"/>
        </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>
        <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="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>
      </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-groupcomm-bis">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="24" month="February" year="2025"/>
            <abstract>
              <t>   This document specifies the use of the Constrained Application
   Protocol (CoAP) for group communication, including the use of UDP/IP
   multicast as the default underlying data transport.  Both unsecured
   and secured CoAP group communication are specified.  Security is
   achieved by use of the Group Object Security for Constrained RESTful
   Environments (Group OSCORE) protocol.  The target application area of
   this specification is any group communication use cases that involve
   resource-constrained devices or networks that support CoAP.  This
   document replaces and obsoletes RFC 7390, while it updates RFC 7252
   and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-13"/>
        </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="21" month="October" 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.  Third, it defines a method for the ACE framework to enforce
   bidirectional access control by means of a single access token.
   Fourth, it amends two of the requirements on profiles of the
   framework.  Finally, it deprecates the original payload format of
   error responses that convey an error code, when CBOR is used to
   encode message payloads.  For such error responses, it defines a new
   payload format aligned with RFC 9290, thus updating in this respect
   also the profiles of ACE defined in RFC 9202, RFC 9203, and RFC 9431.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-03"/>
        </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="21" month="October" 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-09"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-id-update">
          <front>
            <title>Identifier Update for OSCORE</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="8" month="January" year="2025"/>
            <abstract>
              <t>   Two peers that communicate with the CoAP protocol can use the Object
   Security for Constrained RESTful Environments (OSCORE) protocol to
   protect their message exchanges end-to-end.  To this end, the two
   peers share an OSCORE Security Context and a number of related
   identifiers.  In particular, each of the two peers stores a Sender ID
   that identifies its own Sender Context within the Security Context,
   and a Recipient ID that identifies the Recipient Context associated
   with the other peer within the same Security Context.  These
   identifiers are sent in plaintext within OSCORE-protected messages.
   Hence, they can be used to correlate messages exchanged between peers
   and track those peers, with consequent privacy implications.  This
   document defines an OSCORE ID update procedure that two peers can use
   to update their OSCORE identifiers.  This procedure can be run stand-
   alone or seamlessly integrated in an execution of the Key Update for
   OSCORE (KUDOS) procedure.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-id-update-02"/>
        </reference>
        <reference anchor="I-D.ietf-lake-authz">
          <front>
            <title>Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE (ELA)</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="Geovane Fedrecheski" initials="G." surname="Fedrecheski">
              <organization>INRIA</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight
   authenticated key exchange protocol intended for use in constrained
   scenarios.  This document specifies Lightweight Authorization using
   EDHOC (ELA).  The procedure allows authorizing enrollment of new
   devices using the extension point defined in EDHOC.  ELA is
   applicable to zero-touch onboarding of new devices to a constrained
   network leveraging trust anchors installed at manufacture time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-03"/>
        </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="21" month="October" year="2024"/>
            <abstract>
              <t>   Enrollment over Secure Transport (EST) is a certificate provisioning
   protocol over HTTPS [RFC7030] or CoAPs [RFC9148].  This document
   specifies how to carry EST over the Constrained Application Protocol
   (CoAP) protected with Object Security for Constrained RESTful
   Environments (OSCORE).  The specification builds on the EST-coaps
   [RFC9148] specification, but uses OSCORE and Ephemeral Diffie-Hellman
   over COSE (EDHOC) instead of DTLS.  The specification also leverages
   the certificate structures defined in
   [I-D.ietf-cose-cbor-encoded-cert], which can be optionally used
   alongside X.509 certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-est-oscore-06"/>
        </reference>
        <reference anchor="I-D.serafin-lake-ta-hint">
          <front>
            <title>Trust Anchor Hints in Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marek Serafin" initials="M." surname="Serafin">
              <organization>ASSA ABLOY</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   This document defines a format for transport of hints about Trust
   Anchors of trusted third parties when using the lightweight
   authenticated key exchange protocol Ephemeral Diffie-Hellman Over
   COSE (EDHOC).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-serafin-lake-ta-hint-00"/>
        </reference>
      </references>
    </references>
    <?line 1488?>

<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 <xref target="RFC9668"/>, hence reducing the roundtrips of the interactions between C and 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 resource servers by the respective resource owners as well as the registrations of clients authorized to request access tokens for those resource servers.</t>
      <ul spacing="normal">
        <li>
          <t>AS knows the authentication credential AUTH_CRED_C of C.</t>
        </li>
        <li>
          <t>C 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 C as described in <xref target="I-D.ietf-ace-workflow-and-params"/>).</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 C requests an access token for RS for the first time when considering the pair (AUTH_CRED_C, AUTH_CRED_RS).</t>
      <ul spacing="normal">
        <li>
          <t>In the access token response from AS to C, 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 identified 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 identify both AUTH_CRED_C and AUTH_CRED_RS by reference, when performing the ACE access control workflow as well as later on when C and RS run EDHOC.</t>
      <section anchor="example-without-optimization">
        <name>Workflow without Optimizations</name>
        <t>The example below shows a simple interaction between C and RS: C and RS run EDHOC wherein C uploads the access token to RS, and then accesses a protected resource at RS.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="3040" width="576" viewBox="0 0 576 3040" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,832" fill="none" stroke="black"/>
              <path d="M 40,928 L 40,1264" fill="none" stroke="black"/>
              <path d="M 40,1360 L 40,1520" fill="none" stroke="black"/>
              <path d="M 40,1712 L 40,1728" fill="none" stroke="black"/>
              <path d="M 40,1792 L 40,1808" fill="none" stroke="black"/>
              <path d="M 40,1952 L 40,3024" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,832" fill="none" stroke="black"/>
              <path d="M 320,928 L 320,984" fill="none" stroke="black"/>
              <path d="M 320,1000 L 320,1048" fill="none" stroke="black"/>
              <path d="M 320,1064 L 320,1176" fill="none" stroke="black"/>
              <path d="M 320,1192 L 320,1264" fill="none" stroke="black"/>
              <path d="M 320,1360 L 320,1432" fill="none" stroke="black"/>
              <path d="M 320,1448 L 320,1496" fill="none" stroke="black"/>
              <path d="M 320,1712 L 320,1728" fill="none" stroke="black"/>
              <path d="M 320,1792 L 320,1808" fill="none" stroke="black"/>
              <path d="M 320,1952 L 320,2552" fill="none" stroke="black"/>
              <path d="M 320,2568 L 320,2632" fill="none" stroke="black"/>
              <path d="M 320,2648 L 320,2760" fill="none" stroke="black"/>
              <path d="M 320,2776 L 320,2920" fill="none" stroke="black"/>
              <path d="M 320,2936 L 320,3000" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,832" fill="none" stroke="black"/>
              <path d="M 568,928 L 568,1264" fill="none" stroke="black"/>
              <path d="M 568,1360 L 568,1520" fill="none" stroke="black"/>
              <path d="M 568,1712 L 568,1728" fill="none" stroke="black"/>
              <path d="M 568,1792 L 568,1808" fill="none" stroke="black"/>
              <path d="M 568,1952 L 568,3024" fill="none" stroke="black"/>
              <path d="M 40,80 L 312,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 320,144" fill="none" stroke="black"/>
              <path d="M 40,256 L 312,256" fill="none" stroke="black"/>
              <path d="M 40,384 L 312,384" fill="none" stroke="black"/>
              <path d="M 48,496 L 320,496" fill="none" stroke="black"/>
              <path d="M 40,992 L 560,992" fill="none" stroke="black"/>
              <path d="M 48,1056 L 568,1056" fill="none" stroke="black"/>
              <path d="M 40,1184 L 560,1184" fill="none" stroke="black"/>
              <path d="M 40,1440 L 560,1440" fill="none" stroke="black"/>
              <path d="M 48,1504 L 568,1504" fill="none" stroke="black"/>
              <path d="M 40,2016 L 312,2016" fill="none" stroke="black"/>
              <path d="M 48,2144 L 320,2144" fill="none" stroke="black"/>
              <path d="M 40,2560 L 560,2560" fill="none" stroke="black"/>
              <path d="M 48,2640 L 568,2640" fill="none" stroke="black"/>
              <path d="M 40,2768 L 560,2768" fill="none" stroke="black"/>
              <path d="M 40,2928 L 560,2928" fill="none" stroke="black"/>
              <path d="M 48,3008 L 568,3008" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,2928 556,2922.4 556,2933.6" fill="black" transform="rotate(0,560,2928)"/>
              <polygon class="arrowhead" points="568,2768 556,2762.4 556,2773.6" fill="black" transform="rotate(0,560,2768)"/>
              <polygon class="arrowhead" points="568,2560 556,2554.4 556,2565.6" fill="black" transform="rotate(0,560,2560)"/>
              <polygon class="arrowhead" points="568,1440 556,1434.4 556,1445.6" fill="black" transform="rotate(0,560,1440)"/>
              <polygon class="arrowhead" points="568,1184 556,1178.4 556,1189.6" fill="black" transform="rotate(0,560,1184)"/>
              <polygon class="arrowhead" points="568,992 556,986.4 556,997.6" fill="black" transform="rotate(0,560,992)"/>
              <polygon class="arrowhead" points="320,2016 308,2010.4 308,2021.6" fill="black" transform="rotate(0,312,2016)"/>
              <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,3008 44,3002.4 44,3013.6" fill="black" transform="rotate(180,48,3008)"/>
              <polygon class="arrowhead" points="56,2640 44,2634.4 44,2645.6" fill="black" transform="rotate(180,48,2640)"/>
              <polygon class="arrowhead" points="56,2144 44,2138.4 44,2149.6" fill="black" transform="rotate(180,48,2144)"/>
              <polygon class="arrowhead" points="56,1504 44,1498.4 44,1509.6" fill="black" transform="rotate(180,48,1504)"/>
              <polygon class="arrowhead" points="56,1056 44,1050.4 44,1061.6" fill="black" transform="rotate(180,48,1056)"/>
              <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)"/>
              <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="208" y="564">specifies</text>
                <text x="264" y="564">the</text>
                <text x="72" y="580">ACE</text>
                <text x="120" y="580">profile</text>
                <text x="232" 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="152" y="644">e'session_id'</text>
                <text x="216" y="644">:</text>
                <text x="252" y="644">h'01',</text>
                <text x="164" y="660">e'cipher_suites'</text>
                <text x="240" y="660">:</text>
                <text x="260" y="660">2,</text>
                <text x="140" y="676">e'methods'</text>
                <text x="192" y="676">:</text>
                <text x="212" y="676">3,</text>
                <text x="144" y="692">e'uri_path'</text>
                <text x="200" y="692">:</text>
                <text x="244" y="692">"/edhoc"</text>
                <text x="88" y="708">}</text>
                <text x="68" y="740">In</text>
                <text x="96" y="740">the</text>
                <text x="140" y="740">access</text>
                <text x="196" y="740">token:</text>
                <text x="64" y="756">-</text>
                <text x="88" y="756">the</text>
                <text x="128" y="756">"cnf"</text>
                <text x="176" y="756">claim</text>
                <text x="240" y="756">specifies</text>
                <text x="120" y="772">AUTH_CRED_C</text>
                <text x="180" y="772">by</text>
                <text x="216" y="772">value</text>
                <text x="64" y="788">-</text>
                <text x="88" y="788">the</text>
                <text x="156" y="788">"edhoc_info"</text>
                <text x="232" y="788">claim</text>
                <text x="112" y="804">specifies</text>
                <text x="168" y="804">the</text>
                <text x="204" y="804">same</text>
                <text x="236" y="804">as</text>
                <text x="124" y="820">"edhoc_info"</text>
                <text x="200" y="820">above</text>
                <text x="76" y="868">Possibly</text>
                <text x="136" y="868">after</text>
                <text x="184" y="868">chain</text>
                <text x="264" y="868">verification,</text>
                <text x="328" y="868">C</text>
                <text x="356" y="868">adds</text>
                <text x="428" y="868">AUTH_CRED_RS</text>
                <text x="52" y="884">to</text>
                <text x="80" y="884">the</text>
                <text x="112" y="884">set</text>
                <text x="140" y="884">of</text>
                <text x="168" y="884">its</text>
                <text x="216" y="884">trusted</text>
                <text x="268" y="884">peer</text>
                <text x="348" y="884">authentication</text>
                <text x="460" y="884">credentials,</text>
                <text x="72" y="900">relying</text>
                <text x="116" y="900">on</text>
                <text x="140" y="900">AS</text>
                <text x="164" y="900">as</text>
                <text x="208" y="900">trusted</text>
                <text x="276" y="900">provider</text>
                <text x="80" y="964">EDHOC</text>
                <text x="144" y="964">message_1</text>
                <text x="196" y="964">to</text>
                <text x="236" y="964">/edhoc</text>
                <text x="72" y="980">(no</text>
                <text x="116" y="980">access</text>
                <text x="176" y="980">control</text>
                <text x="220" y="980">is</text>
                <text x="272" y="980">enforced)</text>
                <text x="16" y="996">M06</text>
                <text x="80" y="1044">EDHOC</text>
                <text x="144" y="1044">message_2</text>
                <text x="16" y="1060">M07</text>
                <text x="96" y="1076">ID_CRED_R</text>
                <text x="180" y="1076">identifies</text>
                <text x="108" y="1092">CRED_R</text>
                <text x="144" y="1092">=</text>
                <text x="204" y="1092">AUTH_CRED_RS</text>
                <text x="92" y="1108">by</text>
                <text x="144" y="1108">reference</text>
                <text x="80" y="1156">EDHOC</text>
                <text x="144" y="1156">message_3</text>
                <text x="196" y="1156">to</text>
                <text x="236" y="1156">/edhoc</text>
                <text x="72" y="1172">(no</text>
                <text x="116" y="1172">access</text>
                <text x="176" y="1172">control</text>
                <text x="220" y="1172">is</text>
                <text x="272" y="1172">enforced)</text>
                <text x="16" y="1188">M08</text>
                <text x="112" y="1204">EAD_3</text>
                <text x="172" y="1204">contains</text>
                <text x="236" y="1204">access</text>
                <text x="288" y="1204">token</text>
                <text x="96" y="1220">ID_CRED_I</text>
                <text x="180" y="1220">identifies</text>
                <text x="108" y="1236">CRED_I</text>
                <text x="144" y="1236">=</text>
                <text x="200" y="1236">AUTH_CRED_C</text>
                <text x="92" y="1252">by</text>
                <text x="144" y="1252">reference</text>
                <text x="76" y="1300">Possibly</text>
                <text x="136" y="1300">after</text>
                <text x="184" y="1300">chain</text>
                <text x="264" y="1300">verification,</text>
                <text x="332" y="1300">RS</text>
                <text x="364" y="1300">adds</text>
                <text x="432" y="1300">AUTH_CRED_C</text>
                <text x="52" y="1316">to</text>
                <text x="80" y="1316">the</text>
                <text x="112" y="1316">set</text>
                <text x="140" y="1316">of</text>
                <text x="168" y="1316">its</text>
                <text x="216" y="1316">trusted</text>
                <text x="268" y="1316">peer</text>
                <text x="348" y="1316">authentication</text>
                <text x="460" y="1316">credentials,</text>
                <text x="72" y="1332">relying</text>
                <text x="116" y="1332">on</text>
                <text x="140" y="1332">AS</text>
                <text x="164" y="1332">as</text>
                <text x="208" y="1332">trusted</text>
                <text x="276" y="1332">provider</text>
                <text x="84" y="1396">Access</text>
                <text x="124" y="1396">to</text>
                <text x="176" y="1396">protected</text>
                <text x="252" y="1396">resource</text>
                <text x="128" y="1412">(OSCORE-protected</text>
                <text x="236" y="1412">message)</text>
                <text x="88" y="1428">(access</text>
                <text x="152" y="1428">control</text>
                <text x="196" y="1428">is</text>
                <text x="248" y="1428">enforced)</text>
                <text x="16" y="1444">M08</text>
                <text x="92" y="1476">Response</text>
                <text x="128" y="1492">(OSCORE-protected</text>
                <text x="236" y="1492">message)</text>
                <text x="16" y="1508">M10</text>
                <text x="320" y="1524">|</text>
                <text x="64" y="1556">Later</text>
                <text x="104" y="1556">on,</text>
                <text x="136" y="1556">the</text>
                <text x="180" y="1556">access</text>
                <text x="232" y="1556">token</text>
                <text x="288" y="1556">expires</text>
                <text x="336" y="1556">...</text>
                <text x="56" y="1588">-</text>
                <text x="72" y="1588">C</text>
                <text x="96" y="1588">and</text>
                <text x="124" y="1588">RS</text>
                <text x="164" y="1588">delete</text>
                <text x="216" y="1588">their</text>
                <text x="268" y="1588">OSCORE</text>
                <text x="332" y="1588">Security</text>
                <text x="400" y="1588">Context</text>
                <text x="448" y="1588">and</text>
                <text x="488" y="1588">purge</text>
                <text x="80" y="1604">the</text>
                <text x="120" y="1604">EDHOC</text>
                <text x="176" y="1604">session</text>
                <text x="228" y="1604">used</text>
                <text x="260" y="1604">to</text>
                <text x="300" y="1604">derive</text>
                <text x="340" y="1604">it</text>
                <text x="384" y="1604">(unless</text>
                <text x="432" y="1604">the</text>
                <text x="468" y="1604">same</text>
                <text x="96" y="1620">session</text>
                <text x="140" y="1620">is</text>
                <text x="172" y="1620">also</text>
                <text x="212" y="1620">used</text>
                <text x="248" y="1620">for</text>
                <text x="288" y="1620">other</text>
                <text x="352" y="1620">reasons).</text>
                <text x="56" y="1636">-</text>
                <text x="76" y="1636">RS</text>
                <text x="120" y="1636">retains</text>
                <text x="200" y="1636">AUTH_CRED_C</text>
                <text x="260" y="1636">as</text>
                <text x="296" y="1636">still</text>
                <text x="348" y="1636">valid,</text>
                <text x="80" y="1652">and</text>
                <text x="108" y="1652">AS</text>
                <text x="144" y="1652">knows</text>
                <text x="192" y="1652">about</text>
                <text x="232" y="1652">it.</text>
                <text x="56" y="1668">-</text>
                <text x="80" y="1668">The</text>
                <text x="124" y="1668">Client</text>
                <text x="184" y="1668">retains</text>
                <text x="268" y="1668">AUTH_CRED_RS</text>
                <text x="332" y="1668">as</text>
                <text x="368" y="1668">still</text>
                <text x="420" y="1668">valid,</text>
                <text x="80" y="1684">and</text>
                <text x="108" y="1684">AS</text>
                <text x="144" y="1684">knows</text>
                <text x="192" y="1684">about</text>
                <text x="232" y="1684">it.</text>
                <text x="60" y="1764">Time</text>
                <text x="108" y="1764">passes</text>
                <text x="152" y="1764">...</text>
                <text x="48" y="1844">C</text>
                <text x="76" y="1844">asks</text>
                <text x="112" y="1844">for</text>
                <text x="136" y="1844">a</text>
                <text x="160" y="1844">new</text>
                <text x="204" y="1844">access</text>
                <text x="260" y="1844">token;</text>
                <text x="304" y="1844">now</text>
                <text x="336" y="1844">all</text>
                <text x="368" y="1844">the</text>
                <text x="100" y="1860">authentication</text>
                <text x="208" y="1860">credentials</text>
                <text x="272" y="1860">can</text>
                <text x="300" y="1860">be</text>
                <text x="356" y="1860">identifies</text>
                <text x="412" y="1860">by</text>
                <text x="464" y="1860">reference</text>
                <text x="56" y="1892">The</text>
                <text x="96" y="1892">price</text>
                <text x="132" y="1892">to</text>
                <text x="160" y="1892">pay</text>
                <text x="188" y="1892">is</text>
                <text x="212" y="1892">on</text>
                <text x="240" y="1892">AS,</text>
                <text x="280" y="1892">about</text>
                <text x="352" y="1892">remembering</text>
                <text x="420" y="1892">that</text>
                <text x="452" y="1892">at</text>
                <text x="488" y="1892">least</text>
                <text x="56" y="1908">one</text>
                <text x="100" y="1908">access</text>
                <text x="152" y="1908">token</text>
                <text x="192" y="1908">has</text>
                <text x="228" y="1908">been</text>
                <text x="276" y="1908">issued</text>
                <text x="320" y="1908">for</text>
                <text x="352" y="1908">the</text>
                <text x="388" y="1908">pair</text>
                <text x="444" y="1908">(Client,</text>
                <text x="496" y="1908">RS)</text>
                <text x="56" y="1924">and</text>
                <text x="120" y="1924">considering</text>
                <text x="184" y="1924">the</text>
                <text x="220" y="1924">pair</text>
                <text x="296" y="1924">(AUTH_CRED_C,</text>
                <text x="408" y="1924">AUTH_CRED_RS)</text>
                <text x="80" y="1988">Token</text>
                <text x="136" y="1988">request</text>
                <text x="180" y="1988">to</text>
                <text x="220" y="1988">/token</text>
                <text x="128" y="2004">(OSCORE-protected</text>
                <text x="236" y="2004">message)</text>
                <text x="16" y="2020">M11</text>
                <text x="96" y="2036">"req_cnf"</text>
                <text x="180" y="2036">identifies</text>
                <text x="108" y="2052">CRED_I</text>
                <text x="144" y="2052">=</text>
                <text x="200" y="2052">AUTH_CRED_C</text>
                <text x="92" y="2068">by</text>
                <text x="144" y="2068">reference</text>
                <text x="80" y="2116">Token</text>
                <text x="140" y="2116">response</text>
                <text x="128" y="2132">(OSCORE-protected</text>
                <text x="236" y="2132">message)</text>
                <text x="16" y="2148">M12</text>
                <text x="92" y="2164">"rs_cnf"</text>
                <text x="172" y="2164">identifies</text>
                <text x="132" y="2180">AUTH_CRED_RS</text>
                <text x="196" y="2180">by</text>
                <text x="248" y="2180">reference</text>
                <text x="112" y="2212">"ace_profile"</text>
                <text x="208" y="2212">specifies</text>
                <text x="264" y="2212">the</text>
                <text x="72" y="2228">ACE</text>
                <text x="120" y="2228">profile</text>
                <text x="232" y="2228">"coap_edhoc_oscore"</text>
                <text x="108" y="2260">"edhoc_info"</text>
                <text x="204" y="2260">specifies:</text>
                <text x="88" y="2276">{</text>
                <text x="152" y="2292">e'session_id'</text>
                <text x="216" y="2292">:</text>
                <text x="252" y="2292">h'05',</text>
                <text x="164" y="2308">e'cipher_suites'</text>
                <text x="240" y="2308">:</text>
                <text x="260" y="2308">2,</text>
                <text x="140" y="2324">e'methods'</text>
                <text x="192" y="2324">:</text>
                <text x="212" y="2324">3,</text>
                <text x="144" y="2340">e'uri_path'</text>
                <text x="200" y="2340">:</text>
                <text x="244" y="2340">"/edhoc"</text>
                <text x="88" y="2356">}</text>
                <text x="68" y="2388">In</text>
                <text x="96" y="2388">the</text>
                <text x="140" y="2388">access</text>
                <text x="196" y="2388">token:</text>
                <text x="64" y="2404">-</text>
                <text x="88" y="2404">the</text>
                <text x="128" y="2404">"cnf"</text>
                <text x="176" y="2404">claim</text>
                <text x="244" y="2404">identifies</text>
                <text x="120" y="2420">AUTH_CRED_C</text>
                <text x="180" y="2420">by</text>
                <text x="232" y="2420">reference</text>
                <text x="64" y="2436">-</text>
                <text x="88" y="2436">the</text>
                <text x="156" y="2436">"edhoc_info"</text>
                <text x="232" y="2436">claim</text>
                <text x="112" y="2452">specifies</text>
                <text x="168" y="2452">the</text>
                <text x="204" y="2452">same</text>
                <text x="236" y="2452">as</text>
                <text x="124" y="2468">"edhoc_info"</text>
                <text x="200" y="2468">above</text>
                <text x="80" y="2532">EDHOC</text>
                <text x="144" y="2532">message_1</text>
                <text x="196" y="2532">to</text>
                <text x="236" y="2532">/edhoc</text>
                <text x="72" y="2548">(no</text>
                <text x="116" y="2548">access</text>
                <text x="176" y="2548">control</text>
                <text x="220" y="2548">is</text>
                <text x="272" y="2548">enforced)</text>
                <text x="16" y="2564">M13</text>
                <text x="80" y="2612">EDHOC</text>
                <text x="144" y="2612">message_2</text>
                <text x="72" y="2628">(no</text>
                <text x="116" y="2628">access</text>
                <text x="176" y="2628">control</text>
                <text x="220" y="2628">is</text>
                <text x="272" y="2628">enforced)</text>
                <text x="16" y="2644">M14</text>
                <text x="96" y="2660">ID_CRED_R</text>
                <text x="180" y="2660">identifies</text>
                <text x="108" y="2676">CRED_R</text>
                <text x="144" y="2676">=</text>
                <text x="204" y="2676">AUTH_CRED_RS</text>
                <text x="92" y="2692">by</text>
                <text x="144" y="2692">reference</text>
                <text x="80" y="2740">EDHOC</text>
                <text x="144" y="2740">message_3</text>
                <text x="196" y="2740">to</text>
                <text x="236" y="2740">/edhoc</text>
                <text x="72" y="2756">(no</text>
                <text x="116" y="2756">access</text>
                <text x="176" y="2756">control</text>
                <text x="220" y="2756">is</text>
                <text x="272" y="2756">enforced)</text>
                <text x="16" y="2772">M15</text>
                <text x="112" y="2788">EAD_3</text>
                <text x="172" y="2788">contains</text>
                <text x="236" y="2788">access</text>
                <text x="288" y="2788">token</text>
                <text x="96" y="2804">ID_CRED_I</text>
                <text x="180" y="2804">identifies</text>
                <text x="108" y="2820">CRED_I</text>
                <text x="144" y="2820">=</text>
                <text x="200" y="2820">AUTH_CRED_C</text>
                <text x="92" y="2836">by</text>
                <text x="144" y="2836">reference</text>
                <text x="84" y="2884">Access</text>
                <text x="124" y="2884">to</text>
                <text x="176" y="2884">protected</text>
                <text x="252" y="2884">resource</text>
                <text x="300" y="2884">/r</text>
                <text x="128" y="2900">(OSCORE-protected</text>
                <text x="236" y="2900">message)</text>
                <text x="88" y="2916">(access</text>
                <text x="152" y="2916">control</text>
                <text x="196" y="2916">is</text>
                <text x="248" y="2916">enforced)</text>
                <text x="16" y="2932">M16</text>
                <text x="92" y="2980">Response</text>
                <text x="128" y="2996">(OSCORE-protected</text>
                <text x="236" y="2996">message)</text>
                <text x="16" y="3012">M17</text>
                <text x="320" y="3028">|</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" specifies the     |                              |
    |  ACE profile "coap_edhoc_oscore" |                              |
    |                                  |                              |
    |  "edhoc_info" specifies:         |                              |
    |     {                            |                              |
    |       e'session_id' : h'01',     |                              |
    |       e'cipher_suites' : 2,      |                              |
    |       e'methods' : 3,            |                              |
    |       e'uri_path' : "/edhoc"     |                              |
    |     }                            |                              |
    |                                  |                              |
    |  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, C 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) |                              |
M06 +---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M07 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M08 +---------------------------------------------------------------->|
    |      EAD_3 contains access token |                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |

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

    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource    |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M08 +---------------------------------------------------------------->|
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M10 |<----------------------------------------------------------------+
    |                                  |                              |

     Later on, the access token expires ...

      - C 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 ...

    |                                  |                              |
    |                                  |                              |

     C asks for a new access token; now all the
     authentication credentials can be identifies 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)      |                              |
M11 +--------------------------------->|                              |
    |  "req_cnf" identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M12 |<---------------------------------+                              |
    |  "rs_cnf" identifies             |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  "ace_profile" specifies the     |                              |
    |  ACE profile "coap_edhoc_oscore" |                              |
    |                                  |                              |
    |  "edhoc_info" specifies:         |                              |
    |     {                            |                              |
    |       e'session_id' : h'05',     |                              |
    |       e'cipher_suites' : 2,      |                              |
    |       e'methods' : 3,            |                              |
    |       e'uri_path' : "/edhoc"     |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |  - the "cnf" claim identifies    |                              |
    |    AUTH_CRED_C by reference      |                              |
    |  - the "edhoc_info" claim        |                              |
    |    specifies the same as         |                              |
    |    "edhoc_info" above            |                              |
    |                                  |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M13 +---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
    |  (no access control is enforced) |                              |
M14 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M15 +---------------------------------------------------------------->|
    |      EAD_3 contains access token |                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M16 +---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M17 |<----------------------------------------------------------------+
    |                                  |                              |
]]></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 using the EDHOC + OSCORE request defined in <xref target="RFC9668"/> when running EDHOC both with AS and with RS.</t>
        <t>This interaction between C and RS consists 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="1568" width="576" viewBox="0 0 576 1568" 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,1376" fill="none" stroke="black"/>
              <path d="M 40,1472 L 40,1552" fill="none" stroke="black"/>
              <path d="M 336,48 L 336,816" fill="none" stroke="black"/>
              <path d="M 336,912 L 336,952" fill="none" stroke="black"/>
              <path d="M 336,1072 L 336,1112" fill="none" stroke="black"/>
              <path d="M 336,1128 L 336,1224" fill="none" stroke="black"/>
              <path d="M 336,1240 L 336,1376" fill="none" stroke="black"/>
              <path d="M 336,1472 L 336,1528" 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,1376" fill="none" stroke="black"/>
              <path d="M 568,1472 L 568,1552" fill="none" stroke="black"/>
              <path d="M 40,80 L 328,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 336,144" fill="none" stroke="black"/>
              <path d="M 40,256 L 328,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 336,480" fill="none" stroke="black"/>
              <path d="M 40,960 L 560,960" fill="none" stroke="black"/>
              <path d="M 48,1120 L 568,1120" fill="none" stroke="black"/>
              <path d="M 40,1232 L 560,1232" fill="none" stroke="black"/>
              <path d="M 64,1328 L 80,1328" fill="none" stroke="black"/>
              <path d="M 96,1328 L 112,1328" fill="none" stroke="black"/>
              <path d="M 128,1328 L 144,1328" fill="none" stroke="black"/>
              <path d="M 48,1536 L 568,1536" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,1232 556,1226.4 556,1237.6" fill="black" transform="rotate(0,560,1232)"/>
              <polygon class="arrowhead" points="568,960 556,954.4 556,965.6" fill="black" transform="rotate(0,560,960)"/>
              <polygon class="arrowhead" points="336,256 324,250.4 324,261.6" fill="black" transform="rotate(0,328,256)"/>
              <polygon class="arrowhead" points="336,80 324,74.4 324,85.6" fill="black" transform="rotate(0,328,80)"/>
              <polygon class="arrowhead" points="56,1536 44,1530.4 44,1541.6" fill="black" transform="rotate(180,48,1536)"/>
              <polygon class="arrowhead" points="56,1120 44,1114.4 44,1125.6" fill="black" transform="rotate(180,48,1120)"/>
              <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)"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="332" 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="112" y="244">+</text>
                <text x="148" y="244">OSCORE</text>
                <text x="208" y="244">request</text>
                <text x="252" y="244">to</text>
                <text x="292" y="244">/token</text>
                <text x="16" y="260">M03</text>
                <text x="64" y="276">-</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="64" y="356">-</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="208" y="548">specifies</text>
                <text x="264" y="548">the</text>
                <text x="72" y="564">ACE</text>
                <text x="120" y="564">profile</text>
                <text x="232" 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="152" y="628">e'session_id'</text>
                <text x="216" y="628">:</text>
                <text x="252" y="628">h'01',</text>
                <text x="164" y="644">e'cipher_suites'</text>
                <text x="240" y="644">:</text>
                <text x="260" y="644">2,</text>
                <text x="140" y="660">e'methods'</text>
                <text x="192" y="660">:</text>
                <text x="212" y="660">3,</text>
                <text x="144" y="676">e'uri_path'</text>
                <text x="200" y="676">:</text>
                <text x="244" y="676">"/edhoc"</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="64" y="740">-</text>
                <text x="88" y="740">the</text>
                <text x="128" y="740">"cnf"</text>
                <text x="176" y="740">claim</text>
                <text x="240" y="740">specifies</text>
                <text x="120" y="756">AUTH_CRED_C</text>
                <text x="180" y="756">by</text>
                <text x="216" y="756">value</text>
                <text x="64" y="772">-</text>
                <text x="88" y="772">the</text>
                <text x="156" y="772">"edhoc_info"</text>
                <text x="232" y="772">claim</text>
                <text x="112" y="788">specifies</text>
                <text x="168" y="788">the</text>
                <text x="204" y="788">same</text>
                <text x="236" y="788">as</text>
                <text x="124" y="804">"edhoc_info"</text>
                <text x="200" 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="328" y="852">C</text>
                <text x="356" y="852">adds</text>
                <text x="428" 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="276" y="884">provider</text>
                <text x="80" y="932">EDHOC</text>
                <text x="144" y="932">message_1</text>
                <text x="196" y="932">to</text>
                <text x="236" y="932">/edhoc</text>
                <text x="72" y="948">(no</text>
                <text x="116" y="948">access</text>
                <text x="176" y="948">control</text>
                <text x="220" y="948">is</text>
                <text x="272" y="948">enforced)</text>
                <text x="16" y="964">M05</text>
                <text x="336" 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="276" y="1044">provider</text>
                <text x="80" y="1108">EDHOC</text>
                <text x="144" y="1108">message_2</text>
                <text x="16" y="1124">M06</text>
                <text x="96" y="1140">ID_CRED_R</text>
                <text x="180" y="1140">identifies</text>
                <text x="108" y="1156">CRED_R</text>
                <text x="144" y="1156">=</text>
                <text x="204" y="1156">AUTH_CRED_RS</text>
                <text x="92" y="1172">by</text>
                <text x="144" y="1172">reference</text>
                <text x="80" y="1220">EDHOC</text>
                <text x="112" y="1220">+</text>
                <text x="148" y="1220">OSCORE</text>
                <text x="208" y="1220">request</text>
                <text x="252" y="1220">to</text>
                <text x="276" y="1220">/r</text>
                <text x="16" y="1236">M07</text>
                <text x="64" y="1252">-</text>
                <text x="96" y="1252">EDHOC</text>
                <text x="160" y="1252">message_3</text>
                <text x="112" y="1268">EAD_3</text>
                <text x="172" y="1268">contains</text>
                <text x="236" y="1268">access</text>
                <text x="288" y="1268">token</text>
                <text x="128" y="1284">ID_CRED_I</text>
                <text x="212" y="1284">identifies</text>
                <text x="140" y="1300">CRED_I</text>
                <text x="176" y="1300">=</text>
                <text x="232" y="1300">AUTH_CRED_C</text>
                <text x="124" y="1316">by</text>
                <text x="176" y="1316">reference</text>
                <text x="64" y="1348">-</text>
                <text x="140" y="1348">OSCORE-protected</text>
                <text x="228" y="1348">part</text>
                <text x="136" y="1364">Application</text>
                <text x="216" y="1364">request</text>
                <text x="260" y="1364">to</text>
                <text x="284" y="1364">/r</text>
                <text x="64" y="1412">After</text>
                <text x="104" y="1412">the</text>
                <text x="144" y="1412">EDHOC</text>
                <text x="212" y="1412">processing</text>
                <text x="268" y="1412">is</text>
                <text x="324" y="1412">completed,</text>
                <text x="396" y="1412">access</text>
                <text x="456" y="1412">control</text>
                <text x="52" y="1428">is</text>
                <text x="100" y="1428">enforced</text>
                <text x="148" y="1428">on</text>
                <text x="176" y="1428">the</text>
                <text x="224" y="1428">rebuilt</text>
                <text x="324" y="1428">OSCORE-protected</text>
                <text x="428" y="1428">request,</text>
                <text x="60" y="1444">like</text>
                <text x="92" y="1444">if</text>
                <text x="116" y="1444">it</text>
                <text x="144" y="1444">had</text>
                <text x="180" y="1444">been</text>
                <text x="220" y="1444">sent</text>
                <text x="288" y="1444">stand-alone</text>
                <text x="92" y="1508">Response</text>
                <text x="128" y="1524">(OSCORE-protected</text>
                <text x="236" y="1524">message)</text>
                <text x="16" y="1540">M08</text>
                <text x="336" y="1556">|</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" specifies the       |                            |
    |  ACE profile "coap_edhoc_oscore"   |                            |
    |                                    |                            |
    |  "edhoc_info" specifies:           |                            |
    |     {                              |                            |
    |       e'session_id' : h'01',       |                            |
    |       e'cipher_suites' : 2,        |                            |
    |       e'methods' : 3,              |                            |
    |       e'uri_path' : "/edhoc"       |                            |
    |     }                              |                            |
    |                                    |                            |
    |  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, C 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>
    <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-cddl-model" removeInRFC="true">
      <name>CDDL Model</name>
      <figure anchor="fig-cddl-model">
        <name>CDDL model</name>
        <artwork type="CDDL" align="left"><![CDATA[
; ACE Profiles
coap_edhoc_oscore = 4

; OAuth Parameters CBOR Mappings
edhoc_info_param = 47

; CBOR Web Token (CWT) Claims
edhoc_info_claim = 41

; CWT Confirmation Methods
x5t = 6
x5u = 7
c5t = 8
c5u = 9
kcwt = 10
kccs = 11
x5chain = 24
x5bag = 25
c5c = 26
c5b = 27

; EDHOC Information
session_id = 0
methods = 1
cipher_suites = 2
message_4 = 3
comb_req = 4
uri_path = 5
osc_ms_len = 6
osc_salt_len = 7
osc_version = 8
cred_types = 9
id_cred_types = 10
eads = 11
initiator = 12
responder = 13
max_msgsize = 14
coap_ct = 15
ep_id_types = 16
transports = 17
trust_anchors = 18

; EDHOC Trust Anchor Purposes
edhoc_cred = 0

; EDHOC Trust Anchor Types
c5t_ta_type = 22
c5u_ta_type = 23
x5t_ta_type = 34
x5u_ta_type = 35
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-document-updates" removeInRFC="true">
      <name>Document Updates</name>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>
            <t>Renamed id_ep_types as ep_id_types.</t>
          </li>
          <li>
            <t>Revised rules for the AS to assign session ID values.</t>
          </li>
          <li>
            <t>Added explicit validation of AUTH_CRED_C at AS.</t>
          </li>
          <li>
            <t>"edhoc_info" only in AS-to-C response for first token in a series.</t>
          </li>
          <li>
            <t>With a group-audience, "edhoc_info" refers to the whole audience.</t>
          </li>
          <li>
            <t>Defined parameters for the EDHOC_Information object:  </t>
            <ul spacing="normal">
              <li>
                <t>Parameters moved here from draft-ietf-lake-app-profiles.</t>
              </li>
              <li>
                <t>New parameter "trust_anchors".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Access Token Request/Response messages must be encoded in CBOR.</t>
          </li>
          <li>
            <t>Explicit statement on admitted confirmation methods.</t>
          </li>
          <li>
            <t>First token in a series: the "cnf" claim uses the same confirmation method of the "req_cnf" request to /token.</t>
          </li>
          <li>
            <t>Revised examples in CBOR diagnostic notation.</t>
          </li>
          <li>
            <t>With a group-audience, the reverse message flow can use a roll call.</t>
          </li>
          <li>
            <t>Matching authentication credentials from ID_CRED_X and EAD item.</t>
          </li>
          <li>
            <t>Handling authentication credentials and EDHOC session that become invalid.</t>
          </li>
          <li>
            <t>Limited use of ACE Request Creation Hints when supporting the EDHOC reverse message flow.</t>
          </li>
          <li>
            <t>Changed CBOR abbreviations to not collide with existing codepoints.</t>
          </li>
          <li>
            <t>Updates and fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-05-06">
        <name>Version -05 to -06</name>
        <ul spacing="normal">
          <li>
            <t>The access token can be uploaded through EDHOC in EAD_3, EAD_2, or EAD_4.</t>
          </li>
          <li>
            <t>Ruled out the upload of the access token to the /authz-info endpoint over an unprotected channel.</t>
          </li>
          <li>
            <t>Defined an EDHOC EAD item for transporting a Session ID.</t>
          </li>
          <li>
            <t>Provided more details and added example of dynamic update of access rights.</t>
          </li>
          <li>
            <t>Defined in detail the use of the EDHOC reverse message flow.</t>
          </li>
          <li>
            <t>Provided details on access token invalidity.</t>
          </li>
          <li>
            <t>Revised examples with message exchanges.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-04-05">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>
            <t>CBOR diagnostic notation uses placeholders from a CDDL model.</t>
          </li>
          <li>
            <t>Only CWTs are supported as access tokens in this profile.</t>
          </li>
          <li>
            <t>The alternative workflow of ACE is only mentioned as an example.</t>
          </li>
          <li>
            <t>Clarified that both the EDHOC forward and reverse message flows are possible.</t>
          </li>
          <li>
            <t>Consistent with the used EDHOC message flow, the access token can be in the EAD item of any EDHOC message.</t>
          </li>
          <li>
            <t>Explicit registration policies for the new IANA registry.</t>
          </li>
          <li>
            <t>Fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -03 to -04</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>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>
          <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>The parameter "trust_anchors" for specifying supported trust anchors builds on a proposal originally described in <xref target="I-D.serafin-lake-ta-hint"/>.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
6+NjaJR7pExJzmOCWPzsdvOzDqbxGzv4BlqS4RWyH3e80aUUAj+92/y0qk3A
D+/Rw7X7U4n5/PA+PjyngtVVD5usdH788eLHVVI2v/Bk8QsiqvLzTxdAUqeY
0uP9LfM4JZc6b/3eTUrlN/pqQVUz/J7c3PzgdjPMtYOPn15wntpfxk/vNkPF
ykXj5/cWnT/lYvGz+80QtPKQ+PnHzc8bwx4/TgcK0l7Vyulxi3KShGmdDrwZ
JrdrLtVYW3sQDKizdff0LBjYXV2p6Nqom+VdrHdF1MFUYdJ1+lg6it6PrsPk
KirVf/OL50pZNVNP262sphtKcM9RSyFyO4fpvgjc+CyqbGmqzM+HZzJcRQ1q
t5lph0u2Ld/NVJe7y+ZJ1baqShGz/XhQvzYpJHZ4JKUDZZDDc6DuXfgY45TZ
duWYynvBKyxKbWp7wu64XxA3MihFeOrFL+wwrJbAleO6uXzdlcJs5PWzK5LK
MBiKqEy4qng0NgHyeghzCU4GAWU3eZ27dVPnyKu+WSqT6Pbikh41ThVRshVz
Pegj1bhbuC2b2CxZSX1OJ43lCeFEOA2buuHZXZsQkGdS2soqefXhgTk0uUe6
4Bpb5XJr1EXBNmVXSanXU2aV2LI0F2XnJpcAVd4+HAyOz85+vjh/9efjHwNg
0xt2lA79TorEplwm0cCt0CBlWnE0tfMfjkRBibIqx1k4RmDqkSytl0QMKw8p
iP4Li9iKrcRRavwOyLqGeAkFSgVA3b5F0uUpNodAhmVAbWxioRqnc2jAnLvV
wp2yilheMeHRq8MCsTYcJTeBiaBuWqkKIcPNm6LGB1fjKqNFX0eGdJjiwPxG
5JeuRTsJJvqGQ3Qole53i9itw2BELIBrGkt6AFaypVyYmcIyWZaqFXk4OK4v
I8htfCQJvbBBS8CuwD0XthRsrXkAztyuMwrm52FqntKS57q4sNdUsrGJY6Z7
Mx2PY5AyHlK+X3QQHI41mTB36Ax2cfLqR1C3jr62G1RRoNbyzZXF+FJdWm4J
7lSnLfXWTr2WYvVdW25WaYfzdV5mt6tmRWlci2y7pcjNeXOBYv2G3dnV7j3l
sfuvll7Y98w5vKreGLqTQbk6tVjmqAw4U4yC5MSYy2zzc1GOGcpxjmbrjSS6
2ayViUolj4vrLJ1fXWtWu4CKqILHWnBQpY5JTqTKvWk25mpN0zmWdMdwLuPh
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
GTMKL0swjJHbjiUYNIqh13lMbcxUsqeKho2LaNoLfohGIYbDYtQM9U4HcKmI
JB0dFecaGiZgO4uofa9uO8/xdJihEo6K2hB9HIMWOaTMgwxzOIKAo8foc+mb
bULmerRRDgrHqEqgWzpM3ap5m4TcpBR3Au9jvxYddAeEK4Gnpe8QLuHIoALj
f15xtIxWYXVzrHDCzZhMw3O+BmoTuFSba5EMSimNMA7bK3WWL7MP5jTS6jzn
igf0TDgcIlY7FWHo9AR06lWKXceXkxgYQM/6RuLysFW6gASzUK6wGRMyBgyy
sj/jMHkq8YfhiPQpj2SCfbvbe/uKg3NPKnqe0HUSJVdAWfqE+9atgw21om+l
SSlUsbu/t7ezjwCCuR+b2G9cCHyI35ZWMg3fx9P5VK1ou3JF1eyjtIgr4qSS
xFA5m8ziPFg55YLtCprC27JnpvfZW3ndZpMGlQqSW88VrqmaPQpb5FiJ1Ea6
172mKtwFXrLnMTgd35dOaPLdjLqOUdwdXz9Bwu+0eMLTu2PKnqyVSKXBKad/
Uf8zzK7gaHIaz1MphiDJXho6p26BImL4hheLdOjvU8qBuUGWiqgxePxlEE2y
pCPuHh9T2zzkjrN0Rlk6Y8VfZKdE3DnPlgLG3ka3trRGtbdPRM5ylr0uJL9j
RuOUlYnQZIw0VnK9Wo8WJKWhk1esvbliVIWzZ1HxqNZCZm0Vo69e4ES5cTWZ
85sA+eULkDQl3S7Qrqvlxo18k0QAki85h6Ak9g2puaODf3TtFXw6lmCJp4Gi
wTwLr+RCgUQFcpZOr+Q5eRIrkUMKrgbpvJiUNXZfsKySK20S5wqWRP7gJk7G
ynqTG+lNqDnf9HJVOCQW7WQcTGpitfmWV9M4pHRUFUK7grzDPNCXeHpEdCQ9
As08BByZBaVjO3vCpyexKrutcLlSdtnexa1u73xCkciSiHYtgWh1gSefYsPD
zJVEYI4qQWiBgOLZSsqYFbI2UGbyLZDMMqtUD72MLLBgNlco0HUMqqQCnexR
lguamazDuq3SfrXc2qny15pB27XLvvHkbzz5G0/+gnmyXV6zLSttV7zzG0/9
SnlqezGtbRXXu/FpnkVnny6a6l659lJz3ycPt1ivx7aran5qDl5m4U79zyV4
eGXFyG/s/Bs7/8bOv2B23ky7Sx4dobBVxX47XJ+HKoRU+3rEWSB8nv0kHpsv
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
4NCqeWwJExFGXCyNQHK6i0usu2AoevXo9HAntvZT1xacmHcqXOeoDVdqTUPZ
ICtxHMrZlmfgy/iCaaYLuwhEE8wBeJJB23x3R7L8b8Z4CHmMHHkM6XDt6qA3
oPvxCqpgLWZXuf1KtUUp8/NVsH/6+sMsULYrv3hkWrzf8j6SnIeH8DKX4Oex
T1lKWCAcupMLlTm5UdsFoayajqhHayjtfUMzwNAMnaEZ0KFjeFpSo+z8DE8T
tkOFzM8haot8NkRlCF2Tati5jWFTsDpB2bTDdVTQ/ZNUyB9zCY808nvoTgGo
mRat8pqupRtbydd9X5K4o6ar98cNVtJyDaVTpkzqrmT+tyCThoz3aaM5tqxX
ZEOci2I5x7k4QI5x9LL3hSZa3NPX/8DVI21J6NcLobPSTX0Nbm9vJ+cFx9Is
lIvy54+yXK/X0hf+LizY3Qav2HBkGX+jbk/XvwDt42A7jiNGQSpW/s4MUq7X
OrCwb21Y4lKsS+cNxVBXUGlMHL/TwY0jaxSSjYALqsI+ZU+Vcu5pnvA0Cq7D
0l9nYQ2ZXXM29LAkn5jl36A8O0sS0yr4uHd4+OHjjojXaOnp8XR/J5hMD072
Jv3D6acT7p/ghyefj46ns9kLGRBtfHc0GA3sf8z23uzN+rucWT16K6u64bKI
kQA/G4+ejkePNx78AogjlRYoWAIA

-->

</rfc>
