<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <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-03"/>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE</organization>
      <address>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE</organization>
      <address>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 84?>

<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.
This profile can be used to delegate management of authorization information from a resource-constrained server to a trusted host with less severe limitations regarding processing power and memory.</t>
    </abstract>
  </front>
  <middle>
    <?line 91?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the "coap_edhoc_oscore" profile of the ACE framework <xref target="RFC9200"/>. This profile addresses a "zero-touch" constrained setting where trusted operations can be performed with low overhead without endpoint specific configurations.</t>
      <t>Like in the "coap_oscore" profile <xref target="RFC9203"/>, also in this profile a client (C) and a resource server (RS) use the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> to communicate, and Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/> to protect their communications, but this profile uses the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="I-D.ietf-lake-edhoc"/> to establish the OSCORE Security Context. The processing of requests for specific protected resources is identical to what is defined in the "coap_oscore" profile.</t>
      <t>When using this profile, C accesses protected resources hosted at RS with the use of an access token issued by a trusted authorization server (AS) and bound to an authentication credential of C. This differs from the "coap_oscore" profile, where the access token is bound to a symmetric key used to derive the OSCORE Security Context. As recommended in <xref target="RFC9200"/>, this document recommends the use of CBOR Web Tokens (CWTs) <xref target="RFC8392"/> as access tokens.</t>
      <t>An authentication credential can be a raw public key, e.g., encoded as a CWT Claims Set (CCS, <xref target="RFC8392"/>); or a public key certificate, e.g., encoded as an X.509 certificate <xref target="RFC5280"/> or as a CBOR encoded X.509 certificate (C509, <xref target="I-D.ietf-cose-cbor-encoded-cert"/>); or a different type of data structure containing the public key of the peer in question.</t>
      <t>The ACE protocol establishes what those authentication credentials are, and may transport the actual authentication credentials by value or uniquely refer to them. If an authentication credential is pre-provisioned or can be obtained over less constrained links, then it suffices that ACE provides a unique reference such as a certificate hash (e.g., by using the COSE header parameter "x5t", see <xref target="RFC9360"/>). This is in the same spirit as EDHOC, where the authentication credentials may be transported or referenced in the ID_CRED_x message fields (see Section 3.5.3 of <xref target="I-D.ietf-lake-edhoc"/>).</t>
      <t>In general, AS and RS are likely to have trusted access to each other's authentication credentials, since AS acts on behalf of RS as per the trust model of ACE. Also, AS needs to have some information about C, including the relevant authentication credential, in order to identify C when it requests an access token and to determine what access rights it can be granted. However, the authentication credential of C may potentially be conveyed (or uniquely referred to) within the request for access that C makes to AS.</t>
      <t>The establishment of an association between RS and AS in an ACE ecosystem is out of scope, but one solution is to build on the same primitives as used in this document, i.e., EDHOC for authentication and OSCORE for communication security, using for example <xref target="I-D.selander-lake-authz"/> for onboarding RS with AS, and <xref target="I-D.ietf-ace-coap-est-oscore"/> for establishing a trust anchor in RS. A similar procedure can also be applied between C and AS for registering a client and for the establishment of a trust anchor.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
        </t>
        <t>Certain security-related terms such as "authentication", "authorization", "confidentiality", "(data) integrity", "Message Authentication Code (MAC)", "Hash-based Message Authentication Code (HMAC)", and "verify" are taken from <xref target="RFC4949"/>.</t>
        <t>RESTful terminology follows HTTP <xref target="RFC9110"/>.</t>
        <t>Readers are expected to be familiar with the terms and concepts defined in CoAP <xref target="RFC7252"/>, OSCORE <xref target="RFC8613"/>, and EDHOC <xref target="I-D.ietf-lake-edhoc"/>.</t>
        <t>Readers are also expected to be familiar with the terms and concepts of the ACE framework described in <xref target="RFC9200"/> and in <xref target="RFC9201"/>.</t>
        <t>Terminology for entities in the architecture is defined in OAuth 2.0 <xref target="RFC6749"/>, such as the client (C), the resource server (RS), and the authorization server (AS).  It is assumed in this document that a given resource on a specific RS is associated with a unique AS.</t>
        <t>Note that the term "endpoint" is used here, as in <xref target="RFC9200"/>, following its OAuth definition, which is to denote resources such as /token and /introspect at AS and /authz-info at RS. The CoAP <xref target="RFC7252"/> definition, which is "An entity participating in the CoAP protocol" is not used in this document.</t>
        <t>The authorization information (authz-info) resource refers to the authorization information endpoint as specified in <xref target="RFC9200"/>. The term "claim" is used in this document with the same semantics as in <xref target="RFC9200"/>, i.e., it denotes information carried in the access token or returned from introspection.</t>
        <t>Concise Binary Object Representation (CBOR) <xref target="RFC8949"/><xref target="RFC8742"/> and Concise Data Definition Language (CDDL) <xref target="RFC8610"/> are used in this document. CDDL predefined type names, especially bstr for CBOR byte strings and tstr for CBOR text strings, are used extensively in this document.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation without the tag and value abbreviations.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <t>This section gives an overview of how to use the ACE framework <xref target="RFC9200"/> together with the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. By doing so, the client (C) and the resource server (RS) generate an OSCORE Security Context <xref target="RFC8613"/> associated with authorization information, and use that Security Context to protect their communications. The parameters needed by C to negotiate the use of this profile with the authorization server (AS), as well as the OSCORE setup process, are described in detail in the following sections.</t>
      <t>RS maintains a collection of authentication credentials. These are associated with OSCORE Security Contexts and with authorization information for all clients that RS is communicating with. The authorization information is used to enforce polices for processing requests from those clients.</t>
      <t>This profile specifies how C requests an access token from AS for the resources it wants to access on RS, by sending an access token request to the /token endpoint, as specified in <xref section="5.8" sectionFormat="of" target="RFC9200"/>.</t>
      <t>This profile also supports the alternative workflow where AS uploads the access token to RS, as defined in <xref target="I-D.tiloca-ace-workflow-and-params"/>.</t>
      <t>If C has retrieved an access token, there are two options for C to upload it to RS, as further detailed in this document.</t>
      <ol spacing="normal" type="1"><li>
          <t>C posts the access token to the /authz-info endpoint by using the mechanisms specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/>. If the access token is valid, RS responds to the request with a 2.01 (Created) response, after which C initiates the EDHOC protocol with RS. The communication with the /authz-info endpoint is not protected, except for the update of access rights (see <xref target="update-access-rights-c-rs"/>).</t>
        </li>
        <li>
          <t>C initiates the EDHOC protocol and includes the access token as External Authorization Data (EAD), see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In this case, the access token is validated in parallel with the EDHOC session. This option cannot be used for the update of access rights.</t>
        </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 session 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 session with the derived Security Context. The latter is in turn associated with the access token and the access rights of C specified therein.</t>
      <t>From then on, C effectively gains authorized and secure access to protected resources on RS with the established OSCORE Security Context, for as long as the access token is valid. The Security Context is discarded when an access token (whether the same or a different one) is used to successfully derive a new Security Context for C.</t>
      <t>After the whole procedure has completed and while the access token is valid, C can contact AS to request an update of its access rights, by sending a similar request to the /token endpoint. This request also includes an EDHOC session identifier (see <xref target="edhoc-parameters-object"/>), which allows AS to find the data it has previously shared with C. The session identifier is assigned by AS and used to identify a series of access tokens, called a "token series" (see <xref target="token-series"/>). Upon a successful update of access rights (see <xref target="update-access-rights-c-rs"/>), 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 in case of option 1 above is given in <xref target="protocol-overview"/>. The names of messages coincide with those of <xref target="RFC9200"/> when applicable.</t>
      <figure anchor="protocol-overview">
        <name>Protocol Overview Example</name>
        <artwork><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <==== Mutual authentication and secure channel ====> |
   |                            |                         |
   | ------- POST /token  ------------------------------> |
   |                            |                         |
   | <-------------------------------- Access Token ----- |
   |                               + Access Information   |
   |                            |                         |
   | ---- POST /authz-info ---> |                         |
   |       (access_token)       |                         |
   |                            |                         |
   | <----- 2.01 Created ------ |                         |
   |                            |                         |
   | <========= EDHOC ========> |                         |
   |  Mutual authentication     |                         |
   |  and derivation of an      |                         |
   |  OSCORE Security Context   |                         |
   |                            |                         |
   |                /Proof-of-possession and              |
   |                Security Context storage/             |
   |                            |                         |
   | ---- OSCORE Request -----> |                         |
   |                            |                         |
   | <--- OSCORE Response ----- |                         |
   |                            |                         |
