<?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.14 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.2 -->
  <front>
    <title abbrev="EDHOC and OSCORE profile of ACE">Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-00"/>
    <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="2022" month="November" day="11"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework.
It utilizes Ephemeral Diffie-Hellman Over COSE (EDHOC) for achieving mutual authentication between an OAuth 2.0 Client and Resource Server, and it binds an authentication credential of the Client to an OAuth 2.0 access token.
EDHOC also establishes an Object Security for Constrained RESTful Environments (OSCORE) Security Context, which is used to secure communications when accessing protected resources according to the authorization information indicated in the access token.
A resource-constrained server can use this profile to delegate management of authorization information to a trusted host with less severe limitations regarding processing power and memory.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Authentication and Authorization for Constrained Environments Working Group mailing list (ace@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/EricssonResearch/ace-edhoc-oscore-profile"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the "coap_edhoc_oscore" profile of the ACE framework <xref target="I-D.ietf-ace-oauth-authz"/>. 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="I-D.ietf-ace-oscore-profile"/>, 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="I-D.ietf-ace-oauth-authz"/>, this document recommends the use of CBOR Web Tokens (CWTs) <xref target="RFC8392"/> as access tokens.</t>
      <t>The authentication and authorization processing requires C and RS to have access to each other's authentication credentials. C can obtain the authentication credential of RS from AS together with the access token. RS can obtain the authentication credential of C together with the associated access token in different ways. If RS successfully verifies the access token, then C and RS run the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="I-D.ietf-lake-edhoc"/> using the authentication credentials.</t>
      <t>Once the EDHOC execution is completed, C and RS are mutually authenticated and can derive an OSCORE Security Context to protect subsequent communications.</t>
      <t>An authentication credential can be a raw public key, e.g., encoded as a CWT Claims Set (CCS, <xref target="RFC8392"/>); or a public key certificate, e.g., encoded as an X.509 certificate or as a CBOR encoded X.509 certificate (C509, <xref target="I-D.ietf-cose-cbor-encoded-cert"/>); or a different type of data structure containing the public key of the peer in question.</t>
      <t>The ACE protocol establishes what those authentication credentials are, and may transport the actual authentication credentials by value or uniquely refer to them. If an authentication credential is pre-provisioned or can be obtained over less constrained links, then it suffices that ACE provides a unique reference such as a certificate hash (e.g., by using the COSE header parameter "x5t", see <xref target="I-D.ietf-cose-x509"/>). This is in the same spirit as EDHOC, where the authentication credentials may be transported or referenced in the ID_CRED_x message fields (see Section 3.5.3 of <xref target="I-D.ietf-lake-edhoc"/>).</t>
      <t>In general, AS and RS are likely to have trusted access to each other's authentication credentials, since AS acts on behalf of RS as per the trust model of ACE. Also, AS needs to have some information about C, including the relevant authentication credential, in order to identify C when it requests an access token and to determine what access rights it can be granted. However, the authentication credential of C may potentially be conveyed (or uniquely referred to) within the request for access which C makes to AS.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>Certain security-related terms such as "authentication", "authorization", "confidentiality", "(data) integrity", "Message Authentication Code (MAC)", "Hash-based Message Authentication Code (HMAC)", and "verify" are taken from <xref target="RFC4949"/>.</t>
        <t>RESTful terminology follows HTTP <xref target="RFC9110"/>.</t>
        <t>Readers are expected to be familiar with the terms and concepts defined in CoAP <xref target="RFC7252"/>, OSCORE <xref target="RFC8613"/> and EDHOC <xref target="I-D.ietf-lake-edhoc"/>.</t>
        <t>Readers are also expected to be familiar with the terms and concepts of the ACE framework described in <xref target="I-D.ietf-ace-oauth-authz"/> and in <xref target="I-D.ietf-ace-oauth-params"/>.</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="I-D.ietf-ace-oauth-authz"/>, 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="I-D.ietf-ace-oauth-authz"/>. The term "claim" is used in this document with the same semantics as in <xref target="I-D.ietf-ace-oauth-authz"/>, 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="I-D.ietf-ace-oauth-authz"/> together with the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. By doing so, a client (C) and a resource server (RS) generate an OSCORE Security Context <xref target="RFC8613"/> associated with authorization information, and use that Security Context to protect their communications. The parameters needed by C to negotiate the use of this profile with the authorization server (AS), as well as the OSCORE setup process, are described in detail in the following sections.</t>
      <t>RS maintains a collection of authentication credentials. These are related to OSCORE Security Contexts associated with authorization information for all the clients that RS is communicating with. The authorization information is maintained as policy that is used as input to the processing of requests from those clients.</t>
      <t>This profile specifies how C requests an access token from AS for the resources it wants to access on an RS, by sending an access token request to the /token endpoint, as specified in <xref section="5.8" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/>. 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="I-D.ietf-ace-oauth-authz"/> MAY alternatively be used, such as TLS <xref target="RFC8446"/> or DTLS <xref target="RFC9147"/>.</t>
      <t>If C has retrieved an access token, there are two different options for C to upload it to RS, as further detailed in this document.</t>
      <ol spacing="normal" type="1"><li>C posts the access token to the /authz-info endpoint by using the mechanisms specified in <xref section="5.8" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/>. If the access token is valid, RS responds to the request with a 2.01 (Created) response, after which C initiates the EDHOC protocol by sending EDHOC message_1 to RS. The communication with the /authz-info endpoint is not protected, except for the update of access rights.</li>
        <li>C initiates the EDHOC protocol by sending EDHOC message_1 to RS, specifying the access token as External Authorization Data (EAD) in the EAD_1 field of EDHOC message_1 (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the access token is valid and the processing of EDHOC message_1 is successful, RS responds with EDHOC message_2, thus continuing the EDHOC protocol. This alternative cannot be used for the update of access rights.</li>
      </ol>
      <t>When running the EDHOC protocol, C uses the authentication credential of RS specified by AS together with the access token, while RS uses the authentication credential of C bound to and specified within the access token. If C and RS complete the EDHOC execution successfully, they are mutually authenticated and they derive an OSCORE Security Context as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. Also, RS associates the two used authentication credentials and the completed EDHOC execution with the derived Security Context. The latter is in turn associated with the access token and the access rights of C specified therein.</t>
      <t>From then on, C effectively gains authorized and secure access to protected resources on RS, for as long as the access token is valid. Until then, C can communicate with RS by sending a request protected with the established OSCORE Security Context above. The Security Context is discarded when an access token (whether the same or a different one) is used to successfully derive a new Security Context for C, either by exchanging nonces and using the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>), or by re-running EDHOC. In particular, when supporting this profile, both C and RS MUST support the EDHOC-KeyUpdate function, and they MUST use it instead of re-running EDHOC if the outcome of their previously completed EDHOC execution is still valid.</t>
      <t>After the whole procedure has completed and while the access token is valid, C can contact AS to request an update of its access rights, by sending a similar request to the /token endpoint. This request also includes an identifier, which allows AS to find the data it has previously shared with C. This specific identifier, encoded as a byte string, is assigned by AS to a "token series" (see <xref target="terminology"/>). Upon a successful update of access rights, the new issued access token becomes the latest in its token series. When the latest access token of a token series becomes invalid (e.g., when it expires or gets revoked), that token series ends.</t>
      <t>An overview of the profile flow for the "coap_edhoc_oscore" profile is given in <xref target="protocol-overview"/>. The names of messages coincide with those of <xref target="I-D.ietf-ace-oauth-authz"/> 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="I-D.ietf-ace-oauth-params"/> 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="I-D.ietf-ace-oauth-authz"/>.</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="I-D.ietf-ace-oauth-authz"/>), 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="I-D.ietf-ace-oauth-authz"/>.</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="I-D.ietf-ace-oauth-authz"/>. 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="I-D.ietf-ace-oauth-authz"/>.</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="I-D.ietf-ace-oauth-params"/>. 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 "access_token", which MUST encode the CBOR simple value "false" (0xf4).</li>
          <li>
            <t>AS does not provide the access token to C. Rather, AS uploads the access token to the /authz-info endpoint at RS, exactly like C would do, and as defined in <xref target="c-rs"/> and <xref target="rs-c"/>. Then, when replying to C with the access token response as defined above, the response MUST NOT include the parameter "access_token", and MUST include the parameter "token_uploaded" encoding the CBOR simple value "true" (0xf5). This is shown by the example in <xref target="example-without-optimization-as-posting"/>.  </t>
            <t>
