<?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.6.26 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="EDHOC and OSCORE profile of ACE">Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-01"/>
    <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="2023" month="March" day="10"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <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 OAuth 2.0 Client and Resource Server, and it binds an authentication credential of the Client to an OAuth 2.0 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.
A resource-constrained server can use this profile to delegate management of authorization information to a trusted host with less severe limitations regarding processing power and memory.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the "coap_edhoc_oscore" profile of the ACE framework <xref target="RFC9200"/>. This profile addresses a "zero-touch" constrained setting where trusted 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. Also, 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 OSCORE keying material. As recommended in <xref target="RFC9200"/>, this document recommends the use of CBOR Web Tokens (CWTs) <xref target="RFC8392"/> as access tokens.</t>
      <t>The authentication and authorization processing requires C and RS to have access to each other's authentication credentials. C can obtain the authentication credential of RS from AS together with the access token. RS can obtain the authentication credential of C together with the associated access token in different ways. If RS successfully verifies the access token, then C and RS run the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="I-D.ietf-lake-edhoc"/> using the authentication credentials.</t>
      <t>Once the EDHOC execution is completed, C and RS are mutually authenticated and can derive an OSCORE Security Context to protect subsequent communications.</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 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 Section 3.5.3 of <xref target="I-D.ietf-lake-edhoc"/>).</t>
      <t>In general, AS and RS are likely to have trusted access to each other's authentication credentials, since AS acts on behalf of RS as per the trust model of ACE. Also, AS needs to have some information about C, including the relevant authentication credential, in order to identify C when it requests an access token and to determine what access rights it can be granted. However, the authentication credential of C may potentially be conveyed (or uniquely referred to) within the request for access which C makes to AS.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>Certain security-related terms such as "authentication", "authorization", "confidentiality", "(data) integrity", "Message Authentication Code (MAC)", "Hash-based Message Authentication Code (HMAC)", and "verify" are taken from <xref target="RFC4949"/>.</t>
        <t>RESTful terminology follows HTTP <xref target="RFC9110"/>.</t>
        <t>Readers are expected to be familiar with the terms and concepts defined in CoAP <xref target="RFC7252"/>, OSCORE <xref target="RFC8613"/> and EDHOC <xref target="I-D.ietf-lake-edhoc"/>.</t>
        <t>Readers are also expected to be familiar with the terms and concepts of the ACE framework described in <xref target="RFC9200"/> and in <xref target="RFC9201"/>.</t>
        <t>Terminology for entities in the architecture is defined in OAuth 2.0 <xref target="RFC6749"/>, such as the client (C), the resource server (RS), and the authorization server (AS).  It is assumed in this document that a given resource on a specific RS is associated with a unique AS.</t>
        <t>Note that the term "endpoint" is used here, as in <xref target="RFC9200"/>, following its OAuth definition, which is to denote resources such as /token and /introspect at AS and /authz-info at RS. The CoAP <xref target="RFC7252"/> definition, which is "An entity participating in the CoAP protocol" is not used in this document.</t>
        <t>The authorization information (authz-info) resource refers to the authorization information endpoint as specified in <xref target="RFC9200"/>. The term "claim" is used in this document with the same semantics as in <xref target="RFC9200"/>, i.e., it denotes information carried in the access token or returned from introspection.</t>
        <t>This document defines "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>issued by the same AS</li>
          <li>issued to the same C and for the same RS</li>
          <li>issued together with the same authentication credential of RS</li>
          <li>associated with the same authentication credential of C</li>
        </ul>
        <t>When an access token becomes invalid (e.g., due to its expiration or revocation), the token series it belongs to ends.</t>
        <t>Concise Binary Object Representation (CBOR) <xref target="RFC8949"/><xref target="RFC8742"/> and Concise Data Definition Language (CDDL) <xref target="RFC8610"/> are used in this document. CDDL predefined type names, especially bstr for CBOR byte strings and tstr for CBOR text strings, are used extensively in this document.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation without the tag and value abbreviations.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <t>This section gives an overview of how to use the ACE framework <xref target="RFC9200"/> together with the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. By doing so, a client (C) and a 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 related to OSCORE Security Contexts associated with authorization information for all the clients that RS is communicating with. The authorization information is maintained as policy that is used as input to the processing of requests from those clients.</t>
      <t>This profile specifies how C requests an access token from AS for the resources it wants to access on an RS, by sending an access token request to the /token endpoint, as specified in <xref section="5.8" sectionFormat="of" target="RFC9200"/>. The access token request and response MUST be confidentiality protected and ensure authenticity. The use of EDHOC and OSCORE between C and AS is RECOMMENDED in this profile, in order to reduce the number of libraries that C has to support. However, other protocols fulfilling the security requirements defined in <xref section="5" sectionFormat="of" target="RFC9200"/> MAY alternatively be used, such as TLS <xref target="RFC8446"/> or DTLS <xref target="RFC9147"/>.</t>
      <t>If C has retrieved an access token, there are two different options for C to upload it to RS, as further detailed in this document.</t>
      <ol spacing="normal" type="1"><li>C posts the access token to the /authz-info endpoint by using the mechanisms specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/>. If the access token is valid, RS responds to the request with a 2.01 (Created) response, after which C initiates the EDHOC protocol by sending EDHOC message_1 to RS. The communication with the /authz-info endpoint is not protected, except for the update of access rights.</li>
        <li>C initiates the EDHOC protocol by sending EDHOC message_1 to RS, specifying the access token as External Authorization Data (EAD) in the EAD_1 field of EDHOC message_1 (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the access token is valid and the processing of EDHOC message_1 is successful, RS responds with EDHOC message_2, thus continuing the EDHOC protocol. This alternative cannot be used for the update of access rights.</li>
      </ol>
      <t>When running the EDHOC protocol, C uses the authentication credential of RS specified by AS together with the access token, while RS uses the authentication credential of C bound to and specified within the access token. If C and RS complete the EDHOC execution successfully, they are mutually authenticated and they derive an OSCORE Security Context as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. Also, RS associates the two used authentication credentials and the completed EDHOC execution with the derived Security Context. The latter is in turn associated with the access token and the access rights of C specified therein.</t>
      <t>From then on, C effectively gains authorized and secure access to protected resources on RS, for as long as the access token is valid. Until then, C can communicate with RS by sending a request protected with the established OSCORE Security Context above. The Security Context is discarded when an access token (whether the same or a different one) is used to successfully derive a new Security Context for C, either by exchanging nonces and using the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>), or by re-running EDHOC. In particular, when supporting this profile, both C and RS MUST support the EDHOC-KeyUpdate function, and they MUST use it instead of re-running EDHOC if the outcome of their previously completed EDHOC execution is still valid.</t>
      <t>After the whole procedure has completed and while the access token is valid, C can contact AS to request an update of its access rights, by sending a similar request to the /token endpoint. This request also includes an identifier, which allows AS to find the data it has previously shared with C. This specific identifier, encoded as a byte string, is assigned by AS to a "token series" (see <xref target="terminology"/>). 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., when it expires or gets revoked), that token series ends.</t>
      <t>An overview of the profile flow for the "coap_edhoc_oscore" profile is given in <xref target="protocol-overview"/>. The names of messages coincide with those of <xref target="RFC9200"/> when applicable.</t>
      <figure anchor="protocol-overview">
        <name>Protocol Overview</name>
        <artwork><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <==== Mutual authentication and secure channel ====> |
   |                            |                         |
   | ------- POST /token  ------------------------------> |
   |                            |                         |
   | <-------------------------------- Access Token ----- |
   |                               + Access Information   |
   |                            |                         |
   | ---- POST /authz-info ---> |                         |
   |       (access_token)       |                         |
   |                            |                         |
   | <----- 2.01 Created ------ |                         |
   |                            |                         |
   | <========= EDHOC ========> |                         |
   |  Mutual authentication     |                         |
   |  and derivation of an      |                         |
   |  OSCORE Security Context   |                         |
   |                            |                         |
   |                /Proof-of-possession and              |
   |                Security Context storage/             |
   |                            |                         |
   | ---- OSCORE Request -----> |                         |
   |                            |                         |
   | <--- OSCORE Response ----- |                         |
   |                            |                         |
/Proof-of-possession            |                         |
and Security Context            |                         |
storage (latest)/               |                         |
   |                            |                         |
   | ---- OSCORE Request -----> |                         |
   |                            |                         |
   | <--- OSCORE Response ----- |                         |
   |                            |                         |
   |           ...              |                         |

]]></artwork>
      </figure>
    </section>
    <section anchor="c-as-comm">
      <name>Client-AS Communication</name>
      <t>The following subsections describe the details of the POST request and response to the /token endpoint between C and AS.</t>
      <t>In this exchange, AS provides C with the access token, together with a set of parameters that enable C to run EDHOC with RS. In particular, these include information about the authorization credential of RS, AUTH_CRED_RS, transported by value or uniquely referred to.</t>
      <t>The access token is securely associated with the authentication credential of C, AUTH_CRED_C, by including it or uniquely referring to it in the access token.</t>
      <t>AUTH_CRED_C is specified in the "req_cnf" parameter defined in <xref target="RFC9201"/> of the POST request to the /token endpoint from C to AS, either transported by value or uniquely referred to.</t>
      <t>The request to the /token endpoint and the corresponding response can include EDHOC_Information, which is a CBOR map object defined in <xref target="edhoc-parameters-object"/>. This object is transported in the "edhoc_info" parameter registered in <xref target="iana-oauth-params"/> and <xref target="iana-oauth-cbor-mappings"/>.</t>
      <section anchor="c-as">
        <name>C-to-AS: POST to /token endpoint</name>
        <t>The client-to-AS request is specified in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>.</t>
        <t>The client must send this POST request to the /token endpoint over a secure channel that guarantees authentication, message integrity and confidentiality (see <xref target="secure-comm-as"/>).</t>
        <t>Editor's note: This formulation overlaps with 3rd para in <xref target="overview"/>, which has normative language. Preferable to keep normative language here.</t>
        <t>An example of such a request is shown in <xref target="token-request"/>. In this example, C specifies its own authentication credential by reference, as the hash of an X.509 certificate carried in the "x5t" field of the "req_cnf" parameter. In fact, it is expected that C can typically specify its own authentication credential by reference, since AS is expected to obtain the actual authentication credential during an early client registration process or during a previous secure association establishment with C.</t>
        <figure anchor="token-request">
          <name>Example of C-to-AS POST /token request for an access token.</name>
          <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: "application/ace+cbor"
   Payload:
   {
     "audience" : "tempSensor4711",
     "scope" : "read",
     "req_cnf" : {
       "x5t" : h'822E4879F2A41B510C1F9B'
     }
   }
]]></artwork>
        </figure>
        <t>If C wants to update its access rights without changing an existing OSCORE Security Context, it MUST include EDHOC_Information in its POST request to the /token endpoint. In turn, EDHOC_Information MUST include the "id" field, carrying a CBOR byte string containing the identifier of the token series to which the current, still valid access token shared with RS belongs to. This POST request MUST omit the "req_cnf" parameter.</t>
        <t>This identifier is assigned by AS as discussed in <xref target="as-c"/>, 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 identifier MUST identify the pair (AUTH_CRED_C, AUTH_CRED_RS) associated with a still valid access token previously issued for C and RS by AS.</t>
        <t>AS MUST verify that the received value identifies a token series to which a still valid access token issued for C and RS belongs to. If that is not the case, the Client-to-AS request MUST be declined with the error code "invalid_request" as defined in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>An example of such a request is shown in <xref target="token-request-update"/>.</t>
        <figure anchor="token-request-update">
          <name>Example of C-to-AS POST /token request for updating access rights to an access token.</name>
          <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: "application/ace+cbor"
   Payload:
   {
     "audience" : "tempSensor4711",
     "scope" : "write",
     "edhoc_info" : {
        "id" : h'01'
     }
   }
]]></artwork>
        </figure>
      </section>
      <section anchor="as-c">
        <name>AS-to-C: Access Token Response</name>
        <t>After verifying the POST request to the /token endpoint and that C is authorized to obtain an access token corresponding to its access token request, AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>. If the request from C was invalid, or not authorized, AS returns an error response as described in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>AS can signal that the use of EDHOC and OSCORE as per this profile is REQUIRED for a specific access token, by including the "ace_profile" parameter with the value "coap_edhoc_oscore" in the access token response. This means that C MUST use EDHOC with RS and derive an OSCORE Security Context, as specified in <xref target="edhoc-exec"/>. After that, C MUST use the established OSCORE Security Context to protect communications with RS, when accessing protected resources at RS according to the authorization information indicated in the access token. Usually, it is assumed that constrained devices will be pre-configured with the necessary profile, so that this kind of profile signaling can be omitted.</t>
        <t>When issuing any access token of a token series, AS MUST send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The identifier of the token series to which the issued access token belongs to. This is specified in the "id" field of EDHOC_Information.  </t>
            <t>
