<?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.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <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-06"/>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE</organization>
      <address>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE</organization>
      <address>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <date year="2024" month="October" day="20"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 90?>

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

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the "coap_edhoc_oscore" profile of the ACE-OAuth framework <xref target="RFC9200"/>. This profile addresses a "zero-touch" constrained setting where authenticated and authorized operations can be performed with low overhead without endpoint specific configurations.</t>
      <t>Like in the "coap_oscore" profile <xref target="RFC9203"/>, also in this profile a client (C) and a resource server (RS) use the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> to communicate, and Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/> to protect their communications, but this profile uses the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="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 with the use of an access token issued by a trusted authorization server (AS) and bound to an authentication credential of C. This differs from the "coap_oscore" profile, where the access token is bound to a symmetric key used to derive the OSCORE Security Context. 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"/>.</t>
      <t>An authentication credential can be a raw public key, e.g., encoded as a CWT Claims Set (CCS, <xref target="RFC8392"/>); or a public key certificate, e.g., encoded as an X.509 certificate <xref target="RFC5280"/> or as a CBOR encoded X.509 certificate (C509, <xref target="I-D.ietf-cose-cbor-encoded-cert"/>); or a different type of data structure containing the public key of the peer in question.</t>
      <t>The ACE protocol establishes what those authentication credentials are, and may transport the actual authentication credentials by value or uniquely refer to them. If an authentication credential is pre-provisioned or can be obtained over less constrained links, then it suffices that ACE provides a unique reference such as a certificate hash (e.g., by using the COSE header parameter "x5t", see <xref target="RFC9360"/>). This is in the same spirit as EDHOC, where the authentication credentials may be transported or referenced in the ID_CRED_x message fields (see <xref section="3.5.3" sectionFormat="of" target="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 access that C makes to AS.</t>
      <t>The establishment of an association between RS and AS in an ACE ecosystem is out of scope, but one solution is to build on the same primitives as used in this document, i.e., EDHOC for authentication and OSCORE for communication security, using for example <xref target="I-D.ietf-lake-authz"/> for onboarding RS with AS, and <xref target="I-D.ietf-ace-coap-est-oscore"/> for establishing a trust anchor in RS. A similar procedure can also be applied between C and AS for registering a client and for the establishment of a trust anchor.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<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, including authorization information, for the resources it wants to access on RS, by sending an access token request to the /token endpoint at AS, as specified in <xref section="5.8" sectionFormat="of" target="RFC9200"/>.</t>
      <t>If the request is granted, then AS may send back an access token in a response to C, or upload the access token directly to RS as described in the alternative workflow defined in <xref target="I-D.ietf-ace-workflow-and-params"/>. The latter is not detailed further here.</t>
      <t>After that, C and RS executes the EDHOC protocol. C uses the authentication credential of RS provided by AS. If C has retrieved an access token, it is included as External Authorization Data (EAD) in the EDHOC protocol, see <xref section="3.8" sectionFormat="of" target="RFC9528"/>. RS uses the authentication credential of C bound to and provided in the access token. The EDHOC session is detailed in <xref target="edhoc-exec"/>.</t>
      <t>If C and RS successfully complete the EDHOC protocol and the validations of authentication credentials, 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, C effectively gains authorized and secure access to protected resources on RS with the established OSCORE Security Context, for as long as there is a valid access token. 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>While the OSCORE Security Context and 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 request, which allows AS to retrieve the data 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 retrieved an access token for updating its access rights belonging to the same token series, then it transfers the access token to RS using the /authz-info endpoint as specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/> where the CoAP exchange is 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 becomes the latest in its token series, but the session identifier remains the same. When the latest access token of a token series becomes invalid (e.g., when it expires or gets revoked), that token series ends.</t>
      <t><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, AS provides C with the access token, together with a set of parameters that enable C to run EDHOC with RS. In particular, these include information about the authorization credential of RS, AUTH_CRED_RS, transported by value or uniquely referred to.</t>
      <t>The access token is securely bound to the authentication credential of C, AUTH_CRED_C, by including it or uniquely referring to it in the access token.</t>
      <t>AUTH_CRED_C is specified in the "req_cnf" parameter defined in <xref target="RFC9201"/> of the POST request to the /token endpoint from C to AS, either transported by value or uniquely referred to.</t>
      <t>The request to the /token endpoint and the corresponding response can include EDHOC_Information, which is a CBOR map object containing information related to an EDHOC 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"/>). When using this profile, it is <bcp14>RECOMMENDED</bcp14> to use CoAP, EDHOC, and OSCORE in order to reduce the number of libraries that C has to support.</t>
        <t>An example of such a request is shown in <xref target="token-request"/>. In this example, C specifies its own authentication credential by reference, as the hash of an X.509 certificate carried in the "x5t" field of the "req_cnf" parameter.</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' : h'822E4879F2A41B510C1F9B'
     }
   }
]]></artwork>
        </figure>
        <t>If C wants to update its access rights without changing an existing OSCORE Security Context, it <bcp14>MUST</bcp14> include EDHOC_Information in its POST request to the /token endpoint. The EDHOC_Information <bcp14>MUST</bcp14> include the "session_id" field. This POST request <bcp14>MUST</bcp14> omit the "req_cnf" parameter. An example of such a request is shown in <xref target="token-request-update"/>.</t>
        <t>The identifier "session_id" is assigned by AS as discussed in <xref target="token-series"/>, and, together with other information such as audience (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), can be used by AS to determine the token series to which the new requested access token has to be added. Therefore, the session_id <bcp14>MUST</bcp14> identify the pair (AUTH_CRED_C, AUTH_CRED_RS) associated with a still valid access token previously issued for C and RS by AS.</t>
        <t>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?</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 sorted in chronological order as they are released, characterized by the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>issued by the same AS</t>
          </li>
          <li>
            <t>issued to the same C, and associated with the same authentication credential of C</t>
          </li>
          <li>
            <t>issued for the same RS, identified by the same authentication credential</t>
          </li>
        </ul>
        <t>Upon a successful update of access rights, the new issued access token becomes the latest in its token series. When the latest access token of a token series becomes invalid (e.g., due to its expiration or revocation), the token series it belongs to ends.</t>
        <t>In this profile, a token series is characterized by access tokens used between a given pair (C, RS) having the same "session_id" in the EDHOC_Information (see <xref target="edhoc-parameters-object"/>) and bound to the same authentication credential AUTH_CRED_C of C.</t>
        <t>AS assigns the "session_id" to the EDHOC_Information when issuing the first access token of a new series and that "session_id" remains fixed throughout the series lifetime. When assigning the identifier, AS <bcp14>MUST</bcp14> ensure that it was not used in a previous series whose access tokens share the following properties with the access tokens of the new series:</t>
        <ul spacing="normal">
          <li>
            <t>i) issued for the same RS; and</t>
          </li>
          <li>
            <t>ii) bound to the same authentication credential AUTH_CRED_C of the requesting client (irrespectively of how the AUTH_CRED_C is identified in the access tokens).</t>
          </li>
        </ul>
        <t>In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), what is defined above applies, with the difference that the token series is associated with all the RSs in the group-audience, as indicated by their respective AUTH_CRED_RS.</t>
      </section>
      <section anchor="as-c">
        <name>AS-to-C: Response</name>
        <t>After verifying the POST request to the /token endpoint and that C is authorized to access, AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, with potential modifications as detailed below. If the request from C was invalid or not authorized, AS returns an error response as described in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>AS can signal that the use of EDHOC and OSCORE as per this profile is <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 any access token, AS <bcp14>MUST</bcp14> send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The "session_id" field of EDHOC_Information, which is the identifier of the token series which the issued access token belongs to.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS <bcp14>MUST</bcp14> send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>A unique identification of the authentication credential of RS, AUTH_CRED_RS. This is specified in the "rs_cnf" parameter defined in <xref target="RFC9201"/>. AUTH_CRED_RS can be transported by value or referred to by means of an appropriate identifier.  </t>
            <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is typically expected that the response to C may include AUTH_CRED_RS by value.  </t>
            <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_RS, it is expected that the response to C includes AUTH_CRED_RS by reference.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS <bcp14>MAY</bcp14> send EDHOC_Information related to RS, see <xref target="edhoc-parameters-object"/>, in corresponding fields of the response to C. This information is based on knowledge that AS has about RS, e.g., from a previous onboarding process, with particular reference to what RS supports as EDHOC peer.</t>
        <t><xref target="fig-token-response"/> shows an example of an AS response. The "rs_cnf" parameter specifies the authentication credential of RS, as an X.509 certificate transported by value in the "x5chain" field. The access token and the authentication credential of RS have been truncated for readability.</t>
        <figure anchor="fig-token-response">
          <name>Example of AS-to-C Access Token response with EDHOC and OSCORE profile.</name>
          <artwork><![CDATA[
   Header: Created (Code=2.01)
      Content-Format: application/ace+cbor
      Payload:
      {
        / access_token / 1 : h'8343a1010aa2044c53/...
          (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/...'
            (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), see <xref target="RFC8392"/>. When issuing any access token of a token series, AS <bcp14>MUST</bcp14> specify the following data in the associated claims of the access token:</t>
          <ul spacing="normal">
            <li>
              <t>The "session_id" field of EDHOC_Information, with the same value specified in the response to C from the /token endpoint.  </t>
              <t>
EDHOC_Information <bcp14>MUST</bcp14> be transported in the "edhoc_info" claim, defined in <xref target="iana-token-cwt-claims"/>.</t>
            </li>
            <li>
              <t>The authentication credential AUTH_CRED_C that C specified in its POST request to the /token endpoint (see <xref target="c-as"/>), in the "cnf" claim.  </t>
              <t>
In the access token, AUTH_CRED_C can be transported by value or uniquely referred to by means of an appropriate identifier, regardless of how C specified it in the request to the /token endpoint. Thus, the specific field carried in the access token claim and specifying AUTH_CRED_C depends on the specific way used by AS.  </t>
              <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is typically expected that AUTH_CRED_C is included by value.  </t>
              <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_C, it is expected that AUTH_CRED_C is identified by reference.</t>
            </li>
          </ul>
          <t>When issuing the first access token of a token series, AS <bcp14>MAY</bcp14> specify additional EDHOC_Information data (see <xref target="edhoc-parameters-object"/>) in the "edhoc_info" claim of the access token. Specifically, if the following EDHOC_Information data are specified in the response to C from the /token endpoint, they <bcp14>MUST</bcp14> be included with the same values in the access token.</t>
          <ul spacing="normal">
            <li>
              <t>osc_ms_len: The size of the OSCORE Master Secret. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="RFC9528"/> is assumed.</t>
            </li>
            <li>
              <t>osc_salt_len: The size of the OSCORE Master Salt. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="RFC9528"/> is assumed.</t>
            </li>
            <li>
              <t>osc_version: The OSCORE version. If it is not included, the default value of 1 (see <xref section="5.4" sectionFormat="of" target="RFC8613"/>) is assumed.</t>
            </li>
          </ul>
          <t>The access token needs to be protected for various reasons. To prevent manipulation of the content, it needs to be integrity protected. RS needs to be able to verify that the access token is issued by a trusted AS (source authentication). Depending on the use case and deployment, the access token may need to be confidentiality protected, for example, for privacy reasons.</t>
          <t>AS protects the access token using a COSE method (see <xref target="RFC9052"/>) as specified in <xref target="RFC8392"/>. Depending on the audience, there may 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 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/...
        (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-in-c">
          <name>Processing in C</name>
          <t>When receiving an access token response including the "rs_cnf" parameter, C checks whether it is already storing the authentication credential of RS, namely AUTH_CRED_RS, specified in "rs_cnf" by value or reference.</t>
          <t>If this is not the case, C retrieves AUTH_CRED_RS, either using the "rs_cnf" parameter or some other trusted source. After that, C validates the actual AUTH_CRED_RS. In case of successful validation, C stores AUTH_CRED_RS as a valid authentication credential. Otherwise, C <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_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 the AS to C <bcp14>MUST NOT</bcp14> include the "rs_cnf" parameter.</t>
          <t>EDHOC_Information including the "session_id" field needs to be specified in the new access token in order for RS to identify the old access token to supersede, as well as the OSCORE Security Context already shared between C and RS and to be associated with the new access token.</t>
        </section>
      </section>
      <section anchor="edhoc-parameters-object">
        <name>EDHOC_Information</name>
        <t>EDHOC_Information is an object including information that guides two peers towards executing the EDHOC protocol. In particular, the EDHOC_Information is defined to be serialized and transported between nodes, as specified by this document, but it can also be used by other specifications.</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 (see <xref target="iana-edhoc-parameters"/>), defined for extensibility, and the initial set of parameters defined in this document is specified below. All parameters are optional.</t>
        <t><xref target="_table-cbor-key-edhoc-params"/> provides a summary of the EDHOC_Information parameters defined in this section.</t>
        <table align="center" anchor="_table-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">CBOR label</th>
              <th align="left">CBOR type</th>
              <th align="left">Registry</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">session_id</td>
              <td align="left">0</td>
              <td align="left">bstr</td>
              <td align="left"> </td>
              <td align="left">Identifier of a session</td>
            </tr>
            <tr>
              <td align="left">methods</td>
              <td align="left">1</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Method Type Registry</td>
              <td align="left">Set of supported EDHOC methods</td>
            </tr>
            <tr>
              <td align="left">cipher_suites</td>
              <td align="left">2</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Cipher Suites Registry</td>
              <td align="left">Set of supported EDHOC cipher suites</td>
            </tr>
            <tr>
              <td align="left">message_4</td>
              <td align="left">3</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for EDHOC message_4</td>
            </tr>
            <tr>
              <td align="left">comb_req</td>
              <td align="left">4</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC + OSCORE combined request</td>
            </tr>
            <tr>
              <td align="left">uri_path</td>
              <td align="left">5</td>
              <td align="left">tstr</td>
              <td align="left"> </td>
              <td align="left">URI-path of the EDHOC resource</td>
            </tr>
            <tr>
              <td align="left">osc_ms_len</td>
              <td align="left">6</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">Length in bytes of the OSCORE Master Secret to derive</td>
            </tr>
            <tr>
              <td align="left">osc_salt_len</td>
              <td align="left">7</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">Length in bytes of the OSCORE Master Salt to derive</td>
            </tr>
            <tr>
              <td align="left">osc_version</td>
              <td align="left">8</td>
              <td align="left">uint</td>
              <td align="left"> </td>
              <td align="left">OSCORE version number to use</td>
            </tr>
            <tr>
              <td align="left">cred_types</td>
              <td align="left">9</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Authentication Credential Types Registry</td>
              <td align="left">Set of supported types of authentication credentials for EDHOC</td>
            </tr>
            <tr>
              <td align="left">id_cred_types</td>
              <td align="left">10</td>
              <td align="left">int or tstr or array</td>
              <td align="left">COSE Header Parameters Registry</td>
              <td align="left">Set of supported types of authentication credential identifiers for EDHOC</td>
            </tr>
            <tr>
              <td align="left">eads</td>
              <td align="left">11</td>
              <td align="left">uint or array</td>
              <td align="left">EDHOC External Authorization Data Registry</td>
              <td align="left">Set of supported EDHOC External Authorization Data (EAD) items</td>
            </tr>
            <tr>
              <td align="left">initiator</td>
              <td align="left">12</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Initiator role</td>
            </tr>
            <tr>
              <td align="left">responder</td>
              <td align="left">13</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the EDHOC Responder role</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>session_id: This parameter identifies a 'session' which the EDHOC information is associated with, but does not necessarily identify a specific EDHOC session. In this document, "session_id" identifies a token series. In JSON, the "session_id" value is a Base64 encoded byte string. In CBOR, the "session_id" type is a byte string, and has label 0.</t>
          </li>
          <li>
            <t>methods: This parameter specifies a set of supported EDHOC methods (see <xref section="3.2" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single EDHOC method, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC method. In JSON, the "methods" value is an integer or an array of integers. In CBOR, the "methods" is an integer or an array of integers, and has label 1.</t>
          </li>
          <li>
            <t>cipher_suites: This parameter specifies a set of supported EDHOC cipher suites (see <xref section="3.6" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single EDHOC cipher suite, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC cipher suite. In JSON, the "cipher_suites" value is an integer or an array of integers. In CBOR, the "cipher_suites" is an integer or an array of integers, and has label 2.</t>
          </li>
          <li>
            <t>message_4: This parameter indicates whether the EDHOC message_4 (see <xref section="5.5" sectionFormat="of" target="RFC9528"/>) is supported. In JSON, the "message_4" value is a boolean. In CBOR, "message_4" is the simple value "true" or "false", and has label 4.</t>
          </li>
          <li>
            <t>comb_req: This parameter indicates whether the combined EDHOC + OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>) is supported. In JSON, the "comb_req" value is a boolean. In CBOR, "comb_req" is the simple value "true" or "false", and has label 5.</t>
          </li>
          <li>
            <t>uri_path: This parameter specifies the path component of the URI of the EDHOC resource where EDHOC messages have to be sent as requests. In JSON, the "uri_path" value is a string. In CBOR, "uri_path" is a text string, and has label 6.</t>
          </li>
          <li>
            <t>osc_ms_len: This parameter specifies the size in bytes of the OSCORE Master Secret to derive after the EDHOC session, as per <xref section="A.1" sectionFormat="of" target="RFC9528"/>. In JSON, the "osc_ms_len" value is an integer. In CBOR, the "osc_ms_len" type is unsigned integer, and has label 7.</t>
          </li>
          <li>
            <t>osc_salt_len: This parameter specifies the size in bytes of the OSCORE Master Salt to derive after the EDHOC session, as per <xref section="A.1" sectionFormat="of" target="RFC9528"/>. In JSON, the "osc_salt_len" value is an integer. In CBOR, the "osc_salt_len" type is unsigned integer, and has label 8.</t>
          </li>
          <li>
            <t>osc_version: This parameter specifies the OSCORE Version number that the two EDHOC peers have to use when using OSCORE. For more information about this parameter, see <xref section="5.4" sectionFormat="of" target="RFC8613"/>. In JSON, the "osc_version" value is an integer. In CBOR, the "osc_version" type is unsigned integer, and has label 9.</t>
          </li>
          <li>
            <t>cred_types: This parameter specifies a set of supported types of authentication credentials for EDHOC (see <xref section="3.5.2" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single type of authentication credential, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one type of authentication credential. In JSON, the "cred_types" value is an integer or an array of integers. In CBOR, "cred_types" is an integer or an array of integers, and has label 9. The integer values are taken from the "EDHOC Authentication Credential Types" registry defined in <xref target="I-D.ietf-core-oscore-edhoc"/>.</t>
          </li>
          <li>
            <t>id_cred_types: This parameter specifies a set of supported types of authentication credential identifiers for EDHOC (see <xref section="3.5.3" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single type of authentication credential identifier, this is encoded as an integer or a text string. Otherwise, the set is encoded as an array, where each array element encodes one type of authentication credential identifier, as an integer or a text string. In JSON, the "id_cred_types" value is an integer, or a text string, or an array of integers and text strings. In CBOR, "id_cred_types" is an integer or a text string, or an array of integers and text strings, and has label 10. The integer or text string values are taken from the 'Label' column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>.</t>
          </li>
          <li>
            <t>eads: This parameter specifies a set of supported EDHOC External Authorization Data (EAD) items, identified by their ead_label (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single ead_label, this is encoded as an unsigned integer. Otherwise, the set is encoded as an array of unsigned integers, where each array element encodes one ead_label. In JSON, the "eads" value is an unsigned integer or an array of unsigned integers. In CBOR, "eads" is an unsigned integer or an array of unsigned integers, and has label 11. The unsigned integer values are taken from the 'Label' column of the "EDHOC External Authorization Data" registry defined in <xref target="RFC9528"/>.</t>
          </li>
          <li>
            <t>initiator: This parameter specifies whether the EDHOC Initiator role is supported. In JSON, the "initiator" value is a boolean. In CBOR, "initiator" is the simple value "true" (0xf5) or "false" (0xf4), and has label 12.</t>
          </li>
          <li>
            <t>responder: This parameter specifies whether the EDHOC Responder role is supported. In JSON, the "responder" value is a boolean. In CBOR, "responder" is the simple value "true" (0xf5) or "false" (0xf4), and has label 13.</t>
          </li>
        </ul>
        <t>An example of JSON EDHOC_Information is given in <xref target="fig-edhoc-info-json"/>.</t>
        <figure anchor="fig-edhoc-info-json">
          <name>Example of JSON EDHOC_Information</name>
          <artwork><![CDATA[
   "edhoc_info" : {
       "session_id"    : b64'AQ==',
       "methods"       : 1,
       "cipher_suites" : 0
   }
]]></artwork>
        </figure>
        <t>The CDDL grammar describing the CBOR EDHOC_Information is:</t>
        <artwork><![CDATA[
EDHOC_Information = {
  ?  0 => bstr,                   ; id
  ?  1 => int / array,            ; methods
  ?  2 => int / array,            ; cipher_suites
  ?  3 => true / false,           ; message_4
  ?  4 => true / false,           ; comb_req
  ?  5 => tstr,                   ; uri_path
  ?  6 => uint,                   ; osc_ms_len
  ?  7 => uint,                   ; osc_salt_len
  ?  8 => uint,                   ; osc_version
  ?  9 => int / array,            ; cred_types
  ? 10 => int / tstr / array,     ; id_cred_types
  ? 11 => uint / array,           ; eads
  ? 12 => true / false,           ; initiator
  ? 13 => true / false,           ; responder
  * int / tstr => any
}
]]></artwork>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>This section describes the 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"/>). OSCORE protects the communication 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 access token and session idenfier 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"/>, and</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>
          </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 process the protocol with the received access token, or else abort the EDHOC session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). A Client or Resource Server supporting the profile of ACE defined in this document <bcp14>MUST</bcp14> support this EAD item.</t>
        <t>EAD_ACCESS_TOKEN is used only when uploading the first access token of a token series, but not for the update of access rights, see <xref target="update-access-rights-c-rs"/>.</t>
        <t>Editor's note: Add example. Value for ead_label not from lowest range, suggested value 26.</t>
        <ul spacing="normal">
          <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"/>, and</t>
              </li>
              <li>
                <t>ead_value is a CBOR byte string equal to the value of the "session_id" field of EDHOC_Information (see <xref target="edhoc-parameters-object"/>).</t>
              </li>
            </ul>
          </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 process the protocol with the access token associated with this session_id 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 the RS and is valid, but there is a need to establish a (new) OSCORE Security Context with EDHOC between C and RS.</t>
        <t>Editor's note: Add example. Value for ead_label from lowest range.</t>
      </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, or reference thereof - the session identifier, carried in an EAD item, either EAD_ACCESS_TOKEN or EAD_SESSION_ID, see <xref target="AT-in-EAD"/>.</t>
        <t>As per <xref section="A.2" sectionFormat="of" target="RFC9528"/>, EDHOC may be transferred over CoAP using either the forward or the reverse message flow, manifesting the two possible mappings between the ACE roles client / resource server and the EDHOC roles Initiator / Responder (whereas the CoAP client/server roles remain the same). The choice of mapping depends on the deployment setting, in particular which identity to protect the most, since EDHOC protects the identity of the Initiator against active attackers.</t>
        <t>In case of the EDHOC forward message flow, the access token / session id <bcp14>MUST</bcp14> be included in the EAD field of EDHOC message_3 (EAD_3). In case of the EDHOC reverse message flow, the access token / session id <bcp14>MAY</bcp14> be included in the EAD field of EDHOC message_2 (EAD_2) or message_4 (EAD_4). In this way the access token / session id gets at least the same confidentiality protection by EDHOC as provided to the authentication credential used by C, see <xref section="9.1" sectionFormat="of" target="RFC9528"/>.</t>
        <t>Depending on message flow, the EDHOC messages will either be carried in CoAP POST requests or 2.04 (Changed) CoAP 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 of the EDHOC_Information in the access token response received from AS (see <xref target="c-as"/>), if present. Otherwise, C assumes the target resource at RS to be the well-known EDHOC resource at the path /.well-known/edhoc.</t>
        <t>RS has to ensure that attackers cannot perform requests on the EDHOC resource, other than sending EDHOC messages. 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 = I and RS = R.</t>
        <t>Consistent 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 2.04 (Changed) CoAP 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"/>. Additionally, the following applies:</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) in the EDHOC_Information of the access token response to C.</t>
            </li>
            <li>
              <t>The selected cipher suite <bcp14>MUST</bcp14> be an EDHOC cipher suite specified in the "cipher_suites" field (if present) in the EDHOC_Information of the access token response to C.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message2">
          <name>EDHOC message_2</name>
          <t>The processing of EDHOC message_2 is specified in <xref section="5.3" sectionFormat="of" target="RFC9528"/> with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R indicated by the message field ID_CRED_R is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="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 indicated by the message field ID_CRED_I is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>According to this profile, one of the EAD items EAD_ACCESS_TOKEN or EAD_SESSION_ID <bcp14>MUST</bcp14> be included in EAD_3.</t>
            </li>
            <li>
              <t>If EAD_3 includes the EAD item EAD_ACCESS_TOKEN then RS <bcp14>MUST</bcp14> ensure that the included access token is valid. If EAD_3 includes the EAD item EAD_SESSION_ID then RS <bcp14>MUST</bcp14> ensure that the access token associated with the included session_id and with the AUTH_CRED_C used in the EDHOC session is valid. The validation follows the procedure specified in <xref target="rs-c"/>. If such a process 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>
            </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). 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>Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied"  defined in draft-ietf-lake-authz</t>
        </section>
      </section>
      <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 = R and RS = I.</t>
        <t>Consistent with the 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 2.04 (Changed) CoAP responses.</t>
        <t>According to this profile, one of the EAD items EAD_ACCESS_TOKEN or EAD_SESSION_ID <bcp14>MAY</bcp14> be included either in EAD_2 or EAD_4. If EAD_2 and EAD_4 contain either EAD_ACCESS_TOKEN or EAD_SESSION_ID then the EDHOC session <bcp14>MUST</bcp14> be aborted.</t>
        <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). 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 aborted.</t>
        <t>Specific instructions for the different messages are included 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 consists of C making an empty POST request to the EDHOC resource at RS, intended to trigger a response containing 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 indicated by the message field ID_CRED_R is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>If EAD_2 includes the EAD item EAD_ACCESS_TOKEN then RS <bcp14>MUST</bcp14> ensure that the included access token is valid. If EAD_2 includes the EAD item EAD_SESSION_ID then RS <bcp14>MUST</bcp14> ensure that the access token associated with the included session_id and with the AUTH_CRED_C used in the EDHOC session is valid. The validation follows the procedure specified in <xref target="rs-c"/>. If such a process 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>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message3-1">
          <name>EDHOC message_3</name>
          <t>The processing of EDHOC message_3 is specified in <xref section="5.4" sectionFormat="of" target="RFC9528"/> with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I indicated 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 EAD_4 includes the EAD item EAD_ACCESS_TOKEN then RS <bcp14>MUST</bcp14> ensure that the included access token is valid. If EAD_4 includes the EAD item EAD_SESSION_ID then RS <bcp14>MUST</bcp14> ensure that the access token associated to the included session_id and AUTH_CRED_C is valid. The validation follows the procedure specified in <xref target="rs-c"/>. If such a process 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>
            </li>
          </ul>
          <t>Editor's note: Instead of ERR_CODE = 1, consider to use ERR_CODE = 3 "Access Denied"  defined in draft-ietf-lake-authz</t>
        </section>
      </section>
      <section anchor="oscore-security-context">
        <name>OSCORE Security Context</name>
        <t>Once successfully completed the EDHOC session, C and RS derive an OSCORE Security Context, as defined in <xref section="A.1" sectionFormat="of" target="RFC9528"/>. In addition, the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>The length in bytes of the OSCORE Master Secret (i.e., the oscore_key_length parameter, see <xref section="A.1" sectionFormat="of" target="RFC9528"/>) <bcp14>MUST</bcp14> be the value specified in the "osc_ms_size" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
          </li>
          <li>
            <t>The length in bytes of the OSCORE Master Salt (i.e., the oscore_salt_length parameter, see <xref section="A.1" sectionFormat="of" target="RFC9528"/>) <bcp14>MUST</bcp14> be the value specified in the "osc_salt_size" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
          </li>
          <li>
            <t>C and RS <bcp14>MUST</bcp14> use the OSCORE version specified in the "osc_version" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
          </li>
          <li>
            <t>RS associates the latest EDHOC session and the derived OSCORE Security Context
with the stored access token, which is bound to the authentication credential AUTH_CRED_C used in the EDHOC session and with the session_id identifying the token series to which the access token belongs.</t>
          </li>
        </ul>
        <t>If supported by C, C <bcp14>MAY</bcp14> use the EDHOC + OSCORE combined request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>, unless the "comb_req" field of the EDHOC_Information was present in the access token response and set to the CBOR simple value "false" (0xf4). In the combined request, both EDHOC message_3 and the first OSCORE-protected application request are combined together in a single OSCORE-protected CoAP request, thus saving one round trip. For an example, see <xref target="example-with-optimization"/>. This requires C to derive the OSCORE Security Context with RS already after having successfully processed the received EDHOC message_2 and before sending EDHOC message_3.</t>
      </section>
      <section 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 access token to C (see <xref target="as-c"/>) for further uploading to RS. Alternatively, the access token may be uploaded by AS directly to RS, as described in <xref target="I-D.ietf-ace-workflow-and-params"/>. 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 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 must verify the validity of the access token. RS may make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token.</t>
          <t>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 EDHOC_Information matches the "session_id" field of EDHOC_Information in the new access token T_NEW.</t>
            </li>
            <li>
              <t>RS checks whether the OSCORE Security Context CTX used to protect the request matches the OSCORE Security Context associated with the stored access token T_OLD.</t>
            </li>
          </ul>
          <t>If both the conditions above hold, RS <bcp14>MUST</bcp14> replace the old access token T_OLD with the new access token T_NEW, and 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 <bcp14>MUST</bcp14> reply to the POST request with a 2.01 (Created) response protected with the same OSCORE Security Context, with no payload. The access token is stored such that it is possible to retrieve it based on "session_id" and AUTH_CRED_C.</t>
          <t>After that, C can access to protected resources at RS according to the updated access rights using the previously established OSCORE Security Context.</t>
          <t>Otherwise, RS <bcp14>MUST</bcp14> respond with a 4.01 (Unauthorized) error response. RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
          <t>As specified in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, when receiving 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>
          <t>Editor's note: The following error case was described for unprotected POST /authz-info. It seems not relevant anymore.</t>
          <t>If, instead, the access token is valid but associated with claims that RS cannot process (e.g., an unknown scope), or if any of the expected parameters is missing (e.g., any of the mandatory parameters from AS or the identifier "session_id"), or if any parameters received in the EDHOC_Information is unrecognized, then RS <bcp14>MUST</bcp14> respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). In the latter two cases, RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        </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, 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 may for example happen due to lack of storage in RS, which then sends the "AS Request Creation Hints" message (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>).</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid, e.g., due to expiration or revocation, and it was used as CRED_I (CRED_R) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>RS <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 CRED_I (CRED_R) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>After a new access token is successfully uploaded to RS, and a new OSCORE Security Context is established between C and RS, messages still in transit that were protected with the previous OSCORE Security Context might not be successfully verified by the recipient, since the old OSCORE Security Context might have been discarded. This means that messages sent shortly before C has uploaded the new access token to RS might not be successfully accepted by the recipient.</t>
        <t>Furthermore, implementations may want to cancel CoAP observations at RS, if registered before the new OSCORE Security Context has been established. Alternatively, applications need to implement a mechanism to ensure that, from then on, messages exchanged within those observations are going to be protected with the newly derived OSCORE Security Context.</t>
      </section>
      <section anchor="establish-new-context">
        <name>Establishing a New OSCORE Security Context</name>
        <t>The procedure of provisioning a new access token to RS specified in this section applies to various cases when an OSCORE Security Context shared between C and RS has been deleted, for example as described in <xref target="discard-context"/>.</t>
        <t>Another exceptional case is when there is still a valid OSCORE Security Context but it needs to be updated, e.g., due to a policy limiting its use in terms of time or amount of processed data, or to the imminent exhaustion of the OSCORE Sender Sequence Number space. In this case, C and RS <bcp14>SHALL</bcp14> attempt to run the KUDOS key update protocol <xref target="I-D.ietf-core-oscore-key-update"/>, which is a lightweight alternative independent of ACE and EDHOC that does not require the posting of an access token. If KUDOS is not supported, then C and RS falls back to EDHOC as outlined above.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS <bcp14>MUST</bcp14> associate the new OSCORE Security Context with the current (potentially re-posted) access token. Moreover, the session identifier, which is associated to the token series, 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., the OSCORE Sender/Recipient IDs.</t>
      </section>
      <section anchor="access-rights-verif">
        <name>Access Rights Verification</name>
        <t>RS <bcp14>MUST</bcp14> follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="RFC9200"/>. That is, if RS receives an OSCORE-protected request targeting a protected resource from C, then RS processes the request according to <xref target="RFC8613"/>, when Version 1 of OSCORE is used. Future specifications may define new versions of OSCORE, which AS can indicate C and RS to use by means of the "osc_version" field of EDHOC_Information (see <xref target="c-as-comm"/>).</t>
        <t>If OSCORE verification succeeds and the target resource requires authorization, RS retrieves the authorization information using the access token associated with the OSCORE Security Context. Then, RS must verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
      <section 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>
    <section anchor="secure-comm-as">
      <name>Secure Communication with AS</name>
      <t>As specified in the ACE framework (see Sections <xref target="RFC9200" section="5.8" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9" sectionFormat="bare"/> of <xref target="RFC9200"/>), the requesting entity (RS and/or C) and AS communicates via the /token or /introspect endpoint. When using this profile, the use of CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> for this communication is <bcp14>RECOMMENDED</bcp14>. Other protocols fulfilling the security requirements defined in <xref section="5" sectionFormat="of" target="RFC9200"/> (such as HTTP and DTLS <xref target="RFC9147"/> or TLS <xref target="RFC8446"/>) <bcp14>MAY</bcp14> be used instead.</t>
      <t>If OSCORE is used, the requesting entity and AS need to have an OSCORE Security Context in place. While this can be pre-installed, the requesting entity and AS can establish such an OSCORE Security Context, for example, by running the EDHOC protocol, as shown between C and AS by the examples in <xref target="example-without-optimization"/> and <xref target="example-with-optimization"/>. This also applies for communication between RS and AS, for example to protect the upload of access token from AS directly to RS as described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
    </section>
    <section anchor="cwt-confirmation-methods">
      <name>CWT Confirmation Methods</name>
      <t>This document defines a number of new CWT confirmation methods (see <xref target="iana-cwt-confirmation-methods"/>). The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-cwt-conf-x5chain">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5chain" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5chain" is like that of the "x5chain" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5bag">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5bag" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5bag" is like that of the "x5bag" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "c5c" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5b" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5t">
        <name>Hash of a C509 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "c5t" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of a COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "c5u" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The semantics of "kcwt" is like that of the "kcwt" COSE Header Parameter specified in <xref target="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 (see <xref target="iana-jwt-confirmation-methods"/>). The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-jwt-conf-x5c">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5c" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5c" is like that of the "x5c" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5b">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5b" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of the "x5b" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "x5b" are like for the "x5bag" COSE Header Parameter defined in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following difference. Each string in the JSON array is a base64-encoded (<xref section="4" sectionFormat="of" target="RFC4648"/> - not base64url-encoded) C509 certificate.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-c5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "c5b" is like for the "c5b" COSE Header Parameter defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5t">
        <name>Hash of a C09 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "x5t" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5t"/>, with the following differences. First, the base64url-encoded SHA-1 thumbprint is computed over the C509 certificate. Second, the public key contained in the C509 certificate does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "x5u" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5u"/>, with the following differences. First, the URI refers to a resource for the C509 certificate chain. Second, the public key contained in one of the C509 certificates and acting as proof-of-possession key does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
      <section anchor="ssec-jwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CWT Claims Set (CCS) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general security considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the security considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="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. Rather, C achieves confirmation that RS has PRK_out (proof-of-possession) either when receiving the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the established OSCORE Security Context.</t>
      <t>OSCORE is designed to secure point-to-point communication, providing a secure binding between a request and the corresponding response(s). Thus, the basic OSCORE protocol is not intended for use in point-to-multipoint communication (e.g., enforced via multicast or a publish-subscribe model). Implementers of this profile should make sure that their use case of OSCORE corresponds to the expected one, in order to prevent weakening the security assurances provided by OSCORE.</t>
      <t>When using this profile, it is <bcp14>RECOMMENDED</bcp14> that RS stores only one access token per client. The use of multiple access tokens for a single client increases the strain on RS, since it must consider every access token associated with the client and calculate the actual permissions that client has. Also, access tokens indicating different or disjoint permissions from each other may lead RS to enforce wrong permissions.  If one of the access tokens expires earlier than others, the resulting permissions may offer insufficient protection. Developers <bcp14>SHOULD</bcp14> avoid using multiple access tokens for a same client. Furthermore, RS <bcp14>MUST NOT</bcp14> store more than one access token per client per PoP-key (i.e., per client's authentication credential).</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general privacy considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the privacy considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="RFC9528"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>An unprotected response to an unauthorized request may disclose information about RS and/or its existing relationship with C. It is advisable to include as little information as possible in an unencrypted response. When an OSCORE Security Context already exists between C and RS, more detailed information may be included.</t>
      <t>Except for the case where C attempts to update its access rights, the (encrypted) access token is sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, if C uses the same single access token from multiple locations, it can risk being tracked by the access token's value even when the access token is encrypted.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the EDHOC session. That is, the EDHOC Connection Identifier C_I of C is going to be the OSCORE Recipient ID of C (the OSCORE Sender ID of RS). Conversely, the EDHOC Connection Identifier C_R of RS is going to be the OSCORE Recipient ID of RS (the OSCORE Sender ID of C). These OSCORE identifiers are privacy sensitive (see <xref section="12.8" sectionFormat="of" target="RFC8613"/>). In particular, they could reveal information about C, or may be used for correlating different requests from C, e.g., across different networks that C has joined and left over time. This can be mitigated if C and RS dynamically update their OSCORE identifiers, e.g., by using the method defined in <xref target="I-D.ietf-core-oscore-key-update"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE 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 255)</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</t>
          </li>
          <li>
            <t>Value Type: map</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-json-claims">
        <name>JSON Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "JSON Web Token Claims" registry, following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Claim Description: Information for EDHOC session</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token (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</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</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</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</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</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</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</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</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</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</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</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</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</t>
          </li>
          <li>
            <t>Description: The identifier of an EDHOC session</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="AT-in-EAD"/></t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-parameters">
        <name>EDHOC Information Registry</name>
        <t>IANA is requested to create a new "EDHOC Information" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>As registration policy, the registry uses either "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>, or "Expert Review" per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. Expert Review guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, review and approval by the designated expert are also required, in order for the WG chairs to determine that the conditions for early allocation are met (see step 2 in <xref section="3.1" sectionFormat="of" target="RFC7120"/>).</t>
        <t>The columns of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: A descriptive name that enables easier reference to this item. Because a core goal of this document is for the resulting representations to be compact, it is <bcp14>RECOMMENDED</bcp14> that the name be short.  </t>
            <t>
This name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts determine that there is a compelling reason to allow an exception. The name is not used in the CBOR encoding.</t>
          </li>
          <li>
            <t>CBOR label: The value to be used as CBOR abbreviation of the item.  </t>
            <t>
The value <bcp14>MUST</bcp14> be unique. The value can be a positive integer, a negative integer or a string. Integer values between -256 and 255 and strings of length 1 are designated as "Standards Action With Expert Review". Integer values from -65536 to -257 and from 256 to 65535 and strings of maximum length 2 are designated as "Specification Required". Integer values greater than 65535 and strings of length greater than 2 are designated as "Expert Review". Integer values less than -65536 are marked as "Private Use".</t>
          </li>
          <li>
            <t>CBOR type: The CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</t>
          </li>
          <li>
            <t>Registry: The registry that values of the item may come from, if one exists.</t>
          </li>
          <li>
            <t>Description: A brief description of this item.</t>
          </li>
          <li>
            <t>Specification: A pointer to the public specification for the item, if one exists.</t>
          </li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="_table-cbor-key-edhoc-params"/>. In the "Specification" column, the value for all of these entries will be [RFC-XXXX] and <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>The IANA registry established in this document is defined as "Standards Action with Expert Review", "Specification Required", or "Expert Review", depending on the range of values for which an assignment is requested. This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason so they should be given substantial latitude.</t>
        <t>Expert reviewers should take into consideration the following points:</t>
        <ul spacing="normal">
          <li>
            <t>Point squatting should be discouraged. Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered and that the point is likely to be used in deployments. The zones tagged as private use are intended for testing purposes and closed environments; code points in other ranges should not be assigned for testing.</t>
          </li>
          <li>
            <t>Specifications are required for the Standards Action range of point assignment. Specifications should exist for Specification Required ranges, but early assignment before a specification is available is considered to be permissible. Specifications are needed for the first-come, first-serve range if they are expected to be used outside of closed environments in an interoperable way. When specifications are not provided, the description provided needs to have sufficient information to identify what the point is being used for.</t>
          </li>
          <li>
            <t>Experts should take into account the expected usage of fields when approving point assignment. The fact that there is a range for Standards Track documents does not mean that a Standards Track document cannot have points assigned outside of that range. The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references 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="I-D.ietf-core-oscore-edhoc">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="9" month="April" 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.  These especially include an optimization approach for
   combining the execution of EDHOC with the first OSCORE transaction.
   This combination reduces the number of round trips required to set up
   an OSCORE Security Context and to complete an OSCORE transaction
   using that Security Context.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-11"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50% while also significantly reducing memory and code size
   compared to ASN.1.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 Certificate Signing Requests, C509 COSE headers, a
   C509 TLS certificate type, and a C509 file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-11"/>
        </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-ace-workflow-and-params">
          <front>
            <title>Alternative Workflow and OAuth Parameters for the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This document updates the Authentication and Authorization for
   Constrained Environments Framework (ACE, RFC 9200) as follows.
   First, it defines a new, alternative workflow that the Authorization
   Server can use for uploading an access token to a Resource Server on
   behalf of the Client.  Second, it defines new parameters and
   encodings for the OAuth 2.0 token endpoint at the Authorization
   Server.  Third, it defines a method for the ACE framework to enforce
   bidirectional access control by means of a single access token.
   Fourth, it amends two of the requirements on profiles of the
   framework.  Finally, it deprecates the original payload format of
   error responses that convey an error code, when CBOR is used to
   encode message payloads.  For such error responses, it defines a new
   payload format aligned with RFC 9290, thus updating in this respect
   also the profiles of ACE defined in RFC 9202, RFC 9203, and RFC 9431.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-02"/>
        </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="8" month="July" year="2024"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.  Also, this document
   defines a procedure that two endpoints can use to update their OSCORE
   identifiers, run either stand-alone or during a KUDOS execution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-08"/>
        </reference>
        <reference anchor="I-D.ietf-lake-authz">
          <front>
            <title>Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>INRIA</organization>
            </author>
            <author fullname="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="5" month="July" year="2024"/>
            <abstract>
              <t>   This document describes a procedure for authorizing enrollment of new
   devices using the lightweight authenticated key exchange protocol
   Ephemeral Diffie-Hellman Over COSE (EDHOC).  The procedure is
   applicable to zero-touch onboarding of new devices to a constrained
   network leveraging trust anchors installed at manufacture time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-02"/>
        </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="8" month="July" year="2024"/>
            <abstract>
              <t>   Enrollment over Secure Transport (EST) is a certificate provisioning
   protocol over HTTPS.  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].

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

<section anchor="examples">
      <name>Examples</name>
      <t>This appendix provides examples where this profile of ACE is used. In particular:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="example-without-optimization"/> does not make use of use of any optimization.</t>
        </li>
        <li>
          <t><xref target="example-with-optimization"/> makes use of the optimizations defined in
<xref target="I-D.ietf-core-oscore-edhoc"/>, hence reducing the roundtrips of the interactions between the Client and the Resource Server.</t>
        </li>
      </ul>
      <t>All these examples build on the following assumptions, as relying on expected early procedures performed at AS. These include the registration of RSs by the respective Resource Owners as well as the registrations of Clients authorized to request access token for those RSs.</t>
      <ul spacing="normal">
        <li>
          <t>AS knows the authentication credential AUTH_CRED_C of the Client C.</t>
        </li>
        <li>
          <t>The Client knows the authentication credential AUTH_CRED_AS of AS.</t>
        </li>
        <li>
          <t>AS knows the authentication credential AUTH_CRED_RS of RS.</t>
        </li>
        <li>
          <t>RS knows the authentication credential AUTH_CRED_AS of AS.  </t>
          <t>
This is relevant in case AS and RS actually require a secure association (e.g., for RS to perform token introspection at AS, or for AS to upload an access token to RS on behalf of the Client).</t>
        </li>
      </ul>
      <t>As a result of the assumptions above, it is possible to limit the transport of AUTH_CRED_C and AUTH_CRED_RS by value only to the following two cases, and only when the Client requests an access token for RS in question for the first time when considering the pair (AUTH_CRED_C, AUTH_CRED_RS).</t>
      <ul spacing="normal">
        <li>
          <t>In the Token Response from AS to the Client, where AUTH_CRED_RS is specified by the 'rs_cnf' parameter.</t>
        </li>
        <li>
          <t>In the access token, where AUTH_CRED_C is specified by the 'cnf' claim.</t>
        </li>
      </ul>
      <t>Note that, even under the circumstances mentioned above, AUTH_CRED_C might rather be indicated by reference. This is possible if RS can effectively use such a reference from the access token to retrieve AUTH_CRED_C (e.g., from a trusted repository of authentication credentials reachable through a non-constrained link), and if AS is in turn aware of that.</t>
      <t>In any other case, it is otherwise possible to indicate both AUTH_CRED_C and AUTH_CRED_RS by reference, when performing the ACE access control workflow as well as later on when the Client and RS run EDHOC.</t>
      <section anchor="example-without-optimization">
        <name>Workflow without Optimizations</name>
        <t>The example below shows a simple interaction between the Client 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="3008" width="576" viewBox="0 0 576 3008" 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,1376 L 40,1520" fill="none" stroke="black"/>
              <path d="M 40,1696 L 40,1712" fill="none" stroke="black"/>
              <path d="M 40,1776 L 40,1792" fill="none" stroke="black"/>
              <path d="M 40,1936 L 40,2992" 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,1376 L 320,1432" fill="none" stroke="black"/>
              <path d="M 320,1448 L 320,1496" fill="none" stroke="black"/>
              <path d="M 320,1696 L 320,1712" fill="none" stroke="black"/>
              <path d="M 320,1776 L 320,1792" fill="none" stroke="black"/>
              <path d="M 320,1936 L 320,2520" fill="none" stroke="black"/>
              <path d="M 320,2536 L 320,2600" fill="none" stroke="black"/>
              <path d="M 320,2616 L 320,2728" fill="none" stroke="black"/>
              <path d="M 320,2744 L 320,2888" fill="none" stroke="black"/>
              <path d="M 320,2904 L 320,2968" 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,1376 L 568,1520" fill="none" stroke="black"/>
              <path d="M 568,1696 L 568,1712" fill="none" stroke="black"/>
              <path d="M 568,1776 L 568,1792" fill="none" stroke="black"/>
              <path d="M 568,1936 L 568,2992" 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,1984 L 312,1984" fill="none" stroke="black"/>
              <path d="M 48,2112 L 320,2112" fill="none" stroke="black"/>
              <path d="M 40,2528 L 560,2528" fill="none" stroke="black"/>
              <path d="M 48,2608 L 568,2608" fill="none" stroke="black"/>
              <path d="M 40,2736 L 560,2736" fill="none" stroke="black"/>
              <path d="M 40,2896 L 560,2896" fill="none" stroke="black"/>
              <path d="M 48,2976 L 568,2976" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,2896 556,2890.4 556,2901.6" fill="black" transform="rotate(0,560,2896)"/>
              <polygon class="arrowhead" points="568,2736 556,2730.4 556,2741.6" fill="black" transform="rotate(0,560,2736)"/>
              <polygon class="arrowhead" points="568,2528 556,2522.4 556,2533.6" fill="black" transform="rotate(0,560,2528)"/>
              <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,1984 308,1978.4 308,1989.6" fill="black" transform="rotate(0,312,1984)"/>
              <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,2976 44,2970.4 44,2981.6" fill="black" transform="rotate(180,48,2976)"/>
              <polygon class="arrowhead" points="56,2608 44,2602.4 44,2613.6" fill="black" transform="rotate(180,48,2608)"/>
              <polygon class="arrowhead" points="56,2112 44,2106.4 44,2117.6" fill="black" transform="rotate(180,48,2112)"/>
              <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="336" y="868">the</text>
                <text x="380" y="868">Client</text>
                <text x="428" y="868">adds</text>
                <text x="500" 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="280" 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="280" 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="1572">-</text>
                <text x="80" y="1572">The</text>
                <text x="124" y="1572">Client</text>
                <text x="168" y="1572">and</text>
                <text x="196" y="1572">RS</text>
                <text x="236" y="1572">delete</text>
                <text x="288" y="1572">their</text>
                <text x="340" y="1572">OSCORE</text>
                <text x="404" y="1572">Security</text>
                <text x="472" y="1572">Context</text>
                <text x="520" y="1572">and</text>
                <text x="88" y="1588">purge</text>
                <text x="128" y="1588">the</text>
                <text x="168" y="1588">EDHOC</text>
                <text x="224" y="1588">session</text>
                <text x="276" y="1588">used</text>
                <text x="308" y="1588">to</text>
                <text x="348" y="1588">derive</text>
                <text x="388" y="1588">it</text>
                <text x="432" y="1588">(unless</text>
                <text x="480" y="1588">the</text>
                <text x="516" y="1588">same</text>
                <text x="96" y="1604">session</text>
                <text x="140" y="1604">is</text>
                <text x="172" y="1604">also</text>
                <text x="212" y="1604">used</text>
                <text x="248" y="1604">for</text>
                <text x="288" y="1604">other</text>
                <text x="352" y="1604">reasons).</text>
                <text x="56" y="1620">-</text>
                <text x="76" y="1620">RS</text>
                <text x="120" y="1620">retains</text>
                <text x="200" y="1620">AUTH_CRED_C</text>
                <text x="260" y="1620">as</text>
                <text x="296" y="1620">still</text>
                <text x="348" y="1620">valid,</text>
                <text x="80" y="1636">and</text>
                <text x="108" y="1636">AS</text>
                <text x="144" y="1636">knows</text>
                <text x="192" y="1636">about</text>
                <text x="232" y="1636">it.</text>
                <text x="56" y="1652">-</text>
                <text x="80" y="1652">The</text>
                <text x="124" y="1652">Client</text>
                <text x="184" y="1652">retains</text>
                <text x="268" y="1652">AUTH_CRED_RS</text>
                <text x="332" y="1652">as</text>
                <text x="368" y="1652">still</text>
                <text x="420" y="1652">valid,</text>
                <text x="80" y="1668">and</text>
                <text x="108" y="1668">AS</text>
                <text x="144" y="1668">knows</text>
                <text x="192" y="1668">about</text>
                <text x="232" y="1668">it.</text>
                <text x="60" y="1748">Time</text>
                <text x="108" y="1748">passes</text>
                <text x="152" y="1748">...</text>
                <text x="56" y="1828">The</text>
                <text x="100" y="1828">Client</text>
                <text x="148" y="1828">asks</text>
                <text x="184" y="1828">for</text>
                <text x="208" y="1828">a</text>
                <text x="232" y="1828">new</text>
                <text x="276" y="1828">access</text>
                <text x="332" y="1828">token;</text>
                <text x="376" y="1828">now</text>
                <text x="408" y="1828">all</text>
                <text x="440" y="1828">the</text>
                <text x="100" y="1844">authentication</text>
                <text x="208" y="1844">credentials</text>
                <text x="272" y="1844">can</text>
                <text x="300" y="1844">be</text>
                <text x="352" y="1844">indicated</text>
                <text x="404" y="1844">by</text>
                <text x="456" y="1844">reference</text>
                <text x="56" y="1876">The</text>
                <text x="96" y="1876">price</text>
                <text x="132" y="1876">to</text>
                <text x="160" y="1876">pay</text>
                <text x="188" y="1876">is</text>
                <text x="212" y="1876">on</text>
                <text x="240" y="1876">AS,</text>
                <text x="280" y="1876">about</text>
                <text x="352" y="1876">remembering</text>
                <text x="420" y="1876">that</text>
                <text x="452" y="1876">at</text>
                <text x="488" y="1876">least</text>
                <text x="56" y="1892">one</text>
                <text x="100" y="1892">access</text>
                <text x="152" y="1892">token</text>
                <text x="192" y="1892">has</text>
                <text x="228" y="1892">been</text>
                <text x="276" y="1892">issued</text>
                <text x="320" y="1892">for</text>
                <text x="352" y="1892">the</text>
                <text x="388" y="1892">pair</text>
                <text x="444" y="1892">(Client,</text>
                <text x="496" y="1892">RS)</text>
                <text x="56" y="1908">and</text>
                <text x="120" y="1908">considering</text>
                <text x="184" y="1908">the</text>
                <text x="220" y="1908">pair</text>
                <text x="296" y="1908">(AUTH_CRED_C,</text>
                <text x="408" y="1908">AUTH_CRED_RS)</text>
                <text x="80" y="1956">Token</text>
                <text x="136" y="1956">request</text>
                <text x="180" y="1956">to</text>
                <text x="220" y="1956">/token</text>
                <text x="128" y="1972">(OSCORE-protected</text>
                <text x="236" y="1972">message)</text>
                <text x="16" y="1988">M11</text>
                <text x="96" y="2004">'req_cnf'</text>
                <text x="180" y="2004">identifies</text>
                <text x="108" y="2020">CRED_I</text>
                <text x="144" y="2020">=</text>
                <text x="200" y="2020">AUTH_CRED_C</text>
                <text x="92" y="2036">by</text>
                <text x="144" y="2036">reference</text>
                <text x="80" y="2084">Token</text>
                <text x="140" y="2084">response</text>
                <text x="128" y="2100">(OSCORE-protected</text>
                <text x="236" y="2100">message)</text>
                <text x="16" y="2116">M12</text>
                <text x="92" y="2132">'rs_cnf'</text>
                <text x="172" y="2132">identifies</text>
                <text x="132" y="2148">AUTH_CRED_RS</text>
                <text x="196" y="2148">by</text>
                <text x="248" y="2148">reference</text>
                <text x="112" y="2180">'ace_profile'</text>
                <text x="208" y="2180">specifies</text>
                <text x="264" y="2180">the</text>
                <text x="72" y="2196">ACE</text>
                <text x="120" y="2196">profile</text>
                <text x="232" y="2196">"coap_edhoc_oscore"</text>
                <text x="108" y="2228">'edhoc_info'</text>
                <text x="204" y="2228">specifies:</text>
                <text x="88" y="2244">{</text>
                <text x="152" y="2260">e'session_id'</text>
                <text x="216" y="2260">:</text>
                <text x="252" y="2260">h'05',</text>
                <text x="164" y="2276">e'cipher_suites'</text>
                <text x="240" y="2276">:</text>
                <text x="260" y="2276">2,</text>
                <text x="140" y="2292">e'methods'</text>
                <text x="192" y="2292">:</text>
                <text x="212" y="2292">3,</text>
                <text x="144" y="2308">e'uri_path'</text>
                <text x="200" y="2308">:</text>
                <text x="244" y="2308">"/edhoc"</text>
                <text x="88" y="2324">}</text>
                <text x="68" y="2356">In</text>
                <text x="96" y="2356">the</text>
                <text x="140" y="2356">access</text>
                <text x="196" y="2356">token:</text>
                <text x="64" y="2372">-</text>
                <text x="88" y="2372">the</text>
                <text x="128" y="2372">'cnf'</text>
                <text x="176" y="2372">claim</text>
                <text x="240" y="2372">specifies</text>
                <text x="120" y="2388">AUTH_CRED_C</text>
                <text x="180" y="2388">by</text>
                <text x="232" y="2388">reference</text>
                <text x="64" y="2404">-</text>
                <text x="88" y="2404">the</text>
                <text x="156" y="2404">'edhoc_info'</text>
                <text x="232" y="2404">claim</text>
                <text x="112" y="2420">specifies</text>
                <text x="168" y="2420">the</text>
                <text x="204" y="2420">same</text>
                <text x="236" y="2420">as</text>
                <text x="124" y="2436">'edhoc_info'</text>
                <text x="200" y="2436">above</text>
                <text x="80" y="2500">EDHOC</text>
                <text x="144" y="2500">message_1</text>
                <text x="196" y="2500">to</text>
                <text x="236" y="2500">/edhoc</text>
                <text x="72" y="2516">(no</text>
                <text x="116" y="2516">access</text>
                <text x="176" y="2516">control</text>
                <text x="220" y="2516">is</text>
                <text x="272" y="2516">enforced)</text>
                <text x="16" y="2532">M13</text>
                <text x="80" y="2580">EDHOC</text>
                <text x="144" y="2580">message_2</text>
                <text x="72" y="2596">(no</text>
                <text x="116" y="2596">access</text>
                <text x="176" y="2596">control</text>
                <text x="220" y="2596">is</text>
                <text x="272" y="2596">enforced)</text>
                <text x="16" y="2612">M14</text>
                <text x="96" y="2628">ID_CRED_R</text>
                <text x="176" y="2628">specifies</text>
                <text x="108" y="2644">CRED_R</text>
                <text x="144" y="2644">=</text>
                <text x="204" y="2644">AUTH_CRED_RS</text>
                <text x="92" y="2660">by</text>
                <text x="144" y="2660">reference</text>
                <text x="80" y="2708">EDHOC</text>
                <text x="144" y="2708">message_3</text>
                <text x="196" y="2708">to</text>
                <text x="236" y="2708">/edhoc</text>
                <text x="72" y="2724">(no</text>
                <text x="116" y="2724">access</text>
                <text x="176" y="2724">control</text>
                <text x="220" y="2724">is</text>
                <text x="272" y="2724">enforced)</text>
                <text x="16" y="2740">M15</text>
                <text x="112" y="2756">EAD_3</text>
                <text x="172" y="2756">contains</text>
                <text x="236" y="2756">access</text>
                <text x="288" y="2756">token</text>
                <text x="96" y="2772">ID_CRED_I</text>
                <text x="180" y="2772">identifies</text>
                <text x="108" y="2788">CRED_I</text>
                <text x="144" y="2788">=</text>
                <text x="200" y="2788">AUTH_CRED_C</text>
                <text x="92" y="2804">by</text>
                <text x="144" y="2804">reference</text>
                <text x="84" y="2852">Access</text>
                <text x="124" y="2852">to</text>
                <text x="176" y="2852">protected</text>
                <text x="252" y="2852">resource</text>
                <text x="300" y="2852">/r</text>
                <text x="128" y="2868">(OSCORE-protected</text>
                <text x="236" y="2868">message)</text>
                <text x="88" y="2884">(access</text>
                <text x="152" y="2884">control</text>
                <text x="196" y="2884">is</text>
                <text x="248" y="2884">enforced)</text>
                <text x="16" y="2900">M16</text>
                <text x="92" y="2948">Response</text>
                <text x="128" y="2964">(OSCORE-protected</text>
                <text x="236" y="2964">message)</text>
                <text x="16" y="2980">M17</text>
                <text x="320" y="2996">|</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, the Client adds AUTH_CRED_RS
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider/

    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
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 ...
      - The Client and RS delete their OSCORE Security Context and
        purge the EDHOC session used to derive it (unless the same
        session is also used for other reasons).
      - RS retains AUTH_CRED_C as still valid,
        and AS knows about it.
      - The Client retains AUTH_CRED_RS as still valid,
        and AS knows about it.

    |                                  |                              |
    |                                  |                              |

     Time passes ...

    |                                  |                              |
    |                                  |                              |

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

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

    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
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 specifies     |                              |
    |    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 specifies             |                              |
    |     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="I-D.ietf-core-oscore-edhoc"/> 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="1536" width="576" viewBox="0 0 576 1536" 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,1360" fill="none" stroke="black"/>
              <path d="M 40,1456 L 40,1520" fill="none" stroke="black"/>
              <path d="M 320,48 L 320,816" fill="none" stroke="black"/>
              <path d="M 320,912 L 320,952" fill="none" stroke="black"/>
              <path d="M 320,1072 L 320,1096" fill="none" stroke="black"/>
              <path d="M 320,1112 L 320,1208" fill="none" stroke="black"/>
              <path d="M 320,1224 L 320,1360" fill="none" stroke="black"/>
              <path d="M 320,1456 L 320,1496" 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,1360" fill="none" stroke="black"/>
              <path d="M 568,1456 L 568,1520" 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 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 320,480" fill="none" stroke="black"/>
              <path d="M 40,960 L 560,960" fill="none" stroke="black"/>
              <path d="M 48,1104 L 568,1104" fill="none" stroke="black"/>
              <path d="M 40,1216 L 560,1216" fill="none" stroke="black"/>
              <path d="M 64,1312 L 80,1312" fill="none" stroke="black"/>
              <path d="M 96,1312 L 112,1312" fill="none" stroke="black"/>
              <path d="M 128,1312 L 144,1312" fill="none" stroke="black"/>
              <path d="M 48,1504 L 568,1504" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,1216 556,1210.4 556,1221.6" fill="black" transform="rotate(0,560,1216)"/>
              <polygon class="arrowhead" points="568,960 556,954.4 556,965.6" fill="black" transform="rotate(0,560,960)"/>
              <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,1504 44,1498.4 44,1509.6" fill="black" transform="rotate(180,48,1504)"/>
              <polygon class="arrowhead" points="56,1104 44,1098.4 44,1109.6" fill="black" transform="rotate(180,48,1104)"/>
              <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="316" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="80" y="68">EDHOC</text>
                <text x="144" y="68">message_1</text>
                <text x="196" y="68">to</text>
                <text x="236" y="68">/edhoc</text>
                <text x="16" y="84">M01</text>
                <text x="80" y="132">EDHOC</text>
                <text x="144" y="132">message_2</text>
                <text x="16" y="148">M02</text>
                <text x="96" y="164">ID_CRED_R</text>
                <text x="180" y="164">identifies</text>
                <text x="108" y="180">CRED_R</text>
                <text x="144" y="180">=</text>
                <text x="204" y="180">AUTH_CRED_AS</text>
                <text x="92" y="196">by</text>
                <text x="144" y="196">reference</text>
                <text x="108" y="244">EDHOC+OSCORE</text>
                <text x="192" y="244">request</text>
                <text x="236" y="244">to</text>
                <text x="276" y="244">/token</text>
                <text x="16" y="260">M03</text>
                <text x="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="336" y="852">the</text>
                <text x="380" y="852">Client</text>
                <text x="428" y="852">adds</text>
                <text x="500" y="852">AUTH_CRED_RS</text>
                <text x="52" y="868">to</text>
                <text x="80" y="868">the</text>
                <text x="112" y="868">set</text>
                <text x="140" y="868">of</text>
                <text x="168" y="868">its</text>
                <text x="216" y="868">trusted</text>
                <text x="268" y="868">peer</text>
                <text x="348" y="868">authentication</text>
                <text x="460" y="868">credentials,</text>
                <text x="72" y="884">relying</text>
                <text x="116" y="884">on</text>
                <text x="140" y="884">AS</text>
                <text x="164" y="884">as</text>
                <text x="208" y="884">trusted</text>
                <text x="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="320" y="980">|</text>
                <text x="76" y="1012">Possibly</text>
                <text x="136" y="1012">after</text>
                <text x="184" y="1012">chain</text>
                <text x="264" y="1012">verification,</text>
                <text x="332" y="1012">RS</text>
                <text x="364" y="1012">adds</text>
                <text x="432" y="1012">AUTH_CRED_C</text>
                <text x="52" y="1028">to</text>
                <text x="80" y="1028">the</text>
                <text x="112" y="1028">set</text>
                <text x="140" y="1028">of</text>
                <text x="168" y="1028">its</text>
                <text x="216" y="1028">trusted</text>
                <text x="268" y="1028">peer</text>
                <text x="348" y="1028">authentication</text>
                <text x="460" y="1028">credentials,</text>
                <text x="72" y="1044">relying</text>
                <text x="116" y="1044">on</text>
                <text x="140" y="1044">AS</text>
                <text x="164" y="1044">as</text>
                <text x="208" y="1044">trusted</text>
                <text x="276" y="1044">provider</text>
                <text x="80" y="1092">EDHOC</text>
                <text x="144" y="1092">message_2</text>
                <text x="16" y="1108">M06</text>
                <text x="96" y="1124">ID_CRED_R</text>
                <text x="180" y="1124">identifies</text>
                <text x="108" y="1140">CRED_R</text>
                <text x="144" y="1140">=</text>
                <text x="204" y="1140">AUTH_CRED_RS</text>
                <text x="92" y="1156">by</text>
                <text x="144" y="1156">reference</text>
                <text x="108" y="1204">EDHOC+OSCORE</text>
                <text x="192" y="1204">request</text>
                <text x="236" y="1204">to</text>
                <text x="260" y="1204">/r</text>
                <text x="16" y="1220">M07</text>
                <text x="64" y="1236">-</text>
                <text x="96" y="1236">EDHOC</text>
                <text x="160" y="1236">message_3</text>
                <text x="112" y="1252">EAD_3</text>
                <text x="172" y="1252">contains</text>
                <text x="236" y="1252">access</text>
                <text x="288" y="1252">token</text>
                <text x="128" y="1268">ID_CRED_I</text>
                <text x="212" y="1268">identifies</text>
                <text x="140" y="1284">CRED_I</text>
                <text x="176" y="1284">=</text>
                <text x="232" y="1284">AUTH_CRED_C</text>
                <text x="124" y="1300">by</text>
                <text x="176" y="1300">reference</text>
                <text x="64" y="1332">-</text>
                <text x="140" y="1332">OSCORE-protected</text>
                <text x="228" y="1332">part</text>
                <text x="136" y="1348">Application</text>
                <text x="216" y="1348">request</text>
                <text x="260" y="1348">to</text>
                <text x="284" y="1348">/r</text>
                <text x="64" y="1396">After</text>
                <text x="104" y="1396">the</text>
                <text x="144" y="1396">EDHOC</text>
                <text x="212" y="1396">processing</text>
                <text x="268" y="1396">is</text>
                <text x="324" y="1396">completed,</text>
                <text x="396" y="1396">access</text>
                <text x="456" y="1396">control</text>
                <text x="52" y="1412">is</text>
                <text x="100" y="1412">enforced</text>
                <text x="148" y="1412">on</text>
                <text x="176" y="1412">the</text>
                <text x="224" y="1412">rebuilt</text>
                <text x="324" y="1412">OSCORE-protected</text>
                <text x="428" y="1412">request,</text>
                <text x="60" y="1428">like</text>
                <text x="92" y="1428">if</text>
                <text x="116" y="1428">it</text>
                <text x="144" y="1428">had</text>
                <text x="180" y="1428">been</text>
                <text x="220" y="1428">sent</text>
                <text x="288" y="1428">stand-alone</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">M08</text>
                <text x="320" y="1524">|</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, the Client adds AUTH_CRED_RS
     to the set of its trusted peer authentication credentials,
     relying on AS as trusted provider

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

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

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

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

    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M08 |<----------------------------------------------------------------+
    |                                  |                              |
]]></artwork>
        </artset>
      </section>
    </section>
    <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
x5chain = 5
x5bag = 6
x5t = 7
x5u = 8
c5c = 9
c5b = 10
c5t = 11
c5u = 12
kcwt = 13
kccs = 14

; EDHOC Information
session_id = 0
methods = 1
cipher_suites = 2
message_4 = 3
comb_req = 4
uri_path = 5
osc_ms_len = 6
osc_salt_len = 7
osc_version = 8
cred_types = 9
id_cred_types = 10
eads = 11
initiator = 12
responder = 13
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-document-updates" removeInRFC="true">
      <name>Document Updates</name>
      <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>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
QjINs4gN/EGM5sqKtrp9liQzSpffRUwF7JilUJII7Vkyyuh3ylfghJuKPAqd
NEHmxIyzWjnl6jaxsyNN2lg538gkXFC1JPmOSzl9zaD4mkGxfJyvGRTrjrP8
wV95nEr6ZXkB1jj3e82gaJcE6+32hT/LRNAN4Vwrgm44Ti0OrQ2fdlv/v/LB
dcfxSvIDFgjYeBz8cV1I261Hfmq9NhuOU2s7+1Lv6e/HzbK/lrnia+bDVzfL
ivV8zXxYPc5XN0vNOF8zH1aN8ztxs3Coy5eR+XDvwTW/H2fO/r0biT8JPmtj
xW8XMPyZkWErFfvR16yKtcZZ/uCvPE6tip2uOQ5m09zj5b1PFfs+PEX481VV
XzLOParqvTlXU7VqsWpU/JVFgt44l9JUjI5UIy8jwzoVC0WbfI61NV3Gxy9b
3E8XAQ7Rxp+XgSX7FLqPBWGxwlOERSdHHK6LZes9LI01avvTJA7vnfT/fpw+
+09+x04f741oulJ3lguKorMHe+KIGtxOrS9VdUxVxnlKzg8SDNySrapEuNKl
h35mo441nZTE001jpLSjaqLi9Groq3Y2B7on+Ou58hK1xA9EkeyiEOqQ8IAl
XUyWwDrLN3IV4hBx3U/vdHFcKsnHWQcUFx+oS+JrbwxMFI2JUuWmrhoGp8Nm
50lmd1+hdZ54r5LcVJIrrpq/uKNlT1IscYjF37MVb8leuZCzlNmlLdrdwBCU
6mNTapFL1fcpZp8qLteH9UvtUapm749mUW4VXNdkJE+CZNqSkppcqZnKvb8L
79zVcFW6TJooIpRL/cusIsw8CxCm2SJWa1Oz2WcqrrgZiJO4HdhZ0ntTHCZT
+TVrjGA59yVJx1nEiZA8ewqsdFs1oBSmtCAM6zt7j0whyvEYAZYAFcSx8QKf
DN/DQnPH22mBmOV2KbVOqwKY1GUQRVT6PEnxyDSaOglEHa/HXWrMNwVc4GvE
2UKjRequS0ZpFV/ia8/1mGF/o2gS5YB2XJMdi7JSYU34RlqgUWsr6/1+guV2
d172+tkuMaaF3gKWOlTNkdoZ9j4JvLP+6XMvu/ax0DUccxrmJSSC5STjNvwP
ywRKJpSC6g5MgudFR5jACFM8d7jO1JMgC2+oOD21qlHVtQFumEOlLi6fB2I7
XVxVPTG7m82wuGKw5+tfd2mgbDGXcwEgmDLeS5d5Uvkttoah2pt+cI1VHGlE
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

-->

</rfc>
