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

<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>
    <?line 84?>

<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, over which C can access protected resources of RS according to the access rights specified in the access token.</t>
      <t>An authentication credential can be a raw public key, e.g., encoded as a CWT Claims Set (CCS, <xref target="RFC8392"/>); or a public key certificate, e.g., encoded as an X.509 certificate <xref target="RFC5280"/> or as a CBOR encoded X.509 certificate (C509, <xref target="I-D.ietf-cose-cbor-encoded-cert"/>); or a different type of data structure containing the public key of the peer in question.</t>
      <t>The ACE protocol establishes what those authentication credentials are, and may transport the actual authentication credentials by value or uniquely refer to them. If an authentication credential is pre-provisioned or can be obtained over less constrained links, then it suffices that ACE provides a unique reference such as a certificate hash (e.g., by using the COSE header parameter "x5t", see <xref target="RFC9360"/>). This is in the same spirit as EDHOC, where the authentication credentials may be transported or referenced in the ID_CRED_x message fields (see 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.
<?line -6?>
        </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 associated to OSCORE Security Contexts and to authorization information for all clients that RS is communicating with. The authorization information is used to enforce polices for processing 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 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 option cannot be used for the update of access rights only.</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 with the established OSCORE Security Context, for as long as the access token is valid. 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.</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.</t>
          </li>
        </ul>
        <t>When receiving an Access Token response including the "rs_cnf" parameter, C checks whether it is already storing the authentication credential of RS, namely AUTH_CRED_RS, specified in "rs_cnf" by value or reference.</t>
        <t>If this is not the case, C retrieves AUTH_CRED_RS, e.g., from the "rs_cnf" parameter if the authentication credential is specified therein by value, or from a further trusted source pointed to by the AUTH_CRED_RS identifier included in the "rs_cnf" parameter. After that, C validates the actual AUTH_CRED_RS. In case of successful validation, C stores AUTH_CRED_RS as a valid authentication credential. Otherwise, C MUST delete the access token.</t>
        <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 value   | CBOR | Registry | Description        |
|               |              | Type |          |                    |
+---------------+--------------+------+----------+--------------------+
| id            | bstr         |  0   |          | Identifier of      |
|               |              |      |          | EDHOC execution    |
+---------------+--------------+------+----------+--------------------+
| methods       | int /        |      | EDHOC    | Set of supported   |
|               | array of int |  1   | Method   | EDHOC methods      |
|               |              |      | Type     |                    |
|               |              |      | Registry |                    |
+---------------+--------------+------+----------+--------------------+
| cipher_suites | int /        |      | EDHOC    | Set of supported   |
|               | array of int |  2   | Cipher   | EDHOC cipher       |
|               |              |      | Suites   | suites             |
|               |              |      | Registry |                    |
+---------------+--------------+------+----------+--------------------+
| message_4     | simple value |      |          | Support for EDHOC  |
|               | "true" /     |  3   |          | message_4          |
|               | simple value |      |          |                    |
|               | "false"      |      |          |                    |
+---------------+--------------+------+----------+--------------------+
| comb_req      | simple value |      |          | Support for the    |
|               | "true" /     |  4   |          | EDHOC + OSCORE     |
|               | simple value |      |          | combined request   |
|               | "false"      |      |          |                    |
+---------------+--------------+------+----------+--------------------+
| uri_path      | tstr         |  5   |          | URI-path of the    |
|               |              |      |          | EDHOC resource     |
+---------------+--------------+------+----------+--------------------+
| osc_ms_len    | uint         |      |          | Length in bytes of |
|               |              |  6   |          | the OSCORE Master  |
|               |              |      |          | Secret to derive   |
+---------------+--------------+------+----------+--------------------+
| osc_salt_len  | uint         |      |          | Length in bytes of |
|               |              |  7   |          | the OSCORE Master  |
|               |              |      |          | Salt to derive     |
+---------------+--------------+------+----------+--------------------+
| osc_version   | uint         |  8   |          | 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>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,     ; message_4
   ? 4 => true / false,     ; comb_req
   ? 5 => tstr,             ; uri_path
   ? 6 => uint,             ; osc_ms_len
   ? 7 => uint,             ; osc_salt_len
   ? 8 => uint,             ; osc_version
   * 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 is in general not protected, except in the case of updating the access rights described below.</t>
        <t>The Client provisioning of an initial access token to the RS 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>The same procedure of C provisioning a new access token to RS applies to other cases when an OSCORE Security Context shared between C and RS has been deleted, for example:</t>
        <ul spacing="normal">
          <li>The old access token has expired and thus the token series is terminated.</li>
          <li>Lack of storage. This situation can be detected by C when it receives a 4.01 (Unauthorized) response from RS, e.g., as an "AS Request Creation Hints" message, see <xref section="5.3" sectionFormat="of" target="RFC9200"/>.</li>
          <li>The EDHOC session from which this OSCORE Security Context was derived has become invalid, e.g., due to the expiration of an authentication credential.</li>
          <li>Other security policy.</li>
        </ul>
        <t>A different exceptional case is when there is still a valid OSCORE Security Context but it needs to be updated, e.g., due to a policy limiting its use in terms of time or amount of processed data, or to the imminent exhaustion of the OSCORE Sender Sequence Number space.
In this case C and RS SHALL attempt to run the KUDOS key update protocol <xref target="I-D.ietf-core-oscore-key-update"/> which is a lightweight alternative independent of ACE and EDHOC that does not require the posting of an access token. If KUDOS is not supported, then the Client and RS falls back to EDHOC as outlined above.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS 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="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>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 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>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>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>Reference: [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>Reference: [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>Reference: [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>Reference: [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"/>
            <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="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="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="7" month="July" 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-20"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc">
          <front>
            <title>Using EDHOC with 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="13" month="March" year="2023"/>
            <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 details this use of the EDHOC protocol, by
   specifying a number of additional and optional mechanisms.  These
   especially include an optimization approach for combining the
   execution of EDHOC with the first OSCORE transaction.  This
   combination reduces the number of round trips required to set up an
   OSCORE Security Context and to complete an OSCORE transaction using
   that Security Context.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-07"/>
        </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"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="I-D.ietf-core-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="13" month="March" year="2023"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.  Also, this document
   defines a procedure that two endpoints can use to update their OSCORE
   identifiers, run either stand-alone or during a KUDOS execution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-04"/>
        </reference>
      </references>
    </references>
    <?line 963?>

<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"/> considers 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 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 C and RS, as consisting of only two roundtrips to upload the access token, run EDHOC and access 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+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 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </section>
      <section anchor="example-without-optimization-as-posting">
        <name>Alternative Workflow (AS token posting)</name>
        <t>The example below builds on the example in <xref target="example-with-optimization"/>, but assumes that AS is uploading the access token to RS on behalf of C.</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 upload to /authz-info |
M04 |                                  |----------------------------->|
    |                                  |  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)              |