All the access tokens belonging to the same token series are associated with the same identifier, which does not change throughout the series lifetime. A token series ends when the latest issued access token in the series becomes invalid (e.g., when it expires or gets revoked).  </t>
            <t>
AS assigns an identifier to a token series when issuing the first access token T of that series. When assigning the identifier, AS MUST ensure that this was never used in a previous series of access tokens such that: i) they were issued for the same RS for which the access token T is being issued; and ii) they were bound to the same authentication credential AUTH_CRED_C of the requesting client to which the access token T is being issued (irrespectively of the exact way AUTH_CRED_C is specified in such access tokens).</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS MUST send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The authentication credential of RS, namely 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 specifies 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 typically expected that the response to C specifies AUTH_CRED_RS by reference.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS MAY send the following data in the response to C. If present, this data MUST be included in the corresponding fields of EDHOC_Information. Some of this information takes advantage of the knowledge that AS may have about C and RS since a previous registration process, with particular reference to what they support as EDHOC peers.</t>
        <ul spacing="normal">
          <li>The EDHOC methods supported by both C and RS (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). This is specified in the "methods" field of EDHOC_Information.</li>
          <li>The EDHOC cipher suite (see <xref section="3.6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) to be used by C and RS as selected cipher suite when running EDHOC. This is specified in the "cipher_suites" field of EDHOC_Information. If present, this MUST specify the EDHOC cipher suite which is most preferred by C and at the same time supported by both C and RS.</li>
          <li>Whether RS supports or not EDHOC message_4 (see <xref section="5.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). This is specified in the "message_4" field of EDHOC_Information.</li>
          <li>Whether RS supports or not the combined EDHOC + OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>. This is specified in the "comb_req" field of EDHOC_Information.</li>
          <li>The path component of the URI of the EDHOC resource at RS, where C is expected to send EDHOC messages as CoAP requests. This is specified in the "uri_path" field of EDHOC_Information. If not specified, the URI path "/.well-known/edhoc" defined in <xref section="9.7" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) is assumed.</li>
          <li>The size in bytes of the OSCORE Master Secret to derive after the EDHOC execution (see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) and to use for establishing an OSCORE Security Context. This is specified in the "osc_ms_len" field of EDHOC_Information. If not specified, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</li>
          <li>The size in bytes of the OSCORE Master Salt to derive after the EDHOC execution (see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) and to use for establishing an OSCORE Security Context. This is specified in the "osc_salt_len" field of EDHOC_Information. If not specified, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</li>
          <li>The OSCORE version to use (see <xref section="5.4" sectionFormat="of" target="RFC8613"/>). This is specified in the "osc_version" field of EDHOC_Information. If specified, AS MUST indicate the highest OSCORE version supported by both C and RS. If not specified, the default value of 1 (see <xref section="5.4" sectionFormat="of" target="RFC8613"/>) is assumed.</li>
        </ul>
        <t>When issuing any access token of a token series, AS MUST specify the following data in the claims associated with the access token.</t>
        <ul spacing="normal">
          <li>The identifier of the token series, specified in the "id" field of EDHOC_Information, and with the same value specified in the response to C from the /token endpoint.</li>
          <li>
            <t>The same authentication credential of C that C specified in its POST request to the /token endpoint (see <xref target="c-as"/>), namely AUTH_CRED_C. If the access token is a CWT, this information MUST be specified in the "cnf" claim.  </t>
            <t>
In the access token, AUTH_CRED_C can be transported by value or 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 specified by value.  </t>
            <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_C, it is typically expected that AUTH_CRED_C is specified by reference.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS MAY specify the following data in the claims associated with the access token. If these data are specified in the response to C from the /token endpoint, they MUST be included in the access token and specify the same values that they have in the response from the /token endpoint.</t>
        <ul spacing="normal">
          <li>The size in bytes of the OSCORE Master Secret to derive after the EDHOC execution and to use for establishing an OSCORE Security Context. If it is included, it is specified in the "osc_ms_len" field of EDHOC_Information, and it has the same value that the "osc_ms_len" field has in the response to C. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</li>
          <li>The size in bytes of the OSCORE Master Salt to derive after the EDHOC execution (see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) and to use for establishing an OSCORE Security Context. If it is included, it is specified in the "osc_salt_len" field of EDHOC_Information, and it has the same value that the "osc_salt_len" field has in the response to C. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</li>
          <li>The OSCORE version to use (see <xref section="5.4" sectionFormat="of" target="RFC8613"/>). This is specified in the "osc_version" field of the "edhoc_info" parameter. If it is included, it is specified in the "osc_version" field of EDHOC_Information, and it has the same value that the "osc_version" field has in the response to C. If it is not included, the default value of 1 (see <xref section="5.4" sectionFormat="of" target="RFC8613"/>) is assumed.</li>
        </ul>
        <t>When issuing the first access token of a token series, AS can take either of the two possible options.</t>
        <ul spacing="normal">
          <li>AS provides the access token to C, by specifying it in the "access_token" parameter of the access token response. In such a case, the access token response MAY include the parameter "token_uploaded", which MUST encode the CBOR simple value "false" (0xf4).</li>
          <li>
            <t>AS does not provide the access token to C. Rather, AS uploads the access token to the /authz-info endpoint at RS, exactly like C would do, and as defined in <xref target="c-rs"/> and <xref target="rs-c"/>. Then, when replying to C with the access token response as defined above, the response MUST NOT include the parameter "access_token", and MUST include the parameter "token_uploaded" encoding the CBOR simple value "true" (0xf5). This is shown by the example in <xref target="example-without-optimization-as-posting"/>.  </t>
            <t>
Note that, in case C and RS have already completed an EDHOC execution leveraging a previous access token series, using this approach implies that C and RS have to re-run the EDHOC protocol. That is, they cannot more efficiently make use of the EDHOC-KeyUpdate function, as defined in <xref target="edhoc-key-update"/>, see <xref target="c-rs-comm"/>.  </t>
            <t>
Also note that this approach is not applicable when issuing access tokens following the first one in the same token series, i.e., when updating access rights.</t>
          </li>
        </ul>
        <t>When CWTs are used as access tokens, EDHOC_Information MUST be transported in the "edhoc_info" claim, defined in <xref target="iana-token-cwt-claims"/>.</t>
        <t>Since the access token does not contain secret information, only its integrity and source authentication are strictly necessary to ensure. Therefore, AS can protect the access token with either of the means discussed in <xref section="6.1" sectionFormat="of" target="RFC9200"/>. Nevertheless, when using this profile, it is RECOMMENDED that the access token is a CBOR web token (CWT) protected with COSE_Encrypt/COSE_Encrypt0 as specified in <xref target="RFC8392"/>.</t>
        <t><xref target="fig-token-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-Type: "application/ace+cbor"
      Payload:
      {
        "access_token" : h'8343a1010aa2044c53 ...
         (remainder of access token (CWT) omitted for brevity)',
        "ace_profile" : "coap_edhoc_oscore",
        "expires_in" : "3600",
        "rs_cnf" : {
          "x5chain" : h'3081ee3081a1a00302 ...'
          (remainder of the access credential omitted for brevity)'
        }
        "edhoc_info" : {
          "id" : h'01',
          "methods" : [0, 1, 2, 3],
          "cipher_suites": 0
        }
      }
]]></artwork>
        </figure>
        <t><xref target="fig-token"/> shows an example CWT Claims Set, including the relevant EDHOC parameters in the "edhoc_info" claim. The "cnf" claim specifies the authentication credential of C, as an X.509 certificate transported by value in the "x5chain" field. The authentication credential of C has been truncated for readability.</t>
        <figure anchor="fig-token">
          <name>Example of CWT Claims Set with EDHOC parameters.</name>
          <artwork><![CDATA[
   {
    "aud" : "tempSensorInLivingRoom",
    "iat" : "1360189224",
    "exp" : "1360289224",
    "scope" :  "temperature_g firmware_p",
    "cnf" : {
      "x5chain" : h'3081ee3081a1a00302 ...'
    }
    "edhoc_info" : {
      "id" : h'01',
      "methods" : [0, 1, 2, 3],
      "cipher_suites": 0
    }
  }
]]></artwork>
        </figure>
        <t>If C has requested an update to its access rights using the same OSCORE Security Context, which is valid and authorized, then:</t>
        <ul spacing="normal">
          <li>The response MUST NOT include the "rs_cnf" parameter.</li>
          <li>The EDHOC_Information in the response MUST include only the "id" field, specifying the identifier of the token series.</li>
          <li>The EDHOC_Information in the access token MUST include only the "id" field, specifying the identifier of the token series. In particular, if the access token is a CWT, the "edhoc_info" claim MUST include only the "id" field.</li>
        </ul>
        <t>This identifier of the token series needs to be included in the new access token in order for RS to identify the old access token to supersede, as well as the OSCORE Security Context already shared between C and RS and to be associated with the new access token.</t>
      </section>
      <section anchor="edhoc-parameters-object">
        <name>The EDHOC_Information</name>
        <t>An EDHOC_Information is an object including information that guides two peers towards executing the EDHOC protocol. In particular, the EDHOC_Information is defined to be serialized and transported between nodes, as specified by this document, but it can also be used by other specifications if needed.</t>
        <t>The EDHOC_Information can either be encoded as a JSON object or as a CBOR map.  The set of common fields that can appear in an EDHOC_Information can be found in the IANA "EDHOC Information" registry (see <xref target="iana-edhoc-parameters"/>), defined for extensibility, and the initial set of parameters defined in this document is specified below. All parameters are optional.</t>
        <t><xref target="fig-cbor-key-edhoc-params"/> provides a summary of the EDHOC_Information parameters defined in this section.</t>
        <figure anchor="fig-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters</name>
          <artwork align="center"><![CDATA[
+---------------+------+--------------+----------+--------------------+
| Name          | CBOR | CBOR value   | Registry | Description        |
|               | Type |              |          |                    |
+---------------+------+--------------+----------+--------------------+
| id            | 0    | bstr         |          | Identifier of      |
|               |      |              |          | EDHOC execution    |
+---------------+------+--------------+----------+--------------------+
| methods       | 1    | int /        | EDHOC    | Set of supported   |
|               |      | array of int | Method   | EDHOC methods      |
|               |      |              | Type     |                    |
|               |      |              | Registry |                    |
+---------------+------+--------------+----------+--------------------+
| cipher_suites | 2    | int /        | EDHOC    | Set of supported   |
|               |      | array of int | Cipher   | EDHOC cipher       |
|               |      |              | Suites   | suites             |
|               |      |              | Registry |                    |
+---------------+------+--------------+----------+--------------------+
| key_update    | 3    | simple value |          | Support for the    |
|               |      | "true" /     |          | EDHOC-KeyUpdate    |
|               |      | simple value |          | function           |
|               |      | "false"      |          |                    |
+---------------+------+--------------+----------+--------------------+
| message_4     | 4    | simple value |          | Support for EDHOC  |
|               |      | "true" /     |          | message_4          |
|               |      | simple value |          |                    |
|               |      | "false"      |          |                    |
+---------------+------+--------------+----------+--------------------+
| comb_req      | 5    | simple value |          | Support for the    |
|               |      | "true" /     |          | EDHOC + OSCORE     |
|               |      | simple value |          | combined request   |
|               |      | "false"      |          |                    |
+---------------+------+--------------+----------+--------------------+
| uri_path      | 6    | tstr         |          | URI-path of the    |
|               |      |              |          | EDHOC resource     |
+---------------+------+--------------+----------+--------------------+
| osc_ms_len    | 7    | uint         |          | Length in bytes of |
|               |      |              |          | the OSCORE Master  |
|               |      |              |          | Secret to derive   |
+---------------+------+--------------+----------+--------------------+
| osc_salt_len  | 8    | uint         |          | Length in bytes of |
|               |      |              |          | the OSCORE Master  |
|               |      |              |          | Salt to derive     |
+---------------+------+--------------+----------+--------------------+
| osc_version   | 9    | uint         |          | OSCORE version     |
|               |      |              |          | number to use      |
+---------------+------+--------------+----------+--------------------+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>id: This parameter identifies an EDHOC execution and is encoded as a byte string. In JSON, the "id" value is a Base64 encoded byte string. In CBOR, the "id" type is a byte string, and has label 0.</li>
          <li>methods: This parameter specifies a set of supported EDHOC methods (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single EDHOC method, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC method. In JSON, the "methods" value is an integer or an array of integers. In CBOR, the "methods" is an integer or an array of integers, and has label 1.</li>
          <li>cipher_suites: This parameter specifies a set of supported EDHOC cipher suites (see <xref section="3.6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single EDHOC cipher suite, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC cipher suite. In JSON, the "cipher_suites" value is an integer or an array of integers. In CBOR, the "cipher_suites" is an integer or an array of integers, and has label 2.</li>
          <li>key_update: This parameter indicates whether the EDHOC-KeyUpdate function (see <xref section="I" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) is supported. In JSON, the "key_update" value is a boolean. In CBOR, "key_update" is the simple value "true" or "false", and has label 3.</li>
          <li>message_4: This parameter indicates whether the EDHOC message_4 (see <xref section="5.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) is supported. In JSON, the "message_4" value is a boolean. In CBOR, "message_4" is the simple value "true" or "false", and has label 4.</li>
          <li>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.</li>
          <li>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 text string, and has label 6.</li>
          <li>osc_ms_len: This parameter specifies the size in bytes of the OSCORE Master Secret to derive after the EDHOC execution, as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In JSON, the "osc_ms_len" value is an integer. In CBOR, the "osc_ms_len" type is unsigned integer, and has label 7.</li>
          <li>osc_salt_len: This parameter specifies the size in bytes of the OSCORE Master Salt to derive after the EDHOC execution, as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In JSON, the "osc_salt_len" value is an integer. In CBOR, the "osc_salt_len" type is unsigned integer, and has label 8.</li>
          <li>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.</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" : {
       "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,     ; key_update
   ? 4 => true / false,     ; message_4
   ? 5 => true / false,     ; comb_req
   ? 6 => tstr,             ; uri_path
   ? 7 => uint,             ; osc_ms_len
   ? 8 => uint,             ; osc_salt_len
   ? 9 => uint,             ; osc_version
   * int / tstr => any
}
]]></artwork>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>The following subsections describe the exchanges between C and RS, which comprise the token uploading to RS, and the execution of the EDHOC protocol. Note that, as defined in <xref target="as-c"/>, AS may not have provided C with the access token, and have rather uploaded the access token to the /authz-info endpoint at RS on behalf of C.</t>
      <t>In order to upload the access token to RS, C can send a POST request to the /authz-info endpoint at RS. This is detailed in <xref target="c-rs"/> and <xref target="rs-c"/>, and it is shown by the example in <xref target="example-without-optimization"/>.</t>
      <t>Alternatively, C can upload the access token while executing the EDHOC protocol, by transporting the access token in the EAD_1 field of the first EDHOC message sent to RS. This is further discussed in <xref target="edhoc-exec"/>, and it is shown by the example in <xref target="example-with-optimization"/>.</t>
      <t>In either case, following the uploading of the access token, C and RS run the EDHOC protocol to completion, by exchanging POST requests and related responses to a dedicated EDHOC resource at RS (see <xref target="edhoc-exec"/>). Once completed the EDHOC execution, C and RS have agreed on a common secret key PRK_out (see <xref section="4.1.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), from which they establish an OSCORE Security Context (see <xref target="edhoc-exec"/>). After that, C and RS use the established OSCORE Security Context to protect their communications when accessing protected resources at RS, as per the access rights specified in the access token (see <xref target="access-rights-verif"/>).</t>
      <t>Note that, by means of the respective authentication credentials, C and RS are mutually authenticated once they have successfully completed the execution of the EDHOC protocol.</t>
      <t>As to proof-of-possession, RS always gains knowledge that C has PRK_out at the end of the successful EDHOC execution. Conversely, C gains knowledge that RS has PRK_out either when receiving and successfully verifying the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the generated OSCORE Security Context.</t>
      <section anchor="c-rs">
        <name>C-to-RS: POST to /authz-info endpoint</name>
        <t>The access token can be uploaded to RS by using the /authz-info endpoint at RS. To this end, C MUST use CoAP <xref target="RFC7252"/> and the Authorization Information endpoint described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/> in order to transport the access token.</t>
        <t>That is, C sends a POST request to the /authz-info endpoint at RS, with the request payload conveying the access token without any CBOR wrapping. As per <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, the Content-Format of the POST request has to reflect the format of the transported access token. In particular, if the access token is a CWT, the content-format MUST be "application/cwt".</t>
        <t>The communication with the /authz-info endpoint does not have to be protected, except for the update of access rights case described below.</t>
        <t>In case of initial access token provisioning to RS for this Client, or in other cases without a valid EDHOC session, the uploading of the access token is followed by the execution of the EDHOC protocol (or combined using EAD as described in <xref target="edhoc-exec"/>) and by the derivation of an OSCORE Security Context, as detailed later in this section.</t>
        <t>In the following, we outline some alternative processing, which occur when the provisioned access token or the established OSCORE Security Context for various reasons is no longer available or sufficient. In the cases below, it is assumed that the EDHOC session is still valid, otherwise the processing essentially falls back to the case discussed above.</t>
        <ol spacing="normal" type="1"><li>C may be required to re-POST the access token, since RS may have deleted a stored access token (and associated OSCORE Security Context) at any time, for example due to all storage space being consumed. This situation can be detected by C when it receives a 4.01 (Unauthorized) response from RS, especially as an "AS Request Creation Hints" message (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>.</li>
          <li>C may be posting the first access token in a new series, e.g., because the old access token expired and thus its series terminated.</li>
          <li>
            <t>C may need to update the OSCORE Security Context, 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. The OSCORE Security Context can be updated by:  </t>
            <t>
a. using the KUDOS key update protocol specified in <xref target="I-D.ietf-core-oscore-key-update"/>, if supported by both C and RS; or  </t>
            <t>
b. re-posting the access token using the same procedure as in case 1 above.</t>
          </li>
        </ol>
        <t>In cases 1, 2 and 3b, C and RS rely on a protocol similar to the <tt>coap_oscore</tt> profile <xref target="RFC9203"/>, but leveraging the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>) before deriving a new OSCORE Security Context.</t>
        <t>Case 3a provides a lightweight alternative independent of ACE, and does not require the posting of an access token.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS MUST associate the new OSCORE Security Context with the current (potentially re-posted) access token. Note that, unless C and RS re-run the EDHOC protocol, they preserve their same OSCORE identifiers, i.e., their OSCORE Sender/Recipient IDs.</t>
        <t>If C has already posted a valid access token, has already established an OSCORE Security Context with RS, and wants to update its access rights, then C can do so by posting a new access token to the /authz-info endpoint. The new access token contains the updated access rights for C to access protected resources at RS, and C has to obtain it from AS as a new access token in the same token series of the current one (see <xref target="c-as"/> and <xref target="as-c"/>). When posting the new access token to the /authz-info endpoint, C MUST protect the POST request using the current OSCORE Security Context shared with RS. After successful verification (see <xref target="rs-c"/>), RS will replace the old access token with the new one, while preserving the same OSCORE Security Context. In particular, C and RS do not re-run the EDHOC protocol and they do not establish a new OSCORE Security Context.</t>
      </section>
      <section anchor="rs-c">
        <name>RS-to-C: 2.01 (Created)</name>
        <t>Upon receiving an access token from C, RS MUST follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>. That is, RS must verify the validity of the access token. RS may make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token.</t>
        <t>If the access token is valid, RS proceeds as follows.</t>
        <t>RS checks whether it is already storing the authentication credential of C, namely AUTH_CRED_C, specified as PoP-key in the access token by value or reference. In such a case, RS stores the access token and MUST reply to the POST request with a 2.01 (Created) response.</t>
        <t>Otherwise, RS retrieves AUTH_CRED_C, e.g., from the access token if the authentication credential is specified therein by value, or from a further trusted source pointed to by the AUTH_CRED_C identifier included in the access token. After that, RS validates the actual AUTH_CRED_C. In case of successful validation, RS stores AUTH_CRED_C as a valid authentication credential. Then, RS stores the access token and MUST reply to the POST request with a 2.01 (Created) response.</t>
        <t>If RS does not find an already stored AUTH_CRED_C, or fails to retrieve it or to validate it, then RS MUST respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        <t>Instead, if the access token is valid but it is 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 "id"), or if any parameters received in the EDHOC_Information is unrecognized, then RS MUST respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). In the latter two cases, RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        <t>When an access token becomes invalid (e.g., due to its expiration or revocation), RS MUST delete the access token and the associated OSCORE Security Context, and MUST notify C with an error response with code 4.01 (Unauthorized) for any long running request, as specified in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>If RS receives an access token in an OSCORE protected request, it means that C is requesting an update of access rights. In such a case, RS MUST check that both the following conditions hold.</t>
        <ul spacing="normal">
          <li>RS checks whether it stores an access token T_OLD, such that the "id" field of EDHOC_Identifier matches the "id" field of EDHOC_Identifier in the new access token T_NEW.</li>
          <li>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.</li>
        </ul>
        <t>If both the conditions above hold, RS MUST replace the old access token T_OLD with the new access token T_NEW, and associate T_NEW with the OSCORE Security Context CTX. Then, RS MUST respond with a 2.01 (Created) response protected with the same OSCORE Security Context, with no payload.</t>
        <t>Otherwise, RS MUST respond with a 4.01 (Unauthorized) error response. RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        <t>As specified in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, when receiving an updated access token with updated authorization information from C (see <xref target="c-rs"/>), it is recommended that RS overwrites the previous access token. That is, only the latest authorization information in the access token received by RS is valid. This simplifies the process needed by RS to keep track of authorization information for a given client.</t>
      </section>
      <section anchor="edhoc-exec">
        <name>EDHOC Execution and Setup of OSCORE Security Context</name>
        <t>In order to mutually authenticate and establish a long-term secret key PRK_out with forward secrecy, C and RS run the EDHOC protocol <xref target="I-D.ietf-lake-edhoc"/>. In particular, C acts as EDHOC Initiator thus sending EDHOC message_1, while RS acts as EDHOC Responder.</t>
        <t>As per <xref section="A.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>, C sends EDHOC message_1 and EDHOC message_3 to an EDHOC resource at RS, as CoAP POST requests. Also RS sends EDHOC message_2 and (optionally) EDHOC message_4 as 2.04 (Changed) CoAP responses. If, in the access token response received from AS (see <xref target="c-as"/>), the "uri_path" field of the EDHOC_Information was included, then C MUST target the EDHOC resource at RS with the URI path specified in the "uri_path" field.</t>
        <t>In order to seamlessly run EDHOC, a client does not have to first upload to RS an access token whose scope explicitly indicates authorized access to the EDHOC resource. At the same time, RS has to ensure that attackers cannot perform requests on the EDHOC resource, other than sending EDHOC messages. Specifically, it SHOULD NOT be possible to perform anything else than POST on an EDHOC resource.</t>
        <t>When preparing EDHOC message_1, C performs the following steps, in additions to those defined in <xref section="5.2.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <ul spacing="normal">
          <li>If, in the access token response received from AS (see <xref target="c-as"/>), the "methods" field of the EDHOC_Information was included, then C MUST specify one of those EDHOC methods in the METHOD field of EDHOC message_1. That is, one of the EDHOC methods specified in the "methods" field of EDHOC_Information MUST be the EDHOC method used when running EDHOC with RS.</li>
          <li>If, in the access token response received from AS (see <xref target="c-as"/>), the "cipher_suites" field of the EDHOC_Information was included, then C MUST specify the EDHOC cipher suite therein in the SUITES_I field of EDHOC message_1. That is, the EDHOC cipher suite specified in the "cipher_suites" field of EDHOC_Information MUST be the selected cipher suite when running EDHOC with RS.</li>
          <li>
            <t>Rather than first uploading the access token to the /authz-info endpoint at RS as described in <xref target="c-rs"/>, C MAY include the access token in the EAD_1 field of EDHOC message_1 (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). This is shown by the example in <xref target="example-with-optimization"/>.  </t>
            <t>
In such a case, as per <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>, C adds the EAD item EAD_ACCESS_TOKEN = (ead_label, ead_value) to the EAD_1 field. In particular, ead_label is the integer value TBD registered in <xref target="iana-edhoc-ead"/> of this document, while ead_value is a CBOR byte string with value the access token. That is, the CBOR byte string is equal to the value of the "access_token" field of the access token response from AS (see <xref target="as-c"/>).  </t>
            <t>
If EDHOC message_1 includes the EAD item EAD_ACCESS_TOKEN within the field EAD_1, then RS MUST process the access token carried out in ead_value as specified in <xref target="rs-c"/>. If such a process fails, RS MUST reply to C with an EDHOC error message with ERR_CODE 1 (see <xref section="6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), and it MUST discontinue the EDHOC protocol. RS MUST have successfully completed the processing of the access token before continuing the EDHOC execution by sending EDHOC message_2.  </t>
            <t>
Note that the EAD_1 field of EDHOC message_1 cannot carry an access token for the update of access rights, but rather only an access token issued as the first of a token series.</t>
          </li>
        </ul>
        <t>In EDHOC message_2, the authentication credential CRED_R indicated by the message field ID_CRED_R is the authentication credential of RS, namely AUTH_CRED_RS, that C obtained from AS. The processing of EDHOC message_2 is defined in detail in <xref section="5.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <t>In EDHOC message_3, the authentication credential CRED_I indicated by the message field ID_CRED_I is the authentication credential of C, namely AUTH_CRED_C, i.e., the PoP key bound to the access token and specified therein. The processing of EDHOC message_3 is defined in detail in <xref section="5.4" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <t>Once successfully completed the EDHOC execution, C and RS have both derived the long-term secret key PRK_out (see <xref section="4.1.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), from which they both derive the key PRK_Exporter (see <xref section="4.2.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). Then, C and RS derive an OSCORE Security Context, as defined in <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In addition, the following applies.</t>
        <ul spacing="normal">
          <li>If, in the access token response received from AS (see <xref target="c-as"/>) and in the access token, the "osc_ms_size" field of the EDHOC_Information was included, then C and RS MUST use the value specified in the "osc_ms_size" field as length in bytes of the OSCORE Master Secret. That is, the value of the "osc_ms_size" field MUST be used as value for the oscore_key_length parameter of the EDHOC-Exporter function when deriving the OSCORE Master Secret (see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>).</li>
          <li>If, in the access token response received from AS (see <xref target="c-as"/>) and in the access token, the "osc_salt_size" field of the EDHOC_Information was included, then C and RS MUST use the value specified in the "osc_salt_size" field as length in bytes of the OSCORE Master Salt. That is, the value of the "osc_salt_size" field MUST be used as value for the oscore_salt_length parameter of the EDHOC-Exporter function when deriving the OSCORE Master Salt (see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>).</li>
          <li>If, in the access token response received from AS (see <xref target="c-as"/>) and in the access token, the "osc_version" field of the EDHOC_Information was included, then C and RS MUST derive the OSCORE Security Context, and later use it to protect their communications, consistently with the OSCORE version specified in the "osc_version" field.</li>
          <li>Given AUTH_CRED_C the authentication credential of C used as CRED_I in the completed EDHOC execution, RS associates the derived OSCORE Security Context with the stored access token bound to AUTH_CRED_C as PoP-key (regardless of whether AUTH_CRED_C is specified by value or by reference in the access token claims).</li>
        </ul>
        <t>If C supports it, C MAY use the EDHOC + OSCORE combined request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>, as also shown by the example in <xref target="example-with-optimization"/>. In such a case, both EDHOC message_3 and the first OSCORE-protected application request to a protected resource are sent to RS as combined together in a single OSCORE-protected CoAP request, thus saving one round trip. This requires C to derive the OSCORE Security Context with RS already after having successfully processed the received EDHOC message_2. If, in the access token response received from AS (see <xref target="c-as"/>), the "comb_req" field of the EDHOC_Information was included and specified the CBOR simple value "false" (0xf4), then C MUST NOT use the EDHOC + OSCORE combined request with RS.</t>
      </section>
      <section anchor="access-rights-verif">
        <name>Access Rights Verification</name>
        <t>RS MUST follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="RFC9200"/>. That is, if RS receives an OSCORE-protected request targeting a protected resource from C, then RS processes the request according to <xref target="RFC8613"/>, when Version 1 of OSCORE is used. Future specifications may define new versions of OSCORE, that AS can indicate C and RS to use by means of the "osc_version" field of EDHOC_Information (see <xref target="c-as-comm"/>).</t>
        <t>If OSCORE verification succeeds and the target resource requires authorization, RS retrieves the authorization information using the access token associated with the OSCORE Security Context. Then, RS must verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
    </section>
    <section anchor="edhoc-key-update">
      <name>Use of EDHOC-KeyUpdate</name>
      <t>Once successfully completed an EDHOC execution, C and RS are expected to preserve the EDHOC state of such an execution, as long as the authentication credentials of both C and RS, namely AUTH_CRED_C and AUTH_CRED_RS are valid. This especially consists in preserving the secret key PRK_out attained at the end of the EDHOC execution.</t>
      <t>In case C has to establish a new OSCORE Security Context with RS, and as long as the outcome of their previously completed EDHOC execution is still valid, C and RS MUST rely on the EDHOC-KeyUpdate function defined in <xref section="I" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> as further specified in the rest of this section, rather than re-running the EDHOC protocol. When supporting this profile, both C and RS MUST support the EDHOC-KeyUpdate function. The procedure is sketched in <xref target="key-update-procedure"/>.</t>
      <figure anchor="key-update-procedure">
        <name>Updated OSCORE Security Context using EDHOC-KeyUpdate</name>
        <artwork align="center"><![CDATA[
   C                            RS
   |                            |
   |                            |
   | ---- POST /authz-info ---> |
   |     (access_token, N1)     |
   |                            |
   | <--- 2.01 Created (N2) --- |
   |                            |

  /Apply EDHOC-KeyUpdate with
   concatenated nonces as input,
   derive OSCORE Security Context/

   |                            |
   | ---- OSCORE Request -----> |
   |                            |
   |        /Proof-of-possession and
   |         Security Context storage/
   |                            |
   | <--- OSCORE Response ----- |
   |                            |
/Proof-of-possession and        |
 Security Context storage/      |
   |                            |
   | ---- OSCORE Request -----> |
   |                            |
   | <--- OSCORE Response ----- |
   |                            |
   |           ...              |
]]></artwork>
      </figure>
      <t>Establishing a new OSCORE Security Context by leveraging the EDHOC-KeyUpdate function is possible in the following cases.</t>
      <ul spacing="normal">
        <li>C has to upload to RS the newly obtained, first access token of a new token series, as an unprotected POST request to the /authz-info endpoint at RS. This is the case after the latest access token of the previous token series has become invalid (e.g., it expired or got revoked), and thus RS has deleted it together with the associated OSCORE Security Context (see <xref target="discard-context"/>).</li>
        <li>C re-uploads to RS the current access token shared with RS, i.e., the latest access token in the current token series, as an unprotected POST request to the /authz-info endpoint at RS. Like in <xref target="c-rs"/>, this is the case when C simply wants to replace the current OSCORE Security Context with a new one, and associate it with the same current, re-uploaded access token.</li>
      </ul>
      <t>In either case, C and RS have to establish a new OSCORE Security Context and to associate it with the (re-)uploaded access token.</t>
      <t>When using this approach, C and RS perform the following actions.</t>
      <t>C MUST generate a nonce value N1 very unlikely to have been used with the same pair of authentication credentials (AUTH_CRED_C, AUTH_CRED_RS). When using this profile, it is RECOMMENDED to use a 64-bit long random number as the nonce's value. C MUST store the nonce N1 as long as the response from RS is not received and the access token related to it is still valid (to the best of C's knowledge).</t>
      <t>C MUST use CoAP <xref target="RFC7252"/> and the Authorization Information resource as described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/> to transport the access token and N1 to RS.</t>
      <t>Note that, unlike what is defined in <xref target="c-rs"/>, the use of the payload and of the Content-Format is different from what is described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, where only the access token is transported and without any CBOR wrapping. That is, C MUST wrap the access token and N1 in a CBOR map, and MUST use the Content-Format "application/ace+cbor" defined in <xref section="8.16" sectionFormat="of" target="RFC9200"/>. The CBOR map MUST specify the access token using the "access_token" parameter, and N1 using the "nonce1" parameter defined in <xref section="4.1.1" sectionFormat="of" target="RFC9203"/>.</t>
      <t>The communication with the /authz-info endpoint at RS MUST NOT be protected. This approach is not applicable when C uploads to RS for the first time an access token to update access rights (which rather requires protected communication and does not result in deriving a new OSCORE Security Context).</t>
      <t><xref target="fig-post-edhoc-key-update"/> shows an example of the POST request sent by C to RS. The access token has been truncated for readability.</t>
      <figure anchor="fig-post-edhoc-key-update">
        <name>Example of C-to-RS POST /authz-info request using CWT and EDHOC-KeyUpdate</name>
        <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "rs.example.com"
   Uri-Path: "authz-info"
   Content-Format: "application/ace+cbor"
   Payload:
     {
       "access_token": h'8343a1010aa2044c53 ...
        (remainder of access token (CWT) omitted for brevity)',
       "nonce1": h'018a278f7faab55a'
     }
]]></artwork>
      </figure>
      <t>Upon receiving the POST request from C, RS MUST follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>. That is, RS must verify the validity of the access token. RS may make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token.</t>
      <t>If the access token is valid, RS proceeds as follows.</t>
      <t>RS checks whether it is already storing the authentication credential of C, namely AUTH_CRED_C, specified as PoP-key in the access token by value or reference.</t>
      <t>If RS does not find AUTH_CRED_C among the stored authentication credentials, RS retrieves AUTH_CRED_C, e.g., from the access token if the authentication credential is specified therein by value, or from a further trusted source pointed to by the AUTH_CRED_C identifier included in the access token. After that, RS validates the actual AUTH_CRED_C. In case of successful validation, RS stores AUTH_CRED_C as a valid authentication credential.</t>
      <t>If RS does not find an already stored AUTH_CRED_C, or fails to retrieve it or to validate it, then RS MUST respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
      <t>If the access token is valid but it is 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 "id"), or if any parameters received in the EDHOC_Information is unrecognized, then RS MUST respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). In the latter two cases, RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
      <t>If RS does not find the stored state of a completed EDHOC execution where the authentication credential AUTH_CRED_C was used as CRED_I, then RS MUST respond with an error response code equivalent to the CoAP code 4.00 (Bad Request). RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
      <t>Otherwise, if all the steps above are successful, RS stores the access token and MUST generate a nonce N2 very unlikely to have been previously used with the same pair of authentication credentials (AUTH_CRED_C, AUTH_CRED_RS). When using this profile, it is RECOMMENDED to use a 64-bit long random number as the nonce's value. Then, RS MUST reply to the POST request with a 2.01 (Created) response, for which RS MUST use the Content-Format "application/ace+cbor" defined in <xref section="8.16" sectionFormat="of" target="RFC9200"/>. The payload of the response MUST be a CBOR map, which MUST specify N2 using the "nonce2" parameter defined in <xref section="4.2.1" sectionFormat="of" target="RFC9203"/>.</t>
      <t><xref target="fig-rs-c-edhoc-key-update"/> shows an example of the response sent by RS to C.</t>
      <figure anchor="fig-rs-c-edhoc-key-update">
        <name>Example of RS-to-C 2.01 (Created) response using EDHOC-KeyUpdate</name>
        <artwork><![CDATA[
   Header: Created (Code=2.01)
   Content-Format: "application/ace+cbor"
   Payload:
     {
       "nonce2": h'25a8991cd700ac01'
     }
]]></artwork>
      </figure>
      <t>Once they have exchanged N1 and N2, both C and RS build a CBOR byte string EXTENDED_NONCE as follows.</t>
      <t>First, RAW_STRING is prepared as the concatenation of N1 and N2, in this order: RAW_STRING = N1 | N2, where | denotes byte string concatenation, and N1 and N2 are the two nonces encoded as CBOR byte strings. Then, the resulting RAW_STRING is wrapped into the CBOR byte string EXTENDED_NONCE.</t>
      <t>An example is given in <xref target="fig-edhoc-key-update-string"/>, with reference to the values of N1 and N2 shown in <xref target="fig-post-edhoc-key-update"/> and <xref target="fig-rs-c-edhoc-key-update"/>.</t>
      <figure anchor="fig-edhoc-key-update-string">
        <name>Example of EXTENDED_NONCE construction, with N1 and N2 encoded in CBOR</name>
        <artwork><![CDATA[
   N1 and N2 expressed in CBOR diagnostic notation
   N1 = h'018a278f7faab55a'
   N2 = h'25a8991cd700ac01'

   N1 and N2 as CBOR encoded byte strings
   N1 = 0x48018a278f7faab55a
   N2 = 0x4825a8991cd700ac01

   RAW_STRING = 0x48 018a278f7faab55a 48 25a8991cd700ac01

   EXTENDED_NONCE expressed in CBOR diagnostic notation
   EXTENDED_NONCE = h'48018a278f7faab55a4825a8991cd700ac01'

   EXTENDED_NONCE as CBOR encoded byte string
   EXTENDED_NONCE = 0x52 48018a278f7faab55a4825a8991cd700ac01
]]></artwork>
      </figure>
      <t>If JSON is used instead of CBOR, then RAW_STRING is the Base64 encoding of the concatenation of the same parameters, each of them prefixed by their size encoded in 1 byte. When using JSON, the nonces have a maximum size of 255 bytes. An example is given in <xref target="fig-edhoc-key-update-string-json"/>, where the nonces and RAW_STRING are encoded in Base64.</t>
      <figure anchor="fig-edhoc-key-update-string-json">
        <name>Example of EXTENDED_NONCE construction, with N1 and N2 encoded in JSON</name>
        <artwork><![CDATA[
   N1 and N2 values
   N1 = 0x018a278f7faab55a (8 bytes)
   N2 = 0x25a8991cd700ac01 (8 bytes)

   Input to Base64 encoding:
   0x08 018a278f7faab55a 08 25a8991cd700ac01

   RAW_STRING = b64'CAGKJ49/qrVaCCWomRzXAKwB'

   EXTENDED_NONCE expressed in CBOR diagnostic notation
   EXTENDED_NONCE = h'08018a278f7faab55a0825a8991cd700ac01'

   EXTENDED_NONCE as CBOR encoded byte string
   EXTENDED_NONCE = 0x52 08018a278f7faab55a0825a8991cd700ac01
]]></artwork>
      </figure>
      <t>Once computed the CBOR byte string EXTENDED_NONCE, both C and RS perform the following steps.</t>
      <ol spacing="normal" type="1"><li>
          <t>C refers to the stored state of the completed EDHOC execution where: i) the authentication credential AUTH_CRED_C was used as CRED_I; and ii) the authentication credential that was used as CRED_R is the AUTH_CRED_RS that AS indicated in the access token response (see <xref target="as-c"/>), when providing C with the first access token of the token series comprising the access token just uploaded to RS.  </t>
          <t>
