<?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.29 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.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-09"/>
    <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="October" day="20"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 99?>

<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 106?>

<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. AS could explicitly ask C to provide its authentication credential AUTH_CRED_C by value in the Access Token Request, e.g., by relying on the method defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.</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.</t>
        <t>In either case, the AS also needs to verify that C is in possession of the private key corresponding to the public key associated with AUTH_CRED_C. This may already have been accomplished, for example, by C authenticating to AS using AUTH_CRED_C as authentication credential, or by some other trusted party vouching for C to the AS. Alternatively, it is possible to use an approach for achieving proof-of-possession similar to that in <xref section="3.2" sectionFormat="of" target="I-D.ietf-ace-group-oscore-profile"/>.</t>
        <t>In case of successful validations, AS stores AUTH_CRED_C as a valid authentication credential. Otherwise, the Client-to-AS request <bcp14>MUST</bcp14> be declined.</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. C could explicitly ask AS to provide AUTH_CRED_RS by value in the Access Token Response, e.g., by relying on the method defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.  </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 any access token of a token series, the response from AS <bcp14>MUST NOT</bcp14> include the "cnf" parameter.</t>
        <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>
              <t>
Either transported by value or identified by reference, the authentication credential specified in the "cnf" claim <bcp14>MUST</bcp14> be exactly the one that was specified in the "req_cnf" parameter of the POST request to the /token endpoint, when C requested the first access token in the series which the issued access token belongs to. That is, AS <bcp14>MUST NOT</bcp14> bind to the access token an authentication credential other than the one specified by C.</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.</t>
          <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.</t>
        <t>All EDHOC_Information parameters are optional. The initial set of parameters defined in this document is summarized in <xref target="_table-cbor-key-edhoc-params"/> and is specified below.</t>
        <t>EDHOC_Information parameters are also categorized, i.e., each has one of two possible types, namely prescriptive or non-prescriptive:</t>
        <ul spacing="normal">
          <li>
            <t>A prescriptive parameter is used to provide an authoritative statement about how an execution of EDHOC has to be performed. An example is the "message_4" parameter indicating whether the use of EDHOC message_4 in an EDHOC session is mandatory or not.</t>
          </li>
          <li>
            <t>A non-prescriptive parameter is used to provide convenient information to consider when executing EDHOC, e.g., in terms of features supported by other peers. Such information is not necessarily exhaustive. An example is the "methods" parameter indicating a set of supported EDHOC methods.</t>
          </li>
        </ul>
        <t>This categorization helps coordinate the use of EDHOC application profiles <xref section="3.9" sectionFormat="of" target="RFC9528"/> in a robust way, e.g., by using the means defined in <xref target="I-D.ietf-lake-app-profiles"/>.</t>
        <table align="center" anchor="_table-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters. Types: P (Prescriptive), NP (Non-Prescriptive)</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>
              <th align="left">Type</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>
              <td align="left">P</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>
              <td align="left">NP</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>
              <td align="left">NP</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">Mandatory use of EDHOC message_4</td>
              <td align="left">P</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>
              <td align="left">NP</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>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">cred_types</td>
              <td align="left">6</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>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">id_cred_types</td>
              <td align="left">7</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>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">eads</td>
              <td align="left">8</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>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">initiator</td>
              <td align="left">9</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Initiator role</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">responder</td>
              <td align="left">10</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Responder role</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">max_msgsize</td>
              <td align="left">11</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">Maximum size of EDHOC messages in bytes</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">coap_ct</td>
              <td align="left">12</td>
              <td align="left">True of False</td>
              <td align="left"> </td>
              <td align="left">Mandatory 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>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">ep_id_types</td>
              <td align="left">13</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>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">transports</td>
              <td align="left">14</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>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">trust_anchors</td>
              <td align="left">15</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>
              <td align="left">NP</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 <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), 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 <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), 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>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 6. 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 7. 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 8. 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 <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 9.</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 <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and has label 10.</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 11.</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 12.</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 13. 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 14. 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 15. 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 => int / array,            ; cred_types
  ?  7 => int / tstr / array,     ; id_cred_types
  ?  8 => uint / array,           ; eads
  ?  9 => true / false,           ; initiator
  ? 10 => true / false,           ; responder
  ? 11 => uint,                   ; max_msgsize
  ? 12 => true / false,           ; coap_ct
  ? 13 => int / array,            ; ep_id_types
  ? 14 => int / array,            ; transports
  ? 15 => 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>
