<?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.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-10" 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-10"/>
    <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="2026" month="March" day="01"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 100?>

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

<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">trust_anchors</td>
              <td align="left">11</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 3.</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 4.</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 5.</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>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 11. 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 / [2* int],                     ; methods
  ?  2 => int / [2* int],                     ; cipher_suites
  ?  3 => true / false,                       ; message_4
  ?  4 => true / false,                       ; comb_req
  ?  5 => tstr,                               ; uri_path
  ?  6 => int / [2* int],                     ; cred_types
  ?  7 => int / tstr / [2* (int / tstr)],     ; id_cred_types
  ?  8 => uint / [2* uint],                   ; eads
  ?  9 => true / false,                       ; initiator
  ? 10 => true / false,                       ; responder
  ? 11 => trust_anchors_value,                ; trust_anchors
  * (int / tstr) => any
}

trust_anchors_value = {
  1* int => trust_anchors_outer_entry_value
}

trust_anchors_outer_entry_value =
  trust_anchors_container / [2* trust_anchors_container]

trust_anchors_container = {
  int => trust_anchors_inner_entry_value
}

trust_anchors_inner_entry_value = 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 using 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 using 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 using 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 for 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 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 by 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_request_creation_hints = (
  ead_label : e'ead_request_creation_hints_label',
  ? 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 2 and non-critical, so ead_label = 2 (0x02), 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 = 0x025820A101781C636F61703A2F2F7777772E6578616D70
                             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_credential_by_value = (
  ead_label : e'ead_credential_by_value_label'
)
]]></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 using 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 communicate 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="use-with-key-groupcomm-profiles">
      <name>Use with Application Profiles of ACE for Group Key Provisioning</name>
      <t>The EDHOC and OSCORE profile specified in the present document can be used in combination with application profiles of ACE for key provisioning for group communication <xref target="RFC9594"/>, such as <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> and <xref target="I-D.ietf-ace-coap-pubsub-profile"/>.</t>
      <t>When doing so, the EDHOC and OSCORE profile is used by a client and an RS that acts as Key Distribution Center (KDC) responsible for a security group. According to what is defined in the present document, the client does not upload the first access token of a token series  to the /authz-info endpoint at RS over an unprotected channel. Consequently, the client does not obtain the N_S challenge from RS (see <xref section="3.3" sectionFormat="of" target="RFC9594"/>).</t>
      <t>Therefore, the following holds for computing the N_S challenge used in the two application profiles of <xref target="RFC9594"/> mentioned above.</t>
      <ul spacing="normal">
        <li>
          <t>In the ACE application profile specified in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>, when the provisioning of the access token to the Group Manager (i.e., the KDC) has relied on the EDHOC and OSCORE profile of ACE specified in the present document and the access token was specified in the EAD item ACE-OAuth Access Token (see <xref target="AT-in-EAD"/>), then N_S is derived using the EDHOC_Exporter interface defined in <xref section="4.2.1" sectionFormat="of" target="RFC9528"/>.  </t>
          <t>
Specifically, N_S is exported from the EDHOC session associated with the access token and established between the client and the Group Manager. The following is provided as input to the EDHOC_Exporter interface:  </t>
          <ul spacing="normal">
            <li>
              <t>The 'exporter_label' parameter is the unsigned integer EXPORTER_LABEL_TBD_26, which is registered in <xref target="iana-edhoc-exporter-labels"/> of the present document.</t>
            </li>
            <li>
              <t>The 'context' parameter is h'' (0x40), i.e., the empty CBOR byte string.</t>
            </li>
            <li>
              <t>The 'length' parameter is 32, i.e., the intended length of N_S in bytes.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>In the ACE application profile specified in <xref target="I-D.ietf-ace-coap-pubsub-profile"/>, when the provisioning of the access token to the KDC has relied on the EDHOC and OSCORE profile of ACE specified in the present document and the access token was specified in the EAD item ACE-OAuth Access Token (see <xref target="AT-in-EAD"/>), then N_S is derived using the EDHOC_Exporter interface defined in <xref section="4.2.1" sectionFormat="of" target="RFC9528"/>.  </t>
          <t>