RS refers to the stored state of a completed EDHOC execution where the authentication credential AUTH_CRED_C was used as CRED_I. In case of multiple matching EDHOC executions, RS considers the state of the EDHOC execution that, among the matching ones, has completed latest.</t>
        </li>
        <li>With reference to the EDHOC state determined at the previous step, C and RS invoke the EDHOC-KeyUpdate function (see <xref section="I" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), specifying the CBOR byte string EXTENDED_NONCE as "context" argument. This results in updating the secret key PRK_out to be considered from here on for this EDHOC state.</li>
        <li>With reference to the same EDHOC state as above, C and RS update the secret key PRK_Exporter as per <xref section="4.2.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In particular, the key PRK_out derived at step 2 is specified as "PRK_out" argument. This results in updating the secret key PRK_Exporter to be considered from here on for this EDHOC state.</li>
        <li>C and RS establish a new OSCORE Security Context as defined in <xref target="edhoc-exec"/>, just like if they had completed an EDHOC execution. Note that, since C and RS have not re-run the EDHOC protocol, they preserve their same OSCORE identifiers, i.e., their OSCORE Sender/Recipient IDs.</li>
        <li>RS associates the posted access token with the OSCORE Security Context established at step 4. In case C has in fact re-posted a still valid access token, RS also discards the old OSCORE Security Context previously associated with that access token.</li>
        <li>Hereafter, C and RS use the OSCORE Security Context established at step 4 to protect their communications.</li>
      </ol>
    </section>
    <section anchor="secure-comm-as">
      <name>Secure Communication with AS</name>
      <t>As specified in the ACE framework (see Sections <xref target="RFC9200" section="5.8" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9" sectionFormat="bare"/> of <xref target="RFC9200"/>), the requesting entity (RS and/or C) and AS communicates via the /token or /introspect endpoint. When using this profile, the use of CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> for this communication is RECOMMENDED. Other protocols fulfilling the security requirements defined in <xref section="5" sectionFormat="of" target="RFC9200"/> (such as HTTP and DTLS or TLS) MAY be used instead.</t>
      <t>If OSCORE is used, the requesting entity and AS need to have a OSCORE Security Context in place. While this can be pre-installed, the requesting entity and AS can establish such an OSCORE Security Context, for example, by running the EDHOC protocol, as shown between C and AS by the examples in <xref target="example-without-optimization"/>, <xref target="example-with-optimization"/> and <xref target="example-without-optimization-as-posting"/>. The requesting entity and AS communicate through the /token endpoint as specified in <xref section="5.8" sectionFormat="of" target="RFC9200"/> and through the /introspect endpoint as specified in <xref section="5.9" sectionFormat="of" target="RFC9200"/>.</t>
      <t>Furthermore, as defined in <xref target="as-c"/> and shown by the example in <xref target="example-without-optimization-as-posting"/>, AS may upload the access token to the /authz-info endpoint at RS, on behalf of C. In such a case, that exchange between AS and RS is not protected, just like when C uploads the access token to RS by itself.</t>
    </section>
    <section anchor="discard-context">
      <name>Discarding the Security Context</name>
      <t>There are a number of cases where C or RS have to discard the OSCORE Security Context, and possibly establish a new one.</t>
      <t>C MUST discard the current OSCORE Security Context shared with RS when any of the following occurs.</t>
      <ul spacing="normal">
        <li>The OSCORE Sender Sequence Number space of C gets exhausted.</li>
        <li>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</li>
        <li>C receives a number of 4.01 (Unauthorized) responses to OSCORE-protected requests 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.</li>
        <li>C receives a nonce N2 in the 2.01 (Created) response to an unprotected POST request to the /authz-info endpoint at RS, when re-posting a still valid access token associated with the existing OSCORE Security context together with a nonce N1, in order to trigger the use of the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>).</li>
        <li>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 execution whose PRK_out was used to establish the OSCORE Security Context.</li>
      </ul>
      <t>RS MUST discard the current OSCORE Security Context shared with C when any of the following occurs:</t>
      <ul spacing="normal">
        <li>The OSCORE Sender Sequence Number space of RS gets exhausted.</li>
        <li>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</li>
        <li>The current OSCORE Security Context shared with C has been successfully replaced  with a newer one, following an unprotected POST request to the /authz-info endpoint at RS that re-posted a still valid access token together with a nonce N1, in order to trigger the use of the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>).</li>
        <li>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 execution whose PRK_out was used to establish the OSCORE Security Context.</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="security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general security considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the security considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="I-D.ietf-lake-edhoc"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>As previously stated, once completed the EDHOC execution, C and RS are mutually authenticated through their respective authentication credentials, whose retrieval has been facilitated by AS. Also once completed the EDHOC execution, 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 execution. 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>As defined in <xref target="edhoc-key-update"/>, C can (re-)post an access token to RS and contextually exchange two nonces N1 and N2, in order to efficiently use the EDHOC-KeyUpdate function rather than re-running the EDHOC protocol with RS. The use of nonces guarantees uniqueness of the new PRK_out derived by running EDHOC_KeyUpdate. Consequently, it ensures uniqueness of the AEAD (nonce, key) pairs later used by C and RS, when protecting their communications with the OSCORE Security Context established after updating PRK_out. Thus, it is REQUIRED that the exchanged nonces are not reused with the same pair of authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), even in case of reboot. When using this profile, it is RECOMMENDED to use a 64-bit long random numbers as a nonce's value. Considering the birthday paradox, the average collision for each nonce will happen after 2^32 messages, which amounts to considerably more issued access token than it would be expected for intended applications. If applications use something else, such as a counter, they need to guarantee that reboot and loss of state on either node does not yield reuse of nonces. If that is not guaranteed, nodes are susceptible to reuse of AEAD (nonce, key) pairs, especially since an on-path attacker can cause the use of a previously exchanged nonce N1 by replaying the corresponding C-to-RS message.</t>
      <t>When using this profile, it is RECOMMENDED that RS stores only one access token per client. The use of multiple access tokens for a single client increases the strain on RS, since it must consider every access token associated with the client and calculate the actual permissions that client has. Also, access tokens indicating different or disjoint permissions from each other may lead RS to enforce wrong permissions.  If one of the access tokens expires earlier than others, the resulting permissions may offer insufficient protection. Developers SHOULD avoid using multiple access tokens for a same client. Furthermore, RS MUST NOT store more than one access token per client per PoP-key (i.e., per client's authentication credential).</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general privacy considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the privacy considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="I-D.ietf-lake-edhoc"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>An unprotected response to an unauthorized request may disclose information about RS and/or its existing relationship with C. It is advisable to include as little information as possible in an unencrypted response. When an OSCORE Security Context already exists between C and RS, more detailed information may be included.</t>
      <t>Except for the case where C attempts to update its access rights, the (encrypted) access token is sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, if C uses the same single access token from multiple locations, it can risk being tracked by the access token's value even when the access token is encrypted.</t>
      <t>As defined in <xref target="edhoc-key-update"/>, C can (re-)post an access token to RS and contextually exchange two nonces N1 and N2, in order to efficiently use the EDHOC-KeyUpdate function rather than re-running the EDHOC protocol with RS. Since the exchanged nonces are also sent in the clear, using random nonces is best for privacy, as opposed to, e.g., a counter that might leak some information about C.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the EDHOC execution. That is, the EDHOC Connection Identifier C_I of C is going to be the OSCORE Recipient ID of C (the OSCORE Sender ID of RS). Conversely, the EDHOC Connection Identifier C_R of RS is going to be the OSCORE Recipient ID of RS (the OSCORE Sender ID of C). These OSCORE identifiers are privacy sensitive (see <xref section="12.8" sectionFormat="of" target="RFC8613"/>). In particular, they could reveal information about C, or may be used for correlating different requests from C, e.g., across different networks that C has joined and left over time. This can be mitigated if C and RS dynamically update their OSCORE identifiers, e.g., by using the method defined in <xref target="I-D.ietf-core-oscore-key-update"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with
the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE OAuth Profile Registry</name>
        <t>IANA is asked to add the following entry to the "ACE OAuth Profile"
Registry following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>Profile name: coap_edhoc_oscore</li>
          <li>Profile Description: Profile for delegating client authentication and
authorization in a constrained environment by establishing an OSCORE Security Context <xref target="RFC8613"/> between resource-constrained nodes, through the execution of the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>.</li>
          <li>Profile ID:  TBD (value between 1 and 255)</li>
          <li>Change Controller: IESG</li>
          <li>Reference:  [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry.</t>
        <ul spacing="normal">
          <li>Name: "edhoc_info"</li>
          <li>Parameter Usage Location: token request, token response</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "token_uploaded"</li>
          <li>Parameter Usage Location: token response</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>Name: "edhoc_info"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: map</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "token_uploaded"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: simple value "true" / simple type "false"</li>
          <li>Specification Document(s): [RFC-XXXX]</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>Claim Name: "edhoc_info"</li>
          <li>Claim Description: Information for EDHOC execution</li>
          <li>Change Controller: IETF</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "CBOR Web Token Claims" registry following the procedure specified in <xref target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>Claim Name: "edhoc_info"</li>
          <li>Claim Description: Information for EDHOC execution</li>
          <li>JWT Claim Name: "edhoc_info"</li>
          <li>Claim Key: TBD</li>
          <li>Claim Value Type(s): map</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</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>Confirmation Method Value: "x5bag"</li>
          <li>Confirmation Method Description: An unordered bag of X.509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "x5chain"</li>
          <li>Confirmation Method Description: An ordered chain of X.509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "x5t"</li>
          <li>Confirmation Method Description: Hash of an X.509 certificate</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "x5u"</li>
          <li>Confirmation Method Description: URI pointing to an X.509 certificate</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5b"</li>
          <li>Confirmation Method Description: An unordered bag of C509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5c"</li>
          <li>Confirmation Method Description: An ordered chain of C509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5t"</li>
          <li>Confirmation Method Description: Hash of an C509 certificate</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5u"</li>
          <li>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "kcwt"</li>
          <li>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "kccs"</li>
          <li>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
      </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>Confirmation Method Name: x5bag</li>
          <li>Confirmation Method Description: An unordered bag of X.509 certificates</li>
          <li>JWT Confirmation Method Name: "x5bag"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_X509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: x5chain</li>
          <li>Confirmation Method Description: An ordered chain of X.509 certificates</li>
          <li>JWT Confirmation Method Name: "x5chain"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_X509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: x5t</li>
          <li>Confirmation Method Description: Hash of an X.509 certificate</li>
          <li>JWT Confirmation Method Name: "x5t"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_CertHash</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: x5u</li>
          <li>Confirmation Method Description: URI pointing to an X.509 certificate</li>
          <li>JWT Confirmation Method Name: "x5u"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): uri</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5b</li>
          <li>Confirmation Method Description: An unordered bag of C509 certificates</li>
          <li>JWT Confirmation Method Name: "c5b"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_C509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5c</li>
          <li>Confirmation Method Description: An ordered chain of C509 certificates</li>
          <li>JWT Confirmation Method Name: "c5c"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_C509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5t</li>
          <li>Confirmation Method Description: Hash of an C509 certificate</li>
          <li>JWT Confirmation Method Name: "c5t"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_CertHash</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5u</li>
          <li>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of certificates</li>
          <li>JWT Confirmation Method Name: "c5u"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): uri</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: kcwt</li>
          <li>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim</li>
          <li>JWT Confirmation Method Name: "kcwt"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_Messages</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: kccs</li>
          <li>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim</li>
          <li>JWT Confirmation Method Name: "kccs"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): map / #6(map)</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-edhoc-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to add the following entry to the "EDHOC External Authorization Data" registry defined in <xref section="9.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <ul spacing="normal">
          <li>Label: TBD</li>
          <li>Message: EDHOC message_1</li>
          <li>Description: "ead_value" specifies an access token</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-edhoc-parameters">
        <name>EDHOC Information Registry</name>
        <t>It is requested that IANA create a new registry entitled "EDHOC Information" registry. The registry is to be created with registration policy Expert Review <xref target="RFC8126"/>. Guidelines for the experts are provided in <xref target="iana-expert-review"/>. It should be noted that in addition to the expert review, some portions of the registry require a specification, potentially on Standards Track, be supplied as well.</t>
        <t>The columns of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: A descriptive name that enables easier reference to this item. Because a core goal of this document is for the resulting representations to be compact, it is RECOMMENDED that the name be short.  </t>
            <t>