Note that, in case C and RS have already completed an EDHOC execution leveraging a previous access token series, using this approach implies that C and RS have to re-run the EDHOC protocol. That is, they cannot more efficiently make use of the EDHOC-KeyUpdate function, as defined in <xref target="edhoc-key-update"/>, see <xref target="c-rs-comm"/>.  </t>
            <t>
Also note that this approach is not applicable when issuing access tokens following the first one in the same token series, i.e., when updating access rights.</t>
          </li>
        </ul>
        <t>When CWTs are used as access tokens, EDHOC_Information MUST be transported in the "edhoc_info" claim, defined in <xref target="iana-token-cwt-claims"/>.</t>
        <t>Since the access token does not contain secret information, only its integrity and source authentication are strictly necessary to ensure. Therefore, AS can protect the access token with either of the means discussed in <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/>. Nevertheless, when using this profile, it is RECOMMENDED that the access token is a CBOR web token (CWT) protected with COSE_Encrypt/COSE_Encrypt0 as specified in <xref target="RFC8392"/>.</t>
        <t><xref target="fig-token-response"/> shows an example of an AS response. The "rs_cnf" parameter specifies the authentication credential of RS, as an X.509 certificate transported by value in the "x5chain" field. The access token and the authentication credential of RS have been truncated for readability.</t>
        <figure anchor="fig-token-response">
          <name>Example of AS-to-C Access Token response with EDHOC and OSCORE profile.</name>
          <artwork><![CDATA[
   Header: Created (Code=2.01)
      Content-Type: "application/ace+cbor"
      Payload:
      {
        "access_token" : h'8343a1010aa2044c53 ...
         (remainder of access token (CWT) omitted for brevity)',
        "ace_profile" : "coap_edhoc_oscore",
        "expires_in" : "3600",
        "rs_cnf" : {
          "x5chain" : h'3081ee3081a1a00302 ...'
          (remainder of the access credential omitted for brevity)'
        }
        "edhoc_info" : {
          "id" : h'01',
          "methods" : [0, 1, 2, 3],
          "cipher_suites": 0
        }
      }
]]></artwork>
        </figure>
        <t><xref target="fig-token"/> shows an example CWT Claims Set, including the relevant EDHOC parameters in the "edhoc_info" claim. The "cnf" claim specifies the authentication credential of C, as an X.509 certificate transported by value in the "x5chain" field. The authentication credential of C has been truncated for readability.</t>
        <figure anchor="fig-token">
          <name>Example of CWT Claims Set with EDHOC parameters.</name>
          <artwork><![CDATA[
   {
    "aud" : "tempSensorInLivingRoom",
    "iat" : "1360189224",
    "exp" : "1360289224",
    "scope" :  "temperature_g firmware_p",
    "cnf" : {
      "x5chain" : h'3081ee3081a1a00302 ...'
    }
    "edhoc_info" : {
      "id" : h'01',
      "methods" : [0, 1, 2, 3],
      "cipher_suites": 0
    }
  }
]]></artwork>
        </figure>
        <t>If C has requested an update to its access rights using the same OSCORE Security Context, which is valid and authorized, then:</t>
        <ul spacing="normal">
          <li>The response MUST NOT include the "rs_cnf" parameter.</li>
          <li>The EDHOC_Information in the response MUST include only the "id" field, specifying the identifier of the token series.</li>
          <li>The EDHOC_Information in the access token MUST include only the "id" field, specifying the identifier of the token series. In particular, if the access token is a CWT, the "edhoc_info" claim MUST include only the "id" field.</li>
        </ul>
        <t>This identifier of the token series needs to be included in the new access token in order for RS to identify the old access token to supersede, as well as the OSCORE Security Context already shared between C and RS and to be associated with the new access token.</t>
      </section>
      <section anchor="edhoc-parameters-object">
        <name>The EDHOC_Information</name>
        <t>An EDHOC_Information is an object including information that guides two peers towards executing the EDHOC protocol. In particular, the EDHOC_Information is defined to be serialized and transported between nodes, as specified by this document, but it can also be used by other specifications if needed.</t>
        <t>The EDHOC_Information can either be encoded as a JSON object or as a CBOR map.  The set of common fields that can appear in an EDHOC_Information can be found in the IANA "EDHOC Information" registry (see <xref target="iana-edhoc-parameters"/>), defined for extensibility, and the initial set of parameters defined in this document is specified below. All parameters are optional.</t>
        <t><xref target="fig-cbor-key-edhoc-params"/> provides a summary of the EDHOC_Information parameters defined in this section.</t>
        <figure anchor="fig-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters</name>
          <artwork align="center"><![CDATA[
+---------------+------+--------------+----------+--------------------+
| Name          | CBOR | CBOR value   | Registry | Description        |
|               | Type |              |          |                    |
+---------------+------+--------------+----------+--------------------+
| id            | 0    | bstr         |          | Identifier of      |
|               |      |              |          | EDHOC execution    |
+---------------+------+--------------+----------+--------------------+
| methods       | 1    | int /        | EDHOC    | Set of supported   |
|               |      | array of int | Method   | EDHOC methods      |
|               |      |              | Type     |                    |
|               |      |              | Registry |                    |
+---------------+------+--------------+----------+--------------------+
| cipher_suites | 2    | int /        | EDHOC    | Set of supported   |
|               |      | array of int | Cipher   | EDHOC cipher       |
|               |      |              | Suites   | suites             |
|               |      |              | Registry |                    |
+---------------+------+--------------+----------+--------------------+
| key_update    | 3    | simple value |          | Support for the    |
|               |      | "true" /     |          | EDHOC-KeyUpdate    |
|               |      | simple value |          | function           |
|               |      | "false"      |          |                    |
+---------------+------+--------------+----------+--------------------+
| message_4     | 4    | simple value |          | Support for EDHOC  |
|               |      | "true" /     |          | message_4          |
|               |      | simple value |          |                    |
|               |      | "false"      |          |                    |
+---------------+------+--------------+----------+--------------------+
| comb_req      | 5    | simple value |          | Support for the    |
|               |      | "true" /     |          | EDHOC + OSCORE     |
|               |      | simple value |          | combined request   |
|               |      | "false"      |          |                    |
+---------------+------+--------------+----------+--------------------+
| uri_path      | 6    | tstr         |          | URI-path of the    |
|               |      |              |          | EDHOC resource     |
+---------------+------+--------------+----------+--------------------+
| osc_ms_len    | 7    | uint         |          | Length in bytes of |
|               |      |              |          | the OSCORE Master  |
|               |      |              |          | Secret to derive   |
+---------------+------+--------------+----------+--------------------+
| osc_salt_len  | 8    | uint         |          | Length in bytes of |
|               |      |              |          | the OSCORE Master  |
|               |      |              |          | Salt to derive     |
+---------------+------+--------------+----------+--------------------+
| osc_version   | 9    | uint         |          | OSCORE version     |
|               |      |              |          | number to use      |
+---------------+------+--------------+----------+--------------------+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>id: This parameter identifies an EDHOC execution and is encoded as a byte string. In JSON, the "id" value is a Base64 encoded byte string. In CBOR, the "id" type is a byte string, and has label 0.</li>
          <li>methods: This parameter specifies a set of supported EDHOC methods (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single EDHOC method, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC method. In JSON, the "methods" value is an integer or an array of integers. In CBOR, the "methods" is an integer or an array of integers, and has label 1.</li>
          <li>cipher_suites: This parameter specifies a set of supported EDHOC cipher suites (see <xref section="3.6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). If the set is composed of a single EDHOC cipher suite, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one EDHOC cipher suite. In JSON, the "cipher_suites" value is an integer or an array of integers. In CBOR, the "cipher_suites" is an integer or an array of integers, and has label 2.</li>
          <li>key_update: This parameter indicates whether the EDHOC-KeyUpdate function (see <xref section="4.2.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) is supported. In JSON, the "key_update" value is a boolean. In CBOR, "key_update" is the simple value "true" or "false", and has label 3.</li>
          <li>message_4: This parameter indicates whether the EDHOC message_4 (see <xref section="5.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) is supported. In JSON, the "message_4" value is a boolean. In CBOR, "message_4" is the simple value "true" or "false", and has label 4.</li>
          <li>comb_req: This parameter indicates whether the combined EDHOC + OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>) is supported. In JSON, the "comb_req" value is a boolean. In CBOR, "comb_req" is the simple value "true" or "false", and has label 5.</li>
          <li>uri_path: This parameter specifies the path component of the URI of the EDHOC resource where EDHOC messages have to be sent as requests. In JSON, the "uri_path" value is a string. In CBOR, "uri_path" is text string, and has label 6.</li>
          <li>osc_ms_len: This parameter specifies the size in bytes of the OSCORE Master Secret to derive after the EDHOC execution, as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In JSON, the "osc_ms_len" value is an integer. In CBOR, the "osc_ms_len" type is unsigned integer, and has label 7.</li>
          <li>osc_salt_len: This parameter specifies the size in bytes of the OSCORE Master Salt to derive after the EDHOC execution, as per <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In JSON, the "osc_salt_len" value is an integer. In CBOR, the "osc_salt_len" type is unsigned integer, and has label 8.</li>
          <li>osc_version: This parameter specifies the OSCORE Version number that the two EDHOC peers have to use when using OSCORE. For more information about this parameter, see <xref section="5.4" sectionFormat="of" target="RFC8613"/>. In JSON, the "osc_version" value is an integer. In CBOR, the "osc_version" type is unsigned integer, and has label 9.</li>
        </ul>
        <t>An example of JSON EDHOC_Information is given in <xref target="fig-edhoc-info-json"/>.</t>
        <figure anchor="fig-edhoc-info-json">
          <name>Example of JSON EDHOC\_Information</name>
          <artwork><![CDATA[
   "edhoc_info" : {
       "id" : b64'AQ==',
       "methods" : 1,
       "cipher_suites" : 0
   }
]]></artwork>
        </figure>
        <t>The CDDL grammar describing the CBOR EDHOC_Information is:</t>
        <artwork><![CDATA[
EDHOC_Information = {
   ? 0 => bstr,             ; id
   ? 1 => int / array,      ; methods
   ? 2 => int / array,      ; cipher_suites
   ? 3 => true / false,     ; key_update
   ? 4 => true / false,     ; message_4
   ? 5 => true / false,     ; comb_req
   ? 6 => tstr,             ; uri_path
   ? 7 => uint,             ; osc_ms_len
   ? 8 => uint,             ; osc_salt_len
   ? 9 => uint,             ; osc_version
   * int / tstr => any
}
]]></artwork>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>The following subsections describe the exchanges between C and RS, which comprise the token uploading to RS, and the execution of the EDHOC protocol. Note that, as defined in <xref target="as-c"/>, AS may not have provided C with the access token, and have rather uploaded the access token to the /authz-info endpoint at RS on behalf of C.</t>
      <t>In order to upload the access token to RS, C can send a POST request to the /authz-info endpoint at RS. This is detailed in <xref target="c-rs"/> and <xref target="rs-c"/>, and it is shown by the example in <xref target="example-without-optimization"/>.</t>
      <t>Alternatively, C can upload the access token while executing the EDHOC protocol, by transporting the access token in the EAD_1 field of the first EDHOC message sent to RS. This is further discussed in <xref target="edhoc-exec"/>, and it is shown by the example in <xref target="example-with-optimization"/>.</t>
      <t>In either case, following the uploading of the access token, C and RS run the EDHOC protocol to completion, by exchanging POST requests and related responses to a dedicated EDHOC resource at RS (see <xref target="edhoc-exec"/>). Once completed the EDHOC execution, C and RS have agreed on a common secret key PRK_out (see <xref section="4.1.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), from which they establish an OSCORE Security Context (see <xref target="edhoc-exec"/>). After that, C and RS use the established OSCORE Security Context to protect their communications when accessing protected resources at RS, as per the access rights specified in the access token (see <xref target="access-rights-verif"/>).</t>
      <t>Note that, by means of the respective authentication credentials, C and RS are mutually authenticated once they have successfully completed the execution of the EDHOC protocol.</t>
      <t>As to proof-of-possession, RS always gains knowledge that C has PRK_out at the end of the successful EDHOC execution. Conversely, C gains knowledge that RS has PRK_out either when receiving and successfully verifying the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the generated OSCORE Security Context.</t>
      <section anchor="c-rs">
        <name>C-to-RS: POST to /authz-info endpoint</name>
        <t>The access token can be uploaded to RS by using the /authz-info endpoint at RS. To this end, C MUST use CoAP <xref target="RFC7252"/> and the Authorization Information endpoint described in <xref section="5.10.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/> 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="I-D.ietf-ace-oauth-authz"/>, the Content-Format of the POST request has to reflect the format of the transported access token. In particular, if the access token is a CWT, the content-format MUST be "application/cwt".</t>
        <t>The communication with the /authz-info endpoint does not have to be protected, except for the update of access rights case described below.</t>
        <t>In case of initial access token provisioning to RS for this Client, or in other cases without a valid EDHOC session, the uploading of the access token is followed by the execution of the EDHOC protocol (or combined using EAD as described in <xref target="edhoc-exec"/>) and by the derivation of an OSCORE Security Context, as detailed later in this section.</t>
        <t>In the following, we outline some alternative processing, which occur when the provisioned access token or the established OSCORE Security Context for various reasons is no longer available or sufficient. In the cases below, it is assumed that the EDHOC session is still valid, otherwise the processing essentially falls back to the case discussed above.</t>
        <ol spacing="normal" type="1"><li>C may be required to re-POST the access token, since RS may have deleted a stored access token (and associated OSCORE Security Context) at any time, for example due to all storage space being consumed. This situation can be detected by C when it receives a 4.01 (Unauthorized) response from RS, especially as an "AS Request Creation Hints" message (see <xref section="5.3" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/>.</li>
          <li>C may be posting the first access token in a new series, e.g., because the old access token expired and thus its series terminated.</li>
          <li>
            <t>C may need to update the OSCORE Security Context, e.g., due to a policy limiting its use in terms of time or amount of processed data, or to the imminent exhaustion of the OSCORE Sender Sequence Number space. The OSCORE Security Context can be updated by:  </t>
            <t>
a. using the KUDOS key update protocol specified in <xref target="I-D.ietf-core-oscore-key-update"/>, if supported by both C and RS; or  </t>
            <t>
b. re-posting the access token using the same procedure as in case 1 above.</t>
          </li>
        </ol>
        <t>In cases 1, 2 and 3b, C and RS rely on a protocol similar to the <tt>coap_oscore</tt> profile <xref target="I-D.ietf-ace-oscore-profile"/>, but leveraging the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>) before deriving a new OSCORE Security Context.</t>
        <t>Case 3a provides a lightweight alternative independent of ACE, and does not require the posting of an access token.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS MUST associate the new OSCORE Security Context with the current (potentially re-posted) access token. Note that, unless C and RS re-run the EDHOC protocol, they preserve their same OSCORE identifiers, i.e., their OSCORE Sender/Recipient IDs.</t>
        <t>If C has already posted a valid access token, has already established an OSCORE Security Context with RS, and wants to update its access rights, then C can do so by posting a new access token to the /authz-info endpoint. The new access token contains the updated access rights for C to access protected resources at RS, and C has to obtain it from AS as a new access token in the same token series of the current one (see <xref target="c-as"/> and <xref target="as-c"/>). When posting the new access token to the /authz-info endpoint, C MUST protect the POST request using the current OSCORE Security Context shared with RS. After successful verification (see <xref target="rs-c"/>), RS will replace the old access token with the new one, while preserving the same OSCORE Security Context. In particular, C and RS do not re-run the EDHOC protocol and they do not establish a new OSCORE Security Context.</t>
      </section>
      <section anchor="rs-c">
        <name>RS-to-C: 2.01 (Created)</name>
        <t>Upon receiving an access token from C, RS MUST follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/>. 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="I-D.ietf-ace-oauth-authz"/>) 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="I-D.ietf-ace-oauth-authz"/>.</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="I-D.ietf-ace-oauth-authz"/>, 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 value of the CBOR byte string is the content 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 as specified in <xref target="rs-c"/>, it MUST discontinue the EDHOC protocol, and it MUST NOT send an EDHOC error message (see <xref section="6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). 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="I-D.ietf-ace-oauth-authz"/>. That is, if RS receives an OSCORE-protected request targeting a protected resource from C, then RS processes the request according to <xref target="RFC8613"/>, when Version 1 of OSCORE is used. Future specifications may define new versions of OSCORE, that AS can indicate C and RS to use by means of the "osc_version" field of EDHOC_Information (see <xref target="c-as-comm"/>).</t>
        <t>If OSCORE verification succeeds and the target resource requires authorization, RS retrieves the authorization information using the access token associated with the OSCORE Security Context. Then, RS must verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
    </section>
    <section anchor="edhoc-key-update">
      <name>Use of EDHOC-KeyUpdate</name>
      <t>Once successfully completed an EDHOC execution, C and RS are expected to preserve the EDHOC state of such an execution, as long as the authentication credentials of both C and RS, namely AUTH_CRED_C and AUTH_CRED_RS are valid. This especially consists in preserving the secret key PRK_out attained at the end of the EDHOC execution.</t>
      <t>In case C has to establish a new OSCORE Security Context with RS, and as long as the outcome of their previously completed EDHOC execution is still valid, C and RS MUST rely on the EDHOC-KeyUpdate function defined in <xref section="4.2.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> as further specified in the rest of this section, rather than re-running the EDHOC protocol. When supporting this profile, both C and RS MUST support the EDHOC-KeyUpdate function. The procedure is sketched in <xref target="key-update-procedure"/>.</t>
      <figure anchor="key-update-procedure">
        <name>Updated OSCORE Security Context using EDHOC-KeyUpdate</name>
        <artwork align="center"><![CDATA[
   C                            RS
   |                            |
   |                            |
   | ---- POST /authz-info ---> |
   |     (access_token, N1)     |
   |                            |
   | <--- 2.01 Created (N2) --- |
   |                            |

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

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

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

   RAW_STRING = 0x48 018a278f7faab55a 48 25a8991cd700ac01

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

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

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

   RAW_STRING = b64'CAGKJ49/qrVaCCWomRzXAKwB'

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

   EXTENDED_NONCE as CBOR encoded byte string
   EXTENDED_NONCE = 0x52 08018a278f7faab55a0825a8991cd700ac01
]]></artwork>
      </figure>
      <t>Once computed the CBOR byte string EXTENDED_NONCE, both C and RS perform the following steps.</t>
      <ol spacing="normal" type="1"><li>C and RS refer to the stored state of a completed EDHOC execution where the authentication credential AUTH_CRED_C was used as CRED_I. In case of multiple matches, the state of the latest completed EDHOC execution is considered.</li>
        <li>With reference to the EDHOC state determined at the previous step, C and RS invoke the EDHOC-KeyUpdate function (see <xref section="4.2.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), specifying the CBOR byte string EXTENDED_NONCE as "context" argument. This results in updating the secret key PRK_out to be considered from here on for this EDHOC state.</li>
        <li>With reference to the same EDHOC state as above, C and RS update the secret key PRK_Exporter as per <xref section="4.2.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In particular, the key PRK_out derived at step 2 is specified as "PRK_out" argument. This results in updating the secret key PRK_Exporter to be considered from here on for this EDHOC state.</li>
        <li>C and RS establish a new OSCORE Security Context as defined in <xref target="edhoc-exec"/>, just like if they had completed an EDHOC execution. Note that, since C and RS have not re-run the EDHOC protocol, they preserve their same OSCORE identifiers, i.e., their OSCORE Sender/Recipient IDs.</li>
        <li>RS associates the posted access token with the OSCORE Security Context established at step 4. In case C has in fact re-posted a still valid access token, RS also discards the old OSCORE Security Context previously associated with that access token.</li>
        <li>Hereafter, C and RS use the OSCORE Security Context established at step 4 to protect their communications.</li>
      </ol>
    </section>
    <section anchor="secure-comm-as">
      <name>Secure Communication with AS</name>
      <t>As specified in the ACE framework (see Sections <xref target="I-D.ietf-ace-oauth-authz" section="5.8" sectionFormat="bare"/> and <xref target="I-D.ietf-ace-oauth-authz" section="5.9" sectionFormat="bare"/> of <xref target="I-D.ietf-ace-oauth-authz"/>), the requesting entity (RS and/or C) and AS communicates via the /introspect or /token 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="I-D.ietf-ace-oauth-authz"/> (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 /introspect endpoint as specified in <xref section="5.9" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/> and through the /token endpoint as specified in <xref section="5.8" sectionFormat="of" target="I-D.ietf-ace-oauth-authz"/>.</t>
      <t>Furthermore, as defined in <xref target="as-c"/> and shown by the example in <xref target="example-without-optimization-as-posting"/>, AS may upload the access token to the /authz-info endpoint at RS, on behalf of C. In such a case, that exchange between AS and RS is not protected, just like when C uploads the access token to RS by itself.</t>
    </section>
    <section anchor="discard-context">
      <name>Discarding the Security Context</name>
      <t>There are a number of cases where C or RS have to discard the OSCORE Security Context, and possibly establish a new one.</t>
      <t>C MUST discard the current OSCORE Security Context shared with RS when any of the following occurs.</t>
      <ul spacing="normal">
        <li>The OSCORE Sender Sequence Number space of C gets exhausted.</li>
        <li>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</li>
        <li>C receives a number of 4.01 (Unauthorized) responses to OSCORE-protected requests sent to RS and protected using the same OSCORE Security Context. The exact number of such received responses needs to be specified by the application.</li>
        <li>C receives a nonce N2 in the 2.01 (Created) response to an unprotected POST request to the /authz-info endpoint at RS, when re-posting a still valid access token associated with the existing OSCORE Security context together with a nonce N1, in order to trigger the use of the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>).</li>
        <li>The authentication credential of C (of RS) becomes invalid (e.g., due to expiration or revocation), and it was used as CRED_I (CRED_R) in the EDHOC execution whose PRK_out was used to establish the OSCORE Security Context.</li>
      </ul>
      <t>RS MUST discard the current OSCORE Security Context shared with C when any of the following occurs:</t>
      <ul spacing="normal">
        <li>The OSCORE Sender Sequence Number space of RS gets exhausted.</li>
        <li>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</li>
        <li>The current OSCORE Security Context shared with C has been successfully replaced  with a newer one, following an unprotected POST request to the /authz-info endpoint at RS that re-posted a still valid access token together with a nonce N1, in order to trigger the use of the EDHOC-KeyUpdate function (see <xref target="edhoc-key-update"/>).</li>
        <li>The authentication credential of C (of RS) becomes invalid (e.g., due to expiration or revocation), and it was used as CRED_I (CRED_R) in the EDHOC execution whose PRK_out was used to establish the OSCORE Security Context.</li>
      </ul>
      <t>After a new access token is successfully uploaded to RS, and a new OSCORE Security Context is established between C and RS, messages still in transit that were protected with the previous OSCORE Security Context might not be successfully verified by the recipient, since the old OSCORE Security Context might have been discarded. This means that messages sent shortly before C has uploaded the new access token to RS might not be successfully accepted by the recipient.</t>
      <t>Furthermore, implementations may want to cancel CoAP observations at RS, if registered before the new OSCORE Security Context has been established. Alternatively, applications need to implement a mechanism to ensure that, from then on, messages exchanged within those observations are going to be protected with the newly derived OSCORE Security Context.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="I-D.ietf-ace-oauth-authz"/>. Thus, the general security considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the security considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="I-D.ietf-lake-edhoc"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>As previously stated, once completed the EDHOC execution, C and RS are mutually authenticated through their respective authentication credentials, whose retrieval has been facilitated by AS. Also once completed the EDHOC execution, C and RS have established a long-term secret key PRK_out enjoying forward secrecy. This is in turn used by C and RS to establish an OSCORE Security Context.</t>
      <t>Furthermore, RS achieves confirmation that C has PRK_out (proof-of-possession) when completing the EDHOC execution. Rather, C achieves confirmation that RS has PRK_out (proof-of-possession) either when receiving the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the established OSCORE Security Context.</t>
      <t>OSCORE is designed to secure point-to-point communication, providing a secure binding between a request and the corresponding response(s). Thus, the basic OSCORE protocol is not intended for use in point-to-multipoint communication (e.g., enforced via multicast or a publish-subscribe model). Implementers of this profile should make sure that their use case of OSCORE corresponds to the expected one, in order to prevent weakening the security assurances provided by OSCORE.</t>
      <t>As defined in <xref target="edhoc-key-update"/>, C can (re-)post an access token to RS and contextually exchange two nonces N1 and N2, in order to efficiently use the EDHOC-KeyUpdate function rather than re-running the EDHOC protocol with RS. The use of nonces guarantees uniqueness of the new PRK_out derived by running EDHOC_KeyUpdate. Consequently, it ensures uniqueness of the AEAD (nonce, key) pairs later used by C and RS, when protecting their communications with the OSCORE Security Context established after updating PRK_out. Thus, it is REQUIRED that the exchanged nonces are not reused with the same pair of authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), even in case of reboot. When using this profile, it is RECOMMENDED to use a 64-bit long random numbers as a nonce's value. Considering the birthday paradox, the average collision for each nonce will happen after 2^32 messages, which amounts to considerably more issued access token than it would be expected for intended applications. If applications use something else, such as a counter, they need to guarantee that reboot and loss of state on either node does not yield reuse of nonces. If that is not guaranteed, nodes are susceptible to reuse of AEAD (nonce, key) pairs, especially since an on-path attacker can cause the use of a previously exchanged nonce N1 by replaying the corresponding C-to-RS message.</t>
      <t>When using this profile, it is RECOMMENDED that RS stores only one access token per client. The use of multiple access tokens for a single client increases the strain on RS, since it must consider every access token associated with the client and calculate the actual permissions that client has. Also, access tokens indicating different or disjoint permissions from each other may lead RS to enforce wrong permissions.  If one of the access tokens expires earlier than others, the resulting permissions may offer insufficient protection. Developers SHOULD avoid using multiple access tokens for a same client. Furthermore, RS MUST NOT store more than one access token per client per PoP-key (i.e., per client's authentication credential).</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="I-D.ietf-ace-oauth-authz"/>. Thus, the general privacy considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the privacy considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="I-D.ietf-lake-edhoc"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>An unprotected response to an unauthorized request may disclose information about RS and/or its existing relationship with C. It is advisable to include as little information as possible in an unencrypted response. When an OSCORE Security Context already exists between C and RS, more detailed information may be included.</t>
      <t>Except for the case where C attempts to update its access rights, the (encrypted) access token is sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, if C uses the same single access token from multiple locations, it can risk being tracked by the access token's value even when the access token is encrypted.</t>
      <t>As defined in <xref target="edhoc-key-update"/>, C can (re-)post an access token to RS and contextually exchange two nonces N1 and N2, in order to efficiently use the EDHOC-KeyUpdate function rather than re-running the EDHOC protocol with RS. Since the exchanged nonces are also sent in the clear, using random nonces is best for privacy, as opposed to, e.g., a counter that might leak some information about C.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the EDHOC execution. That is, the EDHOC Connection Identifier C_I of C is going to be the OSCORE Recipient ID of C (the OSCORE Sender ID of RS). Conversely, the EDHOC Connection Identifier C_R of RS is going to be the OSCORE Recipient ID of RS (the OSCORE Sender ID of C). These OSCORE identifiers are privacy sensitive (see <xref section="12.8" sectionFormat="of" target="RFC8613"/>). In particular, they could reveal information about C, or may be used for correlating different requests from C, e.g., across different networks that C has joined and left over time. This can be mitigated if C and RS dynamically update their OSCORE identifiers, e.g., by using the method defined in <xref target="I-D.ietf-core-oscore-key-update"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with
the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE OAuth Profile Registry</name>
        <t>IANA is asked to add the following entry to the "ACE OAuth Profile"
Registry following the procedure specified in <xref target="I-D.ietf-ace-oauth-authz"/>.</t>
        <ul spacing="normal">
          <li>Profile name: coap_edhoc_oscore</li>
          <li>Profile Description: Profile for delegating client authentication and
authorization in a constrained environment by establishing an OSCORE Security Context <xref target="RFC8613"/> between resource-constrained nodes, through the execution of the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>.</li>
          <li>Profile ID:  TBD (value between 1 and 255)</li>
          <li>Change Controller: IESG</li>
          <li>Reference:  [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry.</t>
        <ul spacing="normal">
          <li>Name: "edhoc_info"</li>
          <li>Parameter Usage Location: token request, token response</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "token_uploaded"</li>
          <li>Parameter Usage Location: token response</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" following the procedure specified in <xref target="I-D.ietf-ace-oauth-authz"/>.</t>
        <ul spacing="normal">
          <li>Name: "edhoc_info"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: map</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "token_uploaded"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: simple value "true" / simple type "false"</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-token-json-claims">
        <name>JSON Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "JSON Web Token Claims" registry following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>Claim Name: "edhoc_info"</li>
          <li>Claim Description: Information for EDHOC execution</li>
          <li>Change Controller: IETF</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "CBOR Web Token Claims" registry following the procedure specified in <xref target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>Claim Name: "edhoc_info"</li>
          <li>Claim Description: Information for EDHOC execution</li>
          <li>JWT Claim Name: "edhoc_info"</li>
          <li>Claim Key: TBD</li>
          <li>Claim Value Type(s): map</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-jwt-confirmation-methods">
        <name>JWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "JWT Confirmation Methods" registry following the procedure specified in <xref target="RFC7800"/>.</t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "x5bag"</li>
          <li>Confirmation Method Description: An unordered bag of X.509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "x5chain"</li>
          <li>Confirmation Method Description: An ordered chain of X.509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "x5t"</li>
          <li>Confirmation Method Description: Hash of an X.509 certificate</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "x5u"</li>
          <li>Confirmation Method Description: URI pointing to an X.509 certificate</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5b"</li>
          <li>Confirmation Method Description: An unordered bag of C509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5c"</li>
          <li>Confirmation Method Description: An ordered chain of C509 certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5t"</li>
          <li>Confirmation Method Description: Hash of an C509 certificate</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "c5u"</li>
          <li>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of certificates</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "kcwt"</li>
          <li>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Value: "kccs"</li>
          <li>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
      </section>
      <section anchor="iana-cwt-confirmation-methods">
        <name>CWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "CWT Confirmation Methods" registry following the procedure specified in <xref target="RFC8747"/>.</t>
        <ul spacing="normal">
          <li>Confirmation Method Name: x5bag</li>
          <li>Confirmation Method Description: An unordered bag of X.509 certificates</li>
          <li>JWT Confirmation Method Name: "x5bag"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_X509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: x5chain</li>
          <li>Confirmation Method Description: An ordered chain of X.509 certificates</li>
          <li>JWT Confirmation Method Name: "x5chain"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_X509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: x5t</li>
          <li>Confirmation Method Description: Hash of an X.509 certificate</li>
          <li>JWT Confirmation Method Name: "x5t"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_CertHash</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: x5u</li>
          <li>Confirmation Method Description: URI pointing to an X.509 certificate</li>
          <li>JWT Confirmation Method Name: "x5u"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): uri</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5b</li>
          <li>Confirmation Method Description: An unordered bag of C509 certificates</li>
          <li>JWT Confirmation Method Name: "c5b"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_C509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5c</li>
          <li>Confirmation Method Description: An ordered chain of C509 certificates</li>
          <li>JWT Confirmation Method Name: "c5c"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_C509</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5t</li>
          <li>Confirmation Method Description: Hash of an C509 certificate</li>
          <li>JWT Confirmation Method Name: "c5t"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_CertHash</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: c5u</li>
          <li>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of certificates</li>
          <li>JWT Confirmation Method Name: "c5u"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): uri</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: kcwt</li>
          <li>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim</li>
          <li>JWT Confirmation Method Name: "kcwt"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): COSE_Messages</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Confirmation Method Name: kccs</li>
          <li>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim</li>
          <li>JWT Confirmation Method Name: "kccs"</li>
          <li>Confirmation Key: TBD</li>
          <li>Confirmation Value Type(s): map / #6(map)</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-edhoc-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to add the following entry to the "EDHOC External Authorization Data" registry defined in <xref section="9.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <ul spacing="normal">
          <li>Label: TBD</li>
          <li>Message: EDHOC message_1</li>
          <li>Description: "ead_value" specifies an access token</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-edhoc-parameters">
        <name>EDHOC Information Registry</name>
        <t>It is requested that IANA create a new registry entitled "EDHOC Information" registry. The registry is to be created with registration policy Expert Review <xref target="RFC8126"/>. Guidelines for the experts are provided in <xref target="iana-expert-review"/>. It should be noted that in addition to the expert review, some portions of the registry require a specification, potentially on Standards Track, be supplied as well.</t>
        <t>The columns of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: A descriptive name that enables easier reference to this item. Because a core goal of this document is for the resulting representations to be compact, it is RECOMMENDED that the name be short.  </t>
            <t>
This name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts determine that there is a compelling reason to allow an exception. The name is not used in the CBOR encoding.</t>
          </li>
          <li>
            <t>CBOR Value: The value to be used as CBOR abbreviation of the item.  </t>
            <t>
The value MUST be unique. The value can be a positive integer, a negative integer or a string. Integer values between -256 and 255 and strings of length 1 are to be registered by Standards Track documents (Standards Action). Integer values from -65536 to -257 and from 256 to 65535 and strings of maximum length 2 are to be registered by public specifications (Specification Required). Integer values greater than 65535 and strings of length greater than 2 are subject to the Expert Review policy. Integer values less than -65536 are marked as private use.</t>
          </li>
          <li>CBOR Type: The CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</li>
          <li>Registry: The registry that values of the item may come from, if one exists.</li>
          <li>Description: A brief description of this item.</li>
          <li>Specification: A pointer to the public specification for the item, if one exists.</li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="fig-cbor-key-edhoc-params"/>. The "Specification" column for all of these entries will be this document and <xref target="I-D.ietf-lake-edhoc"/>.</t>
      </section>
      <section anchor="iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>The IANA registry established in this document is defined to use the registration policy Expert Review. This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason so they should be given substantial latitude.</t>
        <t>Expert reviewers should take into consideration the following points:</t>
        <ul spacing="normal">
          <li>Point squatting should be discouraged. Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered and that the point is likely to be used in deployments. The zones tagged as private use are intended for testing purposes and closed environments; code points in other ranges should not be assigned for testing.</li>
          <li>Specifications are required for the Standards Action range of point assignment. Specifications should exist for Specification Required ranges, but early assignment before a specification is available is considered to be permissible. Specifications are needed for the first-come, first-serve range if they are expected to be used outside of closed environments in an interoperable way. When specifications are not provided, the description provided needs to have sufficient information to identify what the point is being used for.</li>
          <li>Experts should take into account the expected usage of fields when approving point assignment. The fact that there is a range for Standards Track documents does not mean that a Standards Track document cannot have points assigned outside of that range. The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt">
              <organization/>
            </author>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.  This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7519" target="https://www.rfc-editor.org/info/rfc7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura">
              <organization/>
            </author>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800" target="https://www.rfc-editor.org/info/rfc7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter.  Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8392" target="https://www.rfc-editor.org/info/rfc8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/rfc8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613" target="https://www.rfc-editor.org/info/rfc8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE).  OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration.  Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8742" target="https://www.rfc-editor.org/info/rfc8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq".  A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation.  This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8747" target="https://www.rfc-editor.org/info/rfc8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oauth-authz" target="https://www.ietf.org/archive/id/draft-ietf-ace-oauth-authz-46.txt">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Erik Wahlstroem" initials="E." surname="Wahlstroem">
         </author>
            <author fullname="Samuel Erdtman" initials="S." surname="Erdtman">
              <organization>Spotify AB</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Ltd.</organization>
            </author>
            <date day="8" month="November" year="2021"/>
            <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="Internet-Draft" value="draft-ietf-ace-oauth-authz-46"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oauth-params" target="https://www.ietf.org/archive/id/draft-ietf-ace-oauth-params-16.txt">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <date day="7" month="September" year="2021"/>
            <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="Internet-Draft" value="draft-ietf-ace-oauth-params-16"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc" target="https://www.ietf.org/archive/id/draft-ietf-lake-edhoc-17.txt">
          <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="12" month="October" year="2022"/>
            <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-17"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-edhoc-05.txt">
          <front>
            <title>Profiling EDHOC for CoAP and OSCORE</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol EDHOC can be run
   over CoAP and used by two peers to establish an OSCORE Security
   Context.  This document further profiles this use of the EDHOC
   protocol, by specifying a number of additional and optional
   mechanisms.  These especially include an optimization approach for
   combining the execution of EDHOC with the first subsequent OSCORE
   transaction.  This combination reduces the number of round trips
   required to set up an OSCORE Security Context and to complete an
   OSCORE transaction using that Security Context.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-05"/>
        </reference>
        <reference anchor="I-D.ietf-cose-x509" target="https://www.ietf.org/archive/id/draft-ietf-cose-x509-09.txt">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header parameters for carrying and referencing X.509 certificates</title>
            <author fullname="Jim Schaad" initials="J." surname="Schaad">
              <organization>August Cellars</organization>
            </author>
            <date day="13" month="October" year="2022"/>
            <abstract>
              <t>   The CBOR Signing And Encrypted Message (COSE) structure uses
   references to keys in general.  For some algorithms, additional
   properties are defined which 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="Internet-Draft" value="draft-ietf-cose-x509-09"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert" target="https://www.ietf.org/archive/id/draft-ietf-cose-cbor-encoded-cert-04.txt">
          <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="July" year="2022"/>
            <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-04"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-profile" target="https://www.ietf.org/archive/id/draft-ietf-ace-oscore-profile-19.txt">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Martin Gunnarsson" initials="M." surname="Gunnarsson">
              <organization>RISE</organization>
            </author>
            <date day="6" month="May" year="2021"/>
            <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="Internet-Draft" value="draft-ietf-ace-oscore-profile-19"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC4949" target="https://www.rfc-editor.org/info/rfc4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey">
              <organization/>
            </author>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes. </t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9147" target="https://www.rfc-editor.org/info/rfc9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu">
              <organization/>
            </author>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-key-update-03.txt">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) uses
   AEAD algorithms to ensure confidentiality and integrity of exchanged
   messages.  Due to known issues allowing forgery attacks against AEAD
   algorithms, limits should be followed on the number of times a
   specific key is used for encryption or decryption.  Among other
   reasons, approaching key usage limits requires updating the OSCORE
   keying material before communications can securely continue.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-03"/>
        </reference>
      </references>
    </references>
    <section anchor="examples">
      <name>Examples</name>
      <t>This appendix provides examples where this profile of ACE is used. In particular:</t>
      <ul spacing="normal">
        <li>
          <xref target="example-without-optimization"/> does not make use of use of any optimization.</li>
        <li>
          <xref target="example-with-optimization"/> makes use of the optimizations defined in this specification, hence reducing the roundtrips of the interactions between the Client and the Resource Server.</li>
        <li>
          <xref target="example-without-optimization-as-posting"/> does not make use of any optimization, but consider an alternative workflow where AS uploads the access token to RS.</li>
      </ul>
      <t>All these examples build on the following assumptions, as relying on expected early procedures performed at AS. These include the registration of RSs by the respective Resource Owners as well as the registrations of Clients authorized to request access token for those RSs.</t>
      <ul spacing="normal">
        <li>AS knows the authentication credential AUTH_CRED_C of the Client C.</li>
        <li>The Client knows the authentication credential AUTH_CRED_AS of AS.</li>
        <li>AS knows the authentication credential AUTH_CRED_RS of RS.</li>
        <li>
          <t>RS knows the authentication credential AUTH_CRED_AS of AS.  </t>
          <t>
This is relevant in case AS and RS actually require a secure association (e.g., for RS to perform token introspection at AS, or for AS to upload an access token to RS on behalf of the Client).</t>
        </li>
      </ul>
      <t>As a result of the assumptions above, it is possible to limit the transport of AUTH_CRED_C and AUTH_CRED_RS by value only to the following two cases, and only when the Client requests an access token for RS in question for the first time when considering the pair (AUTH_CRED_C, AUTH_CRED_RS).</t>
      <ul spacing="normal">
        <li>In the Token Response from AS to the Client, where AUTH_CRED_RS is specified by the 'rs_cnf' parameter.</li>
        <li>
          <t>In the access token, where AUTH_CRED_C is specified by the 'cnf' claim.  </t>
          <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>
        </li>
      </ul>
      <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',            |                              |
    |       suite  : 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',            |                              |
    |       suite  : 2,                |                              |
    |       methods: 3                 |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |     * the 'cnf' claim specifies  |                              |
    |       AUTH_CRED_C by reference   |                              |
    |     * the 'edhoc_info' claim     |                              |
    |       specifies the same as      |                              |
    |       'edhoc_info' above         |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token upload to /authz-info     |                              |
    |  (unprotected message)           |                              |
M15 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  2.01 (Created)                  |                              |
    |  (unprotected message)           |                              |
M16 |<----------------------------------------------------------------|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M17 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
    |  (no access control is enforced) |                              |
M18 |<----------------------------------------------------------------|
    |  ID_CRED_R specifies             |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M19 |---------------------------------------------------------------->|
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M20 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M21 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </section>
      <section anchor="example-with-optimization">
        <name>Workflow with Optimizations</name>
        <t>The example below builds on the example in <xref target="example-without-optimization"/>, while additionally relying on the two following optimizations.</t>
        <ul spacing="normal">
          <li>The access token is not separately uploaded to the /authz-info endpoint at RS, but rather included in the EAD_1 field of EDHOC message_1 sent by the C to RS.</li>
          <li>The Client uses the EDHOC+OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/> is used, when running EDHOC both with AS and with RS.</li>
        </ul>
        <t>These two optimizations used together result in the most efficient interaction between the C and RS, as consisting of only two roundtrips to upload the access token, run EDHOC and access the protected resource at RS.</t>
        <t>Also, a further optimization is used upon uploading a second access token to RS, following the expiration of the first one. That is, after posting the second access token, the Client and RS do not run EDHOC again, but rather EDHOC-KeyUpdate() and EDHOC-Exporter() building on the same, previously completed EDHOC execution.</t>
        <artwork><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /token  |                              |
M03 |--------------------------------->|                              |
    |  * EDHOC message_3               |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Token request               |                              |
    |         'req_cnf' identifies     |                              |
    |         AUTH_CRED_C by reference |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M04 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id     : h'01',            |                              |
    |       suite  : 2,                |                              |
    |       methods: 3                 |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |     * the 'cnf' claim specifies  |                              |
    |       AUTH_CRED_C by value       |                              |
    |     * the 'edhoc_info' claim     |                              |
    |       specifies the same as      |                              |
    |       'edhoc_info' above         |                              |
    |                                  |                              |

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

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

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

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

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

    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M08 |<----------------------------------------------------------------|
    |                                  |                              |

 // Later on, the access token expires ...
 //  - The Client and RS delete their OSCORE Security Context
 //    but do not purge the EDHOC session used to derive it.
 //  - RS retains AUTH_CRED_C as still valid,
 //    and AS knows about it.
 //  - The Client retains AUTH_CRED_RS as still valid,
 //    and AS knows about it.

    |                                  |                              |
    |                                  |                              |

 // Time passes ...

    |                                  |                              |
    |                                  |                              |

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

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

    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M09 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M10 |<---------------------------------|                              |
    |  'rs_cnf' identifies             |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id     : h'05',            |                              |
    |       suite  : 2,                |                              |
    |       methods: 3                 |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |     * the 'cnf' claim specifies  |                              |
    |       AUTH_CRED_C by reference   |                              |
    |     * the 'edhoc_info' claim     |                              |
    |       specifies the same as      |                              |
    |       'edhoc_info' above         |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token upload to /authz-info     |                              |
    |  (unprotected message)           |                              |
M11 |---------------------------------------------------------------->|
    |   Payload {                      |                              |
    |     access_token: access token   |                              |
    |     nonce_1: N1  // nonce        |                              |
    |   }                              |                              |
    |                                  |                              |
    |                                  |                              |
    |  2.01 (Created)                  |                              |
    |  (unprotected message)           |                              |
M12 |<----------------------------------------------------------------|
    |   Payload {                      |                              |
    |     nonce_2: N2  // nonce        |                              |
    |   }                              |                              |
    |                                  |                              |

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

    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M13 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M14 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </section>
      <section anchor="example-without-optimization-as-posting">
        <name>Workflow without Optimizations (AS token posting)</name>
        <t>The example below builds on the example in <xref target="example-without-optimization"/>, but assumes that AS is uploading the access token to RS on behalf of C.</t>
        <t>In order to save roundtrips between the Client and RS, further, more efficient interactions can be seamlessly considered, e.g., as per the example in <xref target="example-with-optimization"/>.</t>
        <artwork><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |                                  | Establish secure association |
    |                                  | (e.g., OSCORE using EDHOC)   |
    |                                  |<---------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
M03 |--------------------------------->|                              |
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M04 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     AUTH_CRED_C by reference     |                              |
    |                                  |                              |
    |                                  |                              |
    |                                  |  Token upload to /authz-info |
    |                                  |  (OSCORE-protected message)  |
M05 |                                  |----------------------------->|
    |                                  |  In the access token:        |
    |                                  |     * the 'cnf' claim        |
    |                                  |       specifies AUTH_CRED_C  |
    |                                  |       by value               |
    |                                  |     * the 'edhoc_info'       |
    |                                  |       claim specifies        |
    |                                  |         {                    |
    |                                  |           id     : h'01',    |
    |                                  |           suite  : 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)              |
    |                                  |  (OSCORE-protected message)  |
M06 |                                  |<-----------------------------|
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M07 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by value        |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'token_uploaded' = true         |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id     : h'01',            |                              |
    |       suite  : 2,                |                              |
    |       methods: 3                 |                              |
    |     }                            |                              |
    |                                  |                              |


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

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

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

    |                                  |                              |
    |                                  |                              |

 // Time passes ...

    |                                  |                              |
    |                                  |                              |

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

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

    |                                  |                              |
    |  Token request to /token         |                              |
    |  (OSCORE-protected message)      |                              |
M13 |--------------------------------->|                              |
    |  'req_cnf' identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |                                  |  Token upload to /authz-info |
    |                                  |  (OSCORE-protected message)  |
M14 |                                  |----------------------------->|
    |                                  |  In the access token:        |
    |                                  |     * the 'cnf' claim        |
    |                                  |       specifies AUTH_CRED_C  |
    |                                  |       by reference           |
    |                                  |     * the 'edhoc_info'       |
    |                                  |       claim specifies        |
    |                                  |         {                    |
    |                                  |           id     : h'05',    |
    |                                  |           suite  : 2,        |
    |                                  |           methods: 3         |
    |                                  |         }                    |
    |                                  |                              |
    |                                  |                              |
    |                                  |  2.01 (Created)              |
    |                                  |  (OSCORE-protected message)  |
M15 |                                  |<-----------------------------|
    |                                  |                              |
    |                                  |                              |
    |  Token response                  |                              |
    |  (OSCORE-protected message)      |                              |
M16 |<---------------------------------|                              |
    |  'rs_cnf' specifies              |                              |
    |     AUTH_CRED_RS by reference    |                              |
    |                                  |                              |
    |  'ace_profile' =                 |                              |
    |             coap_edhoc_oscore    |                              |
    |                                  |                              |
    |  'token_uploaded' = true         |                              |
    |                                  |                              |
    |  'edhoc_info' specifies:         |                              |
    |     {                            |                              |
    |       id     : h'05',            |                              |
    |       suite  : 2,                |                              |
    |       methods: 3                 |                              |
    |     }                            |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M17 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
    |  (no access control is enforced) |                              |
M18 |<----------------------------------------------------------------|
    |  ID_CRED_R specifies             |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_3 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M19 |---------------------------------------------------------------->|
    |  ID_CRED_I identifies            |                              |
    |     CRED_I = AUTH_CRED_C         |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  Access to protected resource /r |                              |
    |  (OSCORE-protected message)      |                              |
    |  (access control is enforced)    |                              |
M20 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M21 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>Work on this document has in part been supported by the H2020 project SIFIS-Home (grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
zl1yXu3N13I969rXusa5S85bOM7vUoCtvFss/2OLc1+rw/Dbkkq22r7wp0kJ
WhLOtUrQkuPU4lDbcQCW+v+VD7Yc59ugJMFicZ2lx8Ef13m92nrkp9ZfvOQ4
tab/3yqd3h4H7/aXcfDeJdUtWs+dg7d6nLukukXrWcM4vwUH711S3brjAf8h
k+puj+9ue62+6EPbcuG0cGNb1a1Drd9Nct4alOu1esvvkpm+zji1ynXWchxK
plwfB7hTrpvH6d1C5fpwxrXDrcrjGoW+Lsc+vCik2CFjERVeBSYOrJQqY4ut
uOtdevSudfEpa3MWof25KINKdsnMGmufY8XAGOsrjzmsn3wnWGpx3AsnaRKt
nV/fHi/h9lqjShb9tMODr5HcpHJ80KkhDo/WOU53OUrLj3OXo3SXo7To+G5P
jtJ2m1ipuxylBT+/PdMzpuTf5RYtGufO9LxwPXe5Rc3j3Jmem8e5yy1aNE7T
g195nFuUW7TeUh6vwxvaUw03WwLOTFvnQluOoLrUOEkKJHC+cxC83AlQbqW/
l15PI/f57eLhLcq9Wm/JlPXhIePPLuDP7u8Af0rqKts/OBpUx29acZov0Qnz
cpf7ZLCrA0N2S4GbxtrBiq8YUV6E2EYQbSlZZMrDeF+Gk0I6fVxfxdQ1xBqh
VGMmzmkMnm3MfctOsY1gdv8ELpwZ7ev4KbeT0zfPAHQg3Ozg/ISmUlvRsaV+
POnaddXfX15Gq7oc7e+OBT9fmzfeHotru/oVrXnjgp+F62mdl1HuKrNFnZTw
Dpco887CRjN2j7g1526gJZdaYZGISj23KNZeR9hX95dxm20NuDtQmo25LXGO
LRetTIHavjZdFezfDaaovlbmKGhDYB6FU6ySRSHwquFnN+AuSSH1mWsGgLf7
3164/OJxjlQ/46r+a0uMI72n5AKa5zo3pbPUehpJ9vbyvbu0hOZx7tISFo5z
q2zF6xrnrmfQwnF+l+d+i3xMdz2Dbtc4TWa8ZcZpQg2JuWwxzgK0WGI9Tebt
JeFcNm+vNo5tTna41NLj+GkYq62nwky+0jhB2ei/4jg1LqSV6KIie2GlcSpc
SCuNU+FCWmGcSiPcXQzx8jttP06TgXmdHPLh52tkt7dy1+2JdmjXSKW9BHKX
aNdyPbcj2oEkgXNVjQS3Bjzm1/PG3vroi7vEv/J6Pmecuwyw25ABdtfkqWmc
uyZPbcdpfvArj3OLqi7eNXlqN07zg195nLsmT814uOjna5/XLfLu3zWLumsW
dZeItZ5V3iVi/aMnYt01i2o5TvODt2+cr+Rsw2C7FuOsT+z5vTvbqpD1ztlm
/V6Rr3XnbFvw9e/XlbXTztl/58r6XDmhVfmi9nLCF3Nl3SXufol93bmyFo1z
l0i8aD23aJzb4x66a+7VZpy75l4Lx/ld6rm3yM1019yr3TjND37lcX5/SaR3
zb3ajPMP1NwLcBxdIpNofDkFVsL9vEL+bBzRZ582fjkIkjma1KPx95tJuvlp
YwNTTzkNFJBwnI7m+CTZ0uOEa11ypcb5jJLWx6rV1bPdbcBBAOzPANjg9PjH
49Pes3QaBVuXWYiOhMssimisJ/u7D/d3O/2N/w9sNjzDKxUCAA==

-->

</rfc>