Specifically, N_S is exported from the EDHOC session associated with the access token and established between the client and the KDC. The following is provided as input to the EDHOC_Exporter interface:  </t>
          <ul spacing="normal">
            <li>
              <t>The 'exporter_label' parameter is the unsigned integer EXPORTER_LABEL_TBD_27, which is registered in <xref target="iana-edhoc-exporter-labels"/> of the present document.</t>
            </li>
            <li>
              <t>The 'context' parameter is h'' (0x40), i.e., the empty CBOR byte string.</t>
            </li>
            <li>
              <t>The 'length' parameter is 32, i.e., the intended length of N_S in bytes.</t>
            </li>
          </ul>
        </li>
      </ul>
    </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-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 the 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 24 and 255)</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 24 and 255)</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-exporter-labels">
        <name>EDHOC Exporter Labels</name>
        <t>IANA is asked to register the following entries in the "EDHOC Exporter Labels" registry, within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Label: 26 (suggested value)</t>
          </li>
          <li>
            <t>Description: Derived N_S challenge for key provisioning for Group OSCORE using the ACE framework <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="use-with-key-groupcomm-profiles"/>]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Label: 27 (suggested value)</t>
          </li>
          <li>
            <t>Description: Derived N_S challenge for key provisioning for CoAP Pub-Sub using the ACE framework <xref target="I-D.ietf-ace-coap-pubsub-profile"/>.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="use-with-key-groupcomm-profiles"/>]</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, 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 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-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 objectives 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="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="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="RFC9594">
          <front>
            <title>Key Provisioning for Group Communication Using Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document defines how to use the Authentication and Authorization for Constrained Environments (ACE) framework to distribute keying material and configuration parameters for secure group communication. Candidate group members that act as Clients and are authorized to join a group can do so by interacting with a Key Distribution Center (KDC) acting as the Resource Server, from which they obtain the keying material to communicate with other group members. While defining general message formats as well as the interface and operations available at the KDC, this document supports different approaches and protocols for secure group communication. Therefore, details are delegated to separate application profiles of this document as specialized instances that target a particular group communication approach and define how communications in the group are protected. Compliance requirements for such application profiles are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9594"/>
          <seriesInfo name="DOI" value="10.17487/RFC9594"/>
        </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>University of Glasgow</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="25" month="January" year="2026"/>
            <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, common certificate
   profiles and is extensible.

   Two types of C509 certificates are defined.  One type is an
   invertible CBOR re-encoding of DER encoded X.509 certificates with
   the signature field copied from the DER encoding.  The other type is
   identical except that the signature is over the CBOR encoding instead
   of the DER encoding, avoiding the use of ASN.1.  Both types of
   certificates have the same semantics as X.509 and the same reduced
   size compared to X.509.

   The document also specifies CBOR encoded data structures for
   certificate (signing) requests and certificate request templates, new
   COSE headers, as well as a TLS certificate type and a file format for
   C509.  This document updates RFC 6698; the TLSA selectors registry is
   extended to include C509 certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-16"/>
        </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="20" month="October" 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-02"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm-oscore">
          <front>
            <title>Key Management for Group Object Security for Constrained RESTful Environments (Group OSCORE) Using Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="25" month="February" year="2026"/>
            <abstract>
              <t>   This document defines an application profile of the Authentication
   and Authorization for Constrained Environments (ACE) framework, to
   request and provision keying material in group communication
   scenarios that are based on the Constrained Application Protocol
   (CoAP) and are secured with Group Object Security for Constrained
   RESTful Environments (Group OSCORE).  This application profile
   delegates the authentication and authorization of Clients, which join
   an OSCORE group through a Resource Server acting as Group Manager for
   that group.  This application profile leverages protocol-specific
   transport profiles of ACE to achieve communication security, server
   authentication, and proof of possession of a key owned by the Client
   and bound to an OAuth 2.0 access token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-20"/>
        </reference>
        <reference anchor="I-D.ietf-ace-coap-pubsub-profile">
          <front>
            <title>CoAP Publish-Subscribe Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Cigdem Sengul" initials="C." surname="Sengul">
              <organization>Brunel University</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="9" month="February" year="2026"/>
            <abstract>
              <t>   This document defines an application profile of the Authentication
   and Authorization for Constrained Environments (ACE) framework, to
   enable secure group communication in the Publish-Subscribe (Pub-Sub)
   architecture for the Constrained Application Protocol (CoAP) [draft-
   ietf-core-coap-pubsub], where Publishers and Subscribers communicate
   through a Broker.  This profile relies on protocol-specific transport
   profiles of ACE to achieve communication security, server
   authentication, and proof of possession of a key owned by the Client
   and bound to an OAuth 2.0 access token.  This document specifies the
   provisioning and enforcement of authorization information for Clients
   to act as Publishers and/or Subscribers, as well as the provisioning
   of keying material and security parameters that Clients use for
   protecting their communications end-to-end through the Broker.

   Note to RFC Editor: Please replace "[draft-ietf-core-coap-pubsub]"
   with the RFC number of that document and delete this paragraph.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-pubsub-profile-03"/>
        </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="10" month="February" year="2026"/>
            <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-18"/>
        </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="20" month="October" 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) For the OAuth 2.0
   authz-info endpoint, it defines a new parameter and its encoding. (4)
   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. (5) It extends
   the error handling at the AS, for which it defines a new error code.
   (6) 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. (7) 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-06"/>
        </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="20" month="October" 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-12"/>
        </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="October" 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-05"/>
        </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="20" month="October" 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-06"/>
        </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="20" month="October" 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-09"/>
        </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="20" month="October" 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-03"/>
        </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 1547?>