Example: Assuming IANA label 26 and critical, so ead_label = -26 (0x3819), and 180 bytes access_token = h'8343a1010aa2044c53...0f6a' (partly omitted for brevity):  </t>
            <ul spacing="normal">
              <li>
                <t>EAD_ACCESS_TOKEN = 0x381958B48343a1010aa2044c53...0f6a</t>
              </li>
            </ul>
            <t>
Editor's note: Replace IANA label with TBD value registered for ACE-OAuth Access Token in <xref target="iana-edhoc-ead"/>.</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>
Example: Assuming IANA label 5 and critical, so ead_label = -5 (0x24), and session_id =  h'1645'  </t>
            <ul spacing="normal">
              <li>
                <t>EAD_SESSION_ID = 0x24421645</t>
              </li>
            </ul>
            <t>
Editor's note: Replace IANA label with TBD value for Session ID registered in <xref target="iana-edhoc-ead"/>.</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>In this profile of ACE, RS <bcp14>MUST</bcp14> implement the CoAP Uri-Path-Abbrev Option specified in <xref target="I-D.ietf-core-uri-path-abbrev"/> and <bcp14>MUST</bcp14> understand the corresponding Uri-Path-Abbrev value 2 that abbreviates the path /.well-known/edhoc. While there is no equivalent requirement for C, the above ensures that the CoAP Uri-Path-Abbrev Option and its value are going to be understood by RS, if C includes the Option in a CoAP request that carries an EDHOC message and targets 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>In this profile of ACE, if RS implements the EDHOC reverse message flow, then RS <bcp14>MUST</bcp14> implement EDHOC message_4.</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>
            </li>
          </ul>
          <t>Note that in this case C uploads the Access Token or session ID before RS is authenticated, since C will not learn about the identity of RS until having verified message_3. In particular, in the case of a group-audience, when there may be multiple legitimate RS, C does not yet know which member of the group-audience it communicates with (if any).</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>
        </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"/>.</t>
        <t>In addition, 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>
        <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 <tt>false</tt> (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>MAY</bcp14> alternatively attempt to run a key update protocol that they both support. One lightweight example is KUDOS <xref target="I-D.ietf-core-oscore-key-update"/>, which is independent of ACE and EDHOC and does not require the uploading of an access token. If C and RS does not support a common key update protocol to use for updating their still valid OSCORE Security Context, then C and RS fall 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"/>.</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>
        <t>AS Request Creation Hints may also be requested and retrieved through a new EAD item defined here, see <xref target="fig-ead-rch"/>, <xref target="iana-edhoc-ead"/>, and an example of its usage in <xref target="example-non-sequential-workflow"/>.</t>
        <figure anchor="fig-ead-rch">
          <name>EAD item EAD_REQUEST_CREATION_HINTS.</name>
          <sourcecode type="CDDL"><![CDATA[
ead_label = TBD
? ead_value = bstr .cbor AS_request_creation_hints

AS_request_creation_hints : map
]]></sourcecode>
        </figure>
        <t>The AS_request_creation_hints is a CBOR map with keys defined in the IANA registry "ACE Authorization Server Request Creation Hints".</t>
        <t>Example: Assuming IANA label 12 and non-critical, so ead_label = 12 (0x0C), and the AS_request_creation_hints map containing one CBOR text string "coap://www.example.com/token" with key 1 (the absolute URI of the /token endpoint at the AS):</t>
        <ul spacing="normal">
          <li>
            <t>EAD_REQUEST_CREATION_HINTS = 0x0C5820A101781C636F61703A2F2F7777772E6578616D70
                             6C652E636F6D2F746F6B656E</t>
          </li>
        </ul>
        <t>Editor's note: Replace IANA label with TBD value registered for EAD_REQUEST_CREATION_HINTS in <xref target="iana-edhoc-ead"/>.</t>
        <t>This EAD item is intended to be used in EAD fields of EDHOC messages exchanged between C and RS: in the forward message flow in EAD_1 and EAD_2, and in the reverse message flow in EAD_2 and EAD_3. In the first EDHOC message from C to RS, an EAD item with ead_label = TBD with no ead_value asks the RS to include in the next EDHOC message the same EAD item with ead_value encoding the AS_request_creation_hints map. This EAD item is non-critical, i.e., it can be ignored by the receiving peer. It is <bcp14>OPTIONAL</bcp14> to implement.</t>
        <t>Since C has not made an actual request targeting a specific application resource, the RS may not know what resource C is interested in accessing. Moreover, such information needs to be matched against the privacy policy of the application. Since EDHOC message_2 is only protected against passive attackers, the AS_request_creation_hints map <bcp14>SHOULD NOT</bcp14> include "audience" and "scope" when present in the EAD item conveyed in the EAD_2 field.</t>
      </section>
      <section anchor="auth-cred-by-value">
        <name>Requesting Authentication Credential By Value</name>
        <t>EDHOC peers need access to each other's authentication credentials to complete the protocol. However, to reduce unnecessary overhead, the EDHOC protocol enables credential references to be sent instead of authentication credentials. The ACE protocol includes the initial transport of authentication credentials of C and RS and thus matches the use of credential references in EDHOC.</t>
        <t>However, if one of the parties has deleted the other party's authentication credential from its local storage, then there should be a way to restore it without requesting a new access token.</t>
        <t>Consider first the EDHOC forward message flow. If the ACE Client / EDHOC Initiator sends a credential by reference in message_3, then Responder may return error code 3, Unknown credential referenced. This enables the Initiator to restart the protocol using some other ID_CRED, typically the authentication credential by value thereby resolving the issue. However, in case the ACE Resource Server / EDHOC Responder sends a credential by reference in message_2, then returning a code 3 EDHOC error message does not automatically solve the problem. Having aborted the protocol, the Responder has no reliable way to act differently in a following EDHOC session since it never authenticated the Initiator.</t>
        <t>In order to remediate this situation, this section specifies a new EAD item for requesting the peer's authentication credential by value, see <xref target="fig-ead-req-authcred"/>, <xref target="iana-edhoc-ead"/>, and an example of its usage in <xref target="example-non-sequential-workflow"/>.</t>
        <figure anchor="fig-ead-req-authcred">
          <name>EAD item EAD_CRED_BY_VALUE.</name>
          <sourcecode type="CDDL"><![CDATA[
ead_label = TBD
]]></sourcecode>
        </figure>
        <t>This EAD item has no ead_value. When present in EAD_1, it requests the Responder's authentication credential by value in ID_CRED_R of message_2. When present in EAD_2, it requests the Initiator's authentication credential by value in ID_CRED_I of message_3. The EAD item is non-critical, i.e., it can be ignored by the receiving peer. It is <bcp14>OPTIONAL</bcp14> to implement.</t>
        <t>Example: Assuming IANA label 15 and non-critical, so ead_label = 15 (0x0F), and considering that this EAD item has no ead_value:</t>
        <ul spacing="normal">
          <li>
            <t>EAD_CRED_BY_VALUE = 0x0F</t>
          </li>
        </ul>
        <t>Editor's note: Replace IANA label with TBD value registered for EAD_CRED_BY_VALUE in <xref target="iana-edhoc-ead"/>.</t>
        <t>In the EDHOC reverse message flow this EAD item can be applied for better control of the use of credential by value. Note that in the reverse flow both C and RS may recover from error code 3, but at the cost of more round trips which can be avoided by the use of the EAD item.</t>
        <ul spacing="normal">
          <li>
            <t>In case the ACE Client / EDHOC Responder sends a credential by reference in message_2 and receives a code 3 error message, then it can trigger a new EDHOC session and send credential by value this time.</t>
          </li>
          <li>
            <t>In case the ACE Resource Server / EDHOC Initiator sends a credential by reference in message_3 and receives a code 3 error message, then since the RS has authenticated C, it can store the authentication credential of C, and in the next session with C, the RS can send its credential by value.</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>
      <t>This profile defines the confirmation methods "kcwt" and "kccs" corresponding to the use of CBOR Web Tokens (CWTs) and CWT Claims Set (CCSs), respectively. Security considerations of CWTs and CCSs, and of COSE header parameters "kcwt" and "kccs" are given in <xref section="9.8" sectionFormat="of" target="RFC9528"/>, and apply also to confirmation methods. In particular, the contents of the CWT or CCS must be processed as untrusted input. The application needs to define a trust-establishment mechanism and identify the relevant trust anchors.</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>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: Credential By Value</t>
          </li>
          <li>
            <t>Label: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Description: The sender peer wishes to receive the other peer's credential transported by value (and not identified by reference)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="auth-cred-by-value"/></t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: Request Creation Hints</t>
          </li>
          <li>
            <t>Label: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Description: Request or convey AS Request Creation Hints</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="as-creation-hints"/></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 the item.</t>
          </li>
          <li>
            <t>Type: The category of the item, i.e., P if prescriptive or NP if Non-Prescriptive.</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>IN Groupe</organization>
            </author>
            <date day="18" month="August" 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 1.0, RPKI,
   GSMA eUICC, and CA/Browser Forum Baseline Requirements profiles.
   C509 is deployed in different settings including, in-vehicle and
   vehicle-to-cloud communication, Unmanned Aircraft Systems (UAS), and
   Global Navigation Satellite System (GNSS).  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 by 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 TLSA selectors registry defined in RFC
   6698 is extended to include C509 certificates.  The document also
   specifies C509 Certificate 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-15"/>
        </reference>
        <reference anchor="I-D.ietf-core-uri-path-abbrev">
          <front>
            <title>URI-Path abbreviation in CoAP</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="26" month="September" year="2025"/>
            <abstract>
              <t>   Applications built on CoAP face a conflict between the technical need
   for short message sizes and the interoperability requirement of
   following BCP190 and thus registering (relatively verbose) well-known
   URI paths.  This document introduces an option that allows expressing
   well-known paths in as little as two bytes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-uri-path-abbrev-01"/>
        </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="25" month="September" year="2025"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) is a web transfer
   protocol for constrained devices and constrained networks.  In a
   number of use cases, constrained devices often naturally operate in
   groups (e.g., in a building automation scenario, all lights in a
   given room may need to be switched on/off as a group).  This document
   specifies the use of 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-15"/>
        </reference>
        <reference anchor="I-D.ietf-ace-workflow-and-params">
          <front>
            <title>Short Distribution Chain (SDC) Workflow and New 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="7" month="July" year="2025"/>
            <abstract>
              <t>   This document updates the Authentication and Authorization for
   Constrained Environments Framework (ACE, RFC 9200) as follows. (1) It
   defines the Short Distribution Chain (SDC) workflow that the
   authorization server (AS) can use for uploading an access token to a
   resource server on behalf of the client. (2) For the OAuth 2.0 token
   endpoint, it defines new parameters and encodings and it extends the
   semantics of the "ace_profile" parameter. (3) It defines how the
   client and the AS can coordinate on the exchange of the client's and
   resource server's public authentication credentials, when those can
   be transported by value or identified by reference; this extends the
   semantics of the "rs_cnf" parameter for the OAuth 2.0 token endpoint,
   thus updating RFC 9201. (4) It extends the error handling at the AS,
   for which it defines a new error code. (5) It deprecates the original
   payload format of error responses conveying an error code, when CBOR
   is used to encode message payloads.  For those responses, it defines
   a new payload format aligned with RFC 9290, thus updating in this
   respect also the profiles defined in RFC 9202, RFC 9203, and RFC
   9431. (6) It amends two of the requirements on profiles of the
   framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-05"/>
        </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="7" month="July" year="2025"/>
            <abstract>
              <t>   Communications with the Constrained Application Protocol (CoAP) can
   be protected end-to-end at the application-layer by using the
   security protocol Object Security for Constrained RESTful
   Environments (OSCORE).  Under some circumstances, two CoAP endpoints
   need to update their OSCORE keying material before communications can
   securely continue, e.g., due to approaching key usage limits.  This
   document defines Key Update for OSCORE (KUDOS), a lightweight key
   update procedure that two CoAP endpoints can use to update their
   OSCORE keying material by establishing a new OSCORE Security Context.
   Accordingly, this document updates the use of the OSCORE flag bits in
   the CoAP OSCORE Option as well as the protection of CoAP response
   messages with OSCORE.  Also, it deprecates the key update procedure
   specified in Appendix B.2 of RFC 8613.  Therefore, this document
   updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-11"/>
        </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="20" month="July" 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-04"/>
        </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="7" month="July" year="2025"/>
            <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-05"/>
        </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="7" month="July" year="2025"/>
            <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-08"/>
        </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>
        <reference anchor="I-D.ietf-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol Ephemeral Diffie-
   Hellman Over COSE (EDHOC) requires certain parameters to be agreed
   out-of-band, in order to ensure its successful completion.  To this
   end, application profiles specify the intended use of EDHOC to allow
   for the relevant processing and verifications to be made.  In order
   to ensure the applicability of such parameters and information beyond
   transport- or setup-specific scenarios, this document defines a
   canonical, CBOR-based representation that can be used to describe,
   distribute, and store EDHOC application profiles.  Furthermore, In
   order to facilitate interoperability between EDHOC implementations
   and support EDHOC extensibility for additional integrations, this
   document defines a number of means to coordinate the use of EDHOC
   application profiles.  Finally, this document defines a set of well-
   known EDHOC application profiles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-app-profiles-02"/>
        </reference>
        <reference anchor="I-D.ietf-ace-group-oscore-profile">
          <front>
            <title>The Group Object Security for Constrained RESTful Environments (Group OSCORE) Profile of 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="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="3" month="September" year="2025"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  The
   profile uses Group Object Security for Constrained RESTful
   Environments (Group OSCORE) to provide communication security between
   a client and one or multiple resource servers that are members of an
   OSCORE group.  The profile securely binds an OAuth 2.0 access token
   to the public key of the client associated with the private key used
   by that client in the OSCORE group.  The profile uses Group OSCORE to
   achieve server authentication and proof of possession of the client's
   private key.  Also, it provides proof of the client's membership to
   the OSCORE group by binding the access token to information from the
   Group OSCORE Security Context, thus allowing the resource server(s)
   to verify the client's membership upon receiving a message protected
   with Group OSCORE from the client.  Effectively, the profile enables
   fine-grained access control paired with secure group communication,
   in accordance with the Zero Trust principles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-group-oscore-profile-05"/>
        </reference>
      </references>
    </references>
    <?line 1556?>