/Proof-of-possession            |                         |
and Security Context            |                         |
storage (latest)/               |                         |
   |                            |                         |
   | ---- OSCORE Request -----> |                         |
   |                            |                         |
   | <--- OSCORE Response ----- |                         |
   |                            |                         |
   |           ...              |                         |

]]></artwork>
      </figure>
    </section>
    <section anchor="c-as-comm">
      <name>Client-AS Communication</name>
      <t>The following subsections describe the details of the POST request and response to the /token endpoint between C and AS.</t>
      <t>In this exchange, AS provides C with the access token, together with a set of parameters that enable C to run EDHOC with RS. In particular, these include information about the authorization credential of RS, AUTH_CRED_RS, transported by value or uniquely referred to.</t>
      <t>The access token is securely associated with the authentication credential of C, AUTH_CRED_C, by including it or uniquely referring to it in the access token.</t>
      <t>AUTH_CRED_C is specified in the "req_cnf" parameter defined in <xref target="RFC9201"/> of the POST request to the /token endpoint from C to AS, either transported by value or uniquely referred to.</t>
      <t>The request to the /token endpoint and the corresponding response can include EDHOC_Information, which is a CBOR map object containing information related to an EDHOC session, in particular the identifier "session_id", see <xref target="edhoc-parameters-object"/>. This object is transported in the "edhoc_info" parameter registered in <xref target="iana-oauth-params"/> and <xref target="iana-oauth-cbor-mappings"/>.</t>
      <section anchor="c-as">
        <name>C-to-AS: POST to /token endpoint</name>
        <t>The client-to-AS request is specified in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>.</t>
        <t>The client 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"/>). This document describes the use of CoAP, EDHOC and OSCORE to reduce the number of libraries that C has to support.</t>
        <t>An example of such a request is shown in <xref target="token-request"/>. In this example, C specifies its own authentication credential by reference, as the hash of an X.509 certificate carried in the "x5t" field of the "req_cnf" parameter. 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 a previous client registration process or 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. The EDHOC_Information MUST include the "session_id" field. This POST request MUST omit the "req_cnf" parameter. An example of such a request is shown in <xref target="token-request-update"/>.</t>
        <t>The identifier "session_id" is assigned by AS as discussed in <xref target="token-series"/>, and, together with other information such as audience (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>), can be used by AS to determine the token series to which the new requested access token has to be added.</t>
        <t>AS MUST verify that the received "session_id" identifies a token series to which a still valid access token issued for C and RS belongs. If that is not the case, the Client-to-AS request MUST be declined with the error code "invalid_request" as defined in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <figure anchor="token-request-update">
          <name>Example of C-to-AS POST /token request for updating access rights to an access token.</name>
          <artwork><![CDATA[
   Header: POST (Code=0.02)
   Uri-Host: "as.example.com"
   Uri-Path: "token"
   Content-Format: "application/ace+cbor"
   Payload:
   {
     "audience" : "tempSensor4711",
     "scope" : "write",
     "edhoc_info" : {
        "session_id" : h'01'
     }
   }
]]></artwork>
        </figure>
      </section>
      <section anchor="token-series">
        <name>Token Series</name>
        <t>This document refers to "token series" as a series of access tokens sorted in chronological order as they are released, characterized by the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>issued by the same AS</t>
          </li>
          <li>
            <t>issued to the same C, and associated with the same authentication credential of C</t>
          </li>
          <li>
            <t>issued for the same RS, identified by the same authentication credential</t>
          </li>
        </ul>
        <t>Upon a successful update of access rights, the new issued access token becomes the latest in its token series. When the latest access token of a token series becomes invalid (e.g., due to its expiration or revocation), the token series it belongs to ends.</t>
        <t>A more general token series concept is described in Appendix B of <xref target="I-D.tiloca-ace-workflow-and-params"/>). In this profile, a token series is characterized by the access tokens associated with an EDHOC session between C and RS, and identified by the session_id of the EDHOC_Information, see <xref target="edhoc-parameters-object"/>. All access tokens belonging to the same token series are associated with the same session_id, which does not change throughout the series lifetime.</t>
        <t>AS assigns the session_id to the EDHOC_Information when issuing the first access token of a new series. When assigning the identifier, AS MUST ensure that it was not used in a previous series whose access tokens share the following properties with the access tokens of the new series:</t>
        <ul spacing="normal">
          <li>
            <t>i) issued for the same RS; and</t>
          </li>
          <li>
            <t>ii) bound to the same authentication credential AUTH_CRED_C of the requesting client (irrespectively of how the AUTH_CRED_C is identified in the access tokens).</t>
          </li>
        </ul>
        <t>The session_id 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>In case the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>),  what is defined above applies, with the difference that the token series is associated with: all the RSs in the group-audience; all the EDHOC sessions between C and each RS; and the AUTH_CRED_RS of each RS.</t>
      </section>
      <section anchor="as-c">
        <name>AS-to-C: Response</name>
        <t>After verifying the POST request to the /token endpoint and that C is authorized to access, AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, with potential modifications as detailed below. If the request from C was invalid, or not authorized, AS returns an error response as described in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>AS can signal that the use of EDHOC and OSCORE as per this profile is 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>The access token may be sent in the access token response to C for subsequent provisioning to RS, or the access token may be uploaded by AS directly to RS, as specified in <xref target="I-D.tiloca-ace-workflow-and-params"/>.</t>
        <ul spacing="normal">
          <li>
            <t>In the former case, AS provides the access token to C, by specifying it in the "access_token" parameter of the access token response.</t>
          </li>
          <li>
            <t>In the latter case, AS uploads the access token to the /authz-info endpoint at RS, similarly to what is defined for C in <xref target="c-rs"/> and <xref target="rs-c"/>. In case of successful token upload, the access token response to C does not include the parameter "access_token", and includes the parameter "token_uploaded" encoding the CBOR simple value "true" (0xf5). An example is given in <xref target="example-without-optimization-as-posting"/>.</t>
          </li>
        </ul>
        <t>When issuing any access token, AS MUST send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The "session_id" field of EDHOC_Information, which is the identifier of the token series which the issued access token belongs to.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS MUST send the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>A unique identification of the authentication credential of RS, AUTH_CRED_RS. This is specified in the "rs_cnf" parameter defined in <xref target="RFC9201"/>. AUTH_CRED_RS can be transported by value or referred to by means of an appropriate identifier.  </t>
            <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is typically expected that the response to C may include AUTH_CRED_RS by value.  </t>
            <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_RS, it is expected that the response to C includes AUTH_CRED_RS by reference.</t>
          </li>
        </ul>
        <t>When issuing the first access token of a token series, AS MAY send EDHOC_Information related to RS, see <xref target="edhoc-parameters-object"/>, in corresponding fields of the response to C. This information is based on knowledge that AS have about RS, e.g., from a previous onboarding process, with particular reference to what RS supports as EDHOC peer.</t>
        <t><xref target="fig-token-response"/> shows an example of an AS response. The "rs_cnf" parameter specifies the authentication credential of RS, as an X.509 certificate transported by value in the "x5chain" field. The access token and the authentication credential of RS have been truncated for readability.</t>
        <figure anchor="fig-token-response">
          <name>Example of AS-to-C Access Token response with EDHOC and OSCORE profile.</name>
          <artwork><![CDATA[
   Header: Created (Code=2.01)
      Content-Format: "application/ace+cbor"
      Payload:
      {
        "access_token" : 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" : {
          "session_id" : h'01',
          "methods" : [0, 1, 2, 3],
          "cipher_suites": 0
        }
      }
]]></artwork>
        </figure>
        <section anchor="access-token">
          <name>Access Token</name>
          <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>
              <t>The "session_id" field of EDHOC_Information, with the same value specified in the response to C from the /token endpoint.</t>
            </li>
            <li>
              <t>The authentication credential that C specified in its POST request to the /token endpoint (see <xref target="c-as"/>), 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 uniquely referred to by means of an appropriate identifier, regardless of how C specified it in the request to the /token endpoint. Thus, the specific field carried in the access token claim and specifying AUTH_CRED_C depends on the specific way used by AS.  </t>
              <t>