This name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts determine that there is a compelling reason to allow an exception. The name is not used in the CBOR encoding.</t>
          </li>
          <li>
            <t>CBOR Value: The value to be used as CBOR abbreviation of the item.  </t>
            <t>
The value MUST be unique. The value can be a positive integer, a negative integer or a string. Integer values between -256 and 255 and strings of length 1 are to be registered by Standards Track documents (Standards Action). Integer values from -65536 to -257 and from 256 to 65535 and strings of maximum length 2 are to be registered by public specifications (Specification Required). Integer values greater than 65535 and strings of length greater than 2 are subject to the Expert Review policy. Integer values less than -65536 are marked as private use.</t>
          </li>
          <li>CBOR Type: The CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</li>
          <li>Registry: The registry that values of the item may come from, if one exists.</li>
          <li>Description: A brief description of this item.</li>
          <li>Specification: A pointer to the public specification for the item, if one exists.</li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="fig-cbor-key-edhoc-params"/>. The "Specification" column for all of these entries will be this document and <xref target="I-D.ietf-lake-edhoc"/>.</t>
      </section>
      <section anchor="iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>The IANA registry established in this document is defined to use the registration policy Expert Review. This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason so they should be given substantial latitude.</t>
        <t>Expert reviewers should take into consideration the following points:</t>
        <ul spacing="normal">
          <li>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.</li>
          <li>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.</li>
          <li>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.</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt">
              <organization/>
            </author>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.  This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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="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">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general.  For some algorithms, additional properties are defined that carry parameters relating to keys as needed.  The COSE Key structure is used for transporting keys outside of COSE messages.  This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="3" month="February" year="2023"/>
            <abstract>
              <t>   This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a
   very compact and lightweight authenticated Diffie-Hellman key
   exchange with ephemeral keys.  EDHOC provides mutual authentication,
   forward secrecy, and identity protection.  EDHOC is intended for
   usage in constrained scenarios and a main use case is to establish an
   OSCORE security context.  By reusing COSE for cryptography, CBOR for
   encoding, and CoAP for transport, the additional code size can be
   kept very low.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-19"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc">
          <front>
            <title>Profiling EDHOC for CoAP and 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="23" month="November" year="2022"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol EDHOC can be run
   over CoAP and used by two peers to establish an OSCORE Security
   Context.  This document further profiles 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 subsequent 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-06"/>
        </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="10" month="January" year="2023"/>
            <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%.  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 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-05"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu">
              <organization/>
            </author>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) uses
   AEAD algorithms to ensure confidentiality and integrity of exchanged
   messages.  Due to known issues allowing forgery attacks against AEAD
   algorithms, limits should be followed on the number of times a
   specific key is used for encryption or decryption.  Among other
   reasons, approaching key usage limits requires updating the OSCORE
   keying material before communications can securely continue.

   This document defines how two OSCORE peers must follow these key
   usage limits and what steps they must take to preserve the security
   of their communications.  Also, it specifies Key Update for OSCORE
   (KUDOS), a lightweight procedure that two peers can use to update
   their keying material and establish a new OSCORE Security Context.
   Accordingly, it updates the use of the OSCORE flag bits in the CoAP
   OSCORE Option.  Finally, this document specifies a method that two
   peers can use to update their OSCORE identifiers, as a stand-alone
   procedure or embedded in a KUDOS execution.  Thus, this document
   updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-03"/>
        </reference>
      </references>
    </references>
    <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>
          <xref target="example-without-optimization"/> does not make use of use of any optimization.</li>
        <li>
          <xref target="example-with-optimization"/> makes use of the optimizations defined in this specification, hence reducing the roundtrips of the interactions between the Client and the Resource Server.</li>
        <li>
          <xref target="example-without-optimization-as-posting"/> does not make use of any optimization, but consider an alternative workflow where AS uploads the access token to RS.</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>AS knows the authentication credential AUTH_CRED_C of the Client C.</li>
        <li>The Client knows the authentication credential AUTH_CRED_AS of AS.</li>
        <li>AS knows the authentication credential AUTH_CRED_RS of RS.</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>In the Token Response from AS to the Client, where AUTH_CRED_RS is specified by the 'rs_cnf' parameter.</li>
        <li>In the access token, where AUTH_CRED_C is specified by the 'cnf' claim.</li>
      </ul>
      <t>Note that, even under the circumstances mentioned above, AUTH_CRED_C might rather be indicated by reference. This is possible if RS can effectively use such a reference from the access token to retrieve AUTH_CRED_C (e.g., from a trusted repository of authentication credentials reachable through a non-constrained link), and if AS is in turn aware of that.</t>
      <t>In any other case, it is otherwise possible to indicate both AUTH_CRED_C and AUTH_CRED_RS by reference, when performing the ACE access control workflow as well as later on when the Client and RS run EDHOC.</t>
      <section anchor="example-without-optimization">
        <name>Workflow without Optimizations</name>
        <t>The example below considers the simplest (though least efficient) interaction between the Client and RS. That is: first C uploads the access token to RS; then C and RS run EDHOC; and, finally, the Client accesses the protected resource at RS.</t>
        <artwork><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