<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>
        <li>
          <t><xref target="example-non-sequential-workflow"/> makes use of the EAD items EEAD_REQUEST_CREATION_HINTS (see <xref target="as-creation-hints"/>) and EAD_CRED_BY_VALUE (see <xref target="auth-cred-by-value"/>), allowing C to receive AS Request Creation Hints from the RS transported in an EAD item. This is useful if C is not be able to determine in advance the appropriate AS to contact.</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 anchor="example-non-sequential-workflow">
        <name>Non-sequential Workflow</name>
        <t>When this profile is used, the C might not be able to determine in advance the appropriate AS to contact. In such cases, C may initiate EDHOC with RS prior to obtaining an access token and rely on RS to provide this information.</t>
        <t>One approach, as detailed in this section, is for RS to convey this information by including an External Authorization Data (EAD) item in EDHOC message_2. The content of this EAD item is the information conveyed in a Request Creation Hints response, thereby helping C to identify the correct AS, and possibly other relevant parameters needed to request an access token.</t>
        <t>The following describes an example scenario where this functionality is used in the EDHOC forward message flow, in particular taking advantage of the new EAD items EAD_REQUEST_CREATION_HINTS (see <xref target="as-creation-hints"/>) and EAD_CRED_BY_VALUE (see <xref target="auth-cred-by-value"/>).</t>
        <ol spacing="normal" type="1"><li>
            <t>Without having an access token, C sends EDHOC message_1 to RS, including in EAD_1:  </t>
            <ul spacing="normal">
              <li>
                <t>A new EAD item EAD_REQUEST_CREATION_HINTS, here specifying no ead_value.      </t>
                <t>