M05 |                                  |<-----------------------------|
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M06 |<---------------------------------|                              |
    |  '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) |                              |
M07 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M08 |<----------------------------------------------------------------|
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /r      |                              |
M09 |---------------------------------------------------------------->|
    |  * 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)      |                              |
M10 |<----------------------------------------------------------------|
    |                                  |                              |

]]></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:
H4sIAAAAAAAAA+19a1fbWJbod36FLllrAlW2AwTyoLp6hjKkQ3dSZDDp6lmT
WSxhy6CKLHkkOYRKZf7Kvb9iPt1Pt//Y3a/zko5kmzgpajqseoAtncc+++z3
o9vtrr3bDx6urZVxmUT7wdH0KppEeZgEh/F4HEfd51GSTMI0OHkX5UH/ZHAU
bBwdPj/pbwZhOgpOLn6OhmUwiIazPC5vgnEGD2VpUeZhnEaj4Ch9F+dZOonS
sgg2Tgb9k9OjzeBVno3jJKKnD2blFXwbD8MyzlIaFD/K8vgX/qR9yIP+0eZa
eHGRR7ANWhivi2YKpjJRNg7gwbVRNkzDCexylIfjshtH5bgbDqNuNLrKht2s
GGZ51JV3uls7a7Cm6DLLb/aDohytFbOLSVwUsKbyZgqDHB+dPVtbi6f5flDm
s6Lc2dp6Ci+FeRTua4isXWf528s8m033cQnBT/BnnF4Gf8KP1t5GN/D9CMZK
yyhPo7J7iCtbWytK2MV5mGQpTHQTFWvTeD/49zIbdoIiy8s8Ghfw280Ef/mP
tbVhNoJB94MZbOjJ2lpIANxf664F8BOnxX7wpx4sKYFBo5w+ZDj86e//ncPZ
Ot9kOQx0lMfDoshS+iSahHGyHwAkwrRXyLP/EskjvWE2sWf6cw/ON5r9/X8H
L8Oy1IPwhH/OrlLv142z/gxv9CbyqDupPevLXnAWJ9kwtCZ7GebDzP6YJjk9
HhzZE0zwqV5JT/1LHsMGnYFPe8Hzv//3ZTJLR9bQp/HbMB+533hHz+nB3lVG
z6nx0yyHLcXvon149vRZf2d7+6n8urfzZEt+fbL9eFd+ffR4Vz3weGdvR/26
p197/GTLvLbzSP368Kl69smj7S3z60P16+PdHfPrY/XrUz3b0x09Lvy6bX5V
Izx9+IgeOO4e9uhCJeFbuVHOx3S35Ir5vi2i7vAiy7tRCsgcjbrDKC/34Xql
4wqsds3inuzuqp0+3dbbe7rNG/FODTeuO5uO4GLD4Eh3yht8dnD04tl+sP7v
8Hr3b/DzH+uABN1uEF4g3RnCjTy7iosACMgMCU9QTKNhDOSxCEJNZJBQAS1b
BUULxjmgGZKO3tpxCdc6TuJfYLIlqDNOEg6v4ugdkpvJrJzBW6G7tIuovI4i
XGJwgksMdnpbQT+JcYe47NOoyGb5MAICkcMEHfowLoOLOB0V+FZlvGEejfBP
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
rr7e+Hf4CeotKXdYtKcaWmWafTXJS2Ym/+X/QTYBE877ARxr+zkd0Di/zh1n
3iO/qnGqfVEBPg/INrToOC+3toNfu/N+/rjoela1r1WNU22atPQ4L7d2gl//
MBdAi67n+FDogkmgLW6zL/iRcb53xZrlx3F6GtQeXHyc9ge/8Die3sDL3ouH
q7wX6tyPV3Tux865G8L0j37uZ3YSKZ06841lx9molYUVXNpccJyXW7urxJ/7
sCWWMj8Zf2y0qeHA7/3cRaK/9TgrOPe9VfILrVyYuJJb7SsIGpS45cdpf3DB
ce6Hw+hc7Gj3gZbddhzrp1ab4Jbj+B9ccJz7JsXTOrP9pceBnw+rWA/9xKNg
P7i6v7V9v/NJ43ArZGmlDEPumOGWGkd1yd4PHn7Cej62PrjMelYwjkfb33ce
XHw931RtAPbdX2pfFUpvX/jl12MjNi9ryXECax+lKs0UFkuvp3LJyNhhHlxm
nLYH542zFjx4ELxSdfu5QRSHDtttcFwVFHtX21SYxhCjUxGR5Y2CMsQWMo2w
8HVziVZ63TJQH1ArLf02ezDytc/DalU7iMwpybXMOBt2rS+Xyy42zsutRwuI
WHMlsC+OEmhOdlGh//vEhGCHmiv0OTJ0s/7gouPMQYUFMOHxIkLXPJnsrgq3
n2zkkYc20qxqZ6TidFyddnMROD+5UzduxeOswFj0dJV4+HmNRadfjUXy0Ccb
i+ShT79f21urvF9fjU5fZpwDJfX7HAtLjPPJxgc1ThsSLjLOy+1FnAIL4+G8
n0X3ddpo3llunE838mwv5BSY87NiyfOFuAc7da+Zqujd6/Xo0aBrh22oip+q
fqVV5bNeWTgd8QgBRmZe2g1hpQuBbvAjfXbjEsU7ncCBWp8aQb0RS/9iXQtV
JYlg0C42U5Y1c2tQjDJzPa6qPw83UVKjS0M/DgzhyqvYebO+//qY3JR4iUHv
HGWi9Z5hsMQ0JLcnHv0dXaWFicVbFbFdbTb0XZCiN5wDuei9luAASZvxBzmY
Wad5zHlV05AS3Uhz6sixYntQjDVkJ31IVabJv02v1wrL6/YocVHMrHhaDktR
ISWng01eOwYzLxnA8pkU+bvgK9leqa9thb6Sr2JPyzh3x+eyvftZfC5+9FkG
zo2BQEuO0/7gguN89bnMXc/qfS57X30u3vWsYJzfg8/FvvDLr+erz+VzjnN3
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
AA==

-->

</rfc>