M03 |--------------------------------->|                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M04 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     AUTH_CRED_C by reference     |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M05 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id : h'01',                |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |     * the 'cnf' claim specifies  |                              |
    |       AUTH_CRED_C by value       |                              |
    |     * the 'edhoc_info' claim     |                              |
    |       specifies the same as      |                              |
    |       'edhoc_info' above         |                              |
    |                                  |                              |

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

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

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

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

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

    |                                  |                              |
    |                                  |                              |

 // Time passes ...

    |                                  |                              |
    |                                  |                              |

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

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

    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M13 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M14 |<---------------------------------|                              |
    |  'rs_cnf' identifies             |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id : h'05',                |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |     * the 'cnf' claim specifies  |                              |
    |       AUTH_CRED_C by reference   |                              |
    |     * the 'edhoc_info' claim     |                              |
    |       specifies the same as      |                              |
    |       'edhoc_info' above         |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token upload to /authz-info     |                              |
    |  (unprotected message)           |                              |
M15 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  2.01 (Created)                  |                              |
    |  (unprotected message)           |                              |
M16 |<----------------------------------------------------------------|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M17 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
    |  (no access control is enforced) |                              |
M18 |<----------------------------------------------------------------|
    |  ID_CRED_R specifies             |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M19 |---------------------------------------------------------------->|
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M20 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M21 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </section>
      <section anchor="example-with-optimization">
        <name>Workflow with Optimizations</name>
        <t>The example below builds on the example in <xref target="example-without-optimization"/>, while additionally relying on the two following optimizations.</t>
        <ul spacing="normal">
          <li>The access token is not separately uploaded to the /authz-info endpoint at RS, but rather included in the EAD_1 field of EDHOC message_1 sent by the C to RS.</li>
          <li>The Client uses the EDHOC+OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/> is used, when running EDHOC both with AS and with RS.</li>
        </ul>
        <t>These two optimizations used together result in the most efficient interaction between the C and RS, as consisting of only two roundtrips to upload the access token, run EDHOC and access the protected resource at RS.</t>
        <t>Also, a further optimization is used upon uploading a second access token to RS, following the expiration of the first one. That is, after posting the second access token, the Client and RS do not run EDHOC again, but rather EDHOC-KeyUpdate() and EDHOC-Exporter() building on the same, previously completed EDHOC execution.</t>
        <artwork><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /token  |                              |