By doing so, C is asking RS to include the same EAD item in EAD_2, specifying the information that would be included in a Request Creation Hints response.</t>
              </li>
              <li>
                <t>A new EAD item EAD_CRED_BY_VALUE, asking RS to specify its authentication credential AUTH_CRED_RS by value in ID_CRED_R.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>RS replies with EDHOC message_2, including in EAD_2:  </t>
            <ul spacing="normal">
              <li>
                <t>The new EAD item EAD_REQUEST_CREATION_HINTS, whose CBOR byte string specified as ead_value encodes the information that would have been included in a Request Creation Hints response to an unauthorized request sent to RS. In particular, this information includes the URI to the /token endpoint at the AS.      </t>
                <t>
However, note that C has not made an actual request with a specific request method and targeting a specific application resource. That is, RS does not know yet what resources C is actually interested in accessing later on. Hence, the information specified in this EAD_REQUEST_CREATION_HINTS item is typically not expected to include "audience" and "scope".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>C requests an access token for the right audience and scope from the right AS, based on pre-configured parameters on the client and the information from EAD_REQUEST_CREATION_HINTS within EDHOC message_2, like if C had received a Request Creation Hints response.  </t>
            <t>
C should already know the right audience and scope to specify in the Access Token Request, as that information is not expected to be provided by RS in the EAD_REQUEST_CREATION_HINTS item of EDHOC message_2. There may also be default audience and scope set at the AS to use, if none is specified by C in its Access Token Request.</t>
          </li>
          <li>
            <t>C sends EDHOC message_3 to RS, specifying the access token in EAD_3 as value of the EAD item "EAD_ACCESS_TOKEN".</t>
          </li>
          <li>
            <t>If a protected request from C for accessing a resource at RS is not authorized per the issued access token, then RS replies with a protected error response. Within that error response, RS can provide C with information that would have been specified in a Request Creation Hints response. This time, that information also includes "audience" and "scope". After this, C can follow-up requesting a new access token that dynamically updates access rights accordingly (see <xref target="c-as"/>).  </t>
            <t>