<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 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 EAD_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 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 External Authorization Data
ead_request_creation_hints_label = 2
ead_credential_by_value_label = 15

; 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
trust_anchors = 11

; 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-09-10">
        <name>Version -09 to -10</name>
        <ul spacing="normal">
          <li>
            <t>Fixed CDDL definition of the EDHOC_Information object.</t>
          </li>
          <li>
            <t>Removed excessive EDHOC_Information parameters: "max_msgsize", "coap_ct", "ep_id_types", and "transports".</t>
          </li>
          <li>
            <t>Removed definition of some IANA registries: "EDHOC Endpoint Identity Types" and "EDHOC Transports".</t>
          </li>
          <li>
            <t>Defined derivation of N_S, when combining this profile with application profiles of RFC 9594.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <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 achieve 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:
H4sIAAAAAAAAA+y96Xbb2JUo/F9PgSuv9VmqkLRm20oq3SpK7lJSHlqSu5IV
Z6lBEpJQJgE2AFpWXL6vcr+nuA/w9Yt9ezojDsDBcpWdLq7uikwCZ9hnnz0P
3W537d1htLu2VqXVODmMTqY3ySQp4nF0nF5dpUn3+2Q8nsRZ9PJdUkT9l+cn
0cbJ8fcv+5tRnI2il4OfkmEVnSfDWZFWd9FVDg/lWVkVcZolo+gke5cWeTZJ
sqqMNl6e91+enWxGr4r8Kh0n9PTRrLqBX9NhXKV5RoPiV3mR/oO/aR/yqH+y
uRYPBkUC26CF8bpopmgqE+VXETy4NsqHWTyBXY6K+Krqpkl11Y2HSTcZ3eTD
bl4O8yLpyjvd7a01WFNynRd3h1FZjdbK2WCSliWsqbqbwiCnJxfP1tbeJdks
OVyLousin00PP3U/sJxNGGwSp+PDCP7xr7jIXl5c4wxpdTMb0Nfd2+tHTStf
W0unxWFUFbOy2tnaerq1sxYXSXyoT2ntNi/equX2T6If4Z9pdh39G3619ja5
g99HsL+sSoosqbrHCK21tWE+gqcOoxlA7cnaWky7OlzrwsqiKM3Kw+jfejDH
GLacFPQlA/vf/vv/FoBAzi+wITiuIh2WZZ7RNwlvGcAdZ71Snv3XRB7pDfOJ
PdOfeoBEyey//0/0PK4qPQhP+Kf8Jgv+3DjrT/BGbyKPNk76vBddpON8GFtz
PY+LYW5/TXOcnZ6f2ONP8KleRU/9a5HC/uxxz3rR9//9f6/Hs2xkjXyWvo2L
kftLcPCCHuzd5PScDL+W5QVsKH1HuHn2rL/79MmB/Ll3sPdE/tzfebIlfx48
3nsqfz7e3lHfPt7Z31F/7m/vmz/1s0+21LNPtnfUFE92n6rXnhxsb5k/d9Wf
j/d2zJ+P1Z9P9RqebumJ4U/12tMdPRv8uW3+1A/sHugHYHP6zwM92P7TPfXn
wQE9cNo97hEtGOZl0h0O8qKbZIDtyag7TIrKewQuGtyi7jSubrpCeOwH8FbC
FerS/QIEmsjtrD00zONpdzobAFlRNxefQRLb+z6JAft7r+ICUAFuYXlIB66u
XBRpZDg9enFE/x4BrTqMruIxHD7+W+g5UWweLjLD8RNxcZ1Uh9FNVU3Lw0eP
bm9ve2mcxUhtHsVA6K6ZKD1CsNB/eu9vqsn4wQ0NBxDQw62l2ZWHb3vmKJ/s
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
DCyM8T7Fh5jslUE0wVKjIsMqSqDqPJvaw8zIuJDt2tr/Np8ojst31xhUB9PM
+wAutH3Ozte4ycwCfWjaf1bjON0iLrdxu4/ILLfoOM+3tqPfded9/rjoeu5r
X/c1jgufnfqD88Z5vrUT/fyHuQD63YLrOT2W+2tIZbnKvuAj43zryiTLj2PT
kfqDi4/T/uAvPI577rur3Ivd+7wX6txP7+ncT51zN4Tpf/q5XzglTfHUmQ0s
O84GJ011DY8QXNpccJznW3v3iT/rsCUWBz8Zf2y0qeHA137uInGvPM49nPv+
ffILrQWYBhUr7SuKGtSq5cdpf3DBcdZBwbwUW57fPnyZcVDEVSbB9Vr96/Vf
fl+mTqq1rcOlx4HPh/tYD32Sh5IhfZmOHkaH0c3Dre2HnVXGGaZTELkvy1la
JSUOtdNZaT1S4wxH2O18wr5mRXo5Be0TB1pnBr++7Dht3R1/cfwJqPeHzoML
jtP1NX6PgCy+L49dOFRj6fXYt4OXteQ4kUcrqLNIbIji4uM4ayHThvPgwuPM
eXDeODRQ9EqV5IivUBfnsjPU2k/31etjJFjpUHF+V2xiZULGNMrSEaMHlSFo
aSDJ71tmarRWWq+zH6ZY+1KZ/icrv/LQRpb7dhIM+ZSmgJuLMP2DBYS9ubLg
1wHnlZTox4sIRfNkpl9GiT77TYmWhz5ZiZaH7uF+Pbnv+3VydAw7MlF1ts3w
N6V+zoPzxlmYqaFfzOVq/f/pTO1IYWLIPr3EOJ+syapx2m7uIuN8hsvbOuGC
+zprtBUsN86nWwy2t+6TOc77LHh5fxCnUL0Vn24/2+v15GEQ700jMtVXy2o+
Vu9xiGXoZsV1sqbmpagUu5qXDswfUaEf9JptWMUaUPDXL6tXKACxzE2TNlUR
AqNjy82eXi16kRKm/I6PrYzKCsOfQMtJRx09PvneVIAAN4VLKzMaOrb63EOr
PurZ+bLDfnGUiRd8gR7yaUzOM330X94y8RTfqrhozCyzcff3UYa+Tw7p4edb
fMGSyGExd5u9KrBQWk3K+SnTmLLFiOt05EiLZJJg4Bx7ZWPqlol97Sp+v9b/
2ETjl+XMiiXlOATGM+Scm7J+CipeLmThyzs7eejLMd9v36tb9B7N9/9ckuI9
j/PluAG279VtrN0AYfT5FDeAgwS/uLn8NzfAvPV8VjfA/m9uAPXQ/xA3gEtA
Ft9Xq9f4NzfAnM/XOs6XY2HfXiQcZ6649nXAeQULuzx0D3De+81Sv9A47Q/+
wuN8OZb67f3fLPULjfNPiYetxutHxVdovN7+p/bsfkFG8Hv1EM/7zF2PlQBQ
z36Yk/owP++BEghLlUGofqMMrPacVczzQB3XKZpkqtkzG/idMrsrO1o4A5XT
PYpZRjXy+VXKOqEtSuIa/U0pEZzB05KhwVbIkhOOOVvrNrdTWk12Wj2DSed0
cKqG+pFLFt13lsacPI3FszTmPLSwGD13nMWyNOYZJBcmH4vu677GmSf+LgCf
hcxtcwxuC2dpLAGf1iyNJcZpFRd+6fO6r3Ea6JVl95977ouphQvei25NkF5t
X/hpFzmXgnOLyLnUOC04tCB8ul39/w2PLjZOVJMXsHjD0uPgx3UZrbYe+bR4
aZYap8VW9nXe03lulUXHmScmLnDfFzRPLEbn52VXLAHn1uyKX/q85rlVFh3n
/2/v2prTRrLwO79C5TxMnAVs40tiT+XBgz1rbxLHFTvj2aqpogQIrA0IConY
bMr/bN/2j+259kVCAiapzN62pjYGpNbp7tPnrvOtSqt893mtSKtsQE9lWmWj
eVW8XbHhOKVplQ3HKU2rbDhOaVplg3Eq0yrfm39WpVXW11/Vb1esP6/qtys2
pKc0rbI+PdVplfXHqU6rfLd95xKZ/463KzYzqr/C2ZRLVsWC11DW3zwW/FXr
szYz/AdUJf8xntpXeehH3zOxtMH6VCaWNhjnf81Dn601Dr768w2FwLf00KsS
S5uM839Pv2Kcb+jpn06546zTr9ZhxO9qUZwOFEOY2VH66qNsp76p3OO3X88p
UL7Z0aKaAphFmBLIiosl8xT9gU1zseVUnAX3YZ+rhBFtMcBmXf1GOJok0b+t
ClmVa1rbLvn6IMKr75lrWklPPtd05fXxtKknN89U1uuzVrtjcD6nVapBqqAe
99KzTbsb//7WmOhNUa826b/XJgg/biGf6cGQ/BFWyE+oY/2ki9KW2mXm2vJh
3gcNJDwT0vuQrSKejdMWuFmrvU+EtLB3X+dGhjDuyGnRLj3Z6wpU+kGJR2jy
/IgoMLnlplB2/gjrkWDDR+mIyZedhVkYPAfFsc2ghXHi66PfOi1u34uLhAdT
MTO0TylSw31d7bOZJmlpWtYGVYNvtIsgLhbBfTSamj6qHnqFtGDndxDwTRs1
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
dNjabtb+BaxjtqXWdQIA

-->

</rfc>