M03 |--------------------------------->|                              |
    |  * EDHOC message_3               |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Token request               |                              |
    |         'req_cnf' identifies     |                              |
    |         AUTH_CRED_C by reference |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M04 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id : h'01',                |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |     * the 'cnf' claim specifies  |                              |
    |       AUTH_CRED_C by value       |                              |
    |     * the 'edhoc_info' claim     |                              |
    |       specifies the same as      |                              |
    |       'edhoc_info' above         |                              |
    |                                  |                              |

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

    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M05 |---------------------------------------------------------------->|
    |  Access token specified in EAD_1 |                              |
    |                                  |                              |

 // 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               |                              |
    |      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 |<----------------------------------------------------------------|
    |                                  |                              |

 // Later on, the access token expires ...
 //  - The Client and RS delete their OSCORE Security Context
 //    but do not purge the EDHOC session used to derive it.
 //  - 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)      |                              |
M09 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M10 |<---------------------------------|                              |
    |  'rs_cnf' identifies             |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id : h'05',                |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |     * the 'cnf' claim specifies  |                              |
    |       AUTH_CRED_C by reference   |                              |
    |     * the 'edhoc_info' claim     |                              |
    |       specifies the same as      |                              |
    |       'edhoc_info' above         |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token upload to /authz-info     |                              |
    |  (unprotected message)           |                              |