Note that this applies also if C uses the EDHOC + OSCORE combined request (see <xref target="RFC9668"/>), hence combining EDHOC message_3 with the first OSCORE-protected request to access a protected resource at RS (see <xref target="example-with-optimization"/>).</t>
          </li>
        </ol>
        <t>If, instead, the EDHOC reverse message flow is used, then the following differences compared to what is described above apply:</t>
        <ul spacing="normal">
          <li>
            <t>EAD_REQUEST_CREATION_HINTS and EAD_CRED_BY_VALUE are included in EDHOC message_2 by C, in order to ask RS to provide the Request Creation Hints information and to specify AUTH_CRED_RS by value in ID_CRED_I, respectively.</t>
          </li>
          <li>
            <t>EAD_REQUEST_CREATION_HINTS is included in EDHOC message_3 by RS, with value the Request Creation Hints information.</t>
          </li>
          <li>
            <t>After receiving EDHOC message_3, C requests the access token to the AS, based on the information from EAD_REQUEST_CREATION_HINTS in EDHOC message_3.</t>
          </li>
          <li>
            <t>Finally, C sends EDHOC message_4 to RS, specifying the access token in EAD_4 as value of the EAD item "EAD_ACCESS_TOKEN".</t>
          </li>
        </ul>
      </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