When issuing the first access token ever to a pair (C, RS) using a pair of corresponding authentication credentials (AUTH_CRED_C, AUTH_CRED_RS), it is typically expected that AUTH_CRED_C is included by value.  </t>
              <t>
When later issuing further access tokens to the same pair (C, RS) using the same AUTH_CRED_C, it is expected that AUTH_CRED_C is identified by reference.</t>
            </li>
          </ul>
          <t>When issuing the first access token of a token series, AS MAY specify the following EDHOC_Information (see <xref target="edhoc-parameters-object"/>) 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 with the same values in the access token.</t>
          <ul spacing="normal">
            <li>
              <t>osc_ms_len: The size of the OSCORE Master Secret. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</t>
            </li>
            <li>
              <t>osc_salt_len: The size of the OSCORE Master Salt. If it is not included, the default value from <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> is assumed.</t>
            </li>
            <li>
              <t>osc_version: The OSCORE version. If it is not included, the default value of 1 (see <xref section="5.4" sectionFormat="of" target="RFC8613"/>) is assumed.</t>
            </li>
          </ul>
          <t>When CWTs are used as access tokens, EDHOC_Information MUST be transported in the "edhoc_info" claim, defined in <xref target="iana-token-cwt-claims"/>.</t>
          <t>Since the access token does not contain secret information, only its integrity and source authentication are strictly necessary to ensure. Therefore, AS can protect the access token with either of the means discussed in <xref section="6.1" sectionFormat="of" target="RFC9200"/>. Nevertheless, when using this profile, it is RECOMMENDED that the access token is a CBOR web token (CWT) protected with COSE_Encrypt/COSE_Encrypt0 as specified in <xref target="RFC8392"/>.</t>
          <t><xref target="fig-token"/> 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" : {
      "session_id" : h'01',
      "methods" : [0, 1, 2, 3],
      "cipher_suites": 0
    }
  }
]]></artwork>
          </figure>
        </section>
        <section anchor="processing-in-c">
          <name>Processing in C</name>
          <t>When receiving an Access Token response including the "rs_cnf" parameter, C checks whether it is already storing the authentication credential of RS, namely AUTH_CRED_RS, specified in "rs_cnf" by value or reference.</t>
          <t>If this is not the case, C retrieves AUTH_CRED_RS, either using the "rs_cnf" parameter or some other trusted source. After that, C validates the actual AUTH_CRED_RS. In case of successful validation, C stores AUTH_CRED_RS as a valid authentication credential. Otherwise, C MUST delete the access token.</t>
        </section>
        <section anchor="update-of-access-rights">
          <name>Update of Access Rights</name>
          <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>
              <t>The response MUST NOT include the "rs_cnf" parameter.</t>
            </li>
            <li>
              <t>The EDHOC_Information in the response MUST include only the "session_id" field.</t>
            </li>
            <li>
              <t>The EDHOC_Information in the access token MUST include only the "session_id" field. In particular, if the access token is a CWT, the "edhoc_info" claim MUST include only the "session_id" field.</t>
            </li>
          </ul>
          <t>The "session_id" 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>
      <section anchor="edhoc-parameters-object">
        <name>EDHOC_Information</name>
        <t>EDHOC_Information is an object including information that guides two peers towards executing the EDHOC protocol. In particular, the EDHOC_Information is defined to be serialized and transported between nodes, as specified by this document, but it can also be used by other specifications if needed.</t>
        <t>The EDHOC_Information can either be encoded as a JSON object or as a CBOR map.  The set of common fields that can appear in an EDHOC_Information can be found in the IANA "EDHOC Information" registry (see <xref target="iana-edhoc-parameters"/>), defined for extensibility, and the initial set of parameters defined in this document is specified below. All parameters are optional.</t>
        <t><xref target="fig-cbor-key-edhoc-params"/> provides a summary of the EDHOC_Information parameters defined in this section.</t>
        <figure anchor="fig-cbor-key-edhoc-params">
          <name>EDHOC_Information Parameters</name>
          <artwork align="center"><![CDATA[
+---------------+--------------+------+----------+--------------------+
| Name          | CBOR value   | CBOR | Registry | Description        |
|               |              | Type |          |                    |
+---------------+--------------+------+----------+--------------------+
| session_id    | bstr         |  0   |          | Identifier of      |
|               |              |      |          | EDHOC session      |
+---------------+--------------+------+----------+--------------------+
| methods       | int /        |      | EDHOC    | Set of supported   |
|               | array of int |  1   | Method   | EDHOC methods      |
|               |              |      | Type     |                    |
|               |              |      | Registry |                    |
+---------------+--------------+------+----------+--------------------+
| cipher_suites | int /        |      | EDHOC    | Set of supported   |
|               | array of int |  2   | Cipher   | EDHOC cipher       |
|               |              |      | Suites   | suites             |
|               |              |      | Registry |                    |
+---------------+--------------+------+----------+--------------------+
| message_4     | simple value |      |          | Support for EDHOC  |
|               | "true" /     |  3   |          | message_4          |
|               | simple value |      |          |                    |
|               | "false"      |      |          |                    |
+---------------+--------------+------+----------+--------------------+
| comb_req      | simple value |      |          | Support for the    |
|               | "true" /     |  4   |          | EDHOC + OSCORE     |
|               | simple value |      |          | combined request   |
|               | "false"      |      |          |                    |
+---------------+--------------+------+----------+--------------------+
| uri_path      | tstr         |  5   |          | URI-path of the    |
|               |              |      |          | EDHOC resource     |
+---------------+--------------+------+----------+--------------------+
| osc_ms_len    | uint         |      |          | Length in bytes of |
|               |              |  6   |          | the OSCORE Master  |
|               |              |      |          | Secret to derive   |
+---------------+--------------+------+----------+--------------------+
| osc_salt_len  | uint         |      |          | Length in bytes of |
|               |              |  7   |          | the OSCORE Master  |
|               |              |      |          | Salt to derive     |
+---------------+--------------+------+----------+--------------------+
| osc_version   | uint         |  8   |          | OSCORE version     |
|               |              |      |          | number to use      |
+---------------+--------------+------+----------+--------------------+
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t>session_id: This parameter identifies an EDHOC session and is encoded as a byte string. In JSON, the "session_id" value is a Base64 encoded byte string. In CBOR, the "session_id" type is a byte string, and has label 0.</t>
          </li>
          <li>
            <t>methods: This parameter specifies a set of supported EDHOC methods (see <xref section="3.2" sectionFormat="of" target="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.</t>
          </li>
          <li>
            <t>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.</t>
          </li>
          <li>
            <t>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.</t>
          </li>
          <li>
            <t>comb_req: This parameter indicates whether the combined EDHOC + OSCORE request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>) is supported. In JSON, the "comb_req" value is a boolean. In CBOR, "comb_req" is the simple value "true" or "false", and has label 5.</t>
          </li>
          <li>
            <t>uri_path: This parameter specifies the path component of the URI of the EDHOC resource where EDHOC messages have to be sent as requests. In JSON, the "uri_path" value is a string. In CBOR, "uri_path" is a text string, and has label 6.</t>
          </li>
          <li>
            <t>osc_ms_len: This parameter specifies the size in bytes of the OSCORE Master Secret to derive after the EDHOC session, as per <xref section="A.1" sectionFormat="of" target="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.</t>
          </li>
          <li>
            <t>osc_salt_len: This parameter specifies the size in bytes of the OSCORE Master Salt to derive after the EDHOC session, as per <xref section="A.1" sectionFormat="of" target="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.</t>
          </li>
          <li>
            <t>osc_version: This parameter specifies the OSCORE Version number that the two EDHOC peers have to use when using OSCORE. For more information about this parameter, see <xref section="5.4" sectionFormat="of" target="RFC8613"/>. In JSON, the "osc_version" value is an integer. In CBOR, the "osc_version" type is unsigned integer, and has label 9.</t>
          </li>
        </ul>
        <t>An example of JSON EDHOC_Information is given in <xref target="fig-edhoc-info-json"/>.</t>
        <figure anchor="fig-edhoc-info-json">
          <name>Example of JSON EDHOC_Information</name>
          <artwork><![CDATA[
   "edhoc_info" : {
       "session_id" : b64'AQ==',
       "methods" : 1,
       "cipher_suites" : 0
   }
]]></artwork>
        </figure>
        <t>The CDDL grammar describing the CBOR EDHOC_Information is:</t>
        <artwork><![CDATA[
EDHOC_Information = {
   ? 0 => bstr,             ; id
   ? 1 => int / array,      ; methods
   ? 2 => int / array,      ; cipher_suites
   ? 3 => true / false,     ; message_4
   ? 4 => true / false,     ; comb_req
   ? 5 => tstr,             ; uri_path
   ? 6 => uint,             ; osc_ms_len
   ? 7 => uint,             ; osc_salt_len
   ? 8 => uint,             ; osc_version
   * int / tstr => any
}
]]></artwork>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>This section describes the exchanges between C and RS, which comprise the token uploading to RS, and the execution of the EDHOC protocol. Note that AS may have uploaded the access token directly to RS (see <xref target="as-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 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 an EAD field of an EDHOC message sent to RS. This is further discussed in <xref target="AT-in-EAD"/> and <xref target="edhoc-exec"/>, and shown by the example in <xref target="example-with-optimization"/>.</t>
      <t>In either case, C and RS run the EDHOC protocol by exchanging POST requests and related responses to a dedicated EDHOC resource at RS (see <xref target="edhoc-exec"/>). Once completed the EDHOC session, 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>C and RS are mutually authenticated once they have successfully completed the EDHOC protocol. RS gets key confirmation of PRK_out by C at the end of the successful EDHOC session. Conversely, C get key confirmation of PRK_out by RS 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 uses CoAP <xref target="RFC7252"/> and the Authorization Information endpoint described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/> in order to transport the access token.</t>
        <t>That is, C sends a POST request to the /authz-info endpoint at RS, with the request payload conveying the access token without any CBOR wrapping. As per <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, the Content-Format of the POST request has to reflect the format of the transported access token. In particular, if the access token is a CWT, the Content-Format MUST be "application/cwt".</t>
        <t>The communication with the /authz-info endpoint is in general not protected, except in the case of updating the access rights (see <xref target="update-access-rights-c-rs"/>).</t>
      </section>
      <section anchor="rs-c">
        <name>RS-to-C: 2.01 (Created)</name>
        <t>Upon receiving an access token from C, RS MUST follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>. That is, RS must verify the validity of the access token. RS may make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token.</t>
        <t>If the access token is valid, RS proceeds as follows.</t>
        <t>RS checks whether it is already storing the authentication credential of C, AUTH_CRED_C, specified in the "cnf" claim of the access token by value or by reference. If not, RS retrieves AUTH_CRED_C, either using the "cnf" claim or some other trusted source.</t>
        <t>If RS fails to find or validate AUTH_CRED_C, 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, instead, the access token is valid but associated with claims that RS cannot process (e.g., an unknown scope), or if any of the expected parameters is missing (e.g., any of the mandatory parameters from AS or the identifier "session_id"), or if any parameters received in the EDHOC_Information is unrecognized, then RS 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 all validations are successful, RS MUST reply to the POST request with a 2.01 (Created) response.</t>
        <t>When an access token becomes invalid (e.g., due to its expiration or revocation), RS MUST delete the access token and the associated OSCORE Security Context, and MUST notify C with an error response with code 4.01 (Unauthorized) for any long running request, as specified in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
      </section>
      <section anchor="AT-in-EAD">
        <name>Access Token in External Authorization Data</name>
        <t>Instead of uploading the access token to the /authz-info endpoint at RS as described in <xref target="c-rs"/>, C MAY include the access token either in EDHOC message_1 or message_3 by making use of the External Authorization Data fields (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>). The former is shown by the example in <xref target="example-with-optimization"/>. In the latter case, the access token is encrypted between C and RS, which provides an alternative for protecting potential sensitive information in the access token.</t>
        <t>Editor's note: Shall we remove the EAD_1 case? The case POST /token offers already early abort, and the EAD_3 case is equally efficient but offers better protection of the access token.</t>
        <t>This document defines the EAD item EAD_ACCESS_TOKEN = (ead_label, ead_value), where:</t>
        <ul spacing="normal">
          <li>
            <t>ead_label is the integer value TBD registered in <xref target="iana-edhoc-ead"/>, and</t>
          </li>
          <li>
            <t>ead_value is a CBOR byte string equal to the value of the "access_token" field of the access token response from AS (see <xref target="as-c"/>).</t>
          </li>
        </ul>
        <t>This EAD item, which may be used either in EAD_1 or EAD_3, is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must either process the access token or abort the EDHOC session (see <xref section="3.8" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>).</t>
        <t>Access tokens are only transported in EAD fields for the first access token of a token series and not for the update of access rights.</t>
      </section>
      <section anchor="edhoc-exec">
        <name>EDHOC Session and OSCORE Security Context</name>
        <t>In order to mutually authenticate and establish a secure association, C and RS run the EDHOC protocol <xref target="I-D.ietf-lake-edhoc"/> with C as EDHOC Initiator and RS 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. RS sends EDHOC message_2 and (optionally) EDHOC message_4 as 2.04 (Changed) CoAP responses. C MUST target the EDHOC resource at RS with the URI path specified in the "uri_path" field of the EDHOC_Information in the access token response received from AS (see <xref target="c-as"/>), if present.</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>
        <section anchor="edhoc-message1">
          <name>EDHOC message_1</name>
          <t>The processing of EDHOC message_1 is specified in <xref section="5.2" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. Additionally, the following applies:</t>
          <ul spacing="normal">
            <li>
              <t>The EDHOC method MUST be one of the EDHOC methods specified in the "methods" field (if present) in the EDHOC_Information of the access token response to C.</t>
            </li>
            <li>
              <t>The selected cipher suite MUST be an EDHOC cipher suite specified in the "cipher_suites" field (if present) in the EDHOC_Information of the access token response to C.</t>
            </li>
            <li>
              <t>If the access token is provisioned with EDHOC message_1 as specified in <xref target="AT-in-EAD"/>, then C adds the EAD item EAD_ACCESS_TOKEN = (-ead_label, ead_value) to the EAD_1 field. If EAD_1 includes EAD_ACCESS_TOKEN, then RS MUST process the access token carried in ead_value as specified in <xref target="rs-c"/>. If this processing fails, RS MUST reply to C with an EDHOC error message with ERR_CODE 1 (see <xref section="6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), and it MUST abort the EDHOC session. RS MUST have successfully completed the processing of the access token before continuing the EDHOC session by sending EDHOC message_2.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message2">
          <name>EDHOC message_2</name>
          <t>The processing of EDHOC message_2 is specified in <xref section="5.3" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R indicated by the message field ID_CRED_R is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="edhoc-message3">
          <name>EDHOC message_3</name>
          <t>The processing of EDHOC message_3 is specified in <xref section="5.4" sectionFormat="of" target="I-D.ietf-lake-edhoc"/> with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I indicated by the message field ID_CRED_I is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>If the access token is provisioned with EDHOC message_3 as specified in <xref target="AT-in-EAD"/>, then C adds the EAD item EAD_ACCESS_TOKEN = (-ead_label, ead_value) to the EAD_3 field. If EAD_3 includes EAD_ACCESS_TOKEN, then RS MUST process the access token carried in ead_value as specified in <xref target="rs-c"/>. If such a process fails, RS MUST reply to C with an EDHOC error message with ERR_CODE 1 (see <xref section="6" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>), and it MUST abort the EDHOC session. RS MUST have successfully completed the processing of the access token before completing the EDHOC session.</t>
            </li>
          </ul>
        </section>
        <section anchor="oscore-security-context">
          <name>OSCORE Security Context</name>
          <t>Once successfully completed the EDHOC session, C and RS derive an OSCORE Security Context, as defined in <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>. In addition, the following applies.</t>
          <ul spacing="normal">
            <li>
              <t>The length in bytes of the OSCORE Master Secret (i.e., the oscore_key_length parameter, see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) MUST be the value specified in the "osc_ms_size" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
            </li>
            <li>
              <t>The length in bytes of the OSCORE Master Salt (i.e., the oscore_salt_length parameter, see <xref section="A.1" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>) MUST be the value specified in the "osc_salt_size" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
            </li>
            <li>
              <t>C and RS MUST use the OSCORE version specified in the "osc_version" field (if present) in the EDHOC_Information of the access token response to C, and of the access token provisioned to RS, respectively.</t>
            </li>
            <li>
              <t>RS associates the derived OSCORE Security Context with the stored access token, which is bound to the authentication credential (AUTH_CRED_C = CRED_I) used in the EDHOC session.</t>
            </li>
          </ul>
          <t>If supported by C, C MAY use the EDHOC + OSCORE combined request defined in <xref target="I-D.ietf-core-oscore-edhoc"/>, unless the "comb_req" field of the EDHOC_Information was present in the access token response and set to the CBOR simple value "false" (0xf4). In the combined request, both EDHOC message_3 and the first OSCORE-protected application request are combined together in a single OSCORE-protected CoAP request, thus saving one round trip. For an example, see <xref target="example-with-optimization"/>. This requires C to derive the OSCORE Security Context with RS already after having successfully processed the received EDHOC message_2 and before sending EDHOC message_3.</t>
        </section>
      </section>
      <section anchor="update-access-rights-c-rs">
        <name>Update of Access Rights</name>
        <t>If C has already established access rights and an OSCORE Security Context with RS, then C can update its access rights by posting a new access token to the /authz-info endpoint.</t>
        <t>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-comm"/>). 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>
        <t>Editor's note: Add description about the alternative when the AS uploads the new access token to RS.</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 this case, RS MUST check the following conditions:</t>
        <ul spacing="normal">
          <li>
            <t>RS checks whether it stores an access token T_OLD, such that the "session_id" field of EDHOC_Information matches the "session_id" field of EDHOC_Information in the new access token T_NEW.</t>
          </li>
          <li>
            <t>RS checks whether the OSCORE Security Context CTX used to protect the request matches the OSCORE Security Context associated with the stored access token T_OLD.</t>
          </li>
        </ul>
        <t>If both the conditions above hold, RS MUST replace the old access token T_OLD with the new access token T_NEW, and associate T_NEW with the OSCORE Security Context CTX. Then, RS MUST respond with a 2.01 (Created) response protected with the same OSCORE Security Context, with no payload.</t>
        <t>Otherwise, RS MUST respond with a 4.01 (Unauthorized) error response. RS may provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
        <t>As specified in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, when receiving an updated access token with updated authorization information from C (see <xref target="c-rs"/>), it is recommended that RS overwrites the previous access token. That is, only the latest authorization information in the access token received by RS is valid. This simplifies the process needed by RS to keep track of authorization information for a given client.</t>
      </section>
      <section anchor="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>
            <t>The OSCORE Sender Sequence Number space of C is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</t>
          </li>
          <li>
            <t>C receives a number of unprotected 4.01 (Unauthorized) responses to OSCORE-protected requests, which are sent to RS and protected using the same OSCORE Security Context. The exact number of such received responses needs to be specified by the application. This may for example happen due to lack of storage in RS, which then sends the "AS Request Creation Hints" message (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>).</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid, e.g., due to expiration or revocation, and it was used as CRED_I (CRED_R) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>RS MUST discard the current OSCORE Security Context shared with C when any of the following occurs:</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Sender Sequence Number space of RS is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example due to expiration or revocation.</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid (e.g., due to expiration or revocation), and it was used as CRED_I (CRED_R) in the EDHOC session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>After a new access token is successfully uploaded to RS, and a new OSCORE Security Context is established between C and RS, messages still in transit that were protected with the previous OSCORE Security Context might not be successfully verified by the recipient, since the old OSCORE Security Context might have been discarded. This means that messages sent shortly before C has uploaded the new access token to RS might not be successfully accepted by the recipient.</t>
        <t>Furthermore, implementations may want to cancel CoAP observations at RS, if registered before the new OSCORE Security Context has been established. Alternatively, applications need to implement a mechanism to ensure that, from then on, messages exchanged within those observations are going to be protected with the newly derived OSCORE Security Context.</t>
      </section>
      <section anchor="cases-of-establishing-a-new-oscore-security-context">
        <name>Cases of Establishing a New OSCORE Security Context</name>
        <t>The procedure of provisioning a new access token to RS specified in this section applies to various cases when an OSCORE Security Context shared between C and RS has been deleted, for example as described in <xref target="discard-context"/>.</t>
        <t>Another exceptional case is when there is still a valid OSCORE Security Context but it needs to be updated, e.g., due to a policy limiting its use in terms of time or amount of processed data, or to the imminent exhaustion of the OSCORE Sender Sequence Number space. In this case, C and RS SHALL attempt to run the KUDOS key update protocol <xref target="I-D.ietf-core-oscore-key-update"/>, which is a lightweight alternative independent of ACE and EDHOC that does not require the posting of an access token. If KUDOS is not supported, then C and RS falls back to EDHOC as outlined above.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS MUST associate the new OSCORE Security Context with the current (potentially re-posted) access token. Unless C and RS re-run the EDHOC protocol, they preserve their OSCORE identifiers, i.e., the OSCORE Sender/Recipient IDs.</t>
      </section>
      <section anchor="access-rights-verif">
        <name>Access Rights Verification</name>
        <t>RS MUST follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="RFC9200"/>. That is, if RS receives an OSCORE-protected request targeting a protected resource from C, then RS processes the request according to <xref target="RFC8613"/>, when Version 1 of OSCORE is used. Future specifications may define new versions of OSCORE, which AS can indicate C and RS to use by means of the "osc_version" field of EDHOC_Information (see <xref target="c-as-comm"/>).</t>
        <t>If OSCORE verification succeeds and the target resource requires authorization, RS retrieves the authorization information using the access token associated with the OSCORE Security Context. Then, RS must verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
    </section>
    <section anchor="secure-comm-as">
      <name>Secure Communication with AS</name>
      <t>As specified in the ACE framework (see Sections <xref target="RFC9200" section="5.8" sectionFormat="bare"/> and <xref target="RFC9200" section="5.9" sectionFormat="bare"/> of <xref target="RFC9200"/>), the requesting entity (RS and/or C) and AS communicates via the /token or /introspect endpoint. When using this profile, the use of CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> for this communication is RECOMMENDED. Other protocols fulfilling the security requirements defined in <xref section="5" sectionFormat="of" target="RFC9200"/> (such as HTTP and DTLS <xref target="RFC9147"/> or TLS <xref target="RFC8446"/>) MAY be used instead.</t>
      <t>If OSCORE is used, the requesting entity and AS need to have an OSCORE Security Context in place. While this can be pre-installed, the requesting entity and AS can establish such an OSCORE Security Context, for example, by running the EDHOC protocol, as shown between C and AS by the examples in <xref target="example-without-optimization"/>, <xref target="example-with-optimization"/>, and <xref target="example-without-optimization-as-posting"/>.</t>
      <t>Furthermore, as discussed in <xref target="as-c"/> and shown by the example in <xref target="example-without-optimization-as-posting"/>, AS may upload an access token directly to the /authz-info endpoint at RS. Unless encryption is applied, that exchange between AS and RS discloses the plain text token, just like when C uses the /authz-info endpoint at RS to upload a first token in a series.</t>
      <t>Editor's note: Elaborate on how to encrypt the token from AS to RS, since there is a pre-established security context.</t>
    </section>
    <section anchor="cwt-confirmation-metods">
      <name>CWT Confirmation Metods</name>
      <t>This document defines a number of new CWT confirmation methods (see <xref target="iana-cwt-confirmation-methods"/>). The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-cwt-conf-x5chain">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5chain" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5chain" is like that of the "x5chain" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5bag">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5bag" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5bag" is like that of the "x5bag" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "c5c" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5b" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5t">
        <name>Hash of a C509 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "c5t" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of a COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "c5u" COSE Header Parameter specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The semantics of "kcwt" is like that of the "kcwt" COSE Header Parameter specified in <xref target="I-D.ietf-lake-edhoc"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CWT Claims Set (CCS) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The semantics of "kccs" is like that of the "kccs" COSE Header Parameter specified in <xref target="I-D.ietf-lake-edhoc"/>.</t>
      </section>
    </section>
    <section anchor="jwt-confirmation-metods">
      <name>JWT Confirmation Metods</name>
      <t>This document defines a number of new JWT confirmation methods (see <xref target="iana-jwt-confirmation-methods"/>). The semantics of each confirmation method is defined below.</t>
      <section anchor="ssec-jwt-conf-x5c">
        <name>Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5c" specifies an ordered array of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5c" is like that of the "x5c" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5b">
        <name>Unordered Bag of X.509 Certificates</name>
        <t>The confirmation method "x5b" specifies a bag of X.509 certificates <xref target="RFC5280"/>. The semantics of the "x5b" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "x5b" are like for the "x5bag" COSE Header Parameter defined in <xref target="RFC9360"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5t">
        <name>Hash of an X.509 Certificate</name>
        <t>The confirmation method "x5t" specifies the hash value of the end-entity X.509 certificate <xref target="RFC5280"/>. The semantics of "x5t" is like that of the "x5t" JSON Web Signature and Encryption Header Parameter specified in <xref target="RFC7515"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-x5u">
        <name>URI Pointing to an Ordered Chain of X.509 Certificates</name>
        <t>The confirmation method "x5u" specifies the URI <xref target="RFC3986"/> of an ordered chain of X.509 certificates <xref target="RFC5280"/>. The semantics of "x5u" is like that of the "x5u" COSE Header Parameter specified in <xref target="RFC9360"/>, with the following difference. The public key contained in the first certificate is the proof-of-possession key and does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5c">
        <name>Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5c" specifies an ordered array of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5c" is like that of the "x5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5c"/>, with the following difference. Each string in the JSON array is a base64-encoded (<xref section="4" sectionFormat="of" target="RFC4648"/> - not base64url-encoded) C509 certificate.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5b">
        <name>Unordered Bag of C509 Certificates</name>
        <t>The confirmation method "c5b" specifies a bag of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5b" is like that of the "c5c" JWT confirmation method defined in <xref target="ssec-jwt-conf-c5c"/>, with the following differences. First, the set of certificates is unordered and may contain self-signed certificates. Second, the composition and processing of "c5b" is like for the "c5b" COSE Header Parameter defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5t">
        <name>Hash of a C09 Certificate</name>
        <t>The confirmation method "c5t" specifies the hash value of the end-entity C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5t" is like that of the "x5t" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5t"/>, with the following differences. First, the base64url-encoded SHA-1 thumbprint is computed over the C509 certificate. Second, the public key contained in the C509 certificate does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-c5u">
        <name>URI Pointing to an Ordered Chain of C509 Certificates</name>
        <t>The confirmation method "c5u" specifies the URI <xref target="RFC3986"/> of COSE_C509 containing an ordered chain of C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. COSE_C509 is defined in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. The semantics of "c5u" is like that of the "x5u" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5u"/>, with the following differences. First, the URI refers to a resource for the C509 certificate chain. Second, the public key contained in one of the C509 certificates and acting as proof-of-possession key does not have to correspond to a key used to digitally sign the JWS.</t>
      </section>
      <section anchor="ssec-jwt-conf-kcwt">
        <name>CWT Containing a COSE_Key</name>
        <t>The confirmation method "kcwt" specifies a CBOR Web Token (CWT) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
      <section anchor="ssec-jwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CWT Claims Set (CCS) <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a 'cnf' claim and possibly other claims. The format of "kcwt" is the base64url-encoded serialization of the CWT.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general security considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the security considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="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 session, C and RS are mutually authenticated through their respective authentication credentials, whose retrieval has been facilitated by AS. Also once completed the EDHOC session, C and RS have established a long-term secret key PRK_out enjoying forward secrecy. This is in turn used by C and RS to establish an OSCORE Security Context.</t>
      <t>Furthermore, RS achieves confirmation that C has PRK_out (proof-of-possession) when completing the EDHOC session. Rather, C achieves confirmation that RS has PRK_out (proof-of-possession) either when receiving the optional EDHOC message_4 from RS, or when successfully verifying a response from RS protected with the established OSCORE Security Context.</t>
      <t>OSCORE is designed to secure point-to-point communication, providing a secure binding between a request and the corresponding response(s). Thus, the basic OSCORE protocol is not intended for use in point-to-multipoint communication (e.g., enforced via multicast or a publish-subscribe model). Implementers of this profile should make sure that their use case of OSCORE corresponds to the expected one, in order to prevent weakening the security assurances provided by OSCORE.</t>
      <t>When using this profile, it is RECOMMENDED that RS stores only one access token per client. The use of multiple access tokens for a single client increases the strain on RS, since it must consider every access token associated with the client and calculate the actual permissions that client has. Also, access tokens indicating different or disjoint permissions from each other may lead RS to enforce wrong permissions.  If one of the access tokens expires earlier than others, the resulting permissions may offer insufficient protection. Developers SHOULD avoid using multiple access tokens for a same client. Furthermore, RS MUST NOT store more than one access token per client per PoP-key (i.e., per client's authentication credential).</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general privacy considerations from the ACE framework also apply to this profile.</t>
      <t>Furthermore, the privacy considerations from OSCORE <xref target="RFC8613"/> and from EDHOC <xref target="I-D.ietf-lake-edhoc"/> also apply to this specific use of the OSCORE and EDHOC protocols.</t>
      <t>An unprotected response to an unauthorized request may disclose information about RS and/or its existing relationship with C. It is advisable to include as little information as possible in an unencrypted response. When an OSCORE Security Context already exists between C and RS, more detailed information may be included.</t>
      <t>Except for the case where C attempts to update its access rights, the (encrypted) access token is sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, if C uses the same single access token from multiple locations, it can risk being tracked by the access token's value even when the access token is encrypted.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the EDHOC session. That is, the EDHOC Connection Identifier C_I of C is going to be the OSCORE Recipient ID of C (the OSCORE Sender ID of RS). Conversely, the EDHOC Connection Identifier C_R of RS is going to be the OSCORE Recipient ID of RS (the OSCORE Sender ID of C). These OSCORE identifiers are privacy sensitive (see <xref section="12.8" sectionFormat="of" target="RFC8613"/>). In particular, they could reveal information about C, or may be used for correlating different requests from C, e.g., across different networks that C has joined and left over time. This can be mitigated if C and RS dynamically update their OSCORE identifiers, e.g., by using the method defined in <xref target="I-D.ietf-core-oscore-key-update"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with
the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE OAuth Profile Registry</name>
        <t>IANA is asked to add the following entry to the "ACE OAuth Profile"
Registry following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Profile name: coap_edhoc_oscore</t>
          </li>
          <li>
            <t>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"/>.</t>
          </li>
          <li>
            <t>Profile ID:  TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Reference:  [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry.</t>
        <ul spacing="normal">
          <li>
            <t>Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request, token response</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: "edhoc_info"</t>
          </li>
          <li>
            <t>CBOR Key: TBD</t>
          </li>
          <li>
            <t>Value Type: map</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-json-claims">
        <name>JSON Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "JSON Web Token Claims" registry following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Claim Description: Information for EDHOC session</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token 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>
            <t>Claim Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Claim Description: Information for EDHOC session</t>
          </li>
          <li>
            <t>JWT Claim Name: "edhoc_info"</t>
          </li>
          <li>
            <t>Claim Key: TBD</t>
          </li>
          <li>
            <t>Claim Value Type(s): map</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-jwt-confirmation-methods">
        <name>JWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "JWT Confirmation Methods" registry following the procedure specified in <xref target="RFC7800"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5c"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5b"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5t"</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "x5u"</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5c"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5b"</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5t"</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "c5u"</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "kcwt"</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: "kccs"</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-jwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-cwt-confirmation-methods">
        <name>CWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "CWT Confirmation Methods" registry following the procedure specified in <xref target="RFC8747"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5chain</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5c"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5chain"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5bag</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5b"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5bag"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5t"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "x5u"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): uri</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5c"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5b"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5t"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a COSE_C509 containing an ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "c5u"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): uri</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kcwt</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "kcwt"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): COSE_Messages</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kccs</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a 'cnf' claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: "kccs"</t>
          </li>
          <li>
            <t>Confirmation Key: TBD</t>
          </li>
          <li>
            <t>Confirmation Value Type(s): map / #6(map)</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="ssec-cwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to add the following entry to the "EDHOC External Authorization Data" registry defined in <xref section="9.5" sectionFormat="of" target="I-D.ietf-lake-edhoc"/>.</t>
        <t>The ead_label = TBD and the ead_value defines an access token in EAD_1 or EAD_3, with processing specified in <xref target="AT-in-EAD"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Label: TBD</t>
          </li>
          <li>
            <t>Value Type: bstr</t>
          </li>
          <li>
            <t>Description: Access Token</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </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>
            <t>CBOR Type: The CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</t>
          </li>
          <li>
            <t>Registry: The registry that values of the item may come from, if one exists.</t>
          </li>
          <li>
            <t>Description: A brief description of this item.</t>
          </li>
          <li>
            <t>Specification: A pointer to the public specification for the item, if one exists.</t>
          </li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="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>
            <t>Point squatting should be discouraged. Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered and that the point is likely to be used in deployments. The zones tagged as private use are intended for testing purposes and closed environments; code points in other ranges should not be assigned for testing.</t>
          </li>
          <li>
            <t>Specifications are required for the Standards Action range of point assignment. Specifications should exist for Specification Required ranges, but early assignment before a specification is available is considered to be permissible. Specifications are needed for the first-come, first-serve range if they are expected to be used outside of closed environments in an interoperable way. When specifications are not provided, the description provided needs to have sufficient information to identify what the point is being used for.</t>
          </li>
          <li>
            <t>Experts should take into account the expected usage of fields when approving point assignment. The fact that there is a range for Standards Track documents does not mean that a Standards Track document cannot have points assigned outside of that range. The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="25" month="August" year="2023"/>
            <abstract>
              <t>   This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a
   very compact and lightweight authenticated Diffie-Hellman key
   exchange with ephemeral keys.  EDHOC provides mutual authentication,
   forward secrecy, and identity protection.  EDHOC is intended for
   usage in constrained scenarios and a main use case is to establish an
   OSCORE security context.  By reusing COSE for cryptography, CBOR for
   encoding, and CoAP for transport, the additional code size can be
   kept very low.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-22"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc">
          <front>
            <title>Using EDHOC with CoAP and OSCORE</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
              <organization>Fraunhofer AISEC</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="13" month="October" year="2023"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol EDHOC can be run
   over CoAP and used by two peers to establish an OSCORE Security
   Context.  This document details this use of the EDHOC protocol, by
   specifying a number of additional and optional mechanisms.  These
   especially include an optimization approach for combining the
   execution of EDHOC with the first OSCORE transaction.  This
   combination reduces the number of round trips required to set up an
   OSCORE Security Context and to complete an OSCORE transaction using
   that Security Context.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-07"/>
        </reference>
        <reference anchor="I-D.tiloca-ace-workflow-and-params">
          <front>
            <title>Alternative Workflow and OAuth Parameters for the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   This document updates the Authentication and Authorization for
   Constrained Environments Framework (ACE, RFC 9200) as follows.
   First, it defines a new, alternative workflow that the Authorization
   Server can use for uploading an access token to a Resource Server on
   behalf of the Client.  Second, it defines new parameters and
   encodings for the OAuth 2.0 token endpoint at the Authorization
   Server.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-selander-lake-authz-03"/>
        </reference>
        <reference anchor="I-D.ietf-ace-coap-est-oscore">
          <front>
            <title>Protecting EST Payloads with OSCORE</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>Inria</organization>
            </author>
            <author fullname="Timothy Claeys" initials="T." surname="Claeys">
         </author>
            <date day="9" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies public-key certificate enrollment procedures
   protected with lightweight application-layer security protocols
   suitable for Internet of Things (IoT) deployments.  The protocols
   leverage payload formats defined in Enrollment over Secure Transport
   (EST) and existing IoT standards including the Constrained
   Application Protocol (CoAP), Concise Binary Object Representation
   (CBOR) and the CBOR Object Signing and Encryption (COSE) format.

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

<section anchor="examples">
      <name>Examples</name>
      <t>This appendix provides examples where this profile of ACE is used. In particular:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="example-without-optimization"/> does not make use of use of any optimization.</t>
        </li>
        <li>
          <t><xref target="example-with-optimization"/> makes use of the optimizations defined in this specification, hence reducing the roundtrips of the interactions between the Client and the Resource Server.</t>
        </li>
        <li>
          <t><xref target="example-without-optimization-as-posting"/> considers an alternative workflow where AS uploads the access token to RS.</t>
        </li>
      </ul>
      <t>All these examples build on the following assumptions, as relying on expected early procedures performed at AS. These include the registration of RSs by the respective Resource Owners as well as the registrations of Clients authorized to request access token for those RSs.</t>
      <ul spacing="normal">
        <li>
          <t>AS knows the authentication credential AUTH_CRED_C of the Client C.</t>
        </li>
        <li>
          <t>The Client knows the authentication credential AUTH_CRED_AS of AS.</t>
        </li>
        <li>
          <t>AS knows the authentication credential AUTH_CRED_RS of RS.</t>
        </li>
        <li>
          <t>RS knows the authentication credential AUTH_CRED_AS of AS.  </t>
          <t>
This is relevant in case AS and RS actually require a secure association (e.g., for RS to perform token introspection at AS, or for AS to upload an access token to RS on behalf of the Client).</t>
        </li>
      </ul>
      <t>As a result of the assumptions above, it is possible to limit the transport of AUTH_CRED_C and AUTH_CRED_RS by value only to the following two cases, and only when the Client requests an access token for RS in question for the first time when considering the pair (AUTH_CRED_C, AUTH_CRED_RS).</t>
      <ul spacing="normal">
        <li>
          <t>In the Token Response from AS to the Client, where AUTH_CRED_RS is specified by the 'rs_cnf' parameter.</t>
        </li>
        <li>
          <t>In the access token, where AUTH_CRED_C is specified by the 'cnf' claim.</t>
        </li>
      </ul>
      <t>Note that, even under the circumstances mentioned above, AUTH_CRED_C might rather be indicated by reference. This is possible if RS can effectively use such a reference from the access token to retrieve AUTH_CRED_C (e.g., from a trusted repository of authentication credentials reachable through a non-constrained link), and if AS is in turn aware of that.</t>
      <t>In any other case, it is otherwise possible to indicate both AUTH_CRED_C and AUTH_CRED_RS by reference, when performing the ACE access control workflow as well as later on when the Client and RS run EDHOC.</t>
      <section anchor="example-without-optimization">
        <name>Workflow without Optimizations</name>
        <t>The example below 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:         |                              |
    |     {                            |                              |
    |       session_id : h'01',        |                              |
    |       cipher_suites : 2,         |                              |
    |       methods : 3                |                              |
    |     }                            |                              |
    |                                  |                              |
    |  In the access token:            |                              |
    |    * the 'cnf' claim specifies   |                              |
    |      AUTH_CRED_C by value        |                              |
    |    * the 'edhoc_info' claim      |                              |
    |      specifies the same as       |                              |
    |      'edhoc_info' above          |                              |
    |                                  |                              |

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

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

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

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

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

    |                                  |                              |
    |                                  |                              |

 // Time passes ...

    |                                  |                              |
    |                                  |                              |

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

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

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

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

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

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

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

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

    |                                  |                              |
    |  Response                        |                              |
    |  (OSCORE-protected message)      |                              |
M08 |<----------------------------------------------------------------|
    |                                  |                              |
]]></artwork>
      </section>
      <section anchor="example-without-optimization-as-posting">
        <name>Alternative Workflow (AS token posting)</name>
        <t>The example below builds on the example in <xref target="example-with-optimization"/>, but assumes that AS is uploading the access token to RS as specified in <xref target="I-D.tiloca-ace-workflow-and-params"/>.</t>
        <artwork><![CDATA[
    C                                 AS                             RS
    |                                  |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
M01 |--------------------------------->|                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M02 |<---------------------------------|                              |
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_AS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /token  |                              |
M03 |--------------------------------->|                              |
    |  * EDHOC message_3               |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Token request               |                              |
    |         'req_cnf' identifies     |                              |
    |         AUTH_CRED_C by reference |                              |
    |                                  |                              |
    |                                  |                              |
    |                                  |  Token upload to /authz-info |
M04 |                                  |----------------------------->|
    |                                  |  In the access token:        |
    |                                  |    * the 'cnf' claim         |
    |                                  |      specifies AUTH_CRED_C   |
    |                                  |      by value                |
    |                                  |    * the 'edhoc_info'        |
    |                                  |      claim specifies         |
    |                                  |        {                     |
    |                                  |          session_id : h'01', |
    |                                  |          cipher_suites : 2,  |
    |                                  |          methods: 3          |
    |                                  |        }                     |
    |                                  |                              |

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

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

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

    |                                  |                              |
    |  EDHOC message_1 to /edhoc       |                              |
    |  (no access control is enforced) |                              |
M07 |---------------------------------------------------------------->|
    |                                  |                              |
    |                                  |                              |
    |  EDHOC message_2                 |                              |
M08 |<----------------------------------------------------------------|
    |  ID_CRED_R identifies            |                              |
    |     CRED_R = AUTH_CRED_RS        |                              |
    |     by reference                 |                              |
    |                                  |                              |
    |                                  |                              |
    |  EDHOC+OSCORE request to /r      |                              |
M09 |---------------------------------------------------------------->|
    |  * EDHOC message_3               |                              |
    |      ID_CRED_I identifies        |                              |
    |         CRED_I = AUTH_CRED_C     |                              |
    |         by reference             |                              |
    |  --- --- ---                     |                              |
    |  * OSCORE-protected part         |                              |
    |      Application request to /r   |                              |
    |                                  |                              |

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

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

]]></artwork>
      </section>
    </section>
    <section anchor="sec-profile-requirements">
      <name>Profile Requirements</name>
      <t>This section lists the specifications of this profile based on the requirements of the framework, as requested in <xref section="C" sectionFormat="of" target="RFC9200"/>.</t>
      <ul spacing="normal">
        <li>
          <t>Optionally, define new methods for the client to discover the necessary permissions and AS for accessing a resource, different from the one proposed in <xref target="RFC9200"/>: Not specified</t>
        </li>
        <li>
          <t>Optionally, specify new grant types: Not specified</t>
        </li>
        <li>
          <t>Optionally, define the use of client certificates as client credential type: C can use authentication credentials of any type admitted by the EDHOC protocol, including public key certificates such as X.509 and C509 certificates.</t>
        </li>
        <li>
          <t>Specify the communication protocol the client and RS must use: CoAP</t>
        </li>
        <li>
          <t>Specify the security protocol the client and RS must use to protect their communication: OSCORE</t>
        </li>
        <li>
          <t>Specify how the client and RS mutually authenticate: Explicitly, by successfully executing the EDHOC protocol, after which a common OSCORE Security Context is exported from the EDHOC session. As per the EDHOC authentication method used during the EDHOC session, authentication is provided by digital signatures, or by Message Authentication Codes (MACs) computed from an ephemeral-static ECDH shared secret.</t>
        </li>
        <li>
          <t>Specify the proof-of-possession protocol(s) and how to select one, if several are available. Also specify which key types (e.g., symmetric/asymmetric) are supported by a specific proof-of- possession protocol: proof-of-possession is first achieved by RS when successfully processing EDHOC message_3 during the EDHOC session with C, through EDHOC algorithms and symmetric EDHOC session keys. Also, proof-of-possession is later achieved by C when receiving from RS: i) the optional EDHOC message_4 during the EDHOC session with RS, through EDHOC algorithms and symmetric EDHOC session keys; or ii) the first response protected with the OSCORE Security Context established after the EDHOC session with RS, through OSCORE algorithms and OSCORE symmetric keys derived from the completed EDHOC session.</t>
        </li>
        <li>
          <t>Specify a unique ace_profile identifier: coap_edhoc_oscore</t>
        </li>
        <li>
          <t>If introspection is supported, specify the communication and security protocol for introspection: HTTP/CoAP (+ TLS/DTLS/OSCORE)</t>
        </li>
        <li>
          <t>Specify the communication and security protocol for interactions between client and AS: HTTP/CoAP (+ TLS/DTLS/OSCORE)</t>
        </li>
        <li>
          <t>Specify if/how the authz-info endpoint is protected, including how error responses are protected: Not protected</t>
        </li>
        <li>
          <t>Optionally, define methods of token transport other than the authz-info endpoint: C can upload the access token when executing EDHOC with RS, by including the access token in the EAD_1 field of EDHOC message_1 (see <xref target="edhoc-exec"/>).</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-document-updates">
      <name>Document Updates</name>
      <t>RFC EDITOR: PLEASE REMOVE THIS SECTION.</t>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>Restructured presentation of content.</t>
          </li>
          <li>
            <t>Simplified description of the use of EDHOC_Information.</t>
          </li>
          <li>
            <t>Merged the concepts of EDHOC "session_id" and identifier of token series.</t>
          </li>
          <li>
            <t>Enabled the transport of the access token also in EDHOC EAD_3.</t>
          </li>
          <li>
            <t>Defined semantics of the newly defined CWT/JWT Confirmation Methods.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>
            <t>Removed use of EDHOC_KeyUpdate.</t>
          </li>
          <li>
            <t>The Security Context is updated either by KUDOS or a rerun of EDHOC.</t>
          </li>
          <li>
            <t>The alternative workflow (AS token posting) is specified in separate draft.</t>
          </li>
          <li>
            <t>Fixed and updated examples.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>
            <t>Fixed semantics of the ead_value for transporting an Access Token in the EAD_1 field.</t>
          </li>
          <li>
            <t>Error handling aligned with EDHOC.</t>
          </li>
          <li>
            <t>Precise characterization of the EDHOC execution considered for EDHOC-KeyUpdate.</t>
          </li>
          <li>
            <t>Fixed message exchange examples.</t>
          </li>
          <li>
            <t>Added appendix with profile requirements.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/> and <contact fullname="Carsten Bormann"/> for their comments and feedback.</t>
      <t>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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
AQA=

-->

</rfc>