M11 |---------------------------------------------------------------->|
    |   Payload {                      |                              |
    |     access_token : access token  |                              |
    |     nonce_1 : N1  // nonce       |                              |
    |   }                              |                              |
    |                                  |                              |
    |                                  |                              |
    |  2.01 (Created)                  |                              |
    |  (unprotected message)           |                              |
M12 |<----------------------------------------------------------------|
    |   Payload {                      |                              |
    |     nonce_2 : N2  // nonce       |                              |
    |   }                              |                              |
    |                                  |                              |

 // The Client and RS first run EDHOC-KeyUpdate(N1 | N2), and
 // then EDHOC-Exporter() to derive a new OSCORE Master Secret and
 // OSCORE Master Salt, from which a new OSCORE Security Context is
 // derived. The Sender/Recipient IDs are the same C_I and C_R from
 // the previous EDHOC execution

    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M13 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M14 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </section>
      <section anchor="example-without-optimization-as-posting">
        <name>Workflow without Optimizations (AS token posting)</name>
        <t>The example below builds on the example in <xref target="example-without-optimization"/>, but assumes that AS is uploading the access token to RS on behalf of C.</t>
        <t>In order to save roundtrips between the Client and RS, further, more efficient interactions can be seamlessly considered, e.g., as per the example in <xref target="example-with-optimization"/>.</t>
        <artwork><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |                                  | Establish secure association |
    |                                  | (e.g., OSCORE using EDHOC)   |
    |                                  |<---------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  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 upload to /authz-info |