cred_types = 6
id_cred_types = 7
eads = 8
initiator = 9
responder = 10
max_msgsize = 11
coap_ct = 12
ep_id_types = 13
transports = 14
trust_anchors = 15

; 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-08-09">
        <name>Version -08 to -09</name>
        <ul spacing="normal">
          <li>
            <t>Parameter "cnf" explicitly forbidden in the Access Token Response.</t>
          </li>
          <li>
            <t>Clarification about content of "cnf" claim in the access token.</t>
          </li>
          <li>
            <t>RS must support the CoAP Uri-Path-Abbrev Option and its value abbreviating /.well-known/edhoc.</t>
          </li>
          <li>
            <t>Example of Request Creation Hints provided in EAD item.</t>
          </li>
          <li>
            <t>Examples showing content of new EAD items.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-07-08">
        <name>Version -07 to -08</name>
        <ul spacing="normal">
          <li>
            <t>KUDOS is just an example of protocol to use for optional key update.</t>
          </li>
          <li>
            <t>message_4 is mandatory to support for an RS that supports the reverse message flow.</t>
          </li>
          <li>
            <t>Method in -workflow-and-params as example for coordinating the exchange of authentication credentials by value or reference.</t>
          </li>
          <li>
            <t>Revised initial set of EDHOC_Information parameters.</t>
          </li>
          <li>
            <t>Defined categorization of EDHOC_Information parameters.</t>
          </li>
          <li>
            <t>New EAD item for C to retrieve Request Creation Hints information from RS.</t>
          </li>
          <li>
            <t>New EAD item for requesting authentication credential by value.</t>
          </li>
          <li>
            <t>Means for the AS to achive proof-of-possession of C's private key.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <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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
e2BbHVFsjvGCyeqBKos91OpmGGAf9/oOsGF7Hz4odOxq4eQjWsAnFKgDh6ss
zCJ3ac8OXBw0/KK32UCQaeHMFtXtFxDalrwlQ3cldqaL120quEareyGe/ywS
mMKWJjnSDUIPNqvEDGXPJw2ncX2N+yZd6YbZpgnuIYThSDHjGwqGe1WMkAqb
jQ9z3BwxQmEbiGYgGrNoZ1wauKWBNZUikk2nyActV15fNnWdUgQg0p56iAjB
jZhG09AW3wW9G9RyQSjtn7EkBpcEi/NI0y3He0QhHMyMW2Yep+UoLlAC46A7
j2xtwbdEZLXNwfNU51my7cT92ZdTbkcMUt1d4yJI2YaF/m/zieK4fHezgeG+
g6jlA2cb/hxf4Ls/tb3b/ONP/O4fvoJP9DIY32nhLQrxGSgw+PQf1bvrz/v7
rnyi168uLpWUEHXbP3/85Hl/+sOCKWBFx4wZFD0jK/r9wnlxT+rNM0uyih4O
VgIqYhkKVH9ceL742XJ45lV/e6l5HwLOaHXejwYS8yMb+f0aa979zGt+Ep3g
LdbcU67xUu/W7vqT5ef9lDVHn44bHpT3mEEst2amoFcS/wa84vjkam/78+63
9vOic2ufd9HJPcia+YzUys6FNa9yf9ebl++gmVdUH574c81rsbeND0fRo5rA
x6kvX20aixWLf5bUwzj5Ii/uMElK+SFfoAy4+RG0HkcsaxZIs4A6h3IuCXAo
s6H+SLFmo6oWgBhx6gmiFHqIHJnD1X91NIJ+ubTsLfEwf5c0KMOi2uv3OPQa
Q3M4rFyLXRxwkybFptJoWG8w9qVuTt4JjEoUjVjFmuogF6P54r/JC4EcP6C7
Kx9UzN5ZBRpLZqOAPY5urdAm+y7N5yVIQuVtXCgpc8DKbX0T4txje6kJiFWi
lQ4vwjDaAlVH1PvcaNURLA2BG22KkYMe1NChL7v8pbYmLKe5kpxGZ6+cg664
OUwQ96zwZpIW7VVo3ZcC0Nh/5qMhGxMMxtt+whZfmrGX9Hccg4kdQ2dCbMlB
qENvEfWNIiBuBOvsltA1FHz5bnQlJpgh0x11CwJ2JJYbPzxarh0pKhigo92K
Cv/FywsSQz/aGhQJagLbGnHhEN/M0ACqJW/rinrXk5w2yZ2KHHdWYitqQwze
FeWf04IRzmlVOgfKFxPxgkxfc3Y5B/C6wKTNrNRoIaqZNbrrgKTYInsitZ40
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
v79OM8yIxD1oofbNGxAKVl2ff5sOd0O02lnfW1gevLlvD0OlEqx/oyhvSbfr
fmrr2zlYvL7RQYVv7u5aw7ACDxeDLFk/+aE2tpq75vp++KvVajdsDPjhb7K+
Oa1vzxpmXqTOsKidz2zrSoOJo27hcFTttdb3nuG3t2+tpxF+WcDHtBb8LJ9H
2wu0PoLf3sEq8FtvnWusL8CHAtpHnfYGRRs7lJ3SqbiurE+Pbb1b1TJSZhwv
15vCx51yH9TSEwYF6YvMN6fZu7TIM8482DoenG5byRsMBV2vdC4Z7txUdGLS
F0bOenUdXC8VREe9Sy8kk4LhF0iv7NyI0OCBjAzcKv3GILfFhcDEulCBlQEl
g5oiyjpvg3v0WG2KyorrWudI6pfriY2cfDrHygnI1r28U111MeUqXIlUe2rk
/BilkhM/pQI8cBi6JPh1PEonKS2Qu5RipfcyX2mxgfK9WNqzi9W58WRgWrLI
vT7/tx+uMBE8yX7MSRBSid300OheEh6oqAOrEyQ8UfVUmcvpjdCc1+HjCNXe
uuXKso6RSgoBIjz08rYCdsdtrrAgAHETRHSFYt1patA2m2RzLZhOalV77Ztw
0lzVX/caIO8zRmOlklxerLdPYPnTFG+TV0KV9JfrrmVygcaJ+KvgjDj3i8ks
NqJjc4qTuNKRpllSC4RfGKZc3EsltcSmDrEUA/Jbj/E+tkB6tWjOMC7htsrS
TJUGNhrrGjVUfpyrCeqFTueTKg2sVpXYTLCKyAhexjwyengUYyolph2Sxbu8
7ZbzIafMRFPgnxNY2ZnKphWrjlNZToonUCdO3SZBrjcuj7IRc511ZQBQqor2
yfsZn12eeW3EkApR87AERtd5TZpaxiVMGJNMrbtlw23jmZqL4ameX1b2mkZt
6RhIVVCoNrpdl2+m6/exVVboKQN9kvg5SQRV6WEuZf/SDMukqCLVzJiwsjJi
vU7XnyIDVZxAqoAurBOt6gpikmg8wTrsulwyVbCBtU9TuxqnvAB3WdFMd/mI
yiOuba8rDiCijNPyR0Iwe0RO19VVUsgXPMFSJELzGO24CZz9Yi/COhiWT8Vd
g5SDhZGLScq9+TKeoVRpdCUC3x2UZs9xyZj3N78G1kdbNcX/eqAFvUsmWC6w
VFVqKFtYsKX9RFHJUmjgk2ldBo+zWqec2hpnbchEf77OX2Pzg2iLc9/Nr22p
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
EBKUpIdJU4asIdCmcQNVqUeJKbm+Vu1YiE2JzdVYADUT8DFauq25O1c3CF+S
7iUJlpSnQB7Jv2hp4VpgiyBmGFLrOo6QuY6sYtig2L/dZoRLkQTY/dTiOxS1
RPoCMKMtN9NJ/nGpLwZ9c5eWiXNFtOA7zDHLfMHN0DCSfBghFgpzUVYSmI04
nz9Sd9rmCBOyqqGacmsJGFExz3Tf+0ePou/VmyJYRa8cSccS7sKiF1uV5RHA
FRwKZNo7Mpel9KUl8NTknaPAwhjvU3yIyV4ZRBNscCDirKIEqruM6XjCjIzb
Z2xs/G/zieK4fHeDCW0wzaIP4ELb5/xigxtbLtH7sv1nNY4T7nPVx+0+IQPd
suO83OlHv+8u+vxx2fU81L4eahwXPrv1BxeN83JnN/rpDwsB9Psl13N2IvfX
kMpynX3BR8b5ypVJVh/HpiP1B5cfp/3Bn3kc99z31rkXew95L9S5nz3QuZ85
524I0//0c790GingqTMbWHWcLe6Y0TU8QnBpe8lxXu7sPyT+bMKWWBz8ZPyx
0aaGA7/2cxeJe+1xHuDcDx6SX2gtwLTFW2tfUdSgVq0+TvuDS46zCQrmlZj1
7M2h/LbKOCjiKuvgZq3rzubPvy/TncHa1tHK48Dnw0Oshz7JY6nNdJWOH0dH
0e3jnf7jzjrjjNIZiNxX5TytkhKH2u2stR6prIwj7HU+YV/zIr2agfaJA20y
g99cdZy2jvI/O/4E1Psj58Elx+n6Gr9HQJbfl8cuHKqx8nrs28HLWnGcyKMV
1M8wNkRx+XGctZBpw3lw6XEWPLhoHBooeq2KAcbXqItzuUtqJ657eQ8wJqx0
qDi/KzaxMiFjGlXIEKMHFUBraVrP71tmarRWWq+zS6bY+FKZ/icrv/LQVpb7
dhIM/pRG5NvLMP3DJYS9hbLgrwPOaynRT5cRihbJTD+PEn3+mxItD32yEi0P
PcD9evbQ9+v0+AR2ZOLrbJvhb0r9ggcXjbM0U0O/mMvVBv/TmdqxwsSQfXqF
cT5Zk1XjtN3cZcb5DJe3dcIl93XeaCtYbZxPtxj0dx6SOS76LHl5vxWnUL0B
OAYzpBi60Ov15GEQ7037Y9XN12p5XO+sjgWw58VNsqHmrW69ft06RB9dse8o
SGnLKpSIgr9+Wb1CsYhlblKjVTVGjJMtt3t6tehFSpjyOz62MiorjIQCLScd
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

-->

</rfc>