M05 |                                  |----------------------------->|
    |                                  |  In the access token:        |
    |                                  |     * the 'cnf' claim        |
    |                                  |       specifies AUTH_CRED_C  |
    |                                  |       by value               |
    |                                  |     * the 'edhoc_info'       |
    |                                  |       claim specifies        |
    |                                  |         {                    |
    |                                  |           id : h'01',        |
    |                                  |           cipher_suites : 2, |
    |                                  |           methods: 3         |
    |                                  |         }                    |
    |                                  |                              |

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

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


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

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

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

    |                                  |                              |
    |                                  |                              |

 // Time passes ...

    |                                  |                              |
    |                                  |                              |

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

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

    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M13 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |                                  |  Token upload to /authz-info |
M14 |                                  |----------------------------->|
    |                                  |  In the access token:        |
    |                                  |     * the 'cnf' claim        |
    |                                  |       specifies AUTH_CRED_C  |
    |                                  |       by reference           |
    |                                  |     * the 'edhoc_info'       |
    |                                  |       claim specifies        |
    |                                  |         {                    |
    |                                  |           id : h'05',        |
    |                                  |           cipher_suites : 2, |
    |                                  |           methods : 3        |
    |                                  |         }                    |
    |                                  |                              |
    |                                  |                              |
    |                                  |  2.01 (Created)              |
M15 |                                  |<-----------------------------|
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M16 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'token_uploaded' = true         |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id : h'05',                |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M17 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
    |  (no access control is enforced) |                              |
M18 |<----------------------------------------------------------------|
    |  ID_CRED_R specifies             |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M19 |---------------------------------------------------------------->|
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M20 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M21 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </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>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</li>
        <li>Optionally, specify new grant types: Not specified</li>
        <li>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.</li>
        <li>Specify the communication protocol the client and RS must use: CoAP</li>
        <li>Specify the security protocol the client and RS must use to protect their communication: OSCORE</li>
        <li>Specify how the client and the RS mutually authenticate: Explicitly, by successfully executing the EDHOC protocol, after which a common OSCORE Security Context is established from the EDHOC session keying material. 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.</li>
        <li>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 execution 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 execution 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 execution with RS, through OSCORE algorithms and OSCORE symmetric keys derived from the completed EDHOC session.</li>
        <li>Specify a unique ace_profile identifier: coap_edhoc_oscore</li>
        <li>If introspection is supported, specify the communication and security protocol for introspection: HTTP/CoAP (+ TLS/DTLS/OSCORE)</li>
        <li>Specify the communication and security protocol for interactions between client and AS: HTTP/CoAP (+ TLS/DTLS/OSCORE)</li>
        <li>Specify if/how the authz-info endpoint is protected, including how error responses are protected: Not protected</li>
        <li>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_1 field of EDHOC message_1 (see <xref target="edhoc-exec"/>).</li>
      </ul>
    </section>
    <section anchor="sec-document-updates">
      <name>Document Updates</name>
      <t>RFC EDITOR: PLEASE REMOVE THIS SECTION.</t>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>Fixed semantics of the ead_value for transporting an Access Token in the EAD_1 field.</li>
          <li>Error handling aligned with EDHOC.</li>
          <li>Precise characterization of the EDHOC execution considered for EDHOC-KeyUpdate.</li>
          <li>Fixed message exchange examples.</li>
          <li>Added appendix with profile requirements.</li>
          <li>Updated references.</li>
          <li>Clarifications and editorial improvements.</li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/> and <contact fullname="Carsten Bormann"/> for their comments and feedback.</t>
      <t>Work on this document has in part been supported by the H2020 project SIFIS-Home (grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
1U5nuVn+iLNQlJXu8fhqt4PTtBoDHnl4NENLuL8JSPM4ABxIvFcojzNIsOZG
zsmAs3lBFcZEvKo5Ow83lsKXjKLyXql287+1x4b8PHxTLuSB1OcOU07K4ezf
h0vhXkMsYh2B3AriOiitWWpBrFp1A6TrwO1nrtZ7ot/v+0809dqrOumqNN1b
iXqr495SasCl74YK3sfqVliYJ4o3fNvcVOSHKtxD+cJMXC1GbJMiru8mJ0oG
nwY48FYQx0G3tgs9wut2aOZ88nlipNtVK32Rco9XqKl8qQL9PDhYhJdgQSdn
j7tY0p3phYTHhc4nB9X7ivLLPsCr444q1wZjSRCPKgpAthJRIU2ttYXR4Eq2
Ra9cmI17I/5YWZgwxKanW8rrLVBZfW5vcSeVz/ZhVKFGWUhkpHVv1AtsYe9E
DhT+1t2wlkea4K3JMLXjiBdlL0p8rU4sdKOH48IL6pXhugapfjmXhtRnFTvW
VlaT9oLV4GwBBJ06EH7y+mGrBuoWMCpIy3NGcJVCzBpn4UaVQUJQqUoV69uv
dlDfuMUsZtgm9j6bFs8c8uMgbhbGmQpirRHCtzwPmitpq5TXll2+WWMMg0f7
vSF8zRkOsHTQgKXOqwi9tKoHYivu6/gfNNCZ73G9nrBcqiEVqwx5sYUYVcox
mXBBOUoX8UTnYEtOxVBE2MEDq4RWx+zJiuWdjJJXis1pqvDUWNiJpgXkcKlA
p1wakwZHjcee5cOcaDLWay4rQemhUX280ks4UHxJVsxCuQfV+G1XpEro6wBv
PwHMKdUkMfg1NaSsqla0NfhNLZLILqiaSlpJPMo45a21uoN5tbL0pL/zqGRA
ivRk5aC2mlIZEmnzToXaWEWLZRHWs3Q0duyW9JWwoZvX2oE9UmvOr5crTMVR
ZdqeZ5elkjtd8Th1EAV7KKTIPeHegsotxMIHFVvxozVMtQK3SMAW+6RFqdTW
IHPXuSvzKmjk80nB7vo2BTw6urkmJvv3ygVBym3Fq+qTkc2arDi6qqdHBJ/b
kvs5PBhlUghva5COo++3+9u7HfzubRb3ngP4h9iAuS9w9gFLm+rbN1TsftNs
PX3jnojDmiOBT75h1nHIhaJNeWkncgzbaT/Z298Ld7Z3tsNwd3t/f3SwhwK8
bh4P1+o0jKlUjonukfJMg5/OO9V97019ajkT3Lj7Sbj7+Mnl48swHB4chNz0
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
SpJxKl2aRFZ3SY5Jk2x8CTYrTeDGLIpvMOW+92bhWBbCoUWvbehWx/Ti7R1/
xMziKIMP6SRahwctEl279ziWd0NH5NhvvXOfnFd787WEZ13rWtc498l5C8f5
XQqwlXeL5X9sse9rdRh+W1LJVlsX/jQpQUviuVYJWnKcWhpqOw7gUv+/8sGW
43wblCRYrKyz9Dj44zqvV4NHfmr9xUuOU2v6/62e07vj4N3+Mg7e+6S6RfDc
O3irx7lPqlsEzxrG+S04eO+T6tYdD/gvmVR3d3x322v1RR/Zlgunfxvbqu4c
af1ukvPWoFyv1Vt+n8z0dcapVa6zluNQMuX6OMC9ct08Tu8OKtdHMy4cbpUd
1yT0dTn20WUhxQ6ZiqjqKjBxYKVUFltsxV3v0qN3rYtPWZuzCO3PRRlVskpm
1lj4HCsGxlhcecxh/eQ7wVKL4144SZNo7fz67ngJt9caVbLopx0dfI3kJpXj
g04NcXi0znG6z1Fafpz7HKX7HKVF23d3cpS228RK3ecoLfj57ZmeMSX/Prdo
0Tj3pueF8NznFjWPc296bh7nPrdo0ThND37lce5QbtF6S3m8CW9pTTXcbAk8
89m6YHnu0JVUlxknSeEIXOzAEK92AhRc6YNl4WnkPr9dOrxDuVfrLZmyPjpk
+tlF+tn97dNPSV1l+wdHg+r4TStO8xU6YV7tcp8MdnVgyG4pcNNYO1jxFSPK
yxB7CKItJYtMeRjvy3BSSKePm+uYuoZYI5RqzMQ5jcGzjblp2Rn2EMwensKF
M6N1nTzjXnL65hmADoSLHVyc0lRqKTq21I8nXbuu+vvLy2hVl6P93bHg52vz
xrtjcW1Xv6I1b1zwsxCe1nkZ5a4yW9RGCa9wiTLvLGw0YzeIW3PuBlpyqQ8W
iajUcIti7XWEfXV/GbfT1oC7A6XZmHsS59hv0coUqO1r01XB/t1giuprZY6C
NgTmUTjFKlkUAq+6fXYD7pIUUpO5ZgR4q//thcsvHudYNTOuar62xDjSe0ou
oHmuc1M6S8HTeGTvLt+7T0toHuc+LWHhOHfKVryuce57Bi0c53e573fIx3Tf
M+hujdNkxpNYyRbjLNjOJeBpMksviZ+yWXq1cWwzsMNdlh7HT59YDZ4K8/ZK
4wRlY/2K49S4flai54qsg5XGqXD9rDSOuH5sz88K41Qaz+5jf5dfaftxmgzD
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
tfF8nEMfAgA=

-->

</rfc>
