<?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.39 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-edhoc-oscore-profile-12" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="LAKE and OSCORE profile of ACE">Lightweight Authenticated Key Exchange (LAKE) and Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-12"/>
    <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="2026" month="October" day="22"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 170?>

<t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework.
It utilizes the Lightweight Authenticated Key Exchange (LAKE) protocol for achieving mutual authentication between an ACE-OAuth client and resource server, and it binds an authentication credential of the client to an ACE-OAuth access token.
LAKE also establishes an Object Security for Constrained RESTful Environments (OSCORE) Security Context, which is used to secure communications between the client and resource server when accessing protected resources according to the authorization information indicated in the access token.
This profile can be used to delegate management of authorization information from a resource-constrained server to a trusted host with less severe limitations regarding processing power and memory.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ace-edhoc-oscore-profile/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Authentication and Authorization for Constrained Environments (ace) Working Group mailing list (<eref target="mailto:ace@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ace/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ace-wg/ace-edhoc-oscore-profile"/>.</t>
    </note>
  </front>
  <middle>
    <?line 177?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the "coap_lake_oscore" profile of the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>, also denoted as ACE-OAuth framework. This profile addresses a "zero-touch" constrained setting where authenticated and authorized operations can be performed with low overhead without endpoint specific configurations.</t>
      <t>Like in the "coap_oscore" profile <xref target="RFC9203"/>, also in this profile a client (C) and a resource server (RS) use the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> to communicate and Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/> to protect their communications. However, this profile uses the Lightweight Authenticated Key Exchange (LAKE) protocol <xref target="RFC9528"/> to establish the OSCORE Security Context. The processing of requests for specific protected resources is identical to what is defined in the "coap_oscore" profile.</t>
      <t>When using this profile, C accesses protected resources hosted at RS according to the authorization information specified in an access token, which is issued by a trusted authorization server (AS) and is bound to an authentication credential of C. This differs from the "coap_oscore" profile, where the access token is bound to a secret that is generated by AS and is used to derive the OSCORE Security Context.</t>
      <t>Whereas <xref target="RFC9200"/> recommends the use of CBOR Web Tokens (CWTs) <xref target="RFC8392"/> as access tokens, this profile requires it (see <xref target="access-token"/>). Furthermore, this profile requires that, for messages exchanged between C and AS to request and provide an access token, the payload is encoded in CBOR <xref target="RFC8949"/> (see <xref target="c-as"/> and <xref target="as-c"/>), which ACE requires if CoAP is used (see <xref section="5" sectionFormat="of" target="RFC9200"/>) and recommends otherwise (see <xref section="3" sectionFormat="of" target="RFC9200"/>).</t>
      <t>An authentication credential can be a CWT; a raw public key, e.g., encoded as a CWT Claims Set (CCS) <xref target="RFC8392"/>; or a public key certificate, e.g., an X.509 certificate <xref target="RFC5280"/> or a CBOR-encoded C509 certificate <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 framework establishes what those authentication credentials are, and it 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" <xref target="RFC9360"/>). This is in the same spirit as LAKE, where the authentication credentials specified in the ID_CRED_x message fields can be transported by value or referred to (see <xref section="3.5.3" sectionFormat="of" target="RFC9528"/>).</t>
      <t>In general, AS and RS are likely to have trusted access to each other's authentication credentials, since AS acts on behalf of RS as per the trust model of ACE. Also, AS needs to have some information about C, including the relevant authentication credential, in order to identify C when C requests an access token and to determine what access rights can be granted. However, the authentication credential of C may potentially be conveyed (or uniquely referred to) within the request for an access token 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., LAKE for authentication and OSCORE for communication security, using for example <xref target="I-D.ietf-lake-authz"/> for onboarding RS with AS and <xref target="I-D.ietf-ace-coap-est-oscore"/> for establishing a trust anchor in RS. A similar procedure can also be applied between C and AS for registering a client and for the establishment of a trust anchor.</t>
      <t>With reference to initial authentication, the scope of this profile only includes the use of LAKE with authentication methods based on public key authentication, such as those specified in <xref section="3.2" sectionFormat="of" target="RFC9528"/> and the one specified in <xref target="I-D.ietf-lake-authkem-edhoc"/>. Future documents can extend this profile to also support the use of LAKE with other (kinds of) authentication methods for initial authentication, such as the one defined in <xref target="I-D.ietf-lake-edhoc-psk"/> and based on symmetric pre-shared keys (PSKs). Note that, according to this document, it is already possible to use the method defined in <xref target="I-D.ietf-lake-edhoc-psk"/> in order to perform LAKE session resumption with PSK-based authentication.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>Certain security-related terms such as "authentication", "authorization", "confidentiality", "(data) integrity", "Message Authentication Code (MAC)", "Hash-based Message Authentication Code (HMAC)", and "verify" are taken from <xref target="RFC4949"/>.</t>
        <t>RESTful terminology follows HTTP <xref target="RFC9110"/>.</t>
        <t>Readers are expected to be familiar with the terms and concepts defined in CoAP <xref target="RFC7252"/>, OSCORE <xref target="RFC8613"/>, and LAKE <xref target="RFC9528"/>.</t>
        <t>This document uses the acronym LAKE, expanded to Lightweight Authenticated Key Exchange, to denote the protocol specified as EDHOC in <xref target="RFC9528"/>. Identifiers defined literally in <xref target="RFC9528"/> or in IANA registries (e.g., the names of the EDHOC registries themselves) are unchanged.</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 single 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 definition, which is "[a]n entity participating in the CoAP protocol" <xref target="RFC7252"/>, is not used in this document.</t>
        <t>The authorization information (authz-info) resource refers to the authorization information endpoint as specified in <xref target="RFC9200"/>. The term "claim" is used in this document with the same semantics as in <xref target="RFC9200"/>, i.e., it denotes information carried in the access token or returned from introspection.</t>
        <t>Concise Binary Object Representation (CBOR) <xref target="RFC8949"/><xref target="RFC8742"/> and Concise Data Definition Language (CDDL) <xref target="RFC8610"/> are used in this document. CDDL predefined type names, especially bstr for CBOR byte strings and tstr for CBOR text strings, are used extensively in this document.</t>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/> and <xref section="G" sectionFormat="of" target="RFC8610"/>. Diagnostic notation comments are often used to provide a textual representation of the numeric parameter names and values.</t>
        <t>In the CBOR diagnostic notation used in this document, constructs of the form e'SOME_NAME' are replaced by the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. For example, {e'session_id' : h'01', e'cipher_suites' : 3} stands for {0 : h'01', 2 : 3}.</t>
        <t>Note to RFC Editor: Please delete the paragraph immediately preceding this note. Also, in the CBOR diagnostic notation used in this document, please replace the constructs of the form e'SOME_NAME' with the value assigned to SOME_NAME in the CDDL model shown in <xref target="fig-cddl-model"/> of <xref target="sec-cddl-model"/>. Finally, please delete this note.</t>
      </section>
    </section>
    <section anchor="overview">
      <name>Protocol Overview</name>
      <t>This section gives an overview of how to use the ACE framework <xref target="RFC9200"/> together with the LAKE protocol <xref target="RFC9528"/>. By doing so, the client (C) and the resource server (RS) generate an OSCORE Security Context <xref target="RFC8613"/> associated with authorization information, and they 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 clients' authentication credentials. These are associated with OSCORE Security Contexts and with authorization information for all clients that RS is communicating with. The authorization information is used to enforce policies for processing requests from those clients.</t>
      <t>The ACE framework describes how integrity protected authorization information propagates from AS to RS. This profile describes how C requests from AS an access token specifying authorization information for the resources that C wants to access at RS, by sending an access token request to the /token endpoint at AS (see <xref section="5.8" sectionFormat="of" target="RFC9200"/>).</t>
      <t>If the request is granted, then AS replies to C with a successful response that specifies the authentication credential of RS. Also, AS can provide the access token to C by including it in the response, or instead upload the access token directly to RS as per the alternative workflow defined in <xref target="I-D.ietf-ace-workflow-and-params"/>. The latter option is not detailed further in this document.</t>
      <t>In order to establish an OSCORE Security Context, C and RS run the LAKE protocol. If C has obtained an access token from AS, then C specifies the access token within an External Authorization Data (EAD) field of a LAKE message sent during the LAKE session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). The authentication credential of C that is used during the LAKE session is the same one that is bound to and specified in the access token. How C and RS run LAKE is detailed in <xref target="edhoc-exec"/>.</t>
      <t>If C and RS successfully complete the LAKE execution and the validation of each other's authentication credential, they are mutually authenticated and derive the OSCORE Security Context as per <xref section="A.1" sectionFormat="of" target="RFC9528"/>.</t>
      <t>From then on and as long as there is a valid access token, C effectively gains authorized and secure access to protected resources at RS using the established OSCORE Security Context. When RS receives a request from C protected with an OSCORE Security Context derived from a LAKE session according to this profile, then that OSCORE Security Context is used to retrieve the uniquely associated access token indicating the access rights of C.</t>
      <t>The OSCORE Security Context is discarded when an access token (whether the same or a different one) specifying the same authentication credential of C is used to successfully derive a new OSCORE Security Context for C.</t>
      <t><xref target="protocol-overview"/> outlines an example of the message flow. A more detailed message flow is shown in <xref target="example-without-optimization"/>.</t>
      <figure anchor="protocol-overview">
        <name>Protocol Outline using the LAKE Forward Message Flow.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="592" width="576" viewBox="0 0 576 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 32,48 L 32,256" fill="none" stroke="black"/>
              <path d="M 32,336 L 32,576" fill="none" stroke="black"/>
              <path d="M 360,160 L 360,400" fill="none" stroke="black"/>
              <path d="M 360,512 L 360,576" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,576" fill="none" stroke="black"/>
              <path d="M 48,62 L 112,62" fill="none" stroke="black"/>
              <path d="M 48,66 L 112,66" fill="none" stroke="black"/>
              <path d="M 488,62 L 552,62" fill="none" stroke="black"/>
              <path d="M 488,66 L 552,66" fill="none" stroke="black"/>
              <path d="M 32,96 L 88,96" fill="none" stroke="black"/>
              <path d="M 200,96 L 560,96" fill="none" stroke="black"/>
              <path d="M 40,128 L 400,128" fill="none" stroke="black"/>
              <path d="M 520,128 L 568,128" fill="none" stroke="black"/>
              <path d="M 32,176 L 88,176" fill="none" stroke="black"/>
              <path d="M 296,176 L 352,176" fill="none" stroke="black"/>
              <path d="M 40,224 L 136,224" fill="none" stroke="black"/>
              <path d="M 256,224 L 360,224" fill="none" stroke="black"/>
              <path d="M 32,352 L 88,352" fill="none" stroke="black"/>
              <path d="M 296,352 L 352,352" fill="none" stroke="black"/>
              <path d="M 32,528 L 120,528" fill="none" stroke="black"/>
              <path d="M 256,528 L 352,528" fill="none" stroke="black"/>
              <path d="M 40,560 L 120,560" fill="none" stroke="black"/>
              <path d="M 264,560 L 352,560" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,96 556,90.4 556,101.6" fill="black" transform="rotate(0,560,96)"/>
              <polygon class="arrowhead" points="560,64 548,58.4 548,69.6" fill="black" transform="rotate(0,552,64)"/>
              <polygon class="arrowhead" points="360,528 348,522.4 348,533.6" fill="black" transform="rotate(0,352,528)"/>
              <polygon class="arrowhead" points="360,352 348,346.4 348,357.6" fill="black" transform="rotate(0,352,352)"/>
              <polygon class="arrowhead" points="360,176 348,170.4 348,181.6" fill="black" transform="rotate(0,352,176)"/>
              <polygon class="arrowhead" points="56,64 44,58.4 44,69.6" fill="black" transform="rotate(180,48,64)"/>
              <polygon class="arrowhead" points="48,560 36,554.4 36,565.6" fill="black" transform="rotate(180,40,560)"/>
              <polygon class="arrowhead" points="48,224 36,218.4 36,229.6" fill="black" transform="rotate(180,40,224)"/>
              <polygon class="arrowhead" points="48,128 36,122.4 36,133.6" fill="black" transform="rotate(180,40,128)"/>
              <g class="text">
                <text x="32" y="36">C</text>
                <text x="364" y="36">RS</text>
                <text x="564" y="36">AS</text>
                <text x="360" y="52">|</text>
                <text x="148" y="68">Mutual</text>
                <text x="236" y="68">authentication</text>
                <text x="312" y="68">and</text>
                <text x="356" y="68">secure</text>
                <text x="432" y="68">association</text>
                <text x="360" y="84">|</text>
                <text x="116" y="100">POST</text>
                <text x="164" y="100">/token</text>
                <text x="360" y="116">|</text>
                <text x="436" y="132">Access</text>
                <text x="488" y="132">Token</text>
                <text x="384" y="148">+</text>
                <text x="420" y="148">Access</text>
                <text x="496" y="148">Information</text>
                <text x="116" y="180">POST</text>
                <text x="212" y="180">/.well-known/edhoc</text>
                <text x="152" y="196">(LAKE</text>
                <text x="220" y="196">message_1)</text>
                <text x="164" y="228">2.04</text>
                <text x="216" y="228">Changed</text>
                <text x="152" y="244">(LAKE</text>
                <text x="220" y="244">message_2)</text>
                <text x="8" y="276">/</text>
                <text x="76" y="276">Authentication</text>
                <text x="148" y="276">of</text>
                <text x="172" y="276">RS</text>
                <text x="192" y="276">/</text>
                <text x="32" y="292">|</text>
                <text x="8" y="308">/</text>
                <text x="60" y="308">Derivation</text>
                <text x="116" y="308">of</text>
                <text x="156" y="308">OSCORE</text>
                <text x="52" y="324">Security</text>
                <text x="120" y="324">Context</text>
                <text x="160" y="324">/</text>
                <text x="116" y="356">POST</text>
                <text x="212" y="356">/.well-known/edhoc</text>
                <text x="128" y="372">(LAKE</text>
                <text x="192" y="372">message_3</text>
                <text x="252" y="372">with</text>
                <text x="156" y="388">access_token</text>
                <text x="220" y="388">in</text>
                <text x="260" y="388">EAD_3)</text>
                <text x="264" y="420">/</text>
                <text x="332" y="420">Authentication</text>
                <text x="404" y="420">of</text>
                <text x="424" y="420">C</text>
                <text x="440" y="420">/</text>
                <text x="360" y="436">|</text>
                <text x="264" y="452">/</text>
                <text x="296" y="452">Proof</text>
                <text x="332" y="452">of</text>
                <text x="388" y="452">possession</text>
                <text x="440" y="452">/</text>
                <text x="360" y="468">|</text>
                <text x="264" y="484">/</text>
                <text x="316" y="484">Derivation</text>
                <text x="372" y="484">of</text>
                <text x="412" y="484">OSCORE</text>
                <text x="308" y="500">Security</text>
                <text x="376" y="500">Context</text>
                <text x="416" y="500">/</text>
                <text x="156" y="532">OSCORE</text>
                <text x="216" y="532">Request</text>
                <text x="156" y="564">OSCORE</text>
                <text x="220" y="564">Response</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   C                                        RS                       AS
   |                                        |                         |
   | <======== Mutual authentication and secure association ========> |
   |                                        |                         |
   +------- POST /token --------------------------------------------->|
   |                                        |                         |
   |<--------------------------------------------- Access Token ------+
   |                                           + Access Information   |
   |                                        |                         |
   +------- POST /.well-known/edhoc ------->|                         |
   |            (LAKE message_1)            |                         |
   |                                        |                         |
   |<------------ 2.04 Changed -------------+                         |
   |            (LAKE message_2)            |                         |
   |                                        |                         |
/ Authentication of RS /                    |                         |
   |                                        |                         |
/ Derivation of OSCORE                      |                         |
  Security Context /                        |                         |
   |                                        |                         |
   +------- POST /.well-known/edhoc ------->|                         |
   |         (LAKE message_3 with           |                         |
   |         access_token in EAD_3)         |                         |
   |                                        |                         |
   |                            / Authentication of C /               |
   |                                        |                         |
   |                            / Proof of possession /               |
   |                                        |                         |
   |                            / Derivation of OSCORE                |
   |                              Security Context /                  |
   |                                        |                         |
   +----------- OSCORE Request ------------>|                         |
   |                                        |                         |
   |<---------- OSCORE Response ------------|                         |
   |                                        |                         |
]]></artwork>
        </artset>
      </figure>
      <t>As long as the OSCORE Security Context and the access token are valid, C can contact AS to request an update of its access rights, by sending a similar request as described above to the /token endpoint. This request also includes a "session identifier" (see <xref target="edhoc-parameters-object"/>) provided by AS in the response to the initial access token request, which allows AS to retrieve the data that it previously shared with C. The session identifier is assigned by AS and used to identify a series of access tokens, called a "token series" (see <xref target="token-series"/>).</t>
      <t>If C has obtained from AS an access token belonging to the same token series for updating its access rights, then C transfers the access token to RS using the /authz-info endpoint as specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/>, where the exchanged CoAP messages are protected by the previously established OSCORE Security Context (see <xref target="update-access-rights-c-rs"/>). If the access token is valid, RS replies to the request with a 2.01 (Created) response.</t>
      <t>Upon successful update of access rights, the new issued access token effectively becomes the latest in its token series also for RS, but the session identifier remains the same. When the latest access token of a token series becomes invalid (e.g., when it expires or gets revoked), that token series ends.</t>
      <t><xref target="update-overview"/> outlines the message flow for updating access rights.</t>
      <figure anchor="update-overview">
        <name>Protocol Outline for Updating Access Rights.</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="456" viewBox="0 0 456 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,368" fill="none" stroke="black"/>
              <path d="M 240,160 L 240,224" fill="none" stroke="black"/>
              <path d="M 240,256 L 240,368" fill="none" stroke="black"/>
              <path d="M 448,48 L 448,368" fill="none" stroke="black"/>
              <path d="M 24,62 L 112,62" fill="none" stroke="black"/>
              <path d="M 24,66 L 112,66" fill="none" stroke="black"/>
              <path d="M 352,62 L 432,62" fill="none" stroke="black"/>
              <path d="M 352,66 L 432,66" fill="none" stroke="black"/>
              <path d="M 8,96 L 72,96" fill="none" stroke="black"/>
              <path d="M 184,96 L 440,96" fill="none" stroke="black"/>
              <path d="M 16,128 L 280,128" fill="none" stroke="black"/>
              <path d="M 400,128 L 448,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 32,176" fill="none" stroke="black"/>
              <path d="M 184,176 L 232,176" fill="none" stroke="black"/>
              <path d="M 16,272 L 64,272" fill="none" stroke="black"/>
              <path d="M 184,272 L 240,272" fill="none" stroke="black"/>
              <path d="M 8,320 L 48,320" fill="none" stroke="black"/>
              <path d="M 184,320 L 232,320" fill="none" stroke="black"/>
              <path d="M 16,352 L 48,352" fill="none" stroke="black"/>
              <path d="M 192,352 L 232,352" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="448,96 436,90.4 436,101.6" fill="black" transform="rotate(0,440,96)"/>
              <polygon class="arrowhead" points="440,64 428,58.4 428,69.6" fill="black" transform="rotate(0,432,64)"/>
              <polygon class="arrowhead" points="240,320 228,314.4 228,325.6" fill="black" transform="rotate(0,232,320)"/>
              <polygon class="arrowhead" points="240,176 228,170.4 228,181.6" fill="black" transform="rotate(0,232,176)"/>
              <polygon class="arrowhead" points="32,64 20,58.4 20,69.6" fill="black" transform="rotate(180,24,64)"/>
              <polygon class="arrowhead" points="24,352 12,346.4 12,357.6" fill="black" transform="rotate(180,16,352)"/>
              <polygon class="arrowhead" points="24,272 12,266.4 12,277.6" fill="black" transform="rotate(180,16,272)"/>
              <polygon class="arrowhead" points="24,128 12,122.4 12,133.6" fill="black" transform="rotate(180,16,128)"/>
              <g class="text">
                <text x="8" y="36">C</text>
                <text x="244" y="36">RS</text>
                <text x="444" y="36">AS</text>
                <text x="240" y="52">|</text>
                <text x="156" y="68">Existing</text>
                <text x="220" y="68">secure</text>
                <text x="296" y="68">association</text>
                <text x="240" y="84">|</text>
                <text x="100" y="100">POST</text>
                <text x="148" y="100">/token</text>
                <text x="240" y="116">|</text>
                <text x="316" y="132">Access</text>
                <text x="368" y="132">Token</text>
                <text x="264" y="148">+</text>
                <text x="300" y="148">Access</text>
                <text x="376" y="148">Information</text>
                <text x="60" y="180">POST</text>
                <text x="128" y="180">/authz-info</text>
                <text x="56" y="196">(OSCORE</text>
                <text x="128" y="196">protected</text>
                <text x="188" y="196">with</text>
                <text x="84" y="212">access_token</text>
                <text x="148" y="212">in</text>
                <text x="196" y="212">payload)</text>
                <text x="136" y="244">/</text>
                <text x="176" y="244">Updated</text>
                <text x="236" y="244">access</text>
                <text x="292" y="244">rights</text>
                <text x="328" y="244">/</text>
                <text x="92" y="276">2.01</text>
                <text x="144" y="276">Created</text>
                <text x="84" y="324">OSCORE</text>
                <text x="144" y="324">Request</text>
                <text x="84" y="356">OSCORE</text>
                <text x="148" y="356">Response</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
   C                            RS                       AS
   |                            |                         |
   | <=========== Existing secure association ==========> |
   |                            |                         |
   +-------- POST /token -------------------------------->|
   |                            |                         |
   |<--------------------------------- Access Token ------+
   |                               + Access Information   |
   |                            |                         |
   +--- POST /authz-info ------>|                         |
   |  (OSCORE protected with    |                         |
   |   access_token in payload) |                         |
   |                            |                         |
   |               / Updated access rights /              |
   |                            |                         |
   |<------ 2.01 Created -------+                         |
   |                            |                         |
   |                            |                         |
   +----- OSCORE Request ------>|                         |
   |                            |                         |
   |<---- OSCORE Response ------|                         |
   |                            |                         |
]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="c-as-comm">
      <name>Client-AS Communication</name>
      <t>The following subsections describe the details of the POST request and response to the /token endpoint between C and AS.</t>
      <t>In this exchange, C provides AS with its own authentication credential AUTH_CRED_C. Then, AS issues the access token as securely bound to AUTH_CRED_C, by including it or uniquely referring to it in the access token. Together with the access token, AS provides C with a set of parameters that enable C to run LAKE with RS. In particular, these parameters include information about the authentication credential AUTH_CRED_RS of RS, which is transported by value or uniquely referred to.</t>
      <t>The request to the /token endpoint and the corresponding response can include LAKE_Information, which is a CBOR map object containing information about the use of LAKE between C and RS (see <xref target="edhoc-parameters-object"/>). This object is transported in the "lake_info" parameter registered in <xref target="iana-oauth-params"/> and <xref target="iana-oauth-cbor-mappings"/>.</t>
      <section anchor="c-as">
        <name>C-to-AS: POST to /token Endpoint</name>
        <t>The client-to-AS request is specified in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>.</t>
        <t>The client <bcp14>MUST</bcp14> send this POST request to the /token endpoint over a secure channel that guarantees authentication, message integrity, and confidentiality (see <xref target="secure-comm-as"/>).</t>
        <t>When using this profile, the payload of the POST request <bcp14>MUST</bcp14> be encoded in CBOR <xref target="RFC8949"/>, i.e., the request has media-type "application/ace+cbor". In order to reduce the number of libraries that C has to support, it is <bcp14>RECOMMENDED</bcp14> that C and AS use CoAP as message transfer protocol, OSCORE as security protocol, and LAKE to establish an OSCORE Security Context.</t>
        <t>AUTH_CRED_C is specified in the "req_cnf" parameter <xref target="RFC9201"/> of the POST request, either transported by value or uniquely referred to. AS could explicitly ask C to provide its authentication credential AUTH_CRED_C by value in the access token request, e.g., by relying on the method defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>For AUTH_CRED_C, its authentication credential type <bcp14>MUST</bcp14> be one of those supported by LAKE, e.g., CWTs and CCSs <xref target="RFC8392"/>, X.509 certificates <xref target="RFC5280"/>, and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. Consequently, the "req_cnf" parameter <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_C, e.g., "x5chain" or "x5t" when AUTH_CRED_C is an X.509 certificate transported by value or referred to, respectively.</t>
        <t>Note that LAKE does not admit the use of "naked" COSE_Keys as authentication credentials. The closest admitted authentication credential type is a CCS containing a COSE_Key in a "cnf" claim and possibly other claims, which can be transported by value using the confirmation method "kccs". Therefore, the "req_cnf" parameter <bcp14>MUST NOT</bcp14> specify the confirmation method "COSE_Key" (CBOR abbreviation: 1).</t>
        <t>When receiving an access token request including the "req_cnf" parameter, AS checks whether it is already storing the authentication credential of C, namely AUTH_CRED_C, specified in "req_cnf" by value or reference.</t>
        <t>If this is not the case, AS retrieves AUTH_CRED_C, either using the "req_cnf" parameter or some other trusted source. After that, AS validates the actual AUTH_CRED_C.</t>
        <t>In either case, AS also needs to verify that C is in possession of the private key corresponding to the public key associated with AUTH_CRED_C. This may already have been accomplished, for example, through C authenticating to AS using AUTH_CRED_C as authentication credential, or through some other trusted party vouching for C to AS. Alternatively, it is possible to use an approach for achieving proof of possession similar to that in <xref section="3.2" sectionFormat="of" target="I-D.ietf-ace-group-oscore-profile"/>.</t>
        <t>If the validations are successful, AS stores AUTH_CRED_C as a valid authentication credential. Otherwise, the Client-to-AS request <bcp14>MUST</bcp14> be declined.</t>
        <t>An example of client-to-AS request is shown in <xref target="token-request"/>. In this example, C specifies its own authentication credential by reference, as the hash of an X.509 certificate carried in the "x5t" field of the "req_cnf" parameter.</t>
        <figure anchor="token-request">
          <name>Example 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: 19 (application/ace+cbor)
   Payload:
   {
     / audience / 5 : "tempSensor4711",
     / scope /    9 : "read",
     / req_cnf /  4 : {
       e'x5t' : [-15, h'79F2A41B510C1F9B']
     }
   }
]]></artwork>
        </figure>
        <t>If C wants to update its access rights without changing an existing OSCORE Security Context, it <bcp14>MUST</bcp14> specify a LAKE_Information object in the "lake_info" parameter of its POST request to the /token endpoint. The LAKE_Information object <bcp14>MUST</bcp14> include the "session_id" field. This POST request <bcp14>MUST NOT</bcp14> include 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 identifies an ongoing token series associated with the pair (AUTH_CRED_C, AUTH_CRED_RS). That is, previous access tokens in that series were issued by AS to C, as bound to AUTH_CRED_C and intended for RS as identified by AUTH_CRED_RS.</t>
        <t>Note that the same "session_id" value might identify multiple ongoing token series, e.g., if those are associated with the same client but different resource servers. In this case, AS can use the "session_id" value together with other information such as the targeted audience (see <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>) and the authenticated identity of C, in order to determine the exact token series to which the new requested access token has to be added.</t>
        <!--
Editor's note: When retrieving the access token it is required to consider the pair (session id, AUTH_CRED_C). Here it is stated that the session id identifies the pair (AUTH_CRED_C, AUTH_CRED_RS). Why then isn't the session id sufficient for retrieving the access token, considering it identifies AUTH_CRED_C?

MT: Retrieving an access token based on the pair (session id, AUTH_CRED_C) happens at RS, when using the session id specified in the EDHOC EAD item.

Here on the AS, a series might be ongoing for (C, RS1) and another series might also be ongoing for (C, RS2). If C uses an authentication credential with RS1 and a different one with RS2, then both series can be legitimately identified by the same series id value, which thus might not sufficient to identify precisely one of C's authentication credentials. In practice, this is not an issue, since AS can rely on additional information such as audience.

The text above has been revisited, also based on the revised safer criterion for assigning new sender IDs at AS in the next subsection.
-->

<t>The "audience" parameter <bcp14>MUST</bcp14> be included in the POST request, if it was included in the POST request that C previously sent to AS for requesting the first access token in the token series to which the new requested access token has to be added. If the "audience" parameter is included in the present POST request, its value <bcp14>MUST</bcp14> be the same value of the "audience" parameter in that previous POST request.</t>
        <t>AS <bcp14>MUST</bcp14> verify that the received "session_id" identifies a token series to which a still valid access token belongs, such that the access token is issued to C and is intended for the audience specified by the "audience" parameter of the POST request, if present therein, or for the default audience associated with C otherwise. If that is not the case, the Client-to-AS request <bcp14>MUST</bcp14> be declined with the error code "invalid_request" as defined in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <figure anchor="token-request-update">
          <name>Example 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: 19 (application/ace+cbor)
   Payload:
   {
     / audience /      5 : "tempSensor4711",
     / scope /         9 : "write",
     e'lake_info_param' : {
        e'session_id' : h'01'
     }
   }
]]></artwork>
        </figure>
      </section>
      <section anchor="token-series">
        <name>Token Series</name>
        <t>This document refers to "token series" as a series of access tokens that are sorted in chronological order of release and are 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 as identified by the same authentication credential.</t>
          </li>
        </ul>
        <t>Upon a successful update of access rights (see <xref target="update-access-rights-c-as"/>), the new issued access token becomes the latest in its token series. When the latest access token of a token series becomes invalid (e.g., due to its expiration or revocation), the token series it belongs to ends.</t>
        <t>In this profile, a token series comprises access tokens that are used between a given pair (C, RS), are bound to the same authentication credential AUTH_CRED_C of C, and specify the same value in the "session_id" field of the LAKE_Information object (see <xref target="edhoc-parameters-object"/>) in their "lake_info" claim (see <xref target="access-token"/>).</t>
        <t>AS assigns the value of "session_id" when issuing the first access token of a new series. That "session_id" value remains fixed throughout the series lifetime.</t>
        <t>When assigning the "session_id" value, AS <bcp14>MUST</bcp14> ensure that, irrespective of the profile of ACE used, such value was not used in a previous series whose access tokens share both the following properties with the access tokens of the new series:</t>
        <ul spacing="normal">
          <li>
            <t>Issued to the same client C, irrespective of the specific AUTH_CRED_C bound to the access token; and</t>
          </li>
          <li>
            <t>Issued for the same RS as identified by the targeted audience, irrespective of the specific AUTH_CRED_RS indicated to C.</t>
          </li>
        </ul>
        <t>If the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), the token series is associated with all the resource servers in the group-audience. In such case, what is defined above applies, with the difference that the resource servers as identified by the targeted group-audience are collectively considered, irrespective of their specific authentication credentials indicated to C.</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 protected resources at RS, AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>, with potential modifications as detailed below.</t>
        <t>When using this profile, consistent with what is specified in <xref target="c-as"/>, the payload of the response from AS <bcp14>MUST</bcp14> be encoded in CBOR <xref target="RFC8949"/>, i.e., the response has media-type "application/ace+cbor".</t>
        <t>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 LAKE and OSCORE as per this profile is <bcp14>REQUIRED</bcp14> for a specific access token, by including the "ace_profile" parameter with the value "coap_lake_oscore" in the access token response. This means that C <bcp14>MUST</bcp14> use LAKE with RS and derive an OSCORE Security Context, as specified in <xref target="edhoc-exec"/>. After that, C <bcp14>MUST</bcp14> use the established OSCORE Security Context to protect communications with RS, when accessing protected resources at RS according to the authorization information indicated in the access token. Usually, it is assumed that constrained devices will be pre-configured with the necessary profile, so that this kind of profile signaling can be omitted.</t>
        <t>According to this document, AS provides the access token to C, by specifying it in the "access_token" parameter of the access token response. An alternative workflow where the access token is uploaded by AS directly to RS is described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>When issuing the first access token of a token series, AS <bcp14>MUST</bcp14> include the following data in the response to C.</t>
        <ul spacing="normal">
          <li>
            <t>The "lake_info" parameter conveying a LAKE_Information object (see <xref target="edhoc-parameters-object"/>). The LAKE_Information object <bcp14>MUST</bcp14> include the "session_id" field specifying the identifier of the token series which the issued access token belongs to.  </t>
            <t>
The LAKE_Information object <bcp14>MAY</bcp14> include additional fields (see <xref target="edhoc-parameters-object"/>) to convey information about RS. This information is based on knowledge that AS has about RS, e.g., from a previous onboarding process, with particular reference to what RS supports as a LAKE peer.  </t>
            <t>
If the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), the information specified in the LAKE_Information object refers to the group-audience as a whole. Therefore, it is appropriate for AS to define group-audiences comprising RSs that are all aligned in terms of supported LAKE features and configurations.</t>
          </li>
          <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. C could explicitly ask AS to provide AUTH_CRED_RS by value in the access token response, e.g., by relying on the method defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.  </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 expected that the response to C includes 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>
            <t>
For AUTH_CRED_RS, its authentication credential type <bcp14>MUST</bcp14> be one of those supported by LAKE. Consequently, the "rs_cnf" parameter <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_RS. That is, the same considerations about AUTH_CRED_C and the "req_cnf" parameter made in <xref target="c-as"/> hold for AUTH_CRED_RS and the "rs_cnf" parameter.</t>
          </li>
        </ul>
        <t>When issuing any access token of a token series, the response from AS <bcp14>MUST NOT</bcp14> include the "cnf" parameter.</t>
        <t>When issuing an access token for dynamically updating access rights (i.e., the access token is not the first in its token series), the response from AS <bcp14>MUST NOT</bcp14> include the "lake_info" and "rs_cnf" parameters (see <xref target="update-access-rights-c-as"/>).</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 LAKE and OSCORE Profile.</name>
          <artwork><![CDATA[
   Header: Created (Code=2.01)
      Content-Format: 19 (application/ace+cbor)
      Payload:
      {
        / access_token / 1 : h'8343a1010aa2044c53...0f6a'
          / remainder of access token (CWT) omitted for brevity /,
        / ace_profile / 38 : e'coap_lake_oscore',
        / expires_in /   2 : 3600,
        / rs_cnf /      41 : {
          e'x5chain' : h'3081ee3081a1a00302...77bc'
            / remainder of the credential omitted for brevity /
        }
        e'lake_info_param' : {
          e'session_id'    : h'01',
          e'methods'       : [0, 1, 2, 3],
          e'cipher_suites' : 0
        }
      }
]]></artwork>
        </figure>
        <section anchor="access-token">
          <name>Access Token</name>
          <t>To avoid the complexity of different encodings, an access token of this profile <bcp14>SHALL</bcp14> be a CWT <xref target="RFC8392"/>.</t>
          <t>When issuing any access token of a token series, AS <bcp14>MUST</bcp14> include the following claims in the access token:</t>
          <ul spacing="normal">
            <li>
              <t>The "lake_info" claim registered in <xref target="iana-token-cwt-claims"/> and conveying a LAKE_Information object (see <xref target="edhoc-parameters-object"/>).  </t>
              <t>
The LAKE_Information object <bcp14>MUST</bcp14> include the "session_id" field specifying the identifier of the token series that the issued access token belongs to. The "session_id" value is the same one included in the LAKE_Information object of the response to C from the /token endpoint (see <xref target="as-c"/>), when providing C with the first access token in the series.</t>
            </li>
            <li>
              <t>The "cnf" claim, specifying the authentication credential AUTH_CRED_C that C specified in its POST request to the /token endpoint, when requesting the first access token in the series that the issued access token belongs to (see <xref target="c-as"/>).  </t>
              <t>
In the access token, AUTH_CRED_C can be transported by value or uniquely referred to by means of an appropriate identifier. Yet, consistent with the considerations about AUTH_CRED_C and the "req_cnf" parameter made in <xref target="c-as"/>, the "cnf" claim of the access token <bcp14>MUST</bcp14> specify a confirmation method suitable for the type of AUTH_CRED_C.  </t>
              <t>
When issuing the first access token of a token series, the confirmation method used in the "cnf" claim <bcp14>MUST</bcp14> be the same one used in the "req_cnf" parameter of the corresponding POST request from C to the /token endpoint.  </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 expected that AUTH_CRED_C is included by value in the "cnf" claim of the access token.  </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 in the "cnf" claim of the access token.  </t>
              <t>
Either transported by value or identified by reference, the authentication credential specified in the "cnf" claim <bcp14>MUST</bcp14> be exactly the one that was specified in the "req_cnf" parameter of the POST request to the /token endpoint, when C requested the first access token in the series that the issued access token belongs to. That is, AS <bcp14>MUST NOT</bcp14> bind to the access token an authentication credential other than the one specified by C.</t>
            </li>
          </ul>
          <t>When issuing the first access token of a token series, AS <bcp14>MAY</bcp14> include additional fields in the LAKE_Information object (see <xref target="edhoc-parameters-object"/>) specified in the "lake_info" claim of the access token.</t>
          <t>The access token needs to be protected for various reasons. To prevent manipulation of the content, it needs to be integrity protected. Also, RS has to be able to verify that the access token is issued by a trusted AS, by achieving source authentication. Depending on the use case and deployment, the access token may need to be confidentiality protected, for example due to privacy reasons.</t>
          <t>AS protects the access token using a COSE method <xref target="RFC9052"/> as specified in <xref target="RFC8392"/>. Depending on the audience, there can be different ways to most appropriately ensure the confidentiality of an access token. For an audience comprising a single RS, the CWT Claims Set may be wrapped in COSE_Encrypt / COSE_Encrypt0. Instead, if the access token needs to be read by multiple RSs, then the CWT Claims Set may be wrapped in COSE_Sign / COSE_Sign1 and confidentiality protection is applied during transport, e.g., by including the access token in the EAD_3 field of LAKE message_3 sent by C to RS, when using the LAKE forward message flow (see <xref target="edhoc-exec"/>).</t>
          <t><xref target="fig-token"/> shows an example of CWT Claims Set, including the relevant LAKE parameters in the "lake_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 LAKE Parameters.</name>
            <sourcecode type="cbor-diag"><![CDATA[
   {
    / aud /   3 : "tempSensorInLivingRoom",
    / iat /   6 : 1563451500,
    / exp /   4 : 1563453000,
    / scope / 9 :  "temperature_g firmware_p",
    / cnf /   8 : {
      e'x5chain' : h'3081ee3081a1a00302...77bc'
        / remainder of the credential omitted for brevity /
    }
    e'lake_info_claim' : {
      e'session_id'    : h'01',
      e'methods'       : [0, 1, 2, 3],
      e'cipher_suites' : 0
    }
  }
]]></sourcecode>
          </figure>
        </section>
        <section anchor="processing-at-c">
          <name>Processing at 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. If the validation is successful, C stores AUTH_CRED_RS as a valid authentication credential. Otherwise, C <bcp14>MUST</bcp14> delete the access token.</t>
        </section>
        <section anchor="update-access-rights-c-as">
          <name>Update of Access Rights</name>
          <t>If C has a valid OSCORE Security Context shared with RS and associated with a valid access token, then C can send a request to AS for updating its access rights while preserving the same OSCORE Security Context.</t>
          <t>If the request is granted, then AS generates a new access token, where the LAKE_Information object specified in the "lake_info" claim <bcp14>MUST</bcp14> include only the "session_id" field. The access token is provisioned to RS either via C as specified in this document, or directly as described in <xref target="I-D.ietf-ace-workflow-and-params"/>. In either case, the access token response from AS to C <bcp14>MUST NOT</bcp14> include the "lake_info" and "rs_cnf" parameters.</t>
          <t>As defined in <xref target="access-token"/>, the "session_id" field is included in the LAKE_Information object specified in the "lake_info" claim of the new access token. This allows 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>LAKE_Information</name>
        <t>LAKE_Information is an object including information about the use of LAKE, e.g., to guide peers towards executing LAKE. In particular, the LAKE_Information is defined to be serialized and transported between nodes as specified by this document, but it can also be used by other specifications.</t>
        <t>In the "coap_lake_oscore" profile of the ACE-OAuth framework, which is specified in this document, the LAKE_Information object <bcp14>MUST</bcp14> be encoded as CBOR. However, for easy applicability to other contexts, the JSON encoding is also defined.</t>
        <t>The LAKE_Information can be encoded either as a JSON object or as a CBOR map. The set of common fields that can appear in a LAKE_Information can be found in the IANA "LAKE Information" registry defined in <xref target="iana-edhoc-parameters"/> for extensibility.</t>
        <t>All LAKE_Information parameters are optional. The initial set of parameters defined in this document is summarized in <xref target="_table-cbor-key-edhoc-params"/> and is specified below.</t>
        <t>LAKE_Information parameters are also categorized, i.e., each has one of two possible types, namely prescriptive or non-prescriptive:</t>
        <ul spacing="normal">
          <li>
            <t>A prescriptive parameter is used to provide an authoritative statement about how an execution of LAKE has to be performed. An example is the "message_4" parameter indicating whether the use of LAKE message_4 in a LAKE session is mandatory or not.  </t>
            <t>
If a prescriptive parameter applies to a LAKE session, a peer participating in the session complies with what is indicated by the parameter, and it aborts the session if it determines that the other peer has violated such indication.</t>
          </li>
          <li>
            <t>A non-prescriptive parameter is used to provide convenient information to consider when executing LAKE, e.g., in terms of features supported by peers. Such information is not necessarily exhaustive. An example is the "methods" parameter indicating a set of supported LAKE methods.</t>
          </li>
        </ul>
        <t>This categorization helps coordinate the use of LAKE application profiles (see <xref section="3.9" sectionFormat="of" target="RFC9528"/>) in a robust way, e.g., by using the means defined in <xref target="I-D.ietf-lake-app-profiles"/>.</t>
        <table align="center" anchor="_table-cbor-key-edhoc-params">
          <name>LAKE_Information Parameters. Types: P (Prescriptive), NP (Non-Prescriptive)</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">CBOR label</th>
              <th align="left">CBOR type</th>
              <th align="left">Registry</th>
              <th align="left">Description</th>
              <th align="left">Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">session_id</td>
              <td align="left">0</td>
              <td align="left">bstr</td>
              <td align="left"> </td>
              <td align="left">Identifier of a session</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">methods</td>
              <td align="left">1</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Method Type registry</td>
              <td align="left">Set of supported LAKE methods</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">cipher_suites</td>
              <td align="left">2</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Cipher Suites registry</td>
              <td align="left">Set of supported LAKE cipher suites</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">message_4</td>
              <td align="left">3</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Mandatory use of LAKE message_4</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">comb_req</td>
              <td align="left">4</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the LAKE + OSCORE combined request</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">uri_path</td>
              <td align="left">5</td>
              <td align="left">tstr</td>
              <td align="left"> </td>
              <td align="left">URI-path of the LAKE resource</td>
              <td align="left">P</td>
            </tr>
            <tr>
              <td align="left">cred_types</td>
              <td align="left">6</td>
              <td align="left">int or array</td>
              <td align="left">EDHOC Authentication Credential Types registry</td>
              <td align="left">Set of supported types of authentication credentials for LAKE</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">id_cred_types</td>
              <td align="left">7</td>
              <td align="left">int or tstr or array</td>
              <td align="left">COSE Header Parameters registry</td>
              <td align="left">Set of supported types of authentication credential identifiers for LAKE</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">eads</td>
              <td align="left">8</td>
              <td align="left">uint or array</td>
              <td align="left">EDHOC External Authorization Data registry</td>
              <td align="left">Set of supported LAKE External Authorization Data (EAD) items</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">initiator</td>
              <td align="left">9</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the LAKE Initiator role</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">responder</td>
              <td align="left">10</td>
              <td align="left">True or False</td>
              <td align="left"> </td>
              <td align="left">Support for the LAKE Responder role</td>
              <td align="left">NP</td>
            </tr>
            <tr>
              <td align="left">trust_anchors</td>
              <td align="left">11</td>
              <td align="left">map</td>
              <td align="left">LAKE Trust Anchor Purposes registry and LAKE Trust Anchor Types registry</td>
              <td align="left">Set of supported trust anchors</td>
              <td align="left">NP</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>session_id: This parameter specifies an identifier of a "session" that the LAKE information is associated with, but it does not necessarily identify a specific LAKE session. In this document, "session_id" identifies a token series. In JSON, the "session_id" value is a string, with value the base64url-encoding (see <xref section="5" sectionFormat="of" target="RFC4648"/>) without padding of the binary representation of the identifier. In CBOR, the "session_id" type is a byte string with value the binary representation of the identifier, and it has label 0.</t>
          </li>
          <li>
            <t>methods: This parameter specifies a set of supported LAKE methods (see <xref section="3.2" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single LAKE method, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one LAKE 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 it has label 1.</t>
          </li>
          <li>
            <t>cipher_suites: This parameter specifies a set of supported LAKE cipher suites (see <xref section="3.6" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single LAKE cipher suite, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one LAKE 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 it has label 2.</t>
          </li>
          <li>
            <t>message_4: This parameter indicates whether the LAKE message_4 (see <xref section="5.5" sectionFormat="of" target="RFC9528"/>) is supported. In JSON, the "message_4" value is a boolean. In CBOR, "message_4" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and it has label 3.</t>
          </li>
          <li>
            <t>comb_req: This parameter indicates whether the combined LAKE + OSCORE request defined in <xref target="RFC9668"/> (denoted therein as "EDHOC + OSCORE request") is supported. In JSON, the "comb_req" value is a boolean. In CBOR, "comb_req" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and it has label 4.</t>
          </li>
          <li>
            <t>uri_path: This parameter specifies the path component of the URI of the LAKE resource where LAKE 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 it has label 5.</t>
          </li>
          <li>
            <t>cred_types: This parameter specifies a set of supported types of authentication credentials for LAKE (see <xref section="3.5.2" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single type of authentication credential, this is encoded as an integer. Otherwise, the set is encoded as an array of integers, where each array element encodes one type of authentication credential. In JSON, the "cred_types" value is an integer or an array of integers. In CBOR, "cred_types" is an integer or an array of integers, and it has label 6. The integer values are taken from the 'Value' column of the "EDHOC Authentication Credential Types" registry <xref target="EDHOC.Authentication.Credential.Types"/>.</t>
          </li>
          <li>
            <t>id_cred_types: This parameter specifies a set of supported types of authentication credential identifiers for LAKE (see <xref section="3.5.3" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single type of authentication credential identifier, this is encoded as an integer or a text string. Otherwise, the set is encoded as an array, where each array element encodes one type of authentication credential identifier, as an integer or a text string. In JSON, the "id_cred_types" value is an integer, or a text string, or an array of integers and text strings. In CBOR, "id_cred_types" is an integer or a text string, or an array of integers and text strings, and it has label 7. The integer or text string values are taken from the 'Label' column of the "COSE Header Parameters" registry <xref target="COSE.Header.Parameters"/>.</t>
          </li>
          <li>
            <t>eads: This parameter specifies a set of supported LAKE External Authorization Data (EAD) items, identified by their ead_label (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). If the set is composed of a single ead_label, this is encoded as an unsigned integer. Otherwise, the set is encoded as an array of unsigned integers, where each array element encodes one ead_label. In JSON, the "eads" value is an unsigned integer or an array of unsigned integers. In CBOR, "eads" is an unsigned integer or an array of unsigned integers, and it has label 8. The unsigned integer values are taken from the 'Label' column of the "EDHOC External Authorization Data" registry <xref target="EDHOC.External.Authorization.Data"/>.</t>
          </li>
          <li>
            <t>initiator: This parameter specifies whether the LAKE Initiator role is supported. In JSON, the "initiator" value is a boolean. In CBOR, "initiator" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and it has label 9.</t>
          </li>
          <li>
            <t>responder: This parameter specifies whether the LAKE Responder role is supported. In JSON, the "responder" value is a boolean. In CBOR, "responder" is the simple value <tt>true</tt> (0xf5) or <tt>false</tt> (0xf4), and it has label 10.</t>
          </li>
          <li>
            <t>trust_anchors: This parameter specifies a collection of supported trust anchors for performing authentication. According to what is specified within the collection, these trust anchors are used for different purposes, e.g., for verifying authentication credentials of other LAKE peers in LAKE sessions.  </t>
            <t>
More in detail, the collection of trust anchors is composed of one or more sets. Each set includes one or more trust anchors to use for one specific purpose associated with that set.  </t>
            <t>
In particular, each set is composed of pairs, each of which specifies a trust anchor type and an identifier of a trust anchor of that type. If the set is composed of a single pair, this pair is specified as a single item. If the set is composed of multiple pairs, these pairs are specified as elements of an array.  </t>
            <t>
Trust anchor purposes are selected from the "LAKE Trust Anchor Purposes" registry defined in <xref target="iana-edhoc-ta-purposes"/> of this document. Trust anchor types are selected from the "LAKE Trust Anchor Types" registry defined in <xref target="iana-edhoc-ta-types"/> of this document.  </t>
            <t>
In JSON, the "trust_anchors" value is an object with one or more outer entries, each of which is associated with a trust anchor purpose. The following applies for each outer entry:  </t>
            <ul spacing="normal">
              <li>
                <t>The outer entry's key specifies the associated trust anchor purpose taken from the 'Name' column of the "LAKE Trust Anchor Purposes" registry.</t>
              </li>
              <li>
                <t>The outer entry's value is an object or an array of at least two objects. Each object includes one inner entry, specifying the pair for a trust anchor TA of type TYPE. The inner entry is formatted as follows:      </t>
                <ul spacing="normal">
                  <li>
                    <t>The inner entry's key specifies the TA's type TYPE taken from the 'Name' column of the "LAKE Trust Anchor Types" registry.</t>
                  </li>
                  <li>
                    <t>The inner entry's value is the identifier of TA, whose encoding depends on TYPE. Such an encoding is what results from applying the conversion in <xref section="6.1" sectionFormat="of" target="RFC8949"/> to the CBOR encoding of the identifier of TA when "trust_anchors" is encoded in CBOR (see below).</t>
                  </li>
                </ul>
              </li>
            </ul>
            <t>
In CBOR, the "trust_anchors" value is a map and has label 11. The map includes one or more outer entries, each of which is associated with a trust anchor purpose. The following applies for each outer entry:  </t>
            <ul spacing="normal">
              <li>
                <t>The outer entry's key specifies the associated trust anchor purpose encoded as a CBOR integer, with integer value taken from the 'CBOR label' column of the "LAKE Trust Anchor Purposes" registry.</t>
              </li>
              <li>
                <t>The outer entry's value is a map or an array of at least two maps. Each map includes one inner entry, specifying the pair for a trust anchor TA of type TYPE. The inner entry is formatted as follows:      </t>
                <ul spacing="normal">
                  <li>
                    <t>The inner entry's key specifies the TA's type TYPE encoded as a CBOR integer, with integer value taken from the 'CBOR label' column of the "LAKE Trust Anchor Types" registry.</t>
                  </li>
                  <li>
                    <t>The inner entry's value specifies the identifier of TA, whose encoding depends on TYPE and is specified by the 'Value type' column of the "LAKE Trust Anchor Types" registry, for the registry entry that has TYPE as value of the 'Name' column.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t><xref target="fig-edhoc-info-json"/> shows an example where a JSON object includes a property with value a LAKE_Information object.</t>
        <figure anchor="fig-edhoc-info-json">
          <name>Example of JSON LAKE_Information</name>
          <sourcecode type="json"><![CDATA[
   {
     "lake_info" : {
         "session_id"    : "AQ",
         "methods"       : 1,
         "cipher_suites" : 0,
         "trust_anchors" : {
           "lake_cred" : [
             { "c5u" : "coap://certs.c509.example" },
             { "x5u" : "coap://certs.x509.example" }
           ]
         }
     }
   }
]]></sourcecode>
        </figure>
        <t><xref target="fig-edhoc-info-cbor"/> shows an example where a CBOR map includes an element with value a LAKE_Information object.</t>
        <figure anchor="fig-edhoc-info-cbor">
          <name>Example of CBOR LAKE_Information</name>
          <sourcecode type="cbor-diag"><![CDATA[
   {
     e'lake_info_param' : {
       e'session_id'    : h'01',
       e'methods'       : 1,
       e'cipher_suites' : 0,
       e'trust_anchors' : {
         e'lake_cred' : [
           { e'c5t_ta_type' : [-15, h'81DC2F32CB87E163'] },
           { e'c5u_ta_type' : "coap://certs.c509.example" },
           { e'x5t_ta_type' : [-15, h'79F2A41B510C1F9B'] },
           { e'x5u_ta_type' : "coap://certs.x509.example" }
         ]
       }
     }
   }
]]></sourcecode>
        </figure>
        <t>The CDDL grammar describing the CBOR LAKE_Information is:</t>
        <sourcecode type="cddl"><![CDATA[
LAKE_Information = {
  ?  0 => bstr,                               ; id
  ?  1 => int / [2* int],                     ; methods
  ?  2 => int / [2* int],                     ; cipher_suites
  ?  3 => true / false,                       ; message_4
  ?  4 => true / false,                       ; comb_req
  ?  5 => tstr,                               ; uri_path
  ?  6 => int / [2* int],                     ; cred_types
  ?  7 => int / tstr / [2* (int / tstr)],     ; id_cred_types
  ?  8 => uint / [2* uint],                   ; eads
  ?  9 => true / false,                       ; initiator
  ? 10 => true / false,                       ; responder
  ? 11 => trust_anchors_value,                ; trust_anchors
  * (int / tstr) => any
}

trust_anchors_value = {
  1* int => trust_anchors_outer_entry_value
}

trust_anchors_outer_entry_value =
  trust_anchors_container / [2* trust_anchors_container]

trust_anchors_container = {
  int => trust_anchors_inner_entry_value
}

trust_anchors_inner_entry_value = any
]]></sourcecode>
      </section>
    </section>
    <section anchor="c-rs-comm">
      <name>Client-RS Communication</name>
      <t>This section describes the exchange between C and RS, including the execution of the LAKE protocol and the uploading of the access token from C to RS. An alternative workflow, where AS uploads the access token directly to RS, is defined in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
      <t>C and RS run the LAKE protocol (see <xref target="edhoc-exec"/>) and C uploads the access token through the EAD field of a LAKE message (see <xref target="AT-in-EAD"/>). Once the LAKE session is successfully completed, C and RS derive an OSCORE Security Context (see <xref target="oscore-security-context"/>). After that, OSCORE is used for protecting communications when C accesses resources at RS, as per the authorization information indicated in the access token (see <xref target="access-rights-verif"/>).</t>
      <t>Detailed examples are shown in <xref target="examples"/>.</t>
      <section anchor="AT-in-EAD">
        <name>EAD Item for Transporting Access Token</name>
        <t>This section defines an EAD item (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>) for specifying an access token by value in the EAD field of a LAKE message.</t>
        <t>The name of the EAD item is ACE-OAuth Access Token, for which the CDDL grammar is shown in <xref target="fig-ead-ace-oauth-access-token"/>.</t>
        <figure anchor="fig-ead-ace-oauth-access-token">
          <name>EAD Item ACE-OAuth Access Token.</name>
          <sourcecode type="cddl"><![CDATA[
ead_ace_oauth_access_token = (
  ead_label : e'ead_ace_oauth_access_token_label',
  ead_value : access_token
)
access_token = bstr
]]></sourcecode>
        </figure>
        <t>In particular:</t>
        <ul spacing="normal">
          <li>
            <t>ead_label is the integer value TBD registered in <xref target="iana-edhoc-ead"/>.</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>Note to RFC Editor: Please replace TBD with the value registered for ACE-OAuth Access Token in <xref target="iana-edhoc-ead"/>, then delete this note.</t>
        <t>This EAD item is critical, i.e., it is used only with the negative value of its ead_label, indicating that the receiving RS must progress the protocol execution using the received access token, or else abort the LAKE session (see <xref section="3.8" sectionFormat="of" target="RFC9528"/>). A client or resource server supporting the profile of ACE defined in this document <bcp14>MUST</bcp14> support this EAD item.</t>
        <t>This EAD item is used only when uploading the first access token of a token series, but not for the dynamic update of access rights (see <xref target="update-access-rights-c-rs"/>).</t>
        <t>Example: assuming that ead_label is 24 and that the value of the "access_token" field of the access token response from AS is equal to h'8343a1010aa2044c53...0f6a' (elided for brevity), the critical EAD item is as follows:</t>
        <sourcecode type="cbor-diag"><![CDATA[
-24, h'8343a1010aa2044c53...0f6a'
]]></sourcecode>
        <t>Note to RFC Editor: Please replace the value of the ead_label with the value registered for ACE-OAuth Access Token in <xref target="iana-edhoc-ead"/>, then delete this note.</t>
      </section>
      <section anchor="edhoc-exec">
        <name>LAKE Session</name>
        <t>In order to mutually authenticate and establish secure communication for authorized access according to the profile described in this document, C and RS run the LAKE protocol augmented with an access token. During the LAKE session, C specifies the access token to RS, in the EAD field of a LAKE message. According to this document, C uses the EAD item ACE-OAuth Access Token defined in <xref target="AT-in-EAD"/> and specifying the access token by value. Future documents can define alternative EAD items for specifying the access token by reference.</t>
        <t>As per <xref section="A.2" sectionFormat="of" target="RFC9528"/>, LAKE can be transferred over CoAP using either the forward or the reverse message flow, thus manifesting the two possible mappings between the ACE roles (client and resource server) and the LAKE roles (Initiator and Responder), whereas the CoAP roles (client and server) remain the same. The choice of message flow and corresponding mapping depends on the deployment setting and in particular on which identity to protect the most, since LAKE protects the identity of the Initiator against active attackers and the identity of the Responder against passive attackers.</t>
        <t>If the LAKE forward message flow is used (see <xref target="forward"/>), C acts as the LAKE Initiator and the access token <bcp14>MUST</bcp14> be specified in the EAD_3 field of LAKE message_3. If the LAKE reverse message flow is used (see <xref target="reverse"/>), C acts as the LAKE Responder and the access token <bcp14>MUST</bcp14> be specified in the EAD_4 field of LAKE message_4. By doing so, the access token specified in the EAD field is always protected by LAKE, using authenticated encryption and achieving confidentiality against active attackers (see Sections <xref target="RFC9528" section="9.1" sectionFormat="bare"/> and <xref target="RFC9528" section="9.2" sectionFormat="bare"/> of <xref target="RFC9528"/>).</t>
        <t>The authentication credential AUTH_CRED_C that C specifies in the ID_CRED_X field during the LAKE session <bcp14>MUST</bcp14> be the same one that C specifies in the access token request to AS (see <xref target="c-as"/>) and that is bound to the access token specified to RS during the LAKE session.</t>
        <t>When RS processes the EAD item ACE-OAuth Access Token, RS <bcp14>MUST</bcp14> verify that the authentication credential AUTH_CRED_C that C specifies in the ID_CRED_X field during the LAKE session is the same one that is bound to the access token specified by the EAD item. If such a verification fails, RS <bcp14>MUST</bcp14> abort the LAKE session. Note that:</t>
        <ul spacing="normal">
          <li>
            <t>The ID_CRED_X field in question is the ID_CRED_I or ID_CRED_R field, when using the LAKE forward message flow or reverse message flow, respectively.</t>
          </li>
          <li>
            <t>The authentication credential bound to the access token is specified by the "cnf" claim of the access token specified by the EAD item.</t>
          </li>
        </ul>
        <t>RS <bcp14>MUST</bcp14> have successfully validated the access token before successfully completing the LAKE session. If completed successfully, the LAKE session is associated with both the access token and the pair (SESSION_ID, AUTH_CRED_C). In particular, SESSION_ID is specified by the "session_id" field, within the LAKE_Information object specified by the "lake_info" claim of the access token.</t>
        <t>Any previous LAKE session associated with the same access token and with the same pair (SESSION_ID, AUTH_CRED_C) <bcp14>MUST</bcp14> be deleted. The OSCORE Security Context derived from that LAKE session <bcp14>MUST</bcp14> also be deleted.</t>
        <t>Depending on the message flow used, the LAKE messages will be carried either in CoAP POST requests or in CoAP 2.04 (Changed) responses, as detailed in <xref section="A.2" sectionFormat="of" target="RFC9528"/>.</t>
        <t>C <bcp14>MUST</bcp14> target the LAKE resource at RS with the URI path specified in the "uri_path" field (if present) of the LAKE_Information object within the access token response received from AS, which AS sent to C when issuing the first access token of the token series (see <xref target="c-as"/>). If the "uri_path" field is not present in that LAKE_Information object, C assumes the target resource at RS to be the well-known LAKE resource at the path /.well-known/edhoc.</t>
        <t>In this profile of ACE, RS <bcp14>MUST</bcp14> implement the CoAP Uri-Path-Abbrev Option specified in <xref target="I-D.ietf-core-uri-path-abbrev"/> and <bcp14>MUST</bcp14> understand the corresponding Uri-Path-Abbrev value 2 that abbreviates the path /.well-known/edhoc. While there is no equivalent requirement for C, the above ensures that the CoAP Uri-Path-Abbrev Option and its value are going to be understood by RS, if C includes the Option in a CoAP request that carries a LAKE message and targets the well-known LAKE resource at the path /.well-known/edhoc.</t>
        <t>RS has to ensure that no requests can be performed on a LAKE resource other than for running the LAKE protocol. Specifically, on a LAKE resource, it <bcp14>SHOULD NOT</bcp14> be possible to perform any other operation than POST.</t>
      </section>
      <section anchor="forward">
        <name>Forward Message Flow</name>
        <t>This section details the case where the LAKE forward message flow is used (see <xref section="A.2.1" sectionFormat="of" target="RFC9528"/>), i.e., where C acts as the Initiator I and RS acts as the Responder R.</t>
        <t>Consistent with the LAKE forward message flow, C sends LAKE message_1 and LAKE message_3 to a LAKE resource at RS, as CoAP POST requests. RS sends LAKE message_2 and (optionally) LAKE message_4 as CoAP 2.04 (Changed) responses.</t>
        <section anchor="forward-m1">
          <name>LAKE message_1</name>
          <t>The processing of LAKE message_1 is as specified in <xref section="5.2" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The LAKE method <bcp14>MUST</bcp14> be one of the LAKE methods specified in the "methods" field (if present) of the LAKE_Information object within the access token response received from AS, which AS sent to C when issuing the first access token of the token series (see <xref target="c-as"/>).</t>
            </li>
            <li>
              <t>The selected cipher suite <bcp14>MUST</bcp14> be one of the LAKE cipher suites specified in the "cipher_suites" field (if present) of the LAKE_Information object within the access token response received from AS, which AS sent to C when issuing the first access token of the token series (see <xref target="c-as"/>).</t>
            </li>
          </ul>
        </section>
        <section anchor="lake-message2">
          <name>LAKE message_2</name>
          <t>The processing of LAKE message_2 is as specified in <xref section="5.3" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R specified by the message field ID_CRED_R is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="lake-message3">
          <name>LAKE message_3</name>
          <t>The processing of LAKE message_3 is as specified in <xref section="5.4" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I specified by the message field ID_CRED_I is AUTH_CRED_C.</t>
            </li>
            <li>
              <t>The EAD_3 field <bcp14>MUST</bcp14> include an EAD item that specifies the access token issued to C and bound to AUTH_CRED_C. According to this document, such EAD item is ACE-OAuth Access Token (see <xref target="AT-in-EAD"/>), which specifies the access token by value.  </t>
              <t>
The EAD_3 field <bcp14>MUST NOT</bcp14> include multiple EAD items specifying the access token. If zero or more than one EAD items specifying the access token are included in the EAD_3 field, then RS <bcp14>MUST</bcp14> abort the LAKE session.  </t>
              <t>
RS <bcp14>MUST</bcp14> verify that the access token specified in the EAD item is valid. The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with a LAKE error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>), and it <bcp14>MUST</bcp14> abort the LAKE session.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="reverse">
        <name>Reverse Message Flow</name>
        <t>This section details the case where the LAKE reverse message flow is used (see <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>), i.e., where C acts as the Responder R and RS acts as the Initiator I.</t>
        <t>Consistent with the LAKE reverse message flow, C sends a trigger message, LAKE message_2, and LAKE message_4 to RS as CoAP POST requests. RS sends LAKE message_1 and LAKE message_3 as CoAP 2.04 (Changed) responses.</t>
        <t>In this profile of ACE, if C/RS implements the LAKE reverse message flow, then C/RS <bcp14>MUST</bcp14> implement LAKE message_4. In particular, when using the LAKE reverse message flow, C <bcp14>MUST</bcp14> send LAKE message_4 after successfully completing the processing of the incoming LAKE message_3.</t>
        <section anchor="trigger-message">
          <name>Trigger Message</name>
          <t>As specified in <xref section="A.2.2" sectionFormat="of" target="RFC9528"/>, the trigger message is a POST request with no payload that C sends to the LAKE resource at RS, intended to trigger a response conveying LAKE message_1.</t>
          <t>If the access token is issued for a group-audience (see <xref section="6.9" sectionFormat="of" target="RFC9200"/>), then C can perform a LAKE "roll call", by sending the trigger message as a group request, e.g., over IP multicast <xref target="I-D.ietf-core-groupcomm-bis"/>. For the sake of efficiency, it is expected that the group-audience is appropriately associated with a CoAP group and/or application group (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>), so that only the resource servers belonging to the group-audience receive the trigger message. After that, C can receive a different LAKE message_1 from each of the targeted RSs and separately progresses the corresponding LAKE sessions, by sending a different LAKE message_2 to each RS that has replied with a LAKE message_1.</t>
        </section>
        <section anchor="lake-message1">
          <name>LAKE message_1</name>
          <t>The processing of LAKE message_1 is as specified in <xref section="5.2" sectionFormat="of" target="RFC9528"/>.</t>
        </section>
        <section anchor="lake-message2-1">
          <name>LAKE message_2</name>
          <t>The processing of LAKE message_2 is as specified in <xref section="5.3" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_R specified by the message field ID_CRED_R is AUTH_CRED_C.</t>
            </li>
          </ul>
        </section>
        <section anchor="lake-message3-1">
          <name>LAKE message_3</name>
          <t>The processing of LAKE message_3 is as specified in <xref section="5.4" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The authentication credential CRED_I specified by the message field ID_CRED_I is AUTH_CRED_RS.</t>
            </li>
          </ul>
        </section>
        <section anchor="lake-message4">
          <name>LAKE message_4</name>
          <t>The processing of LAKE message_4 is as specified in <xref section="5.5" sectionFormat="of" target="RFC9528"/>, with the following additions:</t>
          <ul spacing="normal">
            <li>
              <t>The EAD_4 field <bcp14>MUST</bcp14> include an EAD item that specifies the access token issued to C and bound to AUTH_CRED_C. According to this document, such EAD item is ACE-OAuth Access Token (see <xref target="AT-in-EAD"/>), which specifies the access token by value.  </t>
              <t>
The EAD_4 field <bcp14>MUST NOT</bcp14> include multiple EAD items specifying the access token. If zero or more than one EAD items specifying the access token are included in the EAD_4 field, then RS <bcp14>MUST</bcp14> abort the LAKE session.  </t>
              <t>
RS <bcp14>MUST</bcp14> verify that the access token specified in the EAD item is valid. The validation follows the procedure specified in <xref target="rs-c"/>. If such validation fails, RS <bcp14>MUST</bcp14> reply to C with a LAKE error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>), and it <bcp14>MUST</bcp14> abort the LAKE session.</t>
            </li>
          </ul>
        </section>
        <section anchor="timing-reverse-message-flow">
          <name>Timing of Access Token Request</name>
          <t>When C sends to AS an access token request for requesting the first access token of a token series (see <xref target="c-as"/>), the "req_cnf" parameter of the access token request specifies C's authentication credential AUTH_CRED_C to be bound to the access token and to be used as CRED_R in the LAKE session with RS. In particular, AUTH_CRED_C has to be consistent with the LAKE session run with RS, i.e., compatible with the LAKE authentication method and selected cipher suite used in that session.</t>
          <t>However, when using the LAKE reverse message flow, such information is effectively indicated by RS when sending LAKE message_1 to C. Therefore, C is generally not able to specify an appropriate AUTH_CRED_C to AS when requesting an access token as early as before sending the trigger message to RS.</t>
          <t>In the general case, the following applies.</t>
          <ul spacing="normal">
            <li>
              <t>If C knows the right AS associated with RS before sending the trigger message, then C can send the access token request to AS as soon as it receives and successfully processes LAKE message_1 from RS. In particular, the "req_cnf" parameter of the access token request specifies the authentication credential AUTH_CRED_C that C uses in the ongoing LAKE session, as specified through ID_CRED_R of LAKE message_2 from C.  </t>
              <t>
The exchange of access token request/response between C and AS can occur in parallel with the exchange of LAKE message_2 and message_3 between C and RS. However, receiving an access token response from AS is required by C to complete the processing of LAKE message_3 from RS (unless C already stores RS' authentication credential AUTH_CRED_RS) and to compose LAKE message_4 to send to RS.</t>
            </li>
            <li>
              <t>If C does not know the right AS associated with RS before sending the trigger message, C can gain knowledge of such AS during the LAKE session, by including the EAD item Request Creation Hints in LAKE message_2 and retrieving the information specified by RS from the EAD item Request Creation Hints in LAKE message_3 (see <xref target="as-creation-hints"/>). Consequently, C can send the access token request to AS as soon as it receives LAKE message_3 from RS. In particular, the "req_cnf" parameter of the access token request specifies the authentication credential AUTH_CRED_C that C uses in the ongoing LAKE session and that was specified through ID_CRED_R of LAKE message_2 from C.  </t>
              <t>
Like in the previous case, receiving an access token response from AS is required by C to complete the processing of LAKE message_3 from RS (unless C already stores RS' authentication credential AUTH_CRED_RS) and to compose LAKE message_4 to send to RS.</t>
            </li>
          </ul>
          <t>If C knows the right AS associated with RS before sending the trigger message, there are however particular circumstances under which C is able to send the access token request to AS even before sending the trigger message to RS. For example:</t>
          <ul spacing="normal">
            <li>
              <t>C owns only one authentication credential AUTH_CRED_C; or</t>
            </li>
            <li>
              <t>C knows in advance the LAKE authentication method and selected cipher suite that RS is going to indicate in LAKE message_1. Therefore, C can determine in advance an appropriate AUTH_CRED_C to bind to an access token and to specify in the access token request to AS.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="possible-conflicting-information-from-as">
        <name>Possible Conflicting Information from AS</name>
        <t>In the best-case scenario, C uses the LAKE forward message flow and knows the right AS associated with RS before sending LAKE message_1. Consequently, when requesting the first access token of a token series, C can first complete the access token request-response exchange with AS, and then send LAKE message_1 to RS, consistent with what AS specified within the LAKE_Information object of the access token response (see <xref target="as-c"/>, <xref target="edhoc-exec"/>, and <xref target="forward-m1"/>).</t>
        <t>In other scenarios, C has to request the first access token of a token series during an already ongoing LAKE session with RS, i.e.:</t>
        <ul spacing="normal">
          <li>
            <t>When using the LAKE forward message flow without knowing in advance the right AS associated with RS, which C learns during the LAKE session through the EAD item Request Creation Hints (see <xref target="as-creation-hints"/>). That is, the access token request-response exchange with AS occurs after C has received LAKE message_2 from RS.</t>
          </li>
          <li>
            <t>When using the LAKE reverse message flow, as discussed in <xref target="timing-reverse-message-flow"/>. That is, the access token request-response exchange with AS occurs after C has received LAKE message_1 or message_3 from RS, depending on whether or not C knows in advance the right AS associated with RS before sending the trigger message to RS.</t>
          </li>
        </ul>
        <t>In the scenarios above, the information that AS specifies within the LAKE_Information object of the access token response could contradict the already ongoing LAKE session between C and RS. With reference to the LAKE_Information object in the access token response, this particularly concerns:</t>
        <ul spacing="normal">
          <li>
            <t>The URI path of the LAKE resource targeted in the session, which might differ from the one indicated by the "uri_path" field if present, or from the path /.well-known/edhoc otherwise.</t>
          </li>
          <li>
            <t>The LAKE method used in the session and indicated in LAKE message_1, which might not be indicated by the "methods" field (if present).</t>
          </li>
          <li>
            <t>The selected cipher suite used in the session and indicated in LAKE message_1, which might not be indicated by the "cipher_suites" field (if present).</t>
          </li>
        </ul>
        <t>When C receives the access token response from AS, if C detects any contradiction between the ongoing LAKE session with RS and the information specified in the received LAKE_Information object, C <bcp14>MUST</bcp14> reply to RS with a LAKE error message with ERR_CODE = 1 (see <xref section="6" sectionFormat="of" target="RFC9528"/>), and it <bcp14>MUST</bcp14> abort the LAKE session. Note that such error message is sent in reply to:</t>
        <ul spacing="normal">
          <li>
            <t>LAKE message_2, when using the LAKE forward message flow.</t>
          </li>
          <li>
            <t>LAKE message_1 or message_3, when using the LAKE reverse message flow, depending on whether or not C knows in advance the right AS associated with RS before sending the trigger message to RS.</t>
          </li>
        </ul>
        <t>After aborting the LAKE session, C can take advantage of the just issued access token and run a new LAKE session with RS as intended to be bound to that access token. The new session is run consistent with the received LAKE_Information object that was conveyed in the access token response from AS. In particular:</t>
        <ul spacing="normal">
          <li>
            <t>If C decides to use the LAKE forward message flow, it sends LAKE message_1 consistent with the received LAKE_Information object.</t>
          </li>
          <li>
            <t>If C decides to use the LAKE reverse message flow, it sends the trigger message to RS consistent with the received LAKE_Information object. In practice, this is simply about sending the trigger message to the LAKE resource with URI path indicated by the "uri_path" field, if present in the LAKE_Information object, or with URI path /.well-known/edhoc otherwise.</t>
          </li>
        </ul>
      </section>
      <section anchor="oscore-security-context">
        <name>OSCORE Security Context</name>
        <t>Once the LAKE session is successfully completed, C and RS derive an OSCORE Security Context as defined in <xref section="A.1" sectionFormat="of" target="RFC9528"/>.</t>
        <t>In addition, RS associates the latest LAKE session and the derived OSCORE Security Context with the stored access token, which is bound to the authentication credential AUTH_CRED_C used in the LAKE session. The access token is also associated with the pair (SESSION_ID, AUTH_CRED_C), where SESSION_ID is the identifier of the token series to which the access token belongs.</t>
        <t>If supported by C, C <bcp14>MAY</bcp14> use the LAKE + OSCORE combined request defined in <xref target="RFC9668"/> (denoted therein as "EDHOC + OSCORE request"), unless the LAKE_Information object specified by the "lake_info" parameter of the access token response included the "comb_req" field encoding the CBOR simple value <tt>false</tt> (0xf4).</t>
        <t>In the combined request, both LAKE message_3 and the first OSCORE-protected application request are combined together in a single OSCORE-protected CoAP request, thus saving one round trip. This requires C to derive the OSCORE Security Context with RS already after having successfully processed the received LAKE message_2 and before sending LAKE message_3. An example is provided in <xref target="example-with-optimization"/>.</t>
      </section>
      <section anchor="update-access-rights-c-rs">
        <name>Update of Access Rights</name>
        <t>If C has a valid OSCORE Security Context associated with a valid access token at RS, then C can request from AS an update of the access rights as described in <xref target="c-as"/>.</t>
        <t>If the request is granted, then AS generates a new access token containing updated access rights for C (see <xref target="update-access-rights-c-as"/>), in the same token series of the current access token (see <xref target="token-series"/>).</t>
        <t>According to this document, AS provides the new access token to C (see <xref target="as-c"/>) for further uploading to RS (see <xref target="c-rs"/>). Alternatively, the new access token can be uploaded by AS directly to RS, as described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
        <t>If all validations are successful, C can access protected resources at RS according to the updated access rights, using the previously established OSCORE Security Context.</t>
        <t>The rest of this section describes the message exchange for the uploading of the new access token from C to RS.</t>
        <section anchor="c-rs">
          <name>C-to-RS: POST to /authz-info Endpoint</name>
          <t>C can update its access rights by uploading the updated access token to RS using CoAP <xref target="RFC7252"/> and the Authorization Information endpoint as described in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>.</t>
          <t>That is, C sends a POST request to the /authz-info endpoint at RS, with the request payload containing the access token without any CBOR wrapping. As per <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, the Content-Format of the POST request <bcp14>MUST</bcp14> be "application/cwt" to reflect the format of the transported access token.</t>
          <t>C <bcp14>MUST</bcp14> protect the POST request using the current OSCORE Security Context shared with RS.</t>
          <t>Upon receiving an access token from C, RS <bcp14>MUST</bcp14> follow the procedures defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>. That is, RS <bcp14>MUST</bcp14> verify the validity of the access token. RS <bcp14>MAY</bcp14> make an introspection request (see <xref section="5.9.1" sectionFormat="of" target="RFC9200"/>) to validate the access token at AS.</t>
          <t>RS <bcp14>MUST</bcp14> check the following conditions:</t>
          <ul spacing="normal">
            <li>
              <t>RS checks whether it stores an access token T_OLD, such that:  </t>
              <ul spacing="normal">
                <li>
                  <t>The "session_id" field of the LAKE_Information object specified by the "lake_info" claim matches the "session_id" field of the LAKE_Information object specified by the "lake_info" claim of the new access token T_NEW.</t>
                </li>
                <li>
                  <t>The authentication credential specified by the "cnf" claim matches the authentication credential specified by the "cnf" claim of the new access token T_NEW. Note that, in T_OLD and T_NEW, the same authentication credential can be transported by value or uniquely referred to by means of an appropriate identifier.</t>
                </li>
              </ul>
            </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, the new access token T_NEW supersedes T_OLD, i.e., RS <bcp14>MUST</bcp14> replace the authorization information specified in T_OLD with that specified in T_NEW, and it <bcp14>MUST</bcp14> associate T_NEW with the OSCORE Security Context CTX.</t>
          <t>Note that C and RS do not execute the LAKE protocol, they do not establish a new OSCORE Security Context, and AUTH_CRED_C remains the same.</t>
        </section>
        <section anchor="rs-c">
          <name>RS-to-C: 2.01 (Created)</name>
          <t>If all validations are successful, RS stores the new access token in such a way that it is possible to retrieve it based on the pair (SESSION_ID, AUTH_CRED_C), where SESSION_ID is the identifier of the token series to which the access token belongs. Note that SESSION_ID is specified in the "session_id" field of the LAKE_Information object, within the "lake_info" claim of the access token.</t>
          <t>Then, RS <bcp14>MUST</bcp14> reply to the POST request by sending a 2.01 (Created) response with no payload. The response is protected with the same OSCORE Security Context used to protect the corresponding request. After that, C can access protected resources at RS according to the updated access rights, using the previously established OSCORE Security Context.</t>
          <t>Instead, if any validation fails, RS <bcp14>MUST</bcp14> respond with a 4.01 (Unauthorized) error response. RS <bcp14>MAY</bcp14> provide additional information in the payload of the error response, in order to clarify what went wrong.</t>
          <t>As specified in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, when receiving a valid access token with updated authorization information from C (see <xref target="c-rs"/>), it is recommended that RS overwrites the previous access token. That is, only the latest authorization information in the access token received by RS is valid. This simplifies the process needed by RS to keep track of authorization information for a given client.</t>
        </section>
      </section>
      <section anchor="discard-context">
        <name>Discarding the OSCORE Security Context</name>
        <t>There are a number of cases where C or RS have to discard the OSCORE Security Context that they share, after which they can establish a new one (see <xref target="establish-new-context"/>).</t>
        <t>C <bcp14>MUST</bcp14> discard the current OSCORE Security Context shared with RS when any of the following occurs:</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Sender Sequence Number space of C is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example, due to expiration or revocation.</t>
          </li>
          <li>
            <t>C receives a number of unprotected 4.01 (Unauthorized) responses to OSCORE-protected requests, which are sent to RS and protected using the same OSCORE Security Context. The exact number of such received responses needs to be specified by the application. This can happen, for example, due to lack of storage at 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 AUTH_CRED_C (AUTH_CRED_RS) in the LAKE session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>RS <bcp14>MUST</bcp14> discard the current OSCORE Security Context shared with C when any of the following occurs:</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Sender Sequence Number space of RS is exhausted.</t>
          </li>
          <li>
            <t>The access token associated with the OSCORE Security Context becomes invalid, for example, due to expiration or revocation.</t>
          </li>
          <li>
            <t>The authentication credential of C (of RS) becomes invalid (e.g., due to expiration or revocation), and it was used as AUTH_CRED_C (AUTH_CRED_RS) in the LAKE session to establish the OSCORE Security Context.</t>
          </li>
        </ul>
        <t>After a new access token is successfully uploaded to RS and a new OSCORE Security Context is established between C and RS, messages still in transit that were protected with the previous OSCORE Security Context might not be successfully verified by the recipient, since the old OSCORE Security Context might have been discarded. This means that messages sent shortly before C has uploaded the new access token to RS might not be successfully accepted by the recipient.</t>
        <t>Furthermore, implementations may want to cancel CoAP observations at RS, if registered before the new OSCORE Security Context has been established. Alternatively, applications need to implement a mechanism to ensure that, from then on, messages exchanged within those observations are going to be protected with the newly derived OSCORE Security Context.</t>
      </section>
      <section anchor="establish-new-context">
        <name>Establishing a New OSCORE Security Context</name>
        <t>The procedure for provisioning a new access token to RS specified in this section applies to various cases where 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 that where there is still a valid OSCORE Security Context but it needs to be updated, e.g., due to a policy limiting its use in terms of time or amount of processed data, or to the imminent exhaustion of the OSCORE Sender Sequence Number space. In this case, C and RS <bcp14>MAY</bcp14> alternatively attempt to run a key update protocol that they both support. One lightweight example is KUDOS <xref target="I-D.ietf-core-oscore-key-update"/>, which is independent of ACE and LAKE and does not require the uploading of an access token. If C and RS do not support a common key update protocol to use for updating their still valid OSCORE Security Context, then C and RS fall back to running LAKE.</t>
        <t>Regardless of whether a valid Security Context is available, if the access token is still valid, C and RS can rerun LAKE to perform session resumption with PSK-based authentication <xref target="I-D.ietf-lake-edhoc-psk"/>, assuming that they support session resumption and the underlying LAKE authentication method. When doing so, the access token is not specified in the LAKE messages sent to RS. Also, consistent with <xref target="edhoc-exec"/>, the previous LAKE session and the OSCORE Security Context derived thereof are deleted, and the new LAKE session becomes associated with the same pair (SESSION_ID, AUTH_CRED_C) that was associated with the previous session. Note that AUTH_CRED_C is the authentication credential of C that is bound to the access token and that C used for its initial authentication based on public keys.</t>
        <t>In either case, C and RS establish a new OSCORE Security Context that replaces the old one and will be used for protecting their communications from then on. In particular, RS <bcp14>MUST</bcp14> associate the new OSCORE Security Context with the current (potentially re-uploaded) access token. Furthermore, the SESSION_ID identifying the token series to which the access token belongs remains unchanged, even if C and RS have established a new LAKE session. Unless C and RS re-run the LAKE protocol, they preserve their OSCORE identifiers, i.e., their OSCORE Sender/Recipient IDs.</t>
      </section>
      <section anchor="access-rights-verif">
        <name>Access Rights Verification</name>
        <t>RS <bcp14>MUST</bcp14> follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="RFC9200"/>. That is, if RS receives an OSCORE-protected request targeting a protected resource from C, then RS processes the request according to <xref target="RFC8613"/>.</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 <bcp14>MUST</bcp14> verify that the authorization information covers the target resource and the action intended by C on it.</t>
      </section>
      <section anchor="access-token-invalidity">
        <name>Access Token Invalidity</name>
        <t>When an access token becomes invalid (e.g., due to its expiration or revocation), the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>RS <bcp14>MUST</bcp14> delete the access token and the associated OSCORE Security Context.</t>
          </li>
          <li>
            <t>RS <bcp14>MUST</bcp14> abort and purge the LAKE session from which the deleted OSCORE Security Context was derived.</t>
          </li>
          <li>
            <t>RS notifies C with a 4.01 (Unauthorized) error response for any long-running request, as specified in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="auth-cred-validity">
        <name>Authentication Credential Invalidity</name>
        <t>If an authentication credential AUTH_CRED_C of C is invalidated (e.g., it expires), then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>RS <bcp14>MUST</bcp14> delete all the stored access tokens that specify AUTH_CRED_C in the "cnf" claim.</t>
          </li>
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token such that, when C requested the first access token of the same series, the access token request to AS specified AUTH_CRED_C (see <xref target="c-as"/>).</t>
          </li>
          <li>
            <t>RS and C <bcp14>MUST</bcp14> abort and purge all the LAKE sessions that used AUTH_CRED_C and successfully completed. Also, RS and C <bcp14>MUST</bcp14> delete the OSCORE Security Contexts derived from those sessions (see <xref target="discard-context"/>).</t>
          </li>
        </ul>
        <t>If an authentication credential AUTH_CRED_RS of RS is invalidated (e.g., it expires), then the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token such that, when C requested the first access token of the same series, the access token response from AS specified AUTH_CRED_RS (see <xref target="as-c"/>).</t>
          </li>
          <li>
            <t>C <bcp14>MUST</bcp14> delete every stored access token that C specified during a LAKE session that used AUTH_CRED_RS and successfully completed.</t>
          </li>
          <li>
            <t>RS and C <bcp14>MUST</bcp14> abort and purge all the LAKE sessions that used AUTH_CRED_RS and successfully completed. Also, RS and C <bcp14>MUST</bcp14> delete the OSCORE Security Contexts derived from those sessions (see <xref target="discard-context"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="session-validity">
        <name>LAKE Session Invalidity</name>
        <t>If a LAKE session is aborted and purged for other reasons than those listed in <xref target="auth-cred-validity"/>, then RS and C that established the session <bcp14>MUST</bcp14> delete the OSCORE Security Context derived from that session (see <xref target="discard-context"/>).</t>
      </section>
      <section anchor="as-creation-hints">
        <name>Using AS Request Creation Hints</name>
        <t>When replying to an unauthorized resource request message from a client, RS can send an unprotected AS Request Creation Hints message as a 4.01 (Unauthorized) error response (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>).</t>
        <t>The message payload can specify a number of parameters that help the sender client acquire a valid access token from AS. These parameters include "audience" and "scope".</t>
        <t>If RS supports the LAKE reverse message flow and sends an unprotected AS Request Creation Hints message, the following applies:</t>
        <ul spacing="normal">
          <li>
            <t>The message payload <bcp14>MUST NOT</bcp14> include the "audience" parameter.</t>
          </li>
          <li>
            <t>The message payload <bcp14>SHOULD NOT</bcp14> include the "scope" parameter, unless its value cannot contribute to expose the identity of RS.</t>
          </li>
        </ul>
        <t>This ensures that, if LAKE is run per its reverse message flow (see <xref target="reverse"/>), the protection of RS' identity against active attackers is not defeated by exposing information about RS such as audience and scope.</t>
        <t>AS Request Creation Hints can also be requested and retrieved by means of the EAD item Request Creation Hints defined in this section.</t>
        <t>The CDDL grammar for the EAD item is shown in <xref target="fig-ead-rch"/> and its ead_label is registered in <xref target="iana-edhoc-ead"/>. An example of its usage is provided in <xref target="example-non-sequential-workflow"/>.</t>
        <figure anchor="fig-ead-rch">
          <name>EAD item Request Creation Hints.</name>
          <sourcecode type="cddl"><![CDATA[
ead_request_creation_hints = (
  ead_label : e'ead_request_creation_hints_label',
  ? ead_value : bstr .cbor AS_request_creation_hints
)
AS_request_creation_hints = { * $$AS_request_creation_hints_item }
                            .within { * int => any }
]]></sourcecode>
        </figure>
        <t>This EAD item is intended to be used in EAD fields of LAKE messages exchanged between C and RS as follows:</t>
        <ul spacing="normal">
          <li>
            <t>In EAD_1 and EAD_2, when using the LAKE forward message flow.</t>
          </li>
          <li>
            <t>In EAD_2 and EAD_3, when using the LAKE reverse message flow.</t>
          </li>
        </ul>
        <t>In the first LAKE message from C to RS, the EAD item has no ead_value and asks RS to include the same EAD item in the next LAKE message.</t>
        <t>In the first LAKE message from RS to C, the EAD item has ead_value. In particular, ead_value is a CBOR byte string whose value encodes the CBOR map that is used as payload in an unprotected AS Request Creation Hints message (see <xref section="5.3" sectionFormat="of" target="RFC9200"/>). The keys of the CBOR map are defined in the IANA registry "ACE Authorization Server Request Creation Hints" <xref target="ACE.Request.Creation.Hints"/>.</t>
        <t>This EAD item is non-critical, i.e., it can be ignored by the recipient peer. The EAD item is <bcp14>OPTIONAL</bcp14> to implement.</t>
        <t>Example: assuming ead_label 1 and the AS Request Creation Hints CBOR map containing one element with key 1 and with value the CBOR text string encoding "coap://www.example.com/token" (i.e., the absolute URI of the /token endpoint at AS), the non-critical EAD item in the first LAKE message from RS to C is as follows:</t>
        <sourcecode type="cbor-diag"><![CDATA[
1, h'a101781c636f61703a2f2f7777772e6578616d706c652e636f6d2f746f6b656e'
]]></sourcecode>
        <t>Note to RFC Editor: Please replace the value of the ead_label with the value registered for Request Creation Hints in <xref target="iana-edhoc-ead"/>, then delete this note.</t>
        <t>Since C has not made an actual request targeting a specific application resource, RS may not know what resource C is interested in accessing. Moreover, such information needs to be matched against the privacy policy of the application. Since LAKE message_2 is only protected against passive attackers, the AS Request Creation Hints CBOR map <bcp14>MUST NOT</bcp14> include "audience" and <bcp14>SHOULD NOT</bcp14> include "scope" when present in the EAD item conveyed in the EAD_2 field.</t>
      </section>
      <section anchor="auth-cred-by-value">
        <name>Requesting Authentication Credential By Value</name>
        <t>LAKE peers need access to each other's authentication credentials to complete the protocol. To reduce unnecessary overhead, LAKE allows identifying credentials by reference alternatively to transporting them by value. The ACE protocol includes the initial transport of authentication credentials of C and RS by value, and thus it matches the identification of credentials by reference in LAKE.</t>
        <t>However, if one of the peers has deleted the other peer's authentication credential from its local storage, then there should be a way to restore it without requesting a new access token.</t>
        <t>Consider first the LAKE forward message flow. If the ACE client / LAKE Initiator identifies its credential AUTH_CRED_C by reference in ID_CRED_I of message_3, then the ACE resource server / LAKE Responder can return a LAKE error message with error code (ERR_CODE) 3 "Unknown credential referenced". This enables the Initiator to restart the protocol using some other ID_CRED_I (typically, the authentication credential AUTH_CRED_C specified by value), thereby resolving the issue.</t>
        <t>Instead, if the ACE resource server / LAKE Responder identifies its credential AUTH_CRED_RS by reference in ID_CRED_R of message_2, then a LAKE error message with error code (ERR_CODE) 3 "Unknown credential referenced" returned by the ACE client / LAKE Initiator does not automatically solve the problem: since the Responder has aborted the LAKE session without authenticating the Initiator, the Responder has no reliable way to act differently in a following LAKE session with that other peer.</t>
        <t>In order to remedy this situation, this section specifies the EAD item Credential By Value for requesting the peer's authentication credential by value.</t>
        <t>The CDDL grammar for the EAD item is shown in <xref target="fig-ead-req-authcred"/> and its ead_label is registered in <xref target="iana-edhoc-ead"/>. An example of its usage is provided in <xref target="example-non-sequential-workflow"/>.</t>
        <figure anchor="fig-ead-req-authcred">
          <name>EAD item Credential By Value.</name>
          <sourcecode type="cddl"><![CDATA[
ead_credential_by_value = (
  ead_label : e'ead_credential_by_value_label'
)
]]></sourcecode>
        </figure>
        <t>This EAD item has no ead_value, and it can be used in the EAD_1 field of LAKE message_1 and in the EAD_2 field of LAKE message_2. When present in EAD_1, the EAD item requests the Responder to specify its authentication credential by value in ID_CRED_R of LAKE message_2. When present in EAD_2, the EAD item requests the Initiator to specify its authentication credential by value in ID_CRED_I of LAKE message_3.</t>
        <t>This EAD item is non-critical, i.e., it can be ignored by the recipient peer. The EAD item is <bcp14>OPTIONAL</bcp14> to implement.</t>
        <t>Example: assuming ead_label 15, the non-critical EAD item is as follows:</t>
        <sourcecode type="cbor-diag"><![CDATA[
15
]]></sourcecode>
        <t>Note to RFC Editor: Please replace the value of the ead_label with the value registered for Credential By Value in <xref target="iana-edhoc-ead"/>, then delete this note.</t>
        <t>In the LAKE reverse message flow, this EAD item can be employed for better control of the transport of authentication credentials by value. Note that, in the reverse message flow, both C and RS are able to recover from a LAKE error message with error code (ERR_CODE) 3 "Unknown credential referenced", but at the cost of more round trips that can be avoided by using this EAD item. That is:</t>
        <ul spacing="normal">
          <li>
            <t>The first case consists in the ACE client / LAKE Responder that specifies its authentication credential AUTH_CRED_C by reference in ID_CRED_R of message_2 and receives a LAKE error message with error code (ERR_CODE) 3 "Unknown credential referenced" as a reply from the ACE resource server / LAKE Initiator. After that, the ACE client / LAKE Responder can trigger a new LAKE session and specify its authentication credential by value in ID_CRED_R of message_2.</t>
          </li>
          <li>
            <t>The second case consists in the ACE resource server / LAKE Initiator that specifies its authentication credential AUTH_CRED_RS by reference in ID_CRED_I of message_3 and receives an LAKE error message with error code (ERR_CODE) 3 "Unknown credential referenced" as a reply from the ACE client / LAKE Responder. After that, since the ACE resource server / LAKE Initiator authenticated C, it can store C's authentication credential AUTH_CRED_C and specify its own authentication credential AUTH_CRED_RS by value in ID_CRED_I of message_3, during the next LAKE session with C.</t>
          </li>
        </ul>
      </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 communicate via the /token or /introspect endpoint. When using this profile, the use of CoAP <xref target="RFC7252"/> and OSCORE <xref target="RFC8613"/> for this communication is <bcp14>RECOMMENDED</bcp14>, in order to reduce the number of libraries that C and RS have to support. Other protocols fulfilling the security requirements defined in Sections <xref target="RFC9200" section="5" sectionFormat="bare"/> and <xref target="RFC9200" section="6" sectionFormat="bare"/> of <xref target="RFC9200"/> (such as HTTP and DTLS <xref target="RFC9147"/> or TLS <xref target="RFC9846"/>) <bcp14>MAY</bcp14> be used instead.</t>
      <t>If OSCORE is used, the requesting entity and AS need to have an OSCORE Security Context in place. While this can be pre-installed, the requesting entity and AS can establish such an OSCORE Security Context, for example, by running the LAKE protocol, as shown between C and AS by the examples in <xref target="examples"/>. This also applies to the communication between RS and AS, for example to protect the upload of access tokens from AS directly to RS as described in <xref target="I-D.ietf-ace-workflow-and-params"/>.</t>
    </section>
    <section anchor="use-with-key-groupcomm-profiles">
      <name>Use with Application Profiles of ACE for Group Key Provisioning</name>
      <t>The LAKE and OSCORE profile specified in the present document can be used in combination with application profiles of ACE for key provisioning for group communication <xref target="RFC9594"/>, such as <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> and <xref target="I-D.ietf-ace-coap-pubsub-profile"/>.</t>
      <t>When doing so, the LAKE and OSCORE profile is used by a client that wants to join a security group and by an RS that acts as the Key Distribution Center (KDC) responsible for that group. According to what is defined in the present document, the client does not upload the first access token of a token series  to the /authz-info endpoint at RS over an unprotected channel. Consequently, the client does not obtain the N_S challenge from RS acting as KDC (see <xref section="3.3" sectionFormat="of" target="RFC9594"/>).</t>
      <t>Therefore, when using the LAKE and OSCORE profile in combination with one of the application profiles of <xref target="RFC9594"/> mentioned above, the following holds for computing the N_S challenge used in such application profiles.</t>
      <ul spacing="normal">
        <li>
          <t>In the ACE application profile specified in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>, when the provisioning of the access token to the Group Manager (i.e., the KDC) has relied on the LAKE and OSCORE profile of ACE specified in the present document and the access token was specified in the EAD item ACE-OAuth Access Token (see <xref target="AT-in-EAD"/>), then N_S is derived using the EDHOC_Exporter interface defined in <xref section="4.2.1" sectionFormat="of" target="RFC9528"/>.  </t>
          <t>
Specifically, N_S is exported from the LAKE session associated with the access token and established between the client and the Group Manager. The following is provided as input to the EDHOC_Exporter interface:  </t>
          <ul spacing="normal">
            <li>
              <t>The 'exporter_label' parameter is the unsigned integer EXPORTER_LABEL_TBD_26, which is registered in <xref target="iana-edhoc-exporter-labels"/> of the present document.</t>
            </li>
            <li>
              <t>The 'context' parameter is h'' (0x40), i.e., the empty CBOR byte string.</t>
            </li>
            <li>
              <t>The 'length' parameter is 32, i.e., the intended length of N_S in bytes.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>In the ACE application profile specified in <xref target="I-D.ietf-ace-coap-pubsub-profile"/>, when the provisioning of the access token to the KDC has relied on the LAKE and OSCORE profile of ACE specified in the present document and the access token was specified in the EAD item ACE-OAuth Access Token (see <xref target="AT-in-EAD"/>), then N_S is derived using the EDHOC_Exporter interface defined in <xref section="4.2.1" sectionFormat="of" target="RFC9528"/>.  </t>
          <t>
Specifically, N_S is exported from the LAKE session associated with the access token and established between the client and the KDC. The following is provided as input to the EDHOC_Exporter interface:  </t>
          <ul spacing="normal">
            <li>
              <t>The 'exporter_label' parameter is the unsigned integer EXPORTER_LABEL_TBD_27, which is registered in <xref target="iana-edhoc-exporter-labels"/> of the present document.</t>
            </li>
            <li>
              <t>The 'context' parameter is h'' (0x40), i.e., the empty CBOR byte string.</t>
            </li>
            <li>
              <t>The 'length' parameter is 32, i.e., the intended length of N_S in bytes.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="ssec-cwt-conf">
      <name>CWT Confirmation Methods</name>
      <t>This document defines a number of new CWT confirmation methods, which are registered in <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 X.509 Certificate</name>
        <t>The confirmation method "x5u" specifies a URI <xref target="RFC3986"/> that identifies an X.509 certificate <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 a C509 Certificate</name>
        <t>The confirmation method "c5u" specifies a URI <xref target="RFC3986"/> that identifies a C509 certificate <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 CWT <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a "cnf" claim and possibly other claims. The semantics of "kcwt" is like that of the "kcwt" COSE Header Parameter specified in <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="ssec-cwt-conf-kccs">
        <name>CCS Containing a COSE_Key</name>
        <t>The confirmation method "kccs" specifies a CCS <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a "cnf" claim and possibly other claims. The semantics of "kccs" is like that of the "kccs" COSE Header Parameter specified in <xref target="RFC9528"/>.</t>
      </section>
    </section>
    <section anchor="ssec-jwt-conf">
      <name>JWT Confirmation Methods</name>
      <t>This document defines a number of new JWT confirmation methods, which are registered in <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 "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 X.509 Certificate</name>
        <t>The confirmation method "x5u" specifies a URI <xref target="RFC3986"/> that identifies an X.509 certificate <xref target="RFC5280"/>. It specifies a JSON string, with value the URI. 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 X.509 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 the base64-encoding (<xref section="4" sectionFormat="of" target="RFC4648"/> - not base64url-encoding) of the binary representation of a 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 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 "x5t" JWT confirmation method defined in <xref target="ssec-jwt-conf-x5t"/>, with the following differences. First, the base64url-encoded (<xref section="5" sectionFormat="of" target="RFC4648"/>) 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 a C509 Certificate</name>
        <t>The confirmation method "c5u" specifies a URI <xref target="RFC3986"/> that identifies a C509 certificate <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. It specifies a JSON string, with value the URI. 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. Second, the public key contained in the C509 certificate 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 CWT <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a "cnf" claim and possibly other claims. It specifies a JSON string, with value the base64url-encoding (<xref section="5" sectionFormat="of" target="RFC4648"/>) of the binary representation 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 CCS <xref target="RFC8392"/> containing a COSE_Key <xref target="RFC9053"/> in a "cnf" claim and possibly other claims. It specifies a JSON string, with value the base64url-encoding (<xref section="5" sectionFormat="of" target="RFC4648"/>) of the binary representation of the CCS.</t>
      </section>
    </section>
    <section anchor="sec-edhoc-ta-purposes">
      <name>LAKE Trust Anchor Purposes</name>
      <t>This document defines the following LAKE trust anchor purpose.</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>
      <table align="center" anchor="_table-edhoc-ta-purposes">
        <name>LAKE Trust Anchor Purposes</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">lake_cred</td>
            <td align="left">0</td>
            <td align="left">Verifying authentication credentials of other LAKE peers in LAKE sessions</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9528"/></td>
          </tr>
        </tbody>
      </table>
      <t>Trust anchors with purpose "lake_cred" are used for verifying authentication credentials of other LAKE peers in a LAKE session, and they typically are authentication credentials of Certificate Authorities (CAs).</t>
    </section>
    <section anchor="sec-edhoc-ta-types">
      <name>LAKE Trust Anchor Types</name>
      <t>This document defines the following LAKE trust anchor types.</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>
      <table align="center" anchor="_table-edhoc-ta-types">
        <name>LAKE Trust Anchor Types</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR label</th>
            <th align="left">Value type</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">uuid</td>
            <td align="left">0</td>
            <td align="left">#6.37(bstr)</td>
            <td align="left">Binary CBOR-encoded UUID</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9562"/></td>
          </tr>
          <tr>
            <td align="left">kid</td>
            <td align="left">4</td>
            <td align="left">bstr</td>
            <td align="left">Key identifier</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9052"/></td>
          </tr>
          <tr>
            <td align="left">c5t</td>
            <td align="left">22</td>
            <td align="left">COSE_CertHash</td>
            <td align="left">Hash of a C509 certificate</td>
            <td align="left">[RFC-XXXX][draft-ietf-cose-cbor-encoded-cert]</td>
          </tr>
          <tr>
            <td align="left">c5u</td>
            <td align="left">23</td>
            <td align="left">uri</td>
            <td align="left">URI pointing to a C509 certificate</td>
            <td align="left">[RFC-XXXX][draft-ietf-cose-cbor-encoded-cert]</td>
          </tr>
          <tr>
            <td align="left">x5t</td>
            <td align="left">34</td>
            <td align="left">COSE_CertHash</td>
            <td align="left">Hash of an X.509 certificate</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9360"/></td>
          </tr>
          <tr>
            <td align="left">x5u</td>
            <td align="left">35</td>
            <td align="left">uri</td>
            <td align="left">URI pointing to an X.509 certificate</td>
            <td align="left">[RFC-XXXX]<xref target="RFC9360"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>In addition to the considerations already discussed in this document, this section compiles additional operational considerations that hold for this document.</t>
      <section anchor="rs-belonging-to-multiple-audiences-with-different-authentication-credentials">
        <name>RS Belonging to Multiple Audiences with Different Authentication Credentials</name>
        <t>It is possible that RS supports multiple LAKE cipher suites and methods. In such case, it could happen that RS has different authentication credentials, each consistent with one or more supported combinations of cipher suites and methods.</t>
        <t>For example, if RS supports LAKE cipher suites 0 and 2 as well as methods 0 and 3, RS needs to have the following authentication credentials:</t>
        <ul spacing="normal">
          <li>
            <t>One credential using EdDSA with curve Ed25519 for method 0.</t>
          </li>
          <li>
            <t>One credential using ECDSA with curve P-256 for method 0.</t>
          </li>
          <li>
            <t>One credential using ECDSA with curve P-256 for method 3.</t>
          </li>
          <li>
            <t>One credential using X25519 for method 3.</t>
          </li>
        </ul>
        <t>To allow AS to select the appropriate authentication credential of RS when composing the access token response to C (see <xref target="as-c"/>), RS should belong to a different audience for each of its authentication credentials.</t>
        <t>When C requests an access token from AS (see <xref target="c-as"/>), it specifies an audience corresponding to an authentication credential of RS that is compatible with the authentication credential of C specified in the access token request. This means that, prior to requesting an access token, C has to determine which LAKE cipher suites and methods RS supports and the corresponding audience values. The discovery of RS' capabilities can rely on pre-configuration or on mechanisms defined in <xref target="I-D.ietf-lake-app-profiles"/>. The knowledge of audience values can be pre-configured.</t>
      </section>
      <section anchor="keeping-information-about-c-and-rs-up-to-date-at-as">
        <name>Keeping Information About C and RS Up-to-Date at AS</name>
        <t>In this profile, the LAKE_Information object is built by AS to guide C and RS towards executing the LAKE protocol. Note that, when AS builds a LAKE_Information object intended for C (included in an access token response) or RS (included in an access token), the object must specify information that is aligned with the capabilities of C and RS, to the best of AS' knowledge. In practice, this means that it is important that the information that AS has about C and RS is kept up-to-date, to reflect what C and RS support as LAKE peers. The means that AS uses to achieve this are out of scope for this document.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the 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 LAKE <xref target="RFC9528"/> also apply to this specific use of the OSCORE and LAKE protocols.</t>
      <t>Proof of possession is achieved by RS during the LAKE session, as soon as both the following conditions hold. The LAKE message flow used by C and RS determines when the two conditions are met during the LAKE session at the earliest.</t>
      <ul spacing="normal">
        <li>
          <t>RS has received from C the LAKE message that specifies the access token, which in turn is bound to and specifies C's authentication credential AUTH_CRED_C; and</t>
        </li>
        <li>
          <t>RS has authenticated C as per AUTH_CRED_C, thereby proving that C owns the private key corresponding to the public key associated with AUTH_CRED_C.</t>
        </li>
      </ul>
      <t>As previously stated, once completed the LAKE session, C and RS are mutually authenticated through their respective authentication credentials, whose retrieval has been facilitated by AS. Also, once completed the LAKE 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>When using the LAKE forward message flow (see <xref target="forward"/>), RS achieves confirmation that C has PRK_out when receiving and successfully processing LAKE message_3 from C. Instead, C achieves confirmation that RS has PRK_out when receiving and successfully processing the optional LAKE message_4 from RS, or when receiving and successfully verifying a response from RS protected with the established OSCORE Security Context.</t>
      <t>When using the LAKE reverse message flow (see <xref target="reverse"/>), RS achieves confirmation that C has PRK_out when receiving and successfully processing LAKE message_4 from C. Instead, C achieves confirmation that RS has PRK_out when receiving and successfully processing LAKE message_3 from RS.</t>
      <t>OSCORE is designed to secure point-to-point communication, providing a secure binding between a request and the corresponding response(s). Thus, the basic OSCORE protocol is not intended for use in point-to-multipoint communication (e.g., enforced via multicast or a publish-subscribe model). Implementers of this profile should make sure that their use case of OSCORE corresponds to the expected one, in order to prevent weakening the security assurances provided by OSCORE.</t>
      <t>When using this profile, it is <bcp14>RECOMMENDED</bcp14> that RS stores only one access token per client. The use of multiple access tokens for a single client increases the strain on RS, since it must consider every access token associated with the client and calculate the actual permissions that the client has. Also, access tokens indicating different or disjoint permissions from each other may lead RS to enforce wrong permissions. If one of the access tokens expires earlier than others, the resulting permissions may offer insufficient protection. Developers <bcp14>SHOULD</bcp14> avoid using multiple access tokens for the same client. Furthermore, with reference to access tokens issued in accordance with this profile, RS <bcp14>MUST NOT</bcp14> store more than one access token per client per PoP-key (i.e., per client's authentication credential).</t>
      <t>This profile defines the confirmation methods "kcwt" and "kccs" corresponding to the use of CWTs and CCSs, respectively. Security considerations for CWTs and CCSs and for the COSE header parameters "kcwt" and "kccs" are given in <xref section="9.8" sectionFormat="of" target="RFC9528"/>, and they also apply to the corresponding confirmation methods defined in <xref target="ssec-cwt-conf"/> and <xref target="ssec-jwt-conf"/> of this document. In particular, the contents of the CWT or CCS must be processed as untrusted input. The application needs to define a trust-establishment mechanism and identify the relevant trust anchors.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the 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 LAKE <xref target="RFC9528"/> also apply to this specific use of the OSCORE and LAKE 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 from RS (see also <xref target="as-creation-hints"/>). When an OSCORE Security Context already exists between C and RS, more detailed information may be included in a protected response from RS.</t>
      <t>The (encrypted) access token is never sent in an unprotected POST request to the /authz-info endpoint at RS. Thus, even if C uses the same single access token from multiple locations, the access token's value does not contribute to the risk of C being tracked.</t>
      <t>The identifiers used in OSCORE, i.e., the OSCORE Sender/Recipient IDs, are negotiated by C and RS during the execution of LAKE. When using the LAKE forward (reverse) message flow:</t>
      <ul spacing="normal">
        <li>
          <t>The LAKE Connection Identifier C_I (C_R) of C is going to be the OSCORE Recipient ID of C, i.e., the OSCORE Sender ID of RS.</t>
        </li>
        <li>
          <t>The LAKE Connection Identifier C_R (C_I) of RS is going to be the OSCORE Recipient ID of RS, i.e., the OSCORE Sender ID of C.</t>
        </li>
      </ul>
      <t>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-id-update"/>), or if C and RS obfuscate their OSCORE identifiers in their OSCORE-protected messages (e.g., by using the method defined in <xref target="I-D.tiloca-core-oscore-piv-enc"/>).</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE Profiles Registry</name>
        <t>IANA is asked to add the following entry to the "ACE Profiles" registry <xref target="ACE.Profiles"/> within the "Authentication and Authorization for Constrained Environments (ACE)" registry group, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: coap_lake_oscore</t>
          </li>
          <li>
            <t>Description: Profile for delegating client authentication and authorization in a constrained environment by establishing an OSCORE Security Context <xref target="RFC8613"/> between resource-constrained nodes, through the execution of the LAKE protocol <xref target="RFC9528"/>.</t>
          </li>
          <li>
            <t>CBOR Value: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entry to the "OAuth Parameters" registry <xref target="OAuth.Parameters"/> within the "OAuth Parameters" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: lake_info</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request and token response</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entry to the "OAuth Parameters CBOR Mappings" registry <xref target="OAuth.Parameters.CBOR.Mappings"/> within the "Authentication and Authorization for Constrained Environments (ACE)" registry group, following the procedure specified in <xref target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: lake_info</t>
          </li>
          <li>
            <t>CBOR Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Value Type: map</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Original Specification: [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 entry to the "JSON Web Token Claims" registry <xref target="JSON.Web.Token.Claims"/> within the "JSON Web Token (JWT)" registry group, following the procedure specified in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: lake_info</t>
          </li>
          <li>
            <t>Claim Description: Information for LAKE session</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token (CWT) Claims Registry</name>
        <t>IANA is asked to add the following entry to the "CBOR Web Token (CWT) Claims" registry <xref target="CWT.Claims"/> within the "CBOR Web Token (CWT) Claims" registry group, following the procedure specified in <xref target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: lake_info</t>
          </li>
          <li>
            <t>Claim Description: Information for LAKE session</t>
          </li>
          <li>
            <t>JWT Claim Name: lake_info</t>
          </li>
          <li>
            <t>Claim Key: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Claim Value Type: map</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-jwt-confirmation-methods">
        <name>JWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "JWT Confirmation Methods" registry <xref target="JWT.Confirmation.Methods"/> within the "JSON Web Token (JWT)" registry group, following the procedure specified in <xref target="RFC7800"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: x5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an X.509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: c5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a C509 certificate</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: kcwt</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a "cnf" claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Value: kccs</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a "cnf" claim and possibly other claims</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-jwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-cwt-confirmation-methods">
        <name>CWT Confirmation Methods Registry</name>
        <t>IANA is asked to add the following entries to the "CWT Confirmation Methods" registry <xref target="CWT.Confirmation.Methods"/> within the "CBOR Web Token (CWT) Claims" registry group, 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 (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5chain"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5bag</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of X.509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: x5b</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_X509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5bag"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of an X.509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: x5t</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: x5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to an X.509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: x5u</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: uri</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-x5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5c</t>
          </li>
          <li>
            <t>Confirmation Method Description: An ordered chain of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5c</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5c"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5b</t>
          </li>
          <li>
            <t>Confirmation Method Description: An unordered bag of C509 certificates</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5b</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_C509</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5b"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5t</t>
          </li>
          <li>
            <t>Confirmation Method Description: Hash of a C509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5t</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_CertHash</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5t"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: c5u</t>
          </li>
          <li>
            <t>Confirmation Method Description: URI pointing to a C509 certificate</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: c5u</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Confirmation Value Type: uri</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-c5u"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kcwt</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CBOR Web Token (CWT) containing a COSE_Key in a "cnf" claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: kcwt</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: COSE_Messages</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-kcwt"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Confirmation Method Name: kccs</t>
          </li>
          <li>
            <t>Confirmation Method Description: A CWT Claims Set (CCS) containing a COSE_Key in a "cnf" claim and possibly other claims</t>
          </li>
          <li>
            <t>JWT Confirmation Method Name: kccs</t>
          </li>
          <li>
            <t>Confirmation Key: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Confirmation Value Type: map / #6(map)</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: <xref target="ssec-cwt-conf-kccs"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-ead">
        <name>EDHOC External Authorization Data Registry</name>
        <t>IANA is asked to add the following entries to the "EDHOC External Authorization Data" registry <xref target="EDHOC.External.Authorization.Data"/> within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Name: ACE-OAuth Access Token</t>
          </li>
          <li>
            <t>Label: TBD (value between 24 and 255)</t>
          </li>
          <li>
            <t>Description: An Access Token as used in the ACE-OAuth framework <xref target="RFC9200"/></t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="AT-in-EAD"/></t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: Credential By Value</t>
          </li>
          <li>
            <t>Label: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Description: The sender peer wishes to receive the other peer's credential transported by value (and not identified by reference)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="auth-cred-by-value"/></t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Name: Request Creation Hints</t>
          </li>
          <li>
            <t>Label: TBD (value between 1 and 23)</t>
          </li>
          <li>
            <t>Description: Request or convey AS Request Creation Hints</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX], <xref target="as-creation-hints"/></t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-exporter-labels">
        <name>EDHOC Exporter Labels</name>
        <t>IANA is asked to register the following entries in the "EDHOC Exporter Labels" registry <xref target="EDHOC.Exporter.Labels"/> within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group.</t>
        <ul spacing="normal">
          <li>
            <t>Label: 26 (suggested value)</t>
          </li>
          <li>
            <t>Description: Derived N_S challenge for key provisioning for Group OSCORE using the ACE framework <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="use-with-key-groupcomm-profiles"/>]</t>
          </li>
        </ul>
        <t><br/></t>
        <ul spacing="normal">
          <li>
            <t>Label: 27 (suggested value)</t>
          </li>
          <li>
            <t>Description: Derived N_S challenge for key provisioning for CoAP Pub-Sub using the ACE framework <xref target="I-D.ietf-ace-coap-pubsub-profile"/>.</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX, <xref target="use-with-key-groupcomm-profiles"/>]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-edhoc-parameters">
        <name>LAKE Information Registry</name>
        <t>IANA is requested to create a new "LAKE Information" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>, or "Expert Review" per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of the registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: A descriptive name that enables easier reference to this item. These names <bcp14>MUST</bcp14> be unique.  </t>
            <t>
Because a core goal of this document is for the resulting representations to be compact, it is <bcp14>RECOMMENDED</bcp14> that the name be short.  </t>
            <t>
This name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts determine that there is a compelling reason to allow an exception. The name is not used in the CBOR encoding.</t>
          </li>
          <li>
            <t>CBOR label: The value to be used as CBOR abbreviation of the item.  </t>
            <t>
The value <bcp14>MUST</bcp14> be unique. The value can be a positive integer, a negative integer, or a text string. Integer values between -256 and 255 and strings of length 1 are designated as "Standards Action with Expert Review". Integer values from -65536 to -257 and from 256 to 65535 and strings of maximum length 2 are designated as "Specification Required". Integer values greater than 65535 and strings of length greater than 2 are designated as "Expert Review". Integer values less than -65536 are marked as "Private Use".</t>
          </li>
          <li>
            <t>CBOR type: The CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</t>
          </li>
          <li>
            <t>Registry: The registry that values of the item may come from, if one exists.</t>
          </li>
          <li>
            <t>Description: A brief description of the item.</t>
          </li>
          <li>
            <t>Type: The category of the item, i.e., P if prescriptive or NP if non-prescriptive (see <xref target="edhoc-parameters-object"/>).</t>
          </li>
          <li>
            <t>Specification: A pointer to the public specification for the item, if one exists.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the entries in <xref target="_table-cbor-key-edhoc-params"/>. In the "Specification" column, the value for all those entries includes [RFC-XXXX] and <xref target="RFC9528"/>.</t>
      </section>
      <section anchor="iana-edhoc-ta-purposes">
        <name>LAKE Trust Anchor Purposes Registry</name>
        <t>IANA is requested to create a new "LAKE Trust Anchor Purposes" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the descriptive name of the trust anchor purpose, to enable easier reference to the item. These names <bcp14>MUST</bcp14> be unique.</t>
          </li>
          <li>
            <t>CBOR label: This field contains the value used to identify the trust anchor purpose. These values <bcp14>MUST</bcp14> be unique. The value can be an unsigned integer or a negative integer. Different ranges of values use different registration policies:  </t>
            <ul spacing="normal">
              <li>
                <t>Integer values from -24 to 23 are designated as "Standards Action with Expert Review".</t>
              </li>
              <li>
                <t>Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required".</t>
              </li>
              <li>
                <t>Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Description: This field contains a short description of the trust anchor purpose.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the trust anchor purpose.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the entry in <xref target="_table-edhoc-ta-purposes"/>.</t>
      </section>
      <section anchor="iana-edhoc-ta-types">
        <name>LAKE Trust Anchor Types Registry</name>
        <t>IANA is requested to create a new "LAKE Trust Anchor Types" registry within the "Ephemeral Diffie-Hellman Over COSE (EDHOC)" registry group defined in <xref target="RFC9528"/>.</t>
        <t>The registration policy is either "Private Use", "Standards Action with Expert Review", or "Specification Required" per <xref section="4.6" sectionFormat="of" target="RFC8126"/>. "Expert Review" guidelines are provided in <xref target="iana-expert-review"/>.</t>
        <t>All assignments according to "Standards Action with Expert Review" are made on a "Standards Action" basis per <xref section="4.9" sectionFormat="of" target="RFC8126"/>, with Expert Review additionally required per <xref section="4.5" sectionFormat="of" target="RFC8126"/>. The procedure for early IANA allocation of Standards Track code points defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the designated expert(s) to approve the early allocation before registration. In addition, WG chairs are encouraged to consult the expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
        <t>The columns of this registry are:</t>
        <ul spacing="normal">
          <li>
            <t>Name: This field contains the descriptive name of the type of trust anchor, to enable easier reference to the item. These names <bcp14>MUST</bcp14> be unique.</t>
          </li>
          <li>
            <t>CBOR label: This field contains the value used to identify the type of trust anchor. These values <bcp14>MUST</bcp14> be unique. The value can be an unsigned integer or a negative integer. Different ranges of values use different registration policies:  </t>
            <ul spacing="normal">
              <li>
                <t>Integer values from -24 to 23 are designated as "Standards Action with Expert Review".</t>
              </li>
              <li>
                <t>Integer values from -65536 to -25 and from 24 to 65535 are designated as "Specification Required".</t>
              </li>
              <li>
                <t>Integer values smaller than -65536 and greater than 65535 are marked as "Private Use".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Value type: This field contains the CBOR type for the value portion of the label.</t>
          </li>
          <li>
            <t>Description: This field contains a short description of the type of trust anchor.</t>
          </li>
          <li>
            <t>Reference: This field contains a pointer to the public specification for the type of trust anchor.</t>
          </li>
        </ul>
        <t>This registry has been initially populated with the entries in <xref target="_table-edhoc-ta-types"/>.</t>
      </section>
      <section anchor="iana-expert-review">
        <name>Expert Review Instructions</name>
        <t>"Standards Action with Expert Review", "Specification Required", and "Expert Review" are three of the registration policies defined for the IANA registries established in this document. 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>Clarity and correctness of registrations. Experts are expected to check the clarity of purpose and use of the requested entries. Experts need to make sure that the object of registration is clearly defined in the corresponding specification. Entries that do not meet these objectives of clarity and completeness must not be registered.</t>
          </li>
          <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 with Expert Review" range of point assignment. Specifications should exist for "Specification Required" ranges, but early assignment before a specification is available is considered to be permissible. 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. Documents published via Standards Action can also register points outside the Standards Action range. The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7120">
          <front>
            <title>Early IANA Allocation of Standards Track Code Points</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <date month="January" year="2014"/>
            <abstract>
              <t>This memo describes the process for early allocation of code points by IANA from registries for which "Specification Required", "RFC Required", "IETF Review", or "Standards Action" policies apply. This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation. The procedures in this document are intended to apply only to IETF Stream documents.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="100"/>
          <seriesInfo name="RFC" value="7120"/>
          <seriesInfo name="DOI" value="10.17487/RFC7120"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7800">
          <front>
            <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="April" year="2016"/>
            <abstract>
              <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7800"/>
          <seriesInfo name="DOI" value="10.17487/RFC7800"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq". A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation. This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9201">
          <front>
            <title>Additional OAuth Parameters for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for Authentication and Authorization for Constrained Environments (ACE). These are used to express the proof-of-possession (PoP) key the client wishes to use, the PoP key that the authorization server has selected, and the PoP key the resource server uses to authenticate to the client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9201"/>
          <seriesInfo name="DOI" value="10.17487/RFC9201"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="RFC9594">
          <front>
            <title>Key Provisioning for Group Communication Using Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document defines how to use the Authentication and Authorization for Constrained Environments (ACE) framework to distribute keying material and configuration parameters for secure group communication. Candidate group members that act as Clients and are authorized to join a group can do so by interacting with a Key Distribution Center (KDC) acting as the Resource Server, from which they obtain the keying material to communicate with other group members. While defining general message formats as well as the interface and operations available at the KDC, this document supports different approaches and protocols for secure group communication. Therefore, details are delegated to separate application profiles of this document as specialized instances that target a particular group communication approach and define how communications in the group are protected. Compliance requirements for such application profiles are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9594"/>
          <seriesInfo name="DOI" value="10.17487/RFC9594"/>
        </reference>
        <reference anchor="RFC9668">
          <front>
            <title>Using Ephemeral Diffie-Hellman Over COSE (EDHOC) with the Constrained Application Protocol (CoAP) and Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="M. Tiloca" initials="M." surname="Tiloca"/>
            <author fullname="R. Höglund" initials="R." surname="Höglund"/>
            <author fullname="S. Hristozov" initials="S." surname="Hristozov"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC) can be run over the Constrained Application Protocol (CoAP) and used by two peers to establish a Security Context for the security protocol Object Security for Constrained RESTful Environments (OSCORE). This document details this use of the EDHOC protocol by specifying a number of additional and optional mechanisms, including 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="RFC" value="9668"/>
          <seriesInfo name="DOI" value="10.17487/RFC9668"/>
        </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>University of Glasgow</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>IN Groupe</organization>
            </author>
            <author fullname="Lijun Liao" initials="L." surname="Liao">
              <organization>NIO Inc.</organization>
            </author>
            <date day="24" month="September" year="2026"/>
            <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 common certificate
   profiles, and it is extensible.

   Two types of C509 certificates are defined.  One type is an
   invertible CBOR re-encoding of DER-encoded X.509 certificates with
   the signature field copied from the DER encoding.  The other type is
   identical except that the signature is computed over the CBOR
   encoding instead of the DER encoding, thereby avoiding the use of
   ASN.1.  Both types of certificates have the same semantics as X.509
   while providing comparable size reduction.

   This document also specifies CBOR-encoded data structures for
   certification requests and certification request templates, new COSE
   headers, as well as a TLS certificate type and a file format for
   C509.  This document updates RFC 6698 by extending the TLSA selectors
   registry to include C509 certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-21"/>
        </reference>
        <reference anchor="I-D.ietf-core-uri-path-abbrev">
          <front>
            <title>URI Path abbreviation in CoAP</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   Applications built on CoAP face a conflict between the technical need
   for short message sizes and the interoperability requirement of
   following BCP190 and thus using (relatively verbose) well-known URI
   paths.  This document introduces the Uri-Path-Abbrev CoAP option that
   allows expressing well-known URI paths in as little as two bytes.

   Using this option revealed a subtle flaw in RFC7252 that severely
   limited the extension point of critical options.  This document
   updates RFC7252 to rectify that.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-uri-path-abbrev-05"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm-oscore">
          <front>
            <title>Key Management for Group Object Security for Constrained RESTful Environments (Group OSCORE) Using Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="14" month="March" year="2026"/>
            <abstract>
              <t>   This document defines an application profile of the Authentication
   and Authorization for Constrained Environments (ACE) framework, to
   request and provision keying material in group communication
   scenarios that are based on the Constrained Application Protocol
   (CoAP) and are secured with Group Object Security for Constrained
   RESTful Environments (Group OSCORE).  This application profile
   delegates the authentication and authorization of Clients, which join
   an OSCORE group through a Resource Server acting as Group Manager for
   that group.  This application profile leverages protocol-specific
   transport profiles of ACE to achieve communication security, server
   authentication, and proof of possession of a key owned by the Client
   and bound to an OAuth 2.0 access token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-21"/>
        </reference>
        <reference anchor="I-D.ietf-ace-coap-pubsub-profile">
          <front>
            <title>CoAP Publish-Subscribe Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Cigdem Sengul" initials="C." surname="Sengul">
              <organization>Brunel University</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document defines an application profile of the Authentication
   and Authorization for Constrained Environments (ACE) framework, to
   enable secure group communication in the Publish-Subscribe (Pub-Sub)
   architecture for the Constrained Application Protocol (CoAP) [draft-
   ietf-core-coap-pubsub], where Publishers and Subscribers communicate
   through a Broker.  This profile relies on protocol-specific transport
   profiles of ACE to achieve communication security, server
   authentication, and proof of possession of a key owned by the Client
   and bound to an OAuth 2.0 access token.  This document specifies the
   provisioning and enforcement of authorization information for Clients
   to act as Publishers and/or Subscribers, as well as the provisioning
   of keying material and security parameters that Clients use for
   protecting their communications end-to-end through the Broker.

   Note to RFC Editor: Please replace "[draft-ietf-core-coap-pubsub]"
   with the RFC number of that document and delete this paragraph.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-pubsub-profile-05"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc-psk">
          <front>
            <title>LAKE Authenticated with Pre-Shared Keys (PSKs)</title>
            <author fullname="Elsa Lopez-Perez" initials="" surname="Lopez-Perez">
              <organization>Inria</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Rafael Marin-Lopez" initials="R." surname="Marin-Lopez">
              <organization>University of Murcia</organization>
            </author>
            <author fullname="Francisco Lopez-Gomez" initials="F." surname="Lopez-Gomez">
              <organization>University of Murcia</organization>
            </author>
            <date day="5" month="October" year="2026"/>
            <abstract>
              <t>   This document specifies a Pre-Shared Key (PSK) authentication method
   for the Lightweight Authenticated Key Exchange (LAKE) protocol.  The
   PSK method provides mutual authentication, ephemeral key exchange,
   identity protection, and quantum resistance while incurring lower
   computational costs than the public-key authentication methods
   specified for LAKE.  It is suited for systems where nodes share a PSK
   provided out-of-band (external PSK) and enables efficient session
   resumption with less computational overhead when the PSK is provided
   from a previous LAKE session (resumption PSK).  This document details
   the PSK message flow, key derivation changes, message formatting,
   processing, and security considerations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-psk-10"/>
        </reference>
        <reference anchor="COSE.Header.Parameters" target="https://www.iana.org/assignments/cose/cose.xhtml#header-parameters">
          <front>
            <title>COSE Header Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="ACE.Request.Creation.Hints" target="https://www.iana.org/assignments/ace/ace.xhtml#ace-authorization-server-request-creation-hints">
          <front>
            <title>ACE Authorization Server Request Creation Hints</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="ACE.Profiles" target="https://www.iana.org/assignments/ace/ace.xhtml#ace-profiles">
          <front>
            <title>ACE Profiles</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OAuth.Parameters" target="https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OAuth.Parameters.CBOR.Mappings" target="https://www.iana.org/assignments/ace/ace.xhtml#oauth-parameters-cbor-mappings">
          <front>
            <title>OAuth Parameters CBOR Mappings</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="JSON.Web.Token.Claims" target="https://www.iana.org/assignments/jwt/jwt.xhtml#claims">
          <front>
            <title>JSON Web Token Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="CWT.Claims" target="https://www.iana.org/assignments/cwt/cwt.xhtml#claims-registry">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="JWT.Confirmation.Methods" target="https://www.iana.org/assignments/jwt/jwt.xhtml#confirmation-methods">
          <front>
            <title>JWT Confirmation Methods</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="CWT.Confirmation.Methods" target="https://www.iana.org/assignments/cwt/cwt.xhtml#confirmation-methods">
          <front>
            <title>CWT Confirmation Methods</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="EDHOC.External.Authorization.Data" target="https://www.iana.org/assignments/edhoc/edhoc.xhtml#edhoc-ead">
          <front>
            <title>EDHOC External Authorization Data</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="EDHOC.Exporter.Labels" target="https://www.iana.org/assignments/edhoc/edhoc.xhtml#edhoc-exporter-labels">
          <front>
            <title>EDHOC Exporter Labels</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="EDHOC.Authentication.Credential.Types" target="https://www.iana.org/assignments/edhoc/edhoc.xhtml#edhoc-authentication-credential-types">
          <front>
            <title>EDHOC Authentication Credential Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4949">
          <front>
            <title>Internet Security Glossary, Version 2</title>
            <author fullname="R. Shirey" initials="R." surname="Shirey"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This Glossary provides definitions, abbreviations, and explanations of terminology for information system security. The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026). The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; (c) use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="FYI" value="36"/>
          <seriesInfo name="RFC" value="4949"/>
          <seriesInfo name="DOI" value="10.17487/RFC4949"/>
        </reference>
        <reference anchor="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="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <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 obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="10" month="February" year="2026"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) is a web transfer
   protocol for constrained devices and constrained networks.  In a
   number of use cases, constrained devices often naturally operate in
   groups (e.g., in a building automation scenario, all lights in a
   given room may need to be switched on/off as a group).  This document
   specifies the use of CoAP for group communication, including the use
   of UDP/IP multicast as the default underlying data transport.  Both
   unsecured and secured CoAP group communication are specified.
   Security is achieved by use of the Group Object Security for
   Constrained RESTful Environments (Group OSCORE) protocol.  The target
   application area of this specification is any group communication use
   cases that involve resource-constrained devices or networks that
   support CoAP.  This document replaces and obsoletes RFC 7390, while
   it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-18"/>
        </reference>
        <reference anchor="I-D.ietf-ace-workflow-and-params">
          <front>
            <title>Short Distribution Chain (SDC) Workflow and New 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="6" month="July" year="2026"/>
            <abstract>
              <t>   This document updates the Authentication and Authorization for
   Constrained Environments framework (ACE, RFC 9200) as follows. (1) It
   defines the Short Distribution Chain (SDC) workflow that the
   authorization server (AS) can use for uploading an access token to a
   resource server on behalf of the client. (2) For the OAuth 2.0 token
   endpoint, it defines new parameters and encodings and it extends the
   semantics of the "ace_profile" parameter. (3) For the OAuth 2.0
   authz-info endpoint, it defines a new parameter and its encoding. (4)
   It defines how the client and the AS can coordinate on the exchange
   of the client's and resource server's public authentication
   credentials, when those can be transported by value or identified by
   reference; this extends the semantics of the "rs_cnf" parameter for
   the OAuth 2.0 token endpoint, thus updating RFC 9201. (5) It extends
   the error handling at the AS, for which it defines a new error code.
   (6) It deprecates the original payload format of error responses
   conveying an error code, when Concise Binary Object Representation
   (CBOR) is used to encode message payloads.  For those responses, it
   defines a new payload format aligned with RFC 9290, thus updating in
   this respect also the profiles defined in RFC 9202, RFC 9203, and RFC
   9431. (7) It amends two of the requirements on profiles of the
   framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-workflow-and-params-08"/>
        </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="6" month="July" year="2026"/>
            <abstract>
              <t>   Communications with the Constrained Application Protocol (CoAP) can
   be protected end-to-end at the application-layer by using the
   security protocol Object Security for Constrained RESTful
   Environments (OSCORE).  Under some circumstances, two CoAP endpoints
   need to update their OSCORE keying material before communications can
   securely continue, e.g., due to approaching key usage limits.  This
   document defines Key Update for OSCORE (KUDOS), a lightweight key
   update procedure that two CoAP endpoints can use to update their
   OSCORE keying material by establishing a new OSCORE Security Context.
   Accordingly, this document updates the use of the OSCORE flag bits in
   the CoAP OSCORE Option as well as the protection of CoAP response
   messages with OSCORE.  Also, it deprecates the key update procedure
   specified in Appendix B.2 of RFC 8613.  Therefore, this document
   updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-14"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-id-update">
          <front>
            <title>Identifier Update for OSCORE</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="7" month="September" year="2026"/>
            <abstract>
              <t>   Two peers that communicate with the CoAP protocol can use the Object
   Security for Constrained RESTful Environments (OSCORE) protocol to
   protect their message exchanges end-to-end.  To this end, the two
   peers share an OSCORE Security Context and a number of related
   identifiers.  In particular, each of the two peers stores a Sender ID
   that identifies its own Sender Context within the Security Context,
   and a Recipient ID that identifies the Recipient Context associated
   with the other peer within the same Security Context.  These
   identifiers are sent in plaintext within OSCORE-protected messages.
   Hence, they can be used to correlate messages exchanged between peers
   and track those peers, with consequent privacy implications.  This
   document defines an OSCORE ID update procedure that two peers can use
   to update their OSCORE identifiers.  This procedure can be run stand-
   alone or seamlessly integrated in an execution of the Key Update for
   OSCORE (KUDOS) procedure.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-id-update-07"/>
        </reference>
        <reference anchor="I-D.ietf-lake-authz">
          <front>
            <title>Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE (ELA)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>INRIA</organization>
            </author>
            <author fullname="Geovane Fedrecheski" initials="G." surname="Fedrecheski">
              <organization>INRIA</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   Ephemeral Diffie-Hellman Over COSE (EDHOC) is a lightweight
   authenticated key exchange protocol intended for use in constrained
   scenarios.  This document specifies Lightweight Authorization using
   EDHOC (ELA).  The procedure allows authorizing enrollment of new
   devices using the extension point defined in EDHOC.  ELA is
   applicable to zero-touch onboarding of new devices to a constrained
   network leveraging trust anchors installed at manufacture time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authz-08"/>
        </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>
            <date day="2" month="July" year="2026"/>
            <abstract>
              <t>   Enrollment over Secure Transport (EST) is a certificate provisioning
   protocol over HTTPS [RFC7030] or CoAPs [RFC9148].  This document
   specifies how to carry EST over the Constrained Application Protocol
   (CoAP) protected with Object Security for Constrained RESTful
   Environments (OSCORE).  The specification builds on the EST-coaps
   [RFC9148] specification, but uses OSCORE and Ephemeral Diffie-Hellman
   over COSE (EDHOC) instead of DTLS.  The specification also leverages
   the certificate structures defined in
   [I-D.ietf-cose-cbor-encoded-cert], which can be optionally used
   alongside X.509 certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-est-oscore-11"/>
        </reference>
        <reference anchor="I-D.serafin-lake-ta-hint">
          <front>
            <title>Trust Anchor Hints in Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="Marek Serafin" initials="M." surname="Serafin">
              <organization>ASSA ABLOY</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   This document defines a format for transport of hints about Trust
   Anchors of trusted third parties when using the lightweight
   authenticated key exchange protocol Ephemeral Diffie-Hellman Over
   COSE (EDHOC).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-serafin-lake-ta-hint-00"/>
        </reference>
        <reference anchor="I-D.ietf-lake-app-profiles">
          <front>
            <title>Coordinating the Use of Application Profiles for Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <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>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The lightweight authenticated key exchange protocol Ephemeral Diffie-
   Hellman Over COSE (EDHOC) requires certain parameters to be agreed
   out-of-band, in order to ensure its successful completion.  To this
   end, application profiles specify the intended use of EDHOC to allow
   for the relevant processing and verifications to be made.  In order
   to ensure the applicability of such parameters and information beyond
   transport- or setup-specific scenarios, this document defines a
   canonical, CBOR-based representation that can be used to describe,
   distribute, and store EDHOC application profiles.  Furthermore, in
   order to facilitate interoperability between EDHOC implementations
   and support EDHOC extensibility for additional integrations, this
   document defines a number of means to coordinate the use of EDHOC
   application profiles.  Finally, this document defines a set of well-
   known EDHOC application profiles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-app-profiles-05"/>
        </reference>
        <reference anchor="I-D.ietf-ace-group-oscore-profile">
          <front>
            <title>The Group Object Security for Constrained RESTful Environments (Group OSCORE) Profile of 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="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  The
   profile uses Group Object Security for Constrained RESTful
   Environments (Group OSCORE) to provide communication security between
   a client and one or multiple resource servers that are members of an
   OSCORE group.  The profile securely binds an OAuth 2.0 access token
   to the public key of the client associated with the private key used
   by that client in the OSCORE group.  The profile uses Group OSCORE to
   achieve server authentication and proof of possession of the client's
   private key.  Also, it provides proof of the client's membership to
   the OSCORE group by binding the access token to information that
   pertains to the Group OSCORE Security Context, thus allowing the
   resource server(s) to verify the client's membership upon receiving
   the access token.  Effectively, the profile enables fine-grained
   access control paired with secure group communication, in accordance
   with the Zero Trust principles.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-group-oscore-profile-07"/>
        </reference>
        <reference anchor="I-D.ietf-lake-authkem-edhoc">
          <front>
            <title>KEM-based Authentication for EDHOC</title>
            <author fullname="Lidia Pocero Fraile" initials="L. P." surname="Fraile">
              <organization>ISI, R.C. ATHENA</organization>
            </author>
            <author fullname="Christos Koulamas" initials="C." surname="Koulamas">
              <organization>ISI, R.C. ATHENA</organization>
            </author>
            <author fullname="Apostolos Fournaris" initials="A." surname="Fournaris">
              <organization>ISI, R.C. ATHENA</organization>
            </author>
            <author fullname="Evangelos Haleplidis" initials="E." surname="Haleplidis">
              <organization>ISI, R.C. ATHENA</organization>
            </author>
            <date day="28" month="September" year="2026"/>
            <abstract>
              <t>   This document specifies extensions to the Lightweight Authenticated
   Key Exchange (LAKE) protocol, formerly known as Ephemeral Diffie-
   Hellman over COSE (EDHOC), to provide resistance against quantum
   computer adversaries by incorporating Post-Quantum Cryptography (PQC)
   Key Encapsulation Mechanisms (KEMs) for both key exchange and
   authentication.  It defines a new signature-free KEM-based
   authentication method in which both parties authenticate using KEMs,
   enabling quantum-resistant authentication without relying on digital
   signatures when PQC KEMs, such as the NIST-standardized ML-KEM, are
   used.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-authkem-edhoc-01"/>
        </reference>
        <reference anchor="I-D.tiloca-core-oscore-piv-enc">
          <front>
            <title>Stand-in Key Identifier and Encrypted Partial IV in the Constrained Application Protocol (CoAP) OSCORE Option</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The security protocol Object Security for Constrained RESTful
   Environments (OSCORE) provides end-to-end protection of messages
   exchanged with the Constrained Application Protocol (CoAP).  Messages
   protected with OSCORE include a CoAP OSCORE Option, where the
   "Partial IV" field specifies the sequence number value used by the
   message sender and the "kid" field specifies the identifier of the
   message sender.  In order to reduce the information exposed on the
   wire that can be used for fingerprinting traffic and for tracking
   endpoints, this document defines a lightweight add-on method that
   obfuscates certain fields of the OSCORE Option, by encrypting the
   "Partial IV" field and overwriting the "kid" field with a stand-in
   identifier.  Therefore, it updates RFC 8613.  With minor adaptations,
   the defined method is applicable also to the security protocol Group
   Object Security for Constrained RESTful Environments (Group OSCORE)
   that protects group communication for CoAP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-piv-enc-03"/>
        </reference>
      </references>
    </references>
    <?line 1729?>

<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 any optimization.</t>
        </li>
        <li>
          <t><xref target="example-with-optimization"/> makes use of the optimizations defined in <xref target="RFC9668"/>, hence reducing the round trips of the interactions between C and AS as well as between C and RS.</t>
        </li>
        <li>
          <t><xref target="example-non-sequential-workflow"/> makes use of the EAD items Request Creation Hints (see <xref target="as-creation-hints"/>) and Credential By Value (see <xref target="auth-cred-by-value"/>), with the former allowing C to receive AS Request Creation Hints during a LAKE session. This is useful if C is not able to determine in advance the appropriate AS to contact.</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 resource servers by the respective resource owners, as well as the registrations of clients authorized to request access tokens for accessing protected resources at those resource servers.</t>
      <ul spacing="normal">
        <li>
          <t>AS knows the authentication credential AUTH_CRED_C of C.</t>
        </li>
        <li>
          <t>C 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 the case that 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 C as defined in <xref target="I-D.ietf-ace-workflow-and-params"/>).</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 C requests an access token for RS for the first time when considering the pair (AUTH_CRED_C, AUTH_CRED_RS).</t>
      <ul spacing="normal">
        <li>
          <t>In the access token response from AS to C, 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 circumstance mentioned above, AUTH_CRED_C might rather be identified 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 circumstance, it is otherwise possible to identify both AUTH_CRED_C and AUTH_CRED_RS by reference, when performing the ACE access control workflow as well as later on when C and RS run LAKE.</t>
      <section anchor="example-without-optimization">
        <name>Workflow without Optimizations</name>
        <t>The example below shows a simple interaction between C and RS: C and RS run LAKE wherein C uploads the access token to RS, after which C accesses a protected resource at RS.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="2960" width="576" viewBox="0 0 576 2960" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,800" fill="none" stroke="black"/>
              <path d="M 40,896 L 40,1248" fill="none" stroke="black"/>
              <path d="M 40,1344 L 40,1504" fill="none" stroke="black"/>
              <path d="M 40,1648 L 40,1664" fill="none" stroke="black"/>
              <path d="M 40,1728 L 40,1744" fill="none" stroke="black"/>
              <path d="M 40,1888 L 40,2944" fill="none" stroke="black"/>
              <path d="M 376,48 L 376,800" fill="none" stroke="black"/>
              <path d="M 376,896 L 376,952" fill="none" stroke="black"/>
              <path d="M 376,968 L 376,1016" fill="none" stroke="black"/>
              <path d="M 376,1032 L 376,1128" fill="none" stroke="black"/>
              <path d="M 376,1144 L 376,1248" fill="none" stroke="black"/>
              <path d="M 376,1344 L 376,1416" fill="none" stroke="black"/>
              <path d="M 376,1432 L 376,1480" fill="none" stroke="black"/>
              <path d="M 376,1648 L 376,1664" fill="none" stroke="black"/>
              <path d="M 376,1728 L 376,1744" fill="none" stroke="black"/>
              <path d="M 376,1888 L 376,2472" fill="none" stroke="black"/>
              <path d="M 376,2488 L 376,2536" fill="none" stroke="black"/>
              <path d="M 376,2552 L 376,2648" fill="none" stroke="black"/>
              <path d="M 376,2664 L 376,2840" fill="none" stroke="black"/>
              <path d="M 376,2856 L 376,2920" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,800" fill="none" stroke="black"/>
              <path d="M 568,896 L 568,1248" fill="none" stroke="black"/>
              <path d="M 568,1344 L 568,1504" fill="none" stroke="black"/>
              <path d="M 568,1648 L 568,1664" fill="none" stroke="black"/>
              <path d="M 568,1728 L 568,1744" fill="none" stroke="black"/>
              <path d="M 568,1888 L 568,2944" fill="none" stroke="black"/>
              <path d="M 40,80 L 368,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 376,144" fill="none" stroke="black"/>
              <path d="M 40,240 L 368,240" fill="none" stroke="black"/>
              <path d="M 40,352 L 368,352" fill="none" stroke="black"/>
              <path d="M 48,464 L 376,464" fill="none" stroke="black"/>
              <path d="M 40,960 L 560,960" fill="none" stroke="black"/>
              <path d="M 48,1024 L 568,1024" fill="none" stroke="black"/>
              <path d="M 40,1136 L 560,1136" fill="none" stroke="black"/>
              <path d="M 40,1424 L 560,1424" fill="none" stroke="black"/>
              <path d="M 48,1488 L 568,1488" fill="none" stroke="black"/>
              <path d="M 40,1952 L 368,1952" fill="none" stroke="black"/>
              <path d="M 48,2064 L 376,2064" fill="none" stroke="black"/>
              <path d="M 40,2480 L 560,2480" fill="none" stroke="black"/>
              <path d="M 48,2544 L 568,2544" fill="none" stroke="black"/>
              <path d="M 40,2656 L 560,2656" fill="none" stroke="black"/>
              <path d="M 40,2848 L 560,2848" fill="none" stroke="black"/>
              <path d="M 48,2928 L 568,2928" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,2848 556,2842.4 556,2853.6" fill="black" transform="rotate(0,560,2848)"/>
              <polygon class="arrowhead" points="568,2656 556,2650.4 556,2661.6" fill="black" transform="rotate(0,560,2656)"/>
              <polygon class="arrowhead" points="568,2480 556,2474.4 556,2485.6" fill="black" transform="rotate(0,560,2480)"/>
              <polygon class="arrowhead" points="568,1424 556,1418.4 556,1429.6" fill="black" transform="rotate(0,560,1424)"/>
              <polygon class="arrowhead" points="568,1136 556,1130.4 556,1141.6" fill="black" transform="rotate(0,560,1136)"/>
              <polygon class="arrowhead" points="568,960 556,954.4 556,965.6" fill="black" transform="rotate(0,560,960)"/>
              <polygon class="arrowhead" points="376,1952 364,1946.4 364,1957.6" fill="black" transform="rotate(0,368,1952)"/>
              <polygon class="arrowhead" points="376,352 364,346.4 364,357.6" fill="black" transform="rotate(0,368,352)"/>
              <polygon class="arrowhead" points="376,240 364,234.4 364,245.6" fill="black" transform="rotate(0,368,240)"/>
              <polygon class="arrowhead" points="376,80 364,74.4 364,85.6" fill="black" transform="rotate(0,368,80)"/>
              <polygon class="arrowhead" points="56,2928 44,2922.4 44,2933.6" fill="black" transform="rotate(180,48,2928)"/>
              <polygon class="arrowhead" points="56,2544 44,2538.4 44,2549.6" fill="black" transform="rotate(180,48,2544)"/>
              <polygon class="arrowhead" points="56,2064 44,2058.4 44,2069.6" fill="black" transform="rotate(180,48,2064)"/>
              <polygon class="arrowhead" points="56,1488 44,1482.4 44,1493.6" fill="black" transform="rotate(180,48,1488)"/>
              <polygon class="arrowhead" points="56,1024 44,1018.4 44,1029.6" fill="black" transform="rotate(180,48,1024)"/>
              <polygon class="arrowhead" points="56,464 44,458.4 44,469.6" fill="black" transform="rotate(180,48,464)"/>
              <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="372" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="76" y="68">LAKE</text>
                <text x="136" y="68">message_1</text>
                <text x="188" y="68">to</text>
                <text x="276" y="68">/.well-known/edhoc</text>
                <text x="16" y="84">M01</text>
                <text x="76" y="132">LAKE</text>
                <text x="136" y="132">message_2</text>
                <text x="16" y="148">M02</text>
                <text x="96" y="164">ID_CRED_R</text>
                <text x="180" y="164">identifies</text>
                <text x="108" y="180">CRED_R</text>
                <text x="144" y="180">=</text>
                <text x="204" y="180">AUTH_CRED_AS</text>
                <text x="268" y="180">by</text>
                <text x="320" y="180">reference</text>
                <text x="76" y="228">LAKE</text>
                <text x="136" y="228">message_3</text>
                <text x="188" y="228">to</text>
                <text x="276" y="228">/.well-known/edhoc</text>
                <text x="16" y="244">M03</text>
                <text x="96" y="260">ID_CRED_I</text>
                <text x="180" y="260">identifies</text>
                <text x="108" y="276">CRED_I</text>
                <text x="144" y="276">=</text>
                <text x="200" y="276">AUTH_CRED_C</text>
                <text x="260" y="276">by</text>
                <text x="312" y="276">reference</text>
                <text x="84" y="324">Access</text>
                <text x="136" y="324">token</text>
                <text x="192" y="324">request</text>
                <text x="236" y="324">to</text>
                <text x="276" y="324">/token</text>
                <text x="128" y="340">(OSCORE-protected</text>
                <text x="236" y="340">message)</text>
                <text x="16" y="356">M04</text>
                <text x="96" y="372">"req_cnf"</text>
                <text x="180" y="372">identifies</text>
                <text x="128" y="388">AUTH_CRED_C</text>
                <text x="188" y="388">by</text>
                <text x="240" y="388">reference</text>
                <text x="84" y="436">Access</text>
                <text x="136" y="436">token</text>
                <text x="196" y="436">response</text>
                <text x="128" y="452">(OSCORE-protected</text>
                <text x="236" y="452">message)</text>
                <text x="16" y="468">M05</text>
                <text x="92" y="484">"rs_cnf"</text>
                <text x="168" y="484">specifies</text>
                <text x="132" y="500">AUTH_CRED_RS</text>
                <text x="196" y="500">by</text>
                <text x="232" y="500">value</text>
                <text x="112" y="532">"ace_profile"</text>
                <text x="208" y="532">specifies</text>
                <text x="264" y="532">the</text>
                <text x="72" y="548">ACE</text>
                <text x="120" y="548">profile</text>
                <text x="228" y="548">"coap_lake_oscore"</text>
                <text x="104" y="580">"lake_info"</text>
                <text x="196" y="580">specifies:</text>
                <text x="88" y="596">{</text>
                <text x="152" y="612">e'session_id'</text>
                <text x="216" y="612">:</text>
                <text x="252" y="612">h'01',</text>
                <text x="164" y="628">e'cipher_suites'</text>
                <text x="240" y="628">:</text>
                <text x="260" y="628">2,</text>
                <text x="140" y="644">e'methods'</text>
                <text x="192" y="644">:</text>
                <text x="212" y="644">3,</text>
                <text x="144" y="660">e'uri_path'</text>
                <text x="200" y="660">:</text>
                <text x="240" y="660">"/lake"</text>
                <text x="88" y="676">}</text>
                <text x="68" y="708">In</text>
                <text x="96" y="708">the</text>
                <text x="140" y="708">access</text>
                <text x="196" y="708">token:</text>
                <text x="64" y="724">-</text>
                <text x="88" y="724">the</text>
                <text x="128" y="724">"cnf"</text>
                <text x="176" y="724">claim</text>
                <text x="240" y="724">specifies</text>
                <text x="120" y="740">AUTH_CRED_C</text>
                <text x="180" y="740">by</text>
                <text x="216" y="740">value</text>
                <text x="64" y="756">-</text>
                <text x="88" y="756">the</text>
                <text x="152" y="756">"lake_info"</text>
                <text x="224" y="756">claim</text>
                <text x="112" y="772">specifies</text>
                <text x="168" y="772">the</text>
                <text x="204" y="772">same</text>
                <text x="236" y="772">as</text>
                <text x="120" y="788">"lake_info"</text>
                <text x="192" y="788">above</text>
                <text x="76" y="836">Possibly</text>
                <text x="136" y="836">after</text>
                <text x="184" y="836">chain</text>
                <text x="264" y="836">verification,</text>
                <text x="328" y="836">C</text>
                <text x="356" y="836">adds</text>
                <text x="428" y="836">AUTH_CRED_RS</text>
                <text x="52" y="852">to</text>
                <text x="80" y="852">the</text>
                <text x="112" y="852">set</text>
                <text x="140" y="852">of</text>
                <text x="168" y="852">its</text>
                <text x="216" y="852">trusted</text>
                <text x="268" y="852">peer</text>
                <text x="348" y="852">authentication</text>
                <text x="460" y="852">credentials,</text>
                <text x="72" y="868">relying</text>
                <text x="116" y="868">on</text>
                <text x="140" y="868">AS</text>
                <text x="164" y="868">as</text>
                <text x="208" y="868">trusted</text>
                <text x="280" y="868">provider.</text>
                <text x="76" y="932">LAKE</text>
                <text x="136" y="932">message_1</text>
                <text x="188" y="932">to</text>
                <text x="224" y="932">/lake</text>
                <text x="72" y="948">(no</text>
                <text x="116" y="948">access</text>
                <text x="176" y="948">control</text>
                <text x="220" y="948">is</text>
                <text x="272" y="948">enforced)</text>
                <text x="16" y="964">M06</text>
                <text x="76" y="1012">LAKE</text>
                <text x="136" y="1012">message_2</text>
                <text x="16" y="1028">M07</text>
                <text x="96" y="1044">ID_CRED_R</text>
                <text x="180" y="1044">identifies</text>
                <text x="108" y="1060">CRED_R</text>
                <text x="144" y="1060">=</text>
                <text x="204" y="1060">AUTH_CRED_RS</text>
                <text x="268" y="1060">by</text>
                <text x="320" y="1060">reference</text>
                <text x="76" y="1108">LAKE</text>
                <text x="136" y="1108">message_3</text>
                <text x="188" y="1108">to</text>
                <text x="224" y="1108">/lake</text>
                <text x="72" y="1124">(no</text>
                <text x="116" y="1124">access</text>
                <text x="176" y="1124">control</text>
                <text x="220" y="1124">is</text>
                <text x="272" y="1124">enforced)</text>
                <text x="16" y="1140">M08</text>
                <text x="80" y="1156">EAD_3</text>
                <text x="144" y="1156">contains:</text>
                <text x="64" y="1172">-</text>
                <text x="88" y="1172">EAD</text>
                <text x="124" y="1172">item</text>
                <text x="184" y="1172">ACE-OAuth</text>
                <text x="252" y="1172">Access</text>
                <text x="304" y="1172">Token</text>
                <text x="120" y="1188">(access</text>
                <text x="180" y="1188">token)</text>
                <text x="96" y="1220">ID_CRED_I</text>
                <text x="180" y="1220">identifies</text>
                <text x="108" y="1236">CRED_I</text>
                <text x="144" y="1236">=</text>
                <text x="200" y="1236">AUTH_CRED_C</text>
                <text x="260" y="1236">by</text>
                <text x="312" y="1236">reference</text>
                <text x="76" y="1284">Possibly</text>
                <text x="136" y="1284">after</text>
                <text x="184" y="1284">chain</text>
                <text x="264" y="1284">verification,</text>
                <text x="332" y="1284">RS</text>
                <text x="364" y="1284">adds</text>
                <text x="432" y="1284">AUTH_CRED_C</text>
                <text x="52" y="1300">to</text>
                <text x="80" y="1300">the</text>
                <text x="112" y="1300">set</text>
                <text x="140" y="1300">of</text>
                <text x="168" y="1300">its</text>
                <text x="216" y="1300">trusted</text>
                <text x="268" y="1300">peer</text>
                <text x="348" y="1300">authentication</text>
                <text x="460" y="1300">credentials,</text>
                <text x="72" y="1316">relying</text>
                <text x="116" y="1316">on</text>
                <text x="140" y="1316">AS</text>
                <text x="164" y="1316">as</text>
                <text x="208" y="1316">trusted</text>
                <text x="280" y="1316">provider.</text>
                <text x="84" y="1380">Access</text>
                <text x="124" y="1380">to</text>
                <text x="176" y="1380">protected</text>
                <text x="252" y="1380">resource</text>
                <text x="128" y="1396">(OSCORE-protected</text>
                <text x="236" y="1396">message)</text>
                <text x="88" y="1412">(access</text>
                <text x="152" y="1412">control</text>
                <text x="196" y="1412">is</text>
                <text x="248" y="1412">enforced)</text>
                <text x="16" y="1428">M09</text>
                <text x="92" y="1460">Response</text>
                <text x="128" y="1476">(OSCORE-protected</text>
                <text x="236" y="1476">message)</text>
                <text x="16" y="1492">M10</text>
                <text x="376" y="1508">|</text>
                <text x="64" y="1540">Later</text>
                <text x="104" y="1540">on,</text>
                <text x="136" y="1540">the</text>
                <text x="180" y="1540">access</text>
                <text x="232" y="1540">token</text>
                <text x="288" y="1540">expires</text>
                <text x="336" y="1540">...</text>
                <text x="56" y="1572">-</text>
                <text x="72" y="1572">C</text>
                <text x="96" y="1572">and</text>
                <text x="124" y="1572">RS</text>
                <text x="164" y="1572">delete</text>
                <text x="216" y="1572">their</text>
                <text x="268" y="1572">OSCORE</text>
                <text x="332" y="1572">Security</text>
                <text x="400" y="1572">Context</text>
                <text x="448" y="1572">and</text>
                <text x="488" y="1572">purge</text>
                <text x="528" y="1572">the</text>
                <text x="84" y="1588">LAKE</text>
                <text x="136" y="1588">session</text>
                <text x="188" y="1588">used</text>
                <text x="220" y="1588">to</text>
                <text x="260" y="1588">derive</text>
                <text x="304" y="1588">it.</text>
                <text x="56" y="1604">-</text>
                <text x="76" y="1604">RS</text>
                <text x="120" y="1604">retains</text>
                <text x="200" y="1604">AUTH_CRED_C</text>
                <text x="260" y="1604">as</text>
                <text x="296" y="1604">still</text>
                <text x="348" y="1604">valid,</text>
                <text x="392" y="1604">and</text>
                <text x="420" y="1604">AS</text>
                <text x="456" y="1604">knows</text>
                <text x="504" y="1604">about</text>
                <text x="544" y="1604">it.</text>
                <text x="56" y="1620">-</text>
                <text x="72" y="1620">C</text>
                <text x="112" y="1620">retains</text>
                <text x="196" y="1620">AUTH_CRED_RS</text>
                <text x="260" y="1620">as</text>
                <text x="296" y="1620">still</text>
                <text x="348" y="1620">valid,</text>
                <text x="392" y="1620">and</text>
                <text x="420" y="1620">AS</text>
                <text x="456" y="1620">knows</text>
                <text x="504" y="1620">about</text>
                <text x="544" y="1620">it.</text>
                <text x="60" y="1700">Time</text>
                <text x="108" y="1700">passes</text>
                <text x="152" y="1700">...</text>
                <text x="48" y="1780">C</text>
                <text x="76" y="1780">asks</text>
                <text x="112" y="1780">for</text>
                <text x="136" y="1780">a</text>
                <text x="160" y="1780">new</text>
                <text x="204" y="1780">access</text>
                <text x="260" y="1780">token;</text>
                <text x="304" y="1780">now</text>
                <text x="336" y="1780">all</text>
                <text x="368" y="1780">the</text>
                <text x="444" y="1780">authentication</text>
                <text x="88" y="1796">credentials</text>
                <text x="152" y="1796">can</text>
                <text x="180" y="1796">be</text>
                <text x="236" y="1796">identified</text>
                <text x="292" y="1796">by</text>
                <text x="348" y="1796">reference.</text>
                <text x="56" y="1828">The</text>
                <text x="92" y="1828">cost</text>
                <text x="136" y="1828">falls</text>
                <text x="172" y="1828">on</text>
                <text x="200" y="1828">AS,</text>
                <text x="240" y="1828">which</text>
                <text x="284" y="1828">must</text>
                <text x="340" y="1828">remember</text>
                <text x="396" y="1828">that</text>
                <text x="428" y="1828">at</text>
                <text x="464" y="1828">least</text>
                <text x="56" y="1844">one</text>
                <text x="100" y="1844">access</text>
                <text x="152" y="1844">token</text>
                <text x="192" y="1844">has</text>
                <text x="228" y="1844">been</text>
                <text x="276" y="1844">issued</text>
                <text x="320" y="1844">for</text>
                <text x="352" y="1844">the</text>
                <text x="388" y="1844">pair</text>
                <text x="424" y="1844">(C,</text>
                <text x="456" y="1844">RS)</text>
                <text x="56" y="1860">and</text>
                <text x="120" y="1860">considering</text>
                <text x="184" y="1860">the</text>
                <text x="220" y="1860">pair</text>
                <text x="296" y="1860">(AUTH_CRED_C,</text>
                <text x="412" y="1860">AUTH_CRED_RS).</text>
                <text x="84" y="1924">Access</text>
                <text x="136" y="1924">token</text>
                <text x="192" y="1924">request</text>
                <text x="236" y="1924">to</text>
                <text x="276" y="1924">/token</text>
                <text x="128" y="1940">(OSCORE-protected</text>
                <text x="236" y="1940">message)</text>
                <text x="16" y="1956">M11</text>
                <text x="96" y="1972">"req_cnf"</text>
                <text x="180" y="1972">identifies</text>
                <text x="108" y="1988">CRED_I</text>
                <text x="144" y="1988">=</text>
                <text x="200" y="1988">AUTH_CRED_C</text>
                <text x="260" y="1988">by</text>
                <text x="312" y="1988">reference</text>
                <text x="84" y="2036">Access</text>
                <text x="136" y="2036">token</text>
                <text x="196" y="2036">response</text>
                <text x="128" y="2052">(OSCORE-protected</text>
                <text x="236" y="2052">message)</text>
                <text x="16" y="2068">M12</text>
                <text x="92" y="2084">"rs_cnf"</text>
                <text x="172" y="2084">identifies</text>
                <text x="132" y="2100">AUTH_CRED_RS</text>
                <text x="196" y="2100">by</text>
                <text x="248" y="2100">reference</text>
                <text x="112" y="2132">"ace_profile"</text>
                <text x="208" y="2132">specifies</text>
                <text x="264" y="2132">the</text>
                <text x="72" y="2148">ACE</text>
                <text x="120" y="2148">profile</text>
                <text x="228" y="2148">"coap_lake_oscore"</text>
                <text x="104" y="2180">"lake_info"</text>
                <text x="196" y="2180">specifies:</text>
                <text x="88" y="2196">{</text>
                <text x="152" y="2212">e'session_id'</text>
                <text x="216" y="2212">:</text>
                <text x="252" y="2212">h'05',</text>
                <text x="164" y="2228">e'cipher_suites'</text>
                <text x="240" y="2228">:</text>
                <text x="260" y="2228">2,</text>
                <text x="140" y="2244">e'methods'</text>
                <text x="192" y="2244">:</text>
                <text x="212" y="2244">3,</text>
                <text x="144" y="2260">e'uri_path'</text>
                <text x="200" y="2260">:</text>
                <text x="240" y="2260">"/lake"</text>
                <text x="88" y="2276">}</text>
                <text x="68" y="2308">In</text>
                <text x="96" y="2308">the</text>
                <text x="140" y="2308">access</text>
                <text x="196" y="2308">token:</text>
                <text x="64" y="2324">-</text>
                <text x="88" y="2324">the</text>
                <text x="128" y="2324">"cnf"</text>
                <text x="176" y="2324">claim</text>
                <text x="244" y="2324">identifies</text>
                <text x="120" y="2340">AUTH_CRED_C</text>
                <text x="180" y="2340">by</text>
                <text x="232" y="2340">reference</text>
                <text x="64" y="2356">-</text>
                <text x="88" y="2356">the</text>
                <text x="152" y="2356">"lake_info"</text>
                <text x="224" y="2356">claim</text>
                <text x="112" y="2372">specifies</text>
                <text x="168" y="2372">the</text>
                <text x="204" y="2372">same</text>
                <text x="236" y="2372">as</text>
                <text x="120" y="2388">"lake_info"</text>
                <text x="192" y="2388">above</text>
                <text x="76" y="2452">LAKE</text>
                <text x="136" y="2452">message_1</text>
                <text x="188" y="2452">to</text>
                <text x="224" y="2452">/lake</text>
                <text x="72" y="2468">(no</text>
                <text x="116" y="2468">access</text>
                <text x="176" y="2468">control</text>
                <text x="220" y="2468">is</text>
                <text x="272" y="2468">enforced)</text>
                <text x="16" y="2484">M13</text>
                <text x="76" y="2532">LAKE</text>
                <text x="136" y="2532">message_2</text>
                <text x="16" y="2548">M14</text>
                <text x="96" y="2564">ID_CRED_R</text>
                <text x="180" y="2564">identifies</text>
                <text x="108" y="2580">CRED_R</text>
                <text x="144" y="2580">=</text>
                <text x="204" y="2580">AUTH_CRED_RS</text>
                <text x="268" y="2580">by</text>
                <text x="320" y="2580">reference</text>
                <text x="76" y="2628">LAKE</text>
                <text x="136" y="2628">message_3</text>
                <text x="188" y="2628">to</text>
                <text x="224" y="2628">/lake</text>
                <text x="72" y="2644">(no</text>
                <text x="116" y="2644">access</text>
                <text x="176" y="2644">control</text>
                <text x="220" y="2644">is</text>
                <text x="272" y="2644">enforced)</text>
                <text x="16" y="2660">M15</text>
                <text x="80" y="2676">EAD_3</text>
                <text x="144" y="2676">contains:</text>
                <text x="64" y="2692">-</text>
                <text x="88" y="2692">EAD</text>
                <text x="124" y="2692">item</text>
                <text x="184" y="2692">ACE-OAuth</text>
                <text x="252" y="2692">Access</text>
                <text x="304" y="2692">Token</text>
                <text x="120" y="2708">(access</text>
                <text x="180" y="2708">token)</text>
                <text x="96" y="2740">ID_CRED_I</text>
                <text x="180" y="2740">identifies</text>
                <text x="108" y="2756">CRED_I</text>
                <text x="144" y="2756">=</text>
                <text x="200" y="2756">AUTH_CRED_C</text>
                <text x="260" y="2756">by</text>
                <text x="312" y="2756">reference</text>
                <text x="84" y="2804">Access</text>
                <text x="124" y="2804">to</text>
                <text x="176" y="2804">protected</text>
                <text x="252" y="2804">resource</text>
                <text x="300" y="2804">/r</text>
                <text x="128" y="2820">(OSCORE-protected</text>
                <text x="236" y="2820">message)</text>
                <text x="88" y="2836">(access</text>
                <text x="152" y="2836">control</text>
                <text x="196" y="2836">is</text>
                <text x="248" y="2836">enforced)</text>
                <text x="16" y="2852">M16</text>
                <text x="92" y="2900">Response</text>
                <text x="128" y="2916">(OSCORE-protected</text>
                <text x="236" y="2916">message)</text>
                <text x="16" y="2932">M17</text>
                <text x="376" y="2948">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                        AS                      RS
    |                                         |                       |
    |  LAKE message_1 to /.well-known/edhoc   |                       |
M01 +---------------------------------------->|                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_2                         |                       |
M02 |<----------------------------------------+                       |
    |  ID_CRED_R identifies                   |                       |
    |     CRED_R = AUTH_CRED_AS by reference  |                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_3 to /.well-known/edhoc   |                       |
M03 +---------------------------------------->|                       |
    |  ID_CRED_I identifies                   |                       |
    |     CRED_I = AUTH_CRED_C by reference   |                       |
    |                                         |                       |
    |                                         |                       |
    |  Access token request to /token         |                       |
    |  (OSCORE-protected message)             |                       |
M04 +---------------------------------------->|                       |
    |  "req_cnf" identifies                   |                       |
    |     AUTH_CRED_C by reference            |                       |
    |                                         |                       |
    |                                         |                       |
    |  Access token response                  |                       |
    |  (OSCORE-protected message)             |                       |
M05 |<----------------------------------------+                       |
    |  "rs_cnf" specifies                     |                       |
    |     AUTH_CRED_RS by value               |                       |
    |                                         |                       |
    |  "ace_profile" specifies the            |                       |
    |  ACE profile "coap_lake_oscore"         |                       |
    |                                         |                       |
    |  "lake_info" specifies:                 |                       |
    |     {                                   |                       |
    |       e'session_id' : h'01',            |                       |
    |       e'cipher_suites' : 2,             |                       |
    |       e'methods' : 3,                   |                       |
    |       e'uri_path' : "/lake"             |                       |
    |     }                                   |                       |
    |                                         |                       |
    |  In the access token:                   |                       |
    |  - the "cnf" claim specifies            |                       |
    |    AUTH_CRED_C by value                 |                       |
    |  - the "lake_info" claim                |                       |
    |    specifies the same as                |                       |
    |    "lake_info" above                    |                       |
    |                                         |                       |

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

    |                                         |                       |
    |                                         |                       |
    |  LAKE message_1 to /lake                |                       |
    |  (no access control is enforced)        |                       |
M06 +---------------------------------------------------------------->|
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_2                         |                       |
M07 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies                   |                       |
    |     CRED_R = AUTH_CRED_RS by reference  |                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_3 to /lake                |                       |
    |  (no access control is enforced)        |                       |
M08 +---------------------------------------------------------------->|
    |  EAD_3 contains:                        |                       |
    |  - EAD item ACE-OAuth Access Token      |                       |
    |      (access token)                     |                       |
    |                                         |                       |
    |  ID_CRED_I identifies                   |                       |
    |     CRED_I = AUTH_CRED_C by reference   |                       |
    |                                         |                       |

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

    |                                         |                       |
    |                                         |                       |
    |  Access to protected resource           |                       |
    |  (OSCORE-protected message)             |                       |
    |  (access control is enforced)           |                       |
M09 +---------------------------------------------------------------->|
    |                                         |                       |
    |  Response                               |                       |
    |  (OSCORE-protected message)             |                       |
M10 |<----------------------------------------------------------------+
    |                                         |                       |

     Later on, the access token expires ...

      - C and RS delete their OSCORE Security Context and purge the
        LAKE session used to derive it.
      - RS retains AUTH_CRED_C as still valid, and AS knows about it.
      - C retains AUTH_CRED_RS as still valid, and AS knows about it.

    |                                         |                       |
    |                                         |                       |

     Time passes ...

    |                                         |                       |
    |                                         |                       |

     C asks for a new access token; now all the authentication
     credentials can be identified by reference.

     The cost falls on AS, which must remember that at least
     one access token has been issued for the pair (C, RS)
     and considering the pair (AUTH_CRED_C, AUTH_CRED_RS).

    |                                         |                       |
    |                                         |                       |
    |  Access token request to /token         |                       |
    |  (OSCORE-protected message)             |                       |
M11 +---------------------------------------->|                       |
    |  "req_cnf" identifies                   |                       |
    |     CRED_I = AUTH_CRED_C by reference   |                       |
    |                                         |                       |
    |                                         |                       |
    |  Access token response                  |                       |
    |  (OSCORE-protected message)             |                       |
M12 |<----------------------------------------+                       |
    |  "rs_cnf" identifies                    |                       |
    |     AUTH_CRED_RS by reference           |                       |
    |                                         |                       |
    |  "ace_profile" specifies the            |                       |
    |  ACE profile "coap_lake_oscore"         |                       |
    |                                         |                       |
    |  "lake_info" specifies:                 |                       |
    |     {                                   |                       |
    |       e'session_id' : h'05',            |                       |
    |       e'cipher_suites' : 2,             |                       |
    |       e'methods' : 3,                   |                       |
    |       e'uri_path' : "/lake"             |                       |
    |     }                                   |                       |
    |                                         |                       |
    |  In the access token:                   |                       |
    |  - the "cnf" claim identifies           |                       |
    |    AUTH_CRED_C by reference             |                       |
    |  - the "lake_info" claim                |                       |
    |    specifies the same as                |                       |
    |    "lake_info" above                    |                       |
    |                                         |                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_1 to /lake                |                       |
    |  (no access control is enforced)        |                       |
M13 +---------------------------------------------------------------->|
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_2                         |                       |
M14 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies                   |                       |
    |     CRED_R = AUTH_CRED_RS by reference  |                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_3 to /lake                |                       |
    |  (no access control is enforced)        |                       |
M15 +---------------------------------------------------------------->|
    |  EAD_3 contains:                        |                       |
    |  - EAD item ACE-OAuth Access Token      |                       |
    |      (access token)                     |                       |
    |                                         |                       |
    |  ID_CRED_I identifies                   |                       |
    |     CRED_I = AUTH_CRED_C by reference   |                       |
    |                                         |                       |
    |                                         |                       |
    |  Access to protected resource /r        |                       |
    |  (OSCORE-protected message)             |                       |
    |  (access control is enforced)           |                       |
M16 +---------------------------------------------------------------->|
    |                                         |                       |
    |                                         |                       |
    |  Response                               |                       |
    |  (OSCORE-protected message)             |                       |
M17 |<----------------------------------------------------------------+
    |                                         |                       |
]]></artwork>
        </artset>
      </section>
      <section anchor="example-with-optimization">
        <name>Workflow with Optimizations</name>
        <t>The example below builds on the example in <xref target="example-without-optimization"/>. In particular, C additionally uses the LAKE + OSCORE request defined in <xref target="RFC9668"/> (denoted therein as "EDHOC + OSCORE request") when running LAKE both with AS and with RS.</t>
        <t>Consequently, the interaction between C and RS consists of only two round trips to run LAKE, upload the access token, and access the protected resource at RS.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1568" width="576" viewBox="0 0 576 1568" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,800" fill="none" stroke="black"/>
              <path d="M 40,896 L 40,1312" fill="none" stroke="black"/>
              <path d="M 40,1472 L 40,1552" fill="none" stroke="black"/>
              <path d="M 392,48 L 392,800" fill="none" stroke="black"/>
              <path d="M 392,896 L 392,936" fill="none" stroke="black"/>
              <path d="M 392,952 L 392,1016" fill="none" stroke="black"/>
              <path d="M 392,1032 L 392,1128" fill="none" stroke="black"/>
              <path d="M 392,1144 L 392,1312" fill="none" stroke="black"/>
              <path d="M 392,1472 L 392,1528" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,800" fill="none" stroke="black"/>
              <path d="M 568,896 L 568,1312" fill="none" stroke="black"/>
              <path d="M 568,1472 L 568,1552" fill="none" stroke="black"/>
              <path d="M 40,80 L 384,80" fill="none" stroke="black"/>
              <path d="M 48,144 L 392,144" fill="none" stroke="black"/>
              <path d="M 40,256 L 384,256" fill="none" stroke="black"/>
              <path d="M 64,320 L 80,320" fill="none" stroke="black"/>
              <path d="M 96,320 L 112,320" fill="none" stroke="black"/>
              <path d="M 128,320 L 144,320" fill="none" stroke="black"/>
              <path d="M 48,464 L 392,464" fill="none" stroke="black"/>
              <path d="M 40,944 L 560,944" fill="none" stroke="black"/>
              <path d="M 48,1024 L 568,1024" fill="none" stroke="black"/>
              <path d="M 40,1136 L 560,1136" fill="none" stroke="black"/>
              <path d="M 64,1264 L 80,1264" fill="none" stroke="black"/>
              <path d="M 96,1264 L 112,1264" fill="none" stroke="black"/>
              <path d="M 128,1264 L 144,1264" fill="none" stroke="black"/>
              <path d="M 48,1536 L 568,1536" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,1136 556,1130.4 556,1141.6" fill="black" transform="rotate(0,560,1136)"/>
              <polygon class="arrowhead" points="568,944 556,938.4 556,949.6" fill="black" transform="rotate(0,560,944)"/>
              <polygon class="arrowhead" points="392,256 380,250.4 380,261.6" fill="black" transform="rotate(0,384,256)"/>
              <polygon class="arrowhead" points="392,80 380,74.4 380,85.6" fill="black" transform="rotate(0,384,80)"/>
              <polygon class="arrowhead" points="56,1536 44,1530.4 44,1541.6" fill="black" transform="rotate(180,48,1536)"/>
              <polygon class="arrowhead" points="56,1024 44,1018.4 44,1029.6" fill="black" transform="rotate(180,48,1024)"/>
              <polygon class="arrowhead" points="56,464 44,458.4 44,469.6" fill="black" transform="rotate(180,48,464)"/>
              <polygon class="arrowhead" points="56,144 44,138.4 44,149.6" fill="black" transform="rotate(180,48,144)"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="388" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="76" y="68">LAKE</text>
                <text x="136" y="68">message_1</text>
                <text x="188" y="68">to</text>
                <text x="276" y="68">/.well-known/edhoc</text>
                <text x="16" y="84">M01</text>
                <text x="76" y="132">LAKE</text>
                <text x="136" y="132">message_2</text>
                <text x="16" y="148">M02</text>
                <text x="96" y="164">ID_CRED_R</text>
                <text x="180" y="164">identifies</text>
                <text x="108" y="180">CRED_R</text>
                <text x="144" y="180">=</text>
                <text x="204" y="180">AUTH_CRED_AS</text>
                <text x="268" y="180">by</text>
                <text x="320" y="180">reference</text>
                <text x="76" y="228">LAKE</text>
                <text x="104" y="228">+</text>
                <text x="140" y="228">OSCORE</text>
                <text x="200" y="228">request</text>
                <text x="244" y="228">to</text>
                <text x="284" y="228">/token</text>
                <text x="128" y="244">(OSCORE-protected</text>
                <text x="236" y="244">message)</text>
                <text x="16" y="260">M03</text>
                <text x="64" y="276">-</text>
                <text x="92" y="276">LAKE</text>
                <text x="152" y="276">message_3</text>
                <text x="128" y="292">ID_CRED_I</text>
                <text x="212" y="292">identifies</text>
                <text x="140" y="308">CRED_I</text>
                <text x="176" y="308">=</text>
                <text x="232" y="308">AUTH_CRED_C</text>
                <text x="292" y="308">by</text>
                <text x="344" y="308">reference</text>
                <text x="64" y="340">-</text>
                <text x="140" y="340">OSCORE-protected</text>
                <text x="228" y="340">part</text>
                <text x="116" y="356">Access</text>
                <text x="168" y="356">token</text>
                <text x="224" y="356">request</text>
                <text x="152" y="372">"req_cnf"</text>
                <text x="236" y="372">identifies</text>
                <text x="184" y="388">AUTH_CRED_C</text>
                <text x="244" y="388">by</text>
                <text x="296" y="388">reference</text>
                <text x="84" y="436">Access</text>
                <text x="136" y="436">token</text>
                <text x="196" y="436">response</text>
                <text x="128" y="452">(OSCORE-protected</text>
                <text x="236" y="452">message)</text>
                <text x="16" y="468">M04</text>
                <text x="92" y="484">"rs_cnf"</text>
                <text x="168" y="484">specifies</text>
                <text x="132" y="500">AUTH_CRED_RS</text>
                <text x="196" y="500">by</text>
                <text x="232" y="500">value</text>
                <text x="112" y="532">"ace_profile"</text>
                <text x="208" y="532">specifies</text>
                <text x="264" y="532">the</text>
                <text x="72" y="548">ACE</text>
                <text x="120" y="548">profile</text>
                <text x="228" y="548">"coap_lake_oscore"</text>
                <text x="104" y="580">"lake_info"</text>
                <text x="196" y="580">specifies:</text>
                <text x="88" y="596">{</text>
                <text x="152" y="612">e'session_id'</text>
                <text x="216" y="612">:</text>
                <text x="252" y="612">h'01',</text>
                <text x="164" y="628">e'cipher_suites'</text>
                <text x="240" y="628">:</text>
                <text x="260" y="628">2,</text>
                <text x="140" y="644">e'methods'</text>
                <text x="192" y="644">:</text>
                <text x="212" y="644">3,</text>
                <text x="144" y="660">e'uri_path'</text>
                <text x="200" y="660">:</text>
                <text x="240" y="660">"/lake"</text>
                <text x="88" y="676">}</text>
                <text x="68" y="708">In</text>
                <text x="96" y="708">the</text>
                <text x="140" y="708">access</text>
                <text x="196" y="708">token:</text>
                <text x="64" y="724">-</text>
                <text x="88" y="724">the</text>
                <text x="128" y="724">"cnf"</text>
                <text x="176" y="724">claim</text>
                <text x="240" y="724">specifies</text>
                <text x="120" y="740">AUTH_CRED_C</text>
                <text x="180" y="740">by</text>
                <text x="216" y="740">value</text>
                <text x="64" y="756">-</text>
                <text x="88" y="756">the</text>
                <text x="152" y="756">"lake_info"</text>
                <text x="224" y="756">claim</text>
                <text x="112" y="772">specifies</text>
                <text x="168" y="772">the</text>
                <text x="204" y="772">same</text>
                <text x="236" y="772">as</text>
                <text x="120" y="788">"lake_info"</text>
                <text x="192" y="788">above</text>
                <text x="76" y="836">Possibly</text>
                <text x="136" y="836">after</text>
                <text x="184" y="836">chain</text>
                <text x="264" y="836">verification,</text>
                <text x="328" y="836">C</text>
                <text x="356" y="836">adds</text>
                <text x="428" y="836">AUTH_CRED_RS</text>
                <text x="52" y="852">to</text>
                <text x="80" y="852">the</text>
                <text x="112" y="852">set</text>
                <text x="140" y="852">of</text>
                <text x="168" y="852">its</text>
                <text x="216" y="852">trusted</text>
                <text x="268" y="852">peer</text>
                <text x="348" y="852">authentication</text>
                <text x="460" y="852">credentials,</text>
                <text x="72" y="868">relying</text>
                <text x="116" y="868">on</text>
                <text x="140" y="868">AS</text>
                <text x="164" y="868">as</text>
                <text x="208" y="868">trusted</text>
                <text x="280" y="868">provider.</text>
                <text x="76" y="916">LAKE</text>
                <text x="136" y="916">message_1</text>
                <text x="188" y="916">to</text>
                <text x="224" y="916">/lake</text>
                <text x="72" y="932">(no</text>
                <text x="116" y="932">access</text>
                <text x="176" y="932">control</text>
                <text x="220" y="932">is</text>
                <text x="272" y="932">enforced)</text>
                <text x="16" y="948">M05</text>
                <text x="76" y="1012">LAKE</text>
                <text x="136" y="1012">message_2</text>
                <text x="16" y="1028">M06</text>
                <text x="96" y="1044">ID_CRED_R</text>
                <text x="180" y="1044">identifies</text>
                <text x="108" y="1060">CRED_R</text>
                <text x="144" y="1060">=</text>
                <text x="204" y="1060">AUTH_CRED_RS</text>
                <text x="268" y="1060">by</text>
                <text x="320" y="1060">reference</text>
                <text x="76" y="1108">LAKE</text>
                <text x="104" y="1108">+</text>
                <text x="140" y="1108">OSCORE</text>
                <text x="200" y="1108">request</text>
                <text x="244" y="1108">to</text>
                <text x="268" y="1108">/r</text>
                <text x="128" y="1124">(OSCORE-protected</text>
                <text x="236" y="1124">message)</text>
                <text x="16" y="1140">M07</text>
                <text x="64" y="1156">-</text>
                <text x="92" y="1156">LAKE</text>
                <text x="152" y="1156">message_3</text>
                <text x="112" y="1172">EAD_3</text>
                <text x="176" y="1172">contains:</text>
                <text x="96" y="1188">-</text>
                <text x="120" y="1188">EAD</text>
                <text x="156" y="1188">item</text>
                <text x="216" y="1188">ACE-OAuth</text>
                <text x="284" y="1188">Access</text>
                <text x="336" y="1188">Token</text>
                <text x="152" y="1204">(access</text>
                <text x="212" y="1204">token)</text>
                <text x="128" y="1236">ID_CRED_I</text>
                <text x="212" y="1236">identifies</text>
                <text x="140" y="1252">CRED_I</text>
                <text x="176" y="1252">=</text>
                <text x="232" y="1252">AUTH_CRED_C</text>
                <text x="292" y="1252">by</text>
                <text x="344" y="1252">reference</text>
                <text x="64" y="1284">-</text>
                <text x="140" y="1284">OSCORE-protected</text>
                <text x="228" y="1284">part</text>
                <text x="136" y="1300">Application</text>
                <text x="216" y="1300">request</text>
                <text x="260" y="1300">to</text>
                <text x="284" y="1300">/r</text>
                <text x="76" y="1348">Possibly</text>
                <text x="136" y="1348">after</text>
                <text x="184" y="1348">chain</text>
                <text x="264" y="1348">verification,</text>
                <text x="332" y="1348">RS</text>
                <text x="364" y="1348">adds</text>
                <text x="432" y="1348">AUTH_CRED_C</text>
                <text x="52" y="1364">to</text>
                <text x="80" y="1364">the</text>
                <text x="112" y="1364">set</text>
                <text x="140" y="1364">of</text>
                <text x="168" y="1364">its</text>
                <text x="216" y="1364">trusted</text>
                <text x="268" y="1364">peer</text>
                <text x="348" y="1364">authentication</text>
                <text x="460" y="1364">credentials,</text>
                <text x="72" y="1380">relying</text>
                <text x="116" y="1380">on</text>
                <text x="140" y="1380">AS</text>
                <text x="164" y="1380">as</text>
                <text x="208" y="1380">trusted</text>
                <text x="276" y="1380">provider</text>
                <text x="64" y="1412">After</text>
                <text x="104" y="1412">the</text>
                <text x="140" y="1412">LAKE</text>
                <text x="204" y="1412">processing</text>
                <text x="260" y="1412">is</text>
                <text x="316" y="1412">completed,</text>
                <text x="388" y="1412">access</text>
                <text x="448" y="1412">control</text>
                <text x="52" y="1428">is</text>
                <text x="100" y="1428">enforced</text>
                <text x="148" y="1428">on</text>
                <text x="176" y="1428">the</text>
                <text x="224" y="1428">rebuilt</text>
                <text x="324" y="1428">OSCORE-protected</text>
                <text x="428" y="1428">request,</text>
                <text x="60" y="1444">like</text>
                <text x="92" y="1444">if</text>
                <text x="120" y="1444">the</text>
                <text x="168" y="1444">request</text>
                <text x="216" y="1444">had</text>
                <text x="252" y="1444">been</text>
                <text x="292" y="1444">sent</text>
                <text x="360" y="1444">stand-alone</text>
                <text x="92" y="1508">Response</text>
                <text x="128" y="1524">(OSCORE-protected</text>
                <text x="236" y="1524">message)</text>
                <text x="16" y="1540">M08</text>
                <text x="392" y="1556">|</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                          AS                    RS
    |                                           |                     |
    |  LAKE message_1 to /.well-known/edhoc     |                     |
M01 +------------------------------------------>|                     |
    |                                           |                     |
    |                                           |                     |
    |  LAKE message_2                           |                     |
M02 |<------------------------------------------+                     |
    |  ID_CRED_R identifies                     |                     |
    |     CRED_R = AUTH_CRED_AS by reference    |                     |
    |                                           |                     |
    |                                           |                     |
    |  LAKE + OSCORE request to /token          |                     |
    |  (OSCORE-protected message)               |                     |
M03 +------------------------------------------>|                     |
    |  - LAKE message_3                         |                     |
    |      ID_CRED_I identifies                 |                     |
    |         CRED_I = AUTH_CRED_C by reference |                     |
    |  --- --- ---                              |                     |
    |  - OSCORE-protected part                  |                     |
    |      Access token request                 |                     |
    |         "req_cnf" identifies              |                     |
    |            AUTH_CRED_C by reference       |                     |
    |                                           |                     |
    |                                           |                     |
    |  Access token response                    |                     |
    |  (OSCORE-protected message)               |                     |
M04 |<------------------------------------------+                     |
    |  "rs_cnf" specifies                       |                     |
    |     AUTH_CRED_RS by value                 |                     |
    |                                           |                     |
    |  "ace_profile" specifies the              |                     |
    |  ACE profile "coap_lake_oscore"           |                     |
    |                                           |                     |
    |  "lake_info" specifies:                   |                     |
    |     {                                     |                     |
    |       e'session_id' : h'01',              |                     |
    |       e'cipher_suites' : 2,               |                     |
    |       e'methods' : 3,                     |                     |
    |       e'uri_path' : "/lake"               |                     |
    |     }                                     |                     |
    |                                           |                     |
    |  In the access token:                     |                     |
    |  - the "cnf" claim specifies              |                     |
    |    AUTH_CRED_C by value                   |                     |
    |  - the "lake_info" claim                  |                     |
    |    specifies the same as                  |                     |
    |    "lake_info" above                      |                     |
    |                                           |                     |

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

    |                                           |                     |
    |  LAKE message_1 to /lake                  |                     |
    |  (no access control is enforced)          |                     |
M05 +---------------------------------------------------------------->|
    |                                           |                     |
    |                                           |                     |
    |                                           |                     |
    |  LAKE message_2                           |                     |
M06 |<----------------------------------------------------------------+
    |  ID_CRED_R identifies                     |                     |
    |     CRED_R = AUTH_CRED_RS by reference    |                     |
    |                                           |                     |
    |                                           |                     |
    |  LAKE + OSCORE request to /r              |                     |
    |  (OSCORE-protected message)               |                     |
M07 +---------------------------------------------------------------->|
    |  - LAKE message_3                         |                     |
    |      EAD_3 contains:                      |                     |
    |      - EAD item ACE-OAuth Access Token    |                     |
    |          (access token)                   |                     |
    |                                           |                     |
    |      ID_CRED_I identifies                 |                     |
    |         CRED_I = AUTH_CRED_C by reference |                     |
    |  --- --- ---                              |                     |
    |  - OSCORE-protected part                  |                     |
    |      Application request to /r            |                     |
    |                                           |                     |

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

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

    |                                           |                     |
    |                                           |                     |
    |  Response                                 |                     |
    |  (OSCORE-protected message)               |                     |
M08 |<----------------------------------------------------------------+
    |                                           |                     |
]]></artwork>
        </artset>
      </section>
      <section anchor="example-non-sequential-workflow">
        <name>Non-sequential Workflow</name>
        <t>When this profile is used, C might not be able to determine in advance the appropriate AS to contact. In such cases, C may initiate LAKE with RS prior to obtaining an access token and rely on RS to provide this information.</t>
        <t>As detailed in this section, one approach is for RS to convey this information within an EAD item included in LAKE message_2. The content of the EAD item is the information conveyed in an AS Request Creation Hints response, thereby helping C identify the correct AS, and possibly other relevant parameters needed to request an access token from AS.</t>
        <t>The following describes an example scenario where this functionality is used in the LAKE forward message flow, in particular taking advantage of the EAD items Request Creation Hints (see <xref target="as-creation-hints"/>) and Credential By Value (see <xref target="auth-cred-by-value"/>).</t>
        <ol spacing="normal" type="1"><li>
            <t>Without having an access token, C sends LAKE message_1 to RS, including in EAD_1:  </t>
            <ul spacing="normal">
              <li>
                <t>The EAD item Request Creation Hints, with no ead_value. By doing so, C asks RS to include the same EAD item in EAD_2, specifying as ead_value the information that would be included in an AS Request Creation Hints response.</t>
              </li>
              <li>
                <t>The EAD item Credential By Value. By doing so, C asks RS to specify its authentication credential AUTH_CRED_RS by value in ID_CRED_R of LAKE message_2.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>RS replies with LAKE message_2, specifying its authentication credential AUTH_CRED_RS by value in ID_CRED_R.  </t>
            <t>
In the same LAKE message_2, the EAD_2 field includes the EAD item Request Creation Hints, whose CBOR byte string specified as ead_value encodes the information that would have been included in an AS Request Creation Hints response to an unauthorized request sent to RS. In particular, this information includes the URI to the /token endpoint at AS.  </t>
            <t>
Note that C has not made an actual request with a specific request method and targeting a specific application resource. That is, RS does not know yet what resources C is actually interested in accessing later on.</t>
          </li>
          <li>
            <t>C requests an access token for the right audience and scope from the right AS, based on pre-configured parameters on C and on the information from the EAD item Request Creation Hints within LAKE message_2, like if C had received an AS Request Creation Hints response from RS.  </t>
            <t>
C needs to know in advance the right audience and scope to specify in the access token request to AS, since that information is not provided by RS in the EAD item Request Creation Hints within LAKE message_2 (see <xref target="as-creation-hints"/>). There may also be default audience and scope set at AS to use, if none is specified by C in its access token request.</t>
          </li>
          <li>
            <t>C sends LAKE message_3 to RS, specifying the access token by means of the EAD item ACE-OAuth Access Token.</t>
          </li>
          <li>
            <t>If a protected request from C for accessing a resource at RS is not authorized per the issued access token, then RS replies with a protected error response. Within that error response, RS can provide C with information that would have been specified in an AS Request Creation Hints response. This time, that information also includes "audience" and "scope". After this, C can request from AS a new access token that dynamically updates access rights accordingly (see <xref target="c-as"/>).  </t>
            <t>
Note that this applies also if C uses the LAKE + OSCORE combined request <xref target="RFC9668"/>, hence combining LAKE message_3 with the first OSCORE-protected request to access a protected resource at RS (see <xref target="example-with-optimization"/>).</t>
          </li>
        </ol>
        <t>Instead, if the LAKE reverse message flow is used, then the following differences apply compared to what is described above:</t>
        <ul spacing="normal">
          <li>
            <t>C includes the EAD items Request Creation Hints and Credential By Value in LAKE message_2. By doing so, C asks RS to provide the AS Request Creation Hints information and to specify its authentication credential AUTH_CRED_RS by value in ID_CRED_I when sending LAKE message_3.</t>
          </li>
          <li>
            <t>RS includes the EAD item Request Creation Hints in LAKE message_3, specifying as ead_value the AS Request Creation Hints information.</t>
          </li>
          <li>
            <t>After receiving LAKE message_3, C requests the access token from AS, based on the information from the EAD item Request Creation Hints within LAKE message_3.</t>
          </li>
          <li>
            <t>Finally, C sends LAKE message_4 to RS, specifying the access token by means of the EAD item ACE-OAuth Access Token.</t>
          </li>
        </ul>
        <t>The interactions between AS, RS, and C are shown in the following example, where the LAKE forward message flow is used.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1664" width="576" viewBox="0 0 576 1664" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,48 L 40,1104" fill="none" stroke="black"/>
              <path d="M 40,1264 L 40,1584" fill="none" stroke="black"/>
              <path d="M 376,48 L 376,88" fill="none" stroke="black"/>
              <path d="M 376,104 L 376,232" fill="none" stroke="black"/>
              <path d="M 376,248 L 376,1104" fill="none" stroke="black"/>
              <path d="M 376,1264 L 376,1304" fill="none" stroke="black"/>
              <path d="M 376,1320 L 376,1496" fill="none" stroke="black"/>
              <path d="M 376,1512 L 376,1560" fill="none" stroke="black"/>
              <path d="M 568,48 L 568,1104" fill="none" stroke="black"/>
              <path d="M 568,1264 L 568,1584" fill="none" stroke="black"/>
              <path d="M 40,96 L 560,96" fill="none" stroke="black"/>
              <path d="M 48,240 L 568,240" fill="none" stroke="black"/>
              <path d="M 40,400 L 368,400" fill="none" stroke="black"/>
              <path d="M 48,464 L 376,464" fill="none" stroke="black"/>
              <path d="M 40,560 L 368,560" fill="none" stroke="black"/>
              <path d="M 40,672 L 368,672" fill="none" stroke="black"/>
              <path d="M 48,784 L 376,784" fill="none" stroke="black"/>
              <path d="M 40,1312 L 560,1312" fill="none" stroke="black"/>
              <path d="M 40,1504 L 560,1504" fill="none" stroke="black"/>
              <path d="M 48,1568 L 568,1568" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="568,1504 556,1498.4 556,1509.6" fill="black" transform="rotate(0,560,1504)"/>
              <polygon class="arrowhead" points="568,1312 556,1306.4 556,1317.6" fill="black" transform="rotate(0,560,1312)"/>
              <polygon class="arrowhead" points="568,96 556,90.4 556,101.6" fill="black" transform="rotate(0,560,96)"/>
              <polygon class="arrowhead" points="376,672 364,666.4 364,677.6" fill="black" transform="rotate(0,368,672)"/>
              <polygon class="arrowhead" points="376,560 364,554.4 364,565.6" fill="black" transform="rotate(0,368,560)"/>
              <polygon class="arrowhead" points="376,400 364,394.4 364,405.6" fill="black" transform="rotate(0,368,400)"/>
              <polygon class="arrowhead" points="56,1568 44,1562.4 44,1573.6" fill="black" transform="rotate(180,48,1568)"/>
              <polygon class="arrowhead" points="56,784 44,778.4 44,789.6" fill="black" transform="rotate(180,48,784)"/>
              <polygon class="arrowhead" points="56,464 44,458.4 44,469.6" fill="black" transform="rotate(180,48,464)"/>
              <polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill="black" transform="rotate(180,48,240)"/>
              <g class="text">
                <text x="40" y="36">C</text>
                <text x="372" y="36">AS</text>
                <text x="564" y="36">RS</text>
                <text x="76" y="68">LAKE</text>
                <text x="136" y="68">message_1</text>
                <text x="188" y="68">to</text>
                <text x="276" y="68">/.well-known/edhoc</text>
                <text x="72" y="84">(no</text>
                <text x="116" y="84">access</text>
                <text x="176" y="84">control</text>
                <text x="220" y="84">is</text>
                <text x="272" y="84">enforced)</text>
                <text x="16" y="100">M01</text>
                <text x="80" y="116">EAD_1</text>
                <text x="144" y="116">contains:</text>
                <text x="64" y="132">-</text>
                <text x="88" y="132">EAD</text>
                <text x="124" y="132">item</text>
                <text x="176" y="132">Request</text>
                <text x="244" y="132">Creation</text>
                <text x="304" y="132">Hints</text>
                <text x="104" y="148">(no</text>
                <text x="164" y="148">ead_value)</text>
                <text x="64" y="164">-</text>
                <text x="88" y="164">EAD</text>
                <text x="124" y="164">item</text>
                <text x="188" y="164">Credential</text>
                <text x="244" y="164">By</text>
                <text x="280" y="164">Value</text>
                <text x="104" y="180">(no</text>
                <text x="164" y="180">ead_value)</text>
                <text x="76" y="228">LAKE</text>
                <text x="136" y="228">message_2</text>
                <text x="16" y="244">M02</text>
                <text x="80" y="260">EAD_2</text>
                <text x="144" y="260">contains:</text>
                <text x="64" y="276">-</text>
                <text x="88" y="276">EAD</text>
                <text x="124" y="276">item</text>
                <text x="176" y="276">Request</text>
                <text x="244" y="276">Creation</text>
                <text x="304" y="276">Hints</text>
                <text x="104" y="292">(AS</text>
                <text x="152" y="292">Request</text>
                <text x="220" y="292">Creation</text>
                <text x="284" y="292">Hints)</text>
                <text x="96" y="324">ID_CRED_R</text>
                <text x="180" y="324">identifies</text>
                <text x="108" y="340">CRED_R</text>
                <text x="144" y="340">=</text>
                <text x="204" y="340">AUTH_CRED_RS</text>
                <text x="268" y="340">by</text>
                <text x="304" y="340">value</text>
                <text x="76" y="388">LAKE</text>
                <text x="136" y="388">message_1</text>
                <text x="188" y="388">to</text>
                <text x="276" y="388">/.well-known/edhoc</text>
                <text x="16" y="404">M03</text>
                <text x="76" y="452">LAKE</text>
                <text x="136" y="452">message_2</text>
                <text x="16" y="468">M04</text>
                <text x="96" y="484">ID_CRED_R</text>
                <text x="180" y="484">identifies</text>
                <text x="108" y="500">CRED_R</text>
                <text x="144" y="500">=</text>
                <text x="204" y="500">AUTH_CRED_AS</text>
                <text x="268" y="500">by</text>
                <text x="320" y="500">reference</text>
                <text x="76" y="548">LAKE</text>
                <text x="136" y="548">message_3</text>
                <text x="188" y="548">to</text>
                <text x="276" y="548">/.well-known/edhoc</text>
                <text x="16" y="564">M05</text>
                <text x="96" y="580">ID_CRED_I</text>
                <text x="180" y="580">identifies</text>
                <text x="108" y="596">CRED_I</text>
                <text x="144" y="596">=</text>
                <text x="200" y="596">AUTH_CRED_C</text>
                <text x="260" y="596">by</text>
                <text x="312" y="596">reference</text>
                <text x="84" y="644">Access</text>
                <text x="136" y="644">token</text>
                <text x="192" y="644">request</text>
                <text x="236" y="644">to</text>
                <text x="276" y="644">/token</text>
                <text x="128" y="660">(OSCORE-protected</text>
                <text x="236" y="660">message)</text>
                <text x="16" y="676">M06</text>
                <text x="96" y="692">"req_cnf"</text>
                <text x="180" y="692">identifies</text>
                <text x="128" y="708">AUTH_CRED_C</text>
                <text x="188" y="708">by</text>
                <text x="240" y="708">reference</text>
                <text x="84" y="756">Access</text>
                <text x="136" y="756">token</text>
                <text x="196" y="756">response</text>
                <text x="128" y="772">(OSCORE-protected</text>
                <text x="236" y="772">message)</text>
                <text x="16" y="788">M07</text>
                <text x="92" y="804">"rs_cnf"</text>
                <text x="168" y="804">specifies</text>
                <text x="132" y="820">AUTH_CRED_RS</text>
                <text x="196" y="820">by</text>
                <text x="232" y="820">value</text>
                <text x="112" y="852">"ace_profile"</text>
                <text x="208" y="852">specifies</text>
                <text x="264" y="852">the</text>
                <text x="72" y="868">ACE</text>
                <text x="120" y="868">profile</text>
                <text x="228" y="868">"coap_lake_oscore"</text>
                <text x="104" y="900">"lake_info"</text>
                <text x="196" y="900">specifies:</text>
                <text x="88" y="916">{</text>
                <text x="152" y="932">e'session_id'</text>
                <text x="216" y="932">:</text>
                <text x="252" y="932">h'01',</text>
                <text x="164" y="948">e'cipher_suites'</text>
                <text x="240" y="948">:</text>
                <text x="260" y="948">2,</text>
                <text x="140" y="964">e'methods'</text>
                <text x="192" y="964">:</text>
                <text x="212" y="964">3,</text>
                <text x="88" y="980">}</text>
                <text x="68" y="1012">In</text>
                <text x="96" y="1012">the</text>
                <text x="140" y="1012">access</text>
                <text x="196" y="1012">token:</text>
                <text x="64" y="1028">-</text>
                <text x="88" y="1028">the</text>
                <text x="128" y="1028">"cnf"</text>
                <text x="176" y="1028">claim</text>
                <text x="240" y="1028">specifies</text>
                <text x="120" y="1044">AUTH_CRED_C</text>
                <text x="180" y="1044">by</text>
                <text x="216" y="1044">value</text>
                <text x="64" y="1060">-</text>
                <text x="88" y="1060">the</text>
                <text x="152" y="1060">"lake_info"</text>
                <text x="224" y="1060">claim</text>
                <text x="112" y="1076">specifies</text>
                <text x="168" y="1076">the</text>
                <text x="204" y="1076">same</text>
                <text x="236" y="1076">as</text>
                <text x="120" y="1092">"lake_info"</text>
                <text x="192" y="1092">above</text>
                <text x="76" y="1140">Possibly</text>
                <text x="136" y="1140">after</text>
                <text x="184" y="1140">chain</text>
                <text x="264" y="1140">verification,</text>
                <text x="328" y="1140">C</text>
                <text x="356" y="1140">adds</text>
                <text x="428" y="1140">AUTH_CRED_RS</text>
                <text x="52" y="1156">to</text>
                <text x="80" y="1156">the</text>
                <text x="112" y="1156">set</text>
                <text x="140" y="1156">of</text>
                <text x="168" y="1156">its</text>
                <text x="216" y="1156">trusted</text>
                <text x="268" y="1156">peer</text>
                <text x="348" y="1156">authentication</text>
                <text x="460" y="1156">credentials,</text>
                <text x="72" y="1172">relying</text>
                <text x="116" y="1172">on</text>
                <text x="140" y="1172">AS</text>
                <text x="164" y="1172">as</text>
                <text x="208" y="1172">trusted</text>
                <text x="280" y="1172">provider.</text>
                <text x="88" y="1204">Regardless,</text>
                <text x="156" y="1204">when</text>
                <text x="220" y="1204">continuing</text>
                <text x="280" y="1204">the</text>
                <text x="316" y="1204">LAKE</text>
                <text x="372" y="1204">session,</text>
                <text x="416" y="1204">C</text>
                <text x="444" y="1204">uses</text>
                <text x="476" y="1204">as</text>
                <text x="100" y="1220">authentication</text>
                <text x="204" y="1220">credential</text>
                <text x="260" y="1220">of</text>
                <text x="284" y="1220">RS</text>
                <text x="312" y="1220">the</text>
                <text x="344" y="1220">one</text>
                <text x="404" y="1220">identified</text>
                <text x="460" y="1220">by</text>
                <text x="512" y="1220">ID_CRED_R</text>
                <text x="52" y="1236">in</text>
                <text x="84" y="1236">LAKE</text>
                <text x="144" y="1236">message_2</text>
                <text x="204" y="1236">from</text>
                <text x="240" y="1236">RS.</text>
                <text x="76" y="1284">LAKE</text>
                <text x="136" y="1284">message_3</text>
                <text x="188" y="1284">to</text>
                <text x="276" y="1284">/.well-known/edhoc</text>
                <text x="72" y="1300">(no</text>
                <text x="116" y="1300">access</text>
                <text x="176" y="1300">control</text>
                <text x="220" y="1300">is</text>
                <text x="272" y="1300">enforced)</text>
                <text x="16" y="1316">M08</text>
                <text x="80" y="1332">EAD_3</text>
                <text x="144" y="1332">contains:</text>
                <text x="64" y="1348">-</text>
                <text x="88" y="1348">EAD</text>
                <text x="124" y="1348">item</text>
                <text x="184" y="1348">ACE-OAuth</text>
                <text x="252" y="1348">Access</text>
                <text x="304" y="1348">Token</text>
                <text x="120" y="1364">(access</text>
                <text x="180" y="1364">token)</text>
                <text x="96" y="1396">ID_CRED_I</text>
                <text x="180" y="1396">identifies</text>
                <text x="108" y="1412">CRED_I</text>
                <text x="144" y="1412">=</text>
                <text x="200" y="1412">AUTH_CRED_C</text>
                <text x="260" y="1412">by</text>
                <text x="312" y="1412">reference</text>
                <text x="84" y="1460">Access</text>
                <text x="124" y="1460">to</text>
                <text x="176" y="1460">protected</text>
                <text x="252" y="1460">resource</text>
                <text x="128" y="1476">(OSCORE-protected</text>
                <text x="236" y="1476">message)</text>
                <text x="88" y="1492">(access</text>
                <text x="152" y="1492">control</text>
                <text x="196" y="1492">is</text>
                <text x="248" y="1492">enforced)</text>
                <text x="16" y="1508">M09</text>
                <text x="92" y="1540">Response</text>
                <text x="128" y="1556">(OSCORE-protected</text>
                <text x="236" y="1556">message)</text>
                <text x="16" y="1572">M10</text>
                <text x="376" y="1588">|</text>
                <text x="52" y="1620">If</text>
                <text x="96" y="1620">instead</text>
                <text x="156" y="1620">access</text>
                <text x="196" y="1620">is</text>
                <text x="224" y="1620">not</text>
                <text x="288" y="1620">authorized,</text>
                <text x="348" y="1620">RS</text>
                <text x="392" y="1620">replies</text>
                <text x="436" y="1620">to</text>
                <text x="464" y="1620">M09</text>
                <text x="500" y="1620">with</text>
                <text x="528" y="1620">a</text>
                <text x="80" y="1636">protected</text>
                <text x="144" y="1636">error</text>
                <text x="204" y="1636">response</text>
                <text x="280" y="1636">including</text>
                <text x="352" y="1636">updated</text>
                <text x="416" y="1636">Request</text>
                <text x="484" y="1636">Creation</text>
                <text x="548" y="1636">Hints.</text>
                <text x="48" y="1652">C</text>
                <text x="72" y="1652">can</text>
                <text x="108" y="1652">then</text>
                <text x="160" y="1652">request</text>
                <text x="200" y="1652">a</text>
                <text x="224" y="1652">new</text>
                <text x="268" y="1652">access</text>
                <text x="320" y="1652">token</text>
                <text x="364" y="1652">from</text>
                <text x="400" y="1652">AS.</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
    C                                        AS                      RS
    |                                         |                       |
    |  LAKE message_1 to /.well-known/edhoc   |                       |
    |  (no access control is enforced)        |                       |
M01 +---------------------------------------------------------------->|
    |  EAD_1 contains:                        |                       |
    |  - EAD item Request Creation Hints      |                       |
    |      (no ead_value)                     |                       |
    |  - EAD item Credential By Value         |                       |
    |      (no ead_value)                     |                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_2                         |                       |
M02 |<----------------------------------------------------------------+
    |  EAD_2 contains:                        |                       |
    |  - EAD item Request Creation Hints      |                       |
    |      (AS Request Creation Hints)        |                       |
    |                                         |                       |
    |  ID_CRED_R identifies                   |                       |
    |     CRED_R = AUTH_CRED_RS by value      |                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_1 to /.well-known/edhoc   |                       |
M03 +---------------------------------------->|                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_2                         |                       |
M04 |<----------------------------------------+                       |
    |  ID_CRED_R identifies                   |                       |
    |     CRED_R = AUTH_CRED_AS by reference  |                       |
    |                                         |                       |
    |                                         |                       |
    |  LAKE message_3 to /.well-known/edhoc   |                       |
M05 +---------------------------------------->|                       |
    |  ID_CRED_I identifies                   |                       |
    |     CRED_I = AUTH_CRED_C by reference   |                       |
    |                                         |                       |
    |                                         |                       |
    |  Access token request to /token         |                       |
    |  (OSCORE-protected message)             |                       |
M06 +---------------------------------------->|                       |
    |  "req_cnf" identifies                   |                       |
    |     AUTH_CRED_C by reference            |                       |
    |                                         |                       |
    |                                         |                       |
    |  Access token response                  |                       |
    |  (OSCORE-protected message)             |                       |
M07 |<----------------------------------------+                       |
    |  "rs_cnf" specifies                     |                       |
    |     AUTH_CRED_RS by value               |                       |
    |                                         |                       |
    |  "ace_profile" specifies the            |                       |
    |  ACE profile "coap_lake_oscore"         |                       |
    |                                         |                       |
    |  "lake_info" specifies:                 |                       |
    |     {                                   |                       |
    |       e'session_id' : h'01',            |                       |
    |       e'cipher_suites' : 2,             |                       |
    |       e'methods' : 3,                   |                       |
    |     }                                   |                       |
    |                                         |                       |
    |  In the access token:                   |                       |
    |  - the "cnf" claim specifies            |                       |
    |    AUTH_CRED_C by value                 |                       |
    |  - the "lake_info" claim                |                       |
    |    specifies the same as                |                       |
    |    "lake_info" above                    |                       |
    |                                         |                       |

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

     Regardless, when continuing the LAKE session, C uses as
     authentication credential of RS the one identified by ID_CRED_R
     in LAKE message_2 from RS.

    |                                         |                       |
    |  LAKE message_3 to /.well-known/edhoc   |                       |
    |  (no access control is enforced)        |                       |
M08 +---------------------------------------------------------------->|
    |  EAD_3 contains:                        |                       |
    |  - EAD item ACE-OAuth Access Token      |                       |
    |      (access token)                     |                       |
    |                                         |                       |
    |  ID_CRED_I identifies                   |                       |
    |     CRED_I = AUTH_CRED_C by reference   |                       |
    |                                         |                       |
    |                                         |                       |
    |  Access to protected resource           |                       |
    |  (OSCORE-protected message)             |                       |
    |  (access control is enforced)           |                       |
M09 +---------------------------------------------------------------->|
    |                                         |                       |
    |  Response                               |                       |
    |  (OSCORE-protected message)             |                       |
M10 |<----------------------------------------------------------------+
    |                                         |                       |

     If instead access is not authorized, RS replies to M09 with a
     protected error response including updated Request Creation Hints.
     C can then request a new access token from AS.
]]></artwork>
        </artset>
      </section>
    </section>
    <section anchor="sec-profile-requirements">
      <name>Profile Requirements</name>
      <t>This section lists the specifications of this profile based on the requirements of the framework, as requested in <xref section="C" sectionFormat="of" target="RFC9200"/>.</t>
      <ul spacing="normal">
        <li>
          <t>Optionally, define new methods for the client to discover the necessary permissions and AS for accessing a resource, different from the one proposed in <xref target="RFC9200"/>: AS discovery is supported by using the EAD item Request Creation Hints as described in <xref target="as-creation-hints"/>.</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 LAKE protocol, including public key certificates such as X.509 certificates <xref target="RFC5280"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</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 LAKE protocol, after which a common OSCORE Security Context is exported from the LAKE session. As per the LAKE authentication method used during the LAKE session, authentication is provided by digital signatures, or by Message Authentication Codes (MACs) computed from an ephemeral-static Elliptic Curve Diffie-Hellman (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: LAKE authentication methods and LAKE algorithms for RS to authenticate C during the LAKE session, per C's public authentication credential used in the session and bound to the access token specified to RS in the session.</t>
        </li>
        <li>
          <t>Specify a unique ace_profile identifier: coap_lake_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 LAKE with RS, by specifying the access token through a dedicated EAD item such as the EAD item ACE-OAuth Access Token (see <xref target="AT-in-EAD"/>). The LAKE message where the EAD item is included depends on the LAKE message flow used.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-cddl-model" removeInRFC="true">
      <name>CDDL Model</name>
      <figure anchor="fig-cddl-model">
        <name>CDDL model</name>
        <sourcecode type="cddl"><![CDATA[
; ACE Profiles
coap_lake_oscore = 4

; OAuth Parameters CBOR Mappings
lake_info_param = 47

; CBOR Web Token (CWT) Claims
lake_info_claim = 41

; CWT Confirmation Methods
x5t = 6
x5u = 7
c5t = 8
c5u = 9
kcwt = 10
kccs = 11
x5chain = 24
x5bag = 25
c5c = 26
c5b = 27

; EDHOC External Authorization Data
ead_request_creation_hints_label = 1
ead_credential_by_value_label = 15
ead_ace_oauth_access_token_label = 24

; LAKE Information
session_id = 0
methods = 1
cipher_suites = 2
message_4 = 3
comb_req = 4
uri_path = 5
cred_types = 6
id_cred_types = 7
eads = 8
initiator = 9
responder = 10
trust_anchors = 11

; LAKE Trust Anchor Purposes
lake_cred = 0

; LAKE Trust Anchor Types
c5t_ta_type = 22
c5u_ta_type = 23
x5t_ta_type = 34
x5u_ta_type = 35
]]></sourcecode>
      </figure>
    </section>
    <section anchor="sec-document-updates" removeInRFC="true">
      <name>Document Updates</name>
      <section anchor="sec-11-12">
        <name>Version -11 to -12</name>
        <ul spacing="normal">
          <li>
            <t>Renamed EDHOC to LAKE as appropriate.</t>
          </li>
          <li>
            <t>Clarification: for initial authentication, only methods based on public keys can be used. PSK-based authentication can be used for session resumption.</t>
          </li>
          <li>
            <t>Added new section on possible conflicting information from AS to C.</t>
          </li>
          <li>
            <t>Fixed JSON and CBOR examples of the LAKE_Information object.</t>
          </li>
          <li>
            <t>More precise wording on base64 encoding.</t>
          </li>
          <li>
            <t>Updated privacy considerations about OSCORE identifiers.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-10-11">
        <name>Version -10 to -11</name>
        <ul spacing="normal">
          <li>
            <t>Clarify instructions on when to include audience when C performs update of access rights.</t>
          </li>
          <li>
            <t>Clarified definition of "prescriptive" / "non-prescriptive" parameters.</t>
          </li>
          <li>
            <t>In the reverse message flow, C can upload the access token to RS only in message_4.</t>
          </li>
          <li>
            <t>Discussed timing of access token request when using the EDHOC reverse message flow.</t>
          </li>
          <li>
            <t>Fixed mix-up between proof of possession and key confirmation.</t>
          </li>
          <li>
            <t>New EAD items:  </t>
            <ul spacing="normal">
              <li>
                <t>Consistent and simpler naming.</t>
              </li>
              <li>
                <t>Revised format/style of their definition.</t>
              </li>
              <li>
                <t>Revised normative language for using AS Request Creation Hints.</t>
              </li>
              <li>
                <t>Fixed CDDL definition of ead_request_creation_hints.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Removed definition of the EAD item Session ID.</t>
          </li>
          <li>
            <t>Added the "Operational Considerations" section.  </t>
            <ul spacing="normal">
              <li>
                <t>RS belonging to multiple audiences with different credentials.</t>
              </li>
              <li>
                <t>Keeping knowledge about C and RS up-to-date at AS.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Added figure with message flow for Non-sequential Workflow.</t>
          </li>
          <li>
            <t>Improved notation and details in examples of message exchanges.</t>
          </li>
          <li>
            <t>Aligned the "c5u" confirmation method with draft-ietf-cose-cbor-encoded-cert-20.</t>
          </li>
          <li>
            <t>Fixes to the confirmation methods "x5u", "kcwt", and "kccs".</t>
          </li>
          <li>
            <t>Added references to IANA registries.</t>
          </li>
          <li>
            <t>Avoid normative language with inherited normative behavior.</t>
          </li>
          <li>
            <t>Updated compliance with profile requirements.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-09-10">
        <name>Version -09 to -10</name>
        <ul spacing="normal">
          <li>
            <t>Fixed CDDL definition of the EDHOC_Information object.</t>
          </li>
          <li>
            <t>Removed excessive EDHOC_Information parameters: "max_msgsize", "coap_ct", "ep_id_types", and "transports".</t>
          </li>
          <li>
            <t>Removed definition of some IANA registries: "EDHOC Endpoint Identity Types" and "EDHOC Transports".</t>
          </li>
          <li>
            <t>Defined derivation of N_S, when combining this profile with application profiles of RFC 9594.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-08-09">
        <name>Version -08 to -09</name>
        <ul spacing="normal">
          <li>
            <t>Parameter "cnf" explicitly forbidden in the access token response.</t>
          </li>
          <li>
            <t>Clarification about content of "cnf" claim in the access token.</t>
          </li>
          <li>
            <t>RS must support the CoAP Uri-Path-Abbrev Option and its value abbreviating /.well-known/edhoc.</t>
          </li>
          <li>
            <t>Example of Request Creation Hints provided in EAD item.</t>
          </li>
          <li>
            <t>Examples showing content of new EAD items.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-07-08">
        <name>Version -07 to -08</name>
        <ul spacing="normal">
          <li>
            <t>KUDOS is just an example of protocol to use for optional key update.</t>
          </li>
          <li>
            <t>message_4 is mandatory to support for an RS that supports the reverse message flow.</t>
          </li>
          <li>
            <t>Method in -workflow-and-params as example for coordinating the exchange of authentication credentials by value or reference.</t>
          </li>
          <li>
            <t>Revised initial set of EDHOC_Information parameters.</t>
          </li>
          <li>
            <t>Defined categorization of EDHOC_Information parameters.</t>
          </li>
          <li>
            <t>New EAD item for C to retrieve Request Creation Hints information from RS.</t>
          </li>
          <li>
            <t>New EAD item for requesting authentication credential by value.</t>
          </li>
          <li>
            <t>Means for AS to achieve proof of possession of C's private key.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>
            <t>Renamed id_ep_types as ep_id_types.</t>
          </li>
          <li>
            <t>Revised rules for AS to assign session ID values.</t>
          </li>
          <li>
            <t>Added explicit validation of AUTH_CRED_C at AS.</t>
          </li>
          <li>
            <t>"edhoc_info" only in AS-to-C response for first token in a series.</t>
          </li>
          <li>
            <t>With a group-audience, "edhoc_info" refers to the whole audience.</t>
          </li>
          <li>
            <t>Defined parameters for the EDHOC_Information object:  </t>
            <ul spacing="normal">
              <li>
                <t>Parameters moved here from draft-ietf-lake-app-profiles.</t>
              </li>
              <li>
                <t>New parameter "trust_anchors".</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Access token request/response messages must be encoded in CBOR.</t>
          </li>
          <li>
            <t>Explicit statement on admitted confirmation methods.</t>
          </li>
          <li>
            <t>First token in a series: the "cnf" claim uses the same confirmation method of the "req_cnf" request to /token.</t>
          </li>
          <li>
            <t>Revised examples in CBOR diagnostic notation.</t>
          </li>
          <li>
            <t>With a group-audience, the reverse message flow can use a roll call.</t>
          </li>
          <li>
            <t>Matching authentication credentials from ID_CRED_X and EAD item.</t>
          </li>
          <li>
            <t>Handling authentication credentials and EDHOC session that become invalid.</t>
          </li>
          <li>
            <t>Limited use of ACE Request Creation Hints when supporting the EDHOC reverse message flow.</t>
          </li>
          <li>
            <t>Changed CBOR abbreviations to not collide with existing codepoints.</t>
          </li>
          <li>
            <t>Updates and fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-05-06">
        <name>Version -05 to -06</name>
        <ul spacing="normal">
          <li>
            <t>The access token can be uploaded through EDHOC in EAD_3, EAD_2, or EAD_4.</t>
          </li>
          <li>
            <t>Ruled out the upload of the access token to the /authz-info endpoint over an unprotected channel.</t>
          </li>
          <li>
            <t>Defined an EDHOC EAD item for transporting a Session ID.</t>
          </li>
          <li>
            <t>Provided more details and added example of dynamic update of access rights.</t>
          </li>
          <li>
            <t>Defined in detail the use of the EDHOC reverse message flow.</t>
          </li>
          <li>
            <t>Provided details on access token invalidity.</t>
          </li>
          <li>
            <t>Revised examples with message exchanges.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-04-05">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>
            <t>CBOR diagnostic notation uses placeholders from a CDDL model.</t>
          </li>
          <li>
            <t>Only CWTs are supported as access tokens in this profile.</t>
          </li>
          <li>
            <t>The alternative workflow of ACE is only mentioned as an example.</t>
          </li>
          <li>
            <t>Clarified that both the EDHOC forward and reverse message flows are possible.</t>
          </li>
          <li>
            <t>Consistent with the used EDHOC message flow, the access token can be in the EAD item of any EDHOC message.</t>
          </li>
          <li>
            <t>Explicit registration policies for the new IANA registry.</t>
          </li>
          <li>
            <t>Fixes in the IANA considerations.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-03-04">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>
            <t>Fixed column name and prefilling of the "EDHOC Information" registry.</t>
          </li>
          <li>
            <t>Added EDHOC_Information Parameters originally in draft-tiloca-lake-app-profiles-00.</t>
          </li>
          <li>
            <t>Removed the case of transporting access token in EAD_1</t>
          </li>
          <li>
            <t>Removed redundant normative text</t>
          </li>
          <li>
            <t>Clarifications of association between access token, session_id, EDHOC session and OSCORE security context</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Editorial fixes and improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-02-03">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>
            <t>Restructured presentation of content.</t>
          </li>
          <li>
            <t>Simplified description of the use of EDHOC_Information.</t>
          </li>
          <li>
            <t>Merged the concepts of EDHOC "session_id" and identifier of token series.</t>
          </li>
          <li>
            <t>Enabled the transport of the access token also in EDHOC EAD_3.</t>
          </li>
          <li>
            <t>Defined semantics of the newly defined CWT/JWT Confirmation Methods.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-01-02">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>
            <t>Removed use of EDHOC_KeyUpdate.</t>
          </li>
          <li>
            <t>The Security Context is updated either by KUDOS or a rerun of EDHOC.</t>
          </li>
          <li>
            <t>The alternative workflow (AS token posting) is specified in separate draft.</t>
          </li>
          <li>
            <t>Fixed and updated examples.</t>
          </li>
          <li>
            <t>Editorial improvements.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-00-01">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>
            <t>Fixed semantics of the ead_value for transporting an Access Token in the EAD_1 field.</t>
          </li>
          <li>
            <t>Error handling aligned with EDHOC.</t>
          </li>
          <li>
            <t>Precise characterization of the EDHOC execution considered for EDHOC-KeyUpdate.</t>
          </li>
          <li>
            <t>Fixed message exchange examples.</t>
          </li>
          <li>
            <t>Added appendix with profile requirements.</t>
          </li>
          <li>
            <t>Updated references.</t>
          </li>
          <li>
            <t>Clarifications and editorial improvements.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/> and <contact fullname="Carsten Bormann"/> for their comments and feedback.</t>
      <t>The parameter "trust_anchors" for specifying supported trust anchors builds on a proposal originally described in <xref target="I-D.serafin-lake-ta-hint"/>.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y963bb2JUu+l9PgU3vcSxVSFp320oqaRUlp5T4oi3JXcmI
a6hBEpJQJgk2AFpmXD6vcs5T7Ac4/WJn3tYVC+DFclVl9PbortgEsK5zzTWv
3+x0OhsfjqK9jY0yLUfJUfQyvb0r7xP8b3Q8K++SSZkO4jIZRn9N5tHpx8Fd
PLlNos2Xx3893YriyTB60/8pGZTRZTKY5Wk5j26yPOplk6LM43QC312cXl7d
zEbR6eRDmmeTMbRYRJtvLntvLqCF8zy7SUdJlN1E0JndZZpNqH38KcvTf/Iv
futuq8c9aPJFHo+T+yx/vxH3+3kC08PB8lip12hqOoUvNobZYAKfHEXDPL4p
O2lS3nTiQdJJhnfZoJMVgyxPOvJNZwSLUZQbuCa3WT4/iopyuFHM+uO0KGCA
5XwKDZ2dXr3Y2PiQTGbJ0UYU3ebZbHr0pZODIW1BY+M4HR1F8I9/w4F2s/wW
e0jLu1mffu7c3z6pG/3GRjrNj6IynxXl7vb28+3djThP4iO9exu4bmq4vdPo
B/hnOrmN/ow/bbxP5vB8CPOblEk+ScrOCa7YxsYgG8JbR9EMVu7ZxkZMszra
6MDIoiidFEfRn7vQxwimnOT0Iy/4n//rf+fxxH0CEzqKTvN0UBTZhH5JeMqw
3PGkW8i7/5bIK91BNpaeuNG/ZHcToKtk9l//T/QqLkvdTjpJyzQewWj+Qv8u
Zjl/EXq5dhg/QfPdsbwaGgXN91U3ukpH2SC2BvYqzgeZ/TP1cXF2eWq3P8a3
uiW99W95ChO2273oRt//1/++Hc0mQ6vli/R9nA/dJ8HGc3qxe5fRe9L8xiTL
YULpByLWixe9vefPDuWv+4f7z+SvB7vPtuWvh0/3n8tfn+7sql+f7h7sqr8e
7ByYv+p3n22rd5/t7Kounu09V589O9zZNn/dU399ur9r/vpU/fW5HsPzbd0x
/FV99nxX9wZ/3TF/1S/sHeoXYHL6r4e6sYPn++qvh4f0wlnnpEsMYpAVSWfQ
z/JOMgHyT4adQZKX3itw8uBYdaZxedcRZmS/gMcUzlSHDhwQ0FiOa+WlQRZP
O9NZH/iMOsrOO6P4vTrw0+I9Puq9uTztfp/EcFK65zFyRDixxRHRgjqeUaTp
5Oz49TH9ewh87Si6gVOS0L/lWsDmIm4uMs3xG3F+m5RH0V1ZToujJ0/u7++7
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
pHPmwP6B7R509aGlCxwP7dlEGPmorZg43nckKL/HTYaG7mJk5OqSUnwrSkBR
Y/7wuGiYXDuClYVdwNYHcOGTBncXj25oLJe4UtOEdVLqIxrDuRqJy7kbHYP0
RkObJMmw0MMpsnHi3LtxH6XHXht+HIxmQ7WZOWgZH2LUheoGiF/A0g2ZlFnU
uIFLijWlnpFUPKZNa0UXHZDHGKiUj6K8kqNgpbfrFrYLFs8RyhoIgi48OqdT
EEzoJ9iJPrGPD8kcmXjlHPKmb5EcLUSkbh5Sqr3B08HBPt4ntKjHl8JpNG/R
Chl8WRTZIHW174tLdcelShWP4Noo5kAlYzwUuB3wOYgaU+A9ffzXBPdtNGOZ
ibrtz9LREElCn59pjgoaiA4FUgbdWEp2V0oW7Fg3gVNLGjhNrqpGicyBTx3B
mJVnkELacuLxjeRjPJ6OHEZvLEhwR+A72aSfibIIUyf9Rc6L9VXAwCSf62XF
BkTkg68HIPDh/C4ugdLhoIzTUZyzqDyk+wJXH/UXvDtR7QgJGTd08NFYDzIX
NW/p/8reU91XZxAojOGcDNfEw8BxAN76MvHSvvKtZYlJ2QTokU9g4shvtFe0
at5mibE76se41fCDdSf6/SpGztedwzRtPrfrcDk+p3cJk5/7TYNp7vNnFAfp
0lZ0x8cZJNeEWrSmjfIx7lIxm+pLtTJxYpXR5nsyQ2U3W3UrcUMkEV55swI8
H0sJ8mejvdyyBHqBiznIdmVO6lbSKe5iZB2w3CBUn1/+tYB77TVwHRF0Pc3H
PYWkB8QjEOGHyKpAuevzYiitmae07ChtPiymAl6+IqGQIdTOZuMpLRatKAy3
w9Ny1wmI+dGj6IrYcjbKbufRo+jTo9L8+zPzOqQxjNMpotart5dXrTb/b/T6
Df394vR/vT2DWxj/fvn98cuX+i8b8sbl92/evjwxfzNf9t68enX6+oQ/hl8j
56eN1qvjv7dYImu9Ob86e/P6+GWrwujoHi7p8KcYSAT7xdacDThdgzzt85p+
1zv///7fnX1Y2/8BVL+7s4NqAv/j2c7TffgHXmXcGx1Q/ies2HwDmEoSEwuC
Owboe5qWdGcDjRV32f0kQvEF1vObf+DK/HgU/aE/mO7s/1F+wAk7P6o1c36k
Nav+UvmYFzHwU6AbvZrO795Ku+M9/rvzb7Xu1o9/+NMIL/LOzrM//XFjY6MH
4iLIn/rO6IA0QRovklKhD2PLpT7ccUeVxx/IiCXXO7SEP22ibrBFO3uby2+v
RNrzXUIgEkWbr457W/jS9yC5Ct03vv+9fEBUBlIHiDUtJqkYRQAyCpBAu0+a
JeyyMj9ZRwXY0WiU3RfR91dX5yL/7uxs8+skJJN2AWxxyiYUptebGK6yFCiL
DioJd7RmOBZYi0EyLR0TDqmolvGsrW5wy+bFMyGOYJmhur4JVpu44kGeTeZj
EcRhgBgPRwNczvjVZvFuwtwwMUYwc4vA7rMPj1ibGVN0xnJkisujpgkbj4I2
3ZCOIY1lAHQWyj2eo89GdBPsGYPXCqUicofWi6h+FckIRKYt2orZROwR3hax
s2KNfVLWakcJdViQbcAhNdP8tMNb5FAUyEPo1MLBK79BPrhL0QiHF65r3WOr
9W53m5vEkDqkBfsqNLbctki+VVNuWwsCtXY22Da+0gq4ZwKCJ0vNcXQL4unE
dIIip7FhgnTITZDIrGzdMWpBt6OEBW19weoVj1rK8N3SlhpkvcSJ3QVuy5HE
SzmF3eH1oQVLWUrQVkZDv8awqdbtidFinqTo0cAZlGjwPL7ktXpC8m8HtSy2
g7Ihl45qsLvWu3/E736c8ObOUXmGY5VOY/IYyEbT1+oktdwjD03AYMNCv6gn
9YbXTTPaLbM3JM8Wi8222u0QF76QqBeep8+7RTEyZqsqlKKPExsFknGMLKYI
7SYrM2kpW1U44xrEeW7ZBRwdjsR+ODB4ToiZm21kIagHBxhNd9+lkzifK+fD
RQJyRAGDlHVD49eWbWLkvz7d35XDrJrBsJDoRG989BKYzAxvn83eyclL454g
JpAnNfsY4csoeqojTqYy4nDApGntWd0F7sb+EbSA9udAxMjvJrfMnErnMdqT
1eO26Zxk9QJOK/Ncn6BOWe9DHpJns1vyP1UFMOCY5Bcz5thhGt9OsgI2FOlV
lM7CFXOVOvJMlBGx3rLCeAxS12SYfoz+rJ7SqnWjk0DLbIstmYdnNyX5M5iB
a3syLQDa8HJ3c4VzT2A2JPBrcxbfKDgash0VbAqiA1o3wxpdnM10s4G5J0hw
Tx5fvnl1ev36+NXpYxo5jGwE+jHZq/Attllx6ArPRn+geQVSCpuDWBillb1J
bzuD4XDUoSd4fd7AryCjOb+C9mY0+3b0KXksWsR1OnwcHUV3j7d3HgPBPQYG
BYz2upjB9VPgk73PQEnxRDSxT9vm5V16qvl3hjsXnQ7TMsuPovNRAiIZubWV
vACrfZvHU+CNsINDvA2ADmF/YBW0PwqPvLJypevtwJR7lgXmC3GJTdEs6uvv
BPAfONJ6pHqN1PzRq649qW/gOv6QJvegsmXy188i4xVyqG7ZPjSJ1AvYM4zL
1j1dacUWUMrsNiFdXK8AyZQhH2c3+m4OK427hRvkyhpaoAh6jpV/jEJCwh4w
x6FbkRjq7iotyMxlrnFZbXmhe/hKCFTic9G6ymezh99OktusxMHYpgzH5KHX
rlaaItHlPgG1UqQ0WYUC7qypcgczs3ZkyWECStdIUZ6RdWTzkVWBjDUGxQyV
MzLrwztCGTBM3iA4yvU2aZo+ekzypLLuNXvFzLJ5Z9gYiXo0D4H3hgVCa/0x
fALa4T1oiK0xztQEfwb6mmYjEKgS5kyWQ91409nRi+YxGUPQgaTWu6BDozVQ
yxFePyx4Zxpj4I70xl5OFg4t+nC76HlDJNOpK82w1DUnA2bjAtsnrlCG7PuY
1jtTbdK6k2OnwJsWG/X6U9ZxEQ1FHDZyIMrBFWdp91nF7Xl24xjb0TPO1n5x
V0EryJlTtrP3tDowo8Ggtg2TmQJdy1E2QXsLfQRkNVb+EbRNKnmgIipSz31l
mmXNQZ0w1X2b9dCixHCc2ZR80ZWGhilcXyX7hVznTTyiWGI03UcqyLPG8lcT
B6ok7FFcooiSTdUxQKWAuQJKuuyjD8lzZ5YB0USm1PPfttjQYSL5bFK9Ccin
2UNPofFP+mQk5Cyb3fO3z35VXDPQQkPcdbR5enyyxe4+NtPTkJQbsKAgs1mu
/FuOfbTi8Xvm+fs0x2lwO6n4DuI9dT2lhVFu0A6tPrIiVIZVr6YTHIi+MHf9
qQfS/WWriWpUZHYyIEMC7Yh8ZM4QECQw2KkWvagp/GamPUIi6aRDLRkv58Bk
QyldFRyPOnIcExL3tjjcRZ0Vsz/H3R1nf2B2LyRQZxLJqOGjUYbcixacbSMx
z8MLIelFyc0Ntkzazi1fjSYajzaEA0eNCzcY/Uk3lnGHm2CDYX2AF0VZ4TaC
bMuymfE+4pR6VlfMAOuFIl7KoYr3dOiu6o7QMUy0akSHdQ1bF2qODpBENkw7
Ui1RwI2D4ihXtSKui5fCrfiSbeh4mBagyqOIxQG4HhfZhF+Jq5lT5caTwCHb
sq9I/d6C02yHDdunReg1BknvvnbcpF7D3D59UhyxoyXyz+jgHVGsKznF2IMq
yoYOWgAGj45NDKgyx9p+igO0NApppyPRoB28A8bCHumA/N/mTxTHxYfbDUyP
6EVL/gESDf85vsR2fl62nfoXf+Z2/vCt/IleBYPY7eNoedfVV39U7TzMeH7X
4T/R+ZvLKyXqdFb588cHHc/Pf1ip8+iYz8qVNe7frTQeXAPVypklT0ZfdZ27
qP103k+AvDkjR635HxfSj/Vn0xYArne2VhjP19kvtMXvRz2JeXR26ncrjMed
1+4vPq8nvteM45GerNrOw43nBJmyHotw5ZXbiaqMPDinxe38hs+FSzx7LFSs
MS++ha/VPR+B8H29Z0jxlzpfTd+G6LRX2dJfcjzneZZR+B7GfIhk9muOZ5lz
s8x4ljk3X+Vc0NmQcSu0Bff2bW7na/B5Mx6xTtgD+iXGY4l6G5+OokcVGZSz
aL9tGcsxS6SW8kJc4kWW3yPqiwqWeIFSaevzxsaxo1zVK26TgCEE9UFSw1Dz
QtsLhXYPykrUf8T5qUiZ6K11lAfXQKXj//THhWUZjfvZh6TGWiW2N/0dZzxJ
FF4ctbTarqMSWspYIAFYBk8hIy8hpgKINUkleHjmIjUUHaoWMK4p33DMISRq
aSzdi+Lj2XpQomvkQ5rNCtBPJCyN2HqP7RbVSYijnd0WJgtFKTw6lhdzVyhS
Au0pborIAIaGixu1xApJL+rVoR87/KM293kWoTqDZj9B4rKShkhfs7shBYvI
Q/nyPeoQmxJFe7MfO2DYc7R122ff4NM2Bs2dbceiaQesm7wWctrrfBckfaPO
izvP2rslLAZqfflsdCQRh6fdGXRyWuxITKt+TpIcuwvHsGrbYMXECmLqTrRJ
qDXJcEsTLmzi2ym6KowF1hzR6gaQhizpWs5IbHNLHzNmxObHwGe4zmlZuPtN
BxM3nWzTMw7/CNB1jihUE2NjEwOL1bobCEDRvHZHajzphE1FEkt0L/kTyccp
5QbBSG6TEhnHB/h6SNEzGJRiN4VpQGQDkL0KWQB8nd8lbGdN19Phv0RvX15X
R3X99GNalOJuqtPOl9PPl737V1LKl9DDv1z3XlvfXlvHXmKtZJks/ra0bLRp
4AxtG+TifvGxryFImt7WF8msK377JHpLh2/o2R6fLPHtSv0KbTDrFM6paHIV
3X7Vfr/g2981SM9fJDcvtVY1UvLX6teXiT2eXCsRIz9+q/ixnNEL5scoCD+K
euQt7oAY03PSZTBwHlNNO+i/lrB5yyU/6yuvvJZUWawjW68OPqGjayfC+kKk
7331c1xUeFJqsm3b7FTgrL9jScnBGxeNyfVW8eO3V9+/o+Q6+C8JlhNyn9IN
HxCw4kJuArzllXfLaaRdcaxWk7NECjROV9cVdlWJSHF9OzA+PVXjQU4oj8cK
4qDLO5nEmIVBYRzaq0afoLv4bCJhmTNQNEi+KZw4ENEaAql1zd5oe0XgsiZT
mh2IWpOvGMphE2fKIv+8KGWDLGdiGnIghNAVamRqLrgC767P7AgaPTDO/Y3G
8TRixcdO0Q0vgp3Y49LpxeVirUpUNenMWxqFZYCpMe+usfuWFbOncryUEI/4
Tx0LD8/kg1tPHHg8cqE8gtPeKTM460d8MGGFZXVP1eqqYy8nnmNJ+CM70qFW
q3hmXJscOmu3E1HmSKGzqBzuULPdlBYca+gb4ACTZMQEfzuLKeAi8Z24bS2T
6giXtgpst5Mx1KZx48TpKLl+qwk+orQy9kNcjuYI3LAhlV+F/tqqC2qWFCtI
sFxRKzZYIwiC+DvczhYdYx3pAPQwk7C/yWzcx8iJm2iU9vNYsgMoQAYbLnWG
mkresnJl1IuSVIhUTmofDYiXUemhOkBCZ2koLqmCiPihTtdYMh4DQQRszloh
MTocsFTXg8mNfTKsXIPQZrSjJGXv6ipsiIJqstkIw4hxE9KSXMTvmbWqUBvS
2hvZImdy90yHoVhuM1KVkI43DoGlTES9akilqw+o2djAMFhrGO0FIyayU8SL
oR20npRvyaTDSyc5NTRYhOLgQPHeZWEjNLSr2AuFDb7AFOLjLRTLAC50CTYH
F21SYmRpHWUwq2G/OUUKWriNsqQY+UtXpgouU9gNzqrxVFsfD4D3pJMWUg1D
ApBObe9zWoRRJ5bI2W/TBaasCk6iCJ2jYZZwNFQ8HKfObdSawJUxbBF4wfVf
MZkzbkrKZ4vaYASrW0hrKuqvgSz4vuxd2ndkrLukJMKoRRtA6REMecJpoXNJ
f2VsUXUBN6EZGJtWaNNa7weDokXTgPUTvJYGEsDEQEUGtW2qmbQ4KSJiJGpW
/o+iHX0fcJRLU1ChC0IQGBWH7N0lg/cI4cHCn5tPW5SZjr1qDvJoUzQ/LLFD
sA7jNCOoUB4me6swRoazQAKjNYoxKJBufLbYFt6RYKZqNiq0+gjvhFgNmTBg
RpHgYCNgsTclBb1gqjF0JPFZWg6nyAmrT1YDpF89PLKqaXgITnRUtxmjc1h+
KoWzQh4jTgF2RUgRQOw0dC9C2B4QS3MI1aD2jeAp+gmj7GFMGhlC2zbQANIq
JZzgdWttLfd+rOy5NlNpOs0UuKlaDCw2Cvyw6wjmphAPeoL5EB2bqE1ko0yC
fio3UvkULjyMl3MRGqcBT6DyYtBCxmUwO38hcKaK9XOj9tj2bAy3tP14UFzS
ZLAXCZKrW7Vu9KYUbCPmHb2QkKtuwmEyQEV6yDhHVrhTrWhsgprYiSDPKDlU
q7JCDnbY6GIVtj83J7etnFcEZ8NwHdWrx8si44tLh5iqo/vOO7uuqdb+gzYM
BrkXFWITM46/3e5u72Lljehtnna+z4ryCATYoivTxMoPLfX0PC7vjsTpQj+S
CAgL+YI0LuC2z6PNkPBL7Z+z4E1Yu58YcPcJLNgwJeSKJ9FBhG0n4+llMimy
fP/pzk6rrd5j5AoynT3H9/DYmqfCwvD5PjyV1qMoeQyLhulB/+jsHLSju8dP
n7/YPd7f+e5gZ7u38+L5d49/5Fc/b9B/6lYOrTYOQSibjSSjKd3MsQpfuEgu
tnmW7DfklNIh8OLNqPiTNMYiGVDk+kqUvbs2RjotfSmqolBrdbZRfxUP6BLq
Hosntd3QcJR2Tx0K74E+h0LYwpmrOhlKAs631UsL2KJzxjlldpnTLWDEWuG1
fDruGAOeSw4SnalMQ9/5yHnVqj3OfprcZnxp2D4m77ZiRTXFnBzXauWabMgw
QUHcbe3Lc52lvLuYocAd3XM4ssIxZOdujxiSYyjTTJnywhE8JRmKE4zSYdWU
uBX9wUU1UZocqO46siwzpkx+7e8dz0ZlSnsXWCAlyqdKrwklAenexGKBvjoT
jOvlexWGo2uZBCVblYkWGrGbg8b3tQMjaWW3M/Y3iefC4appKZ69xeSmuaHq
vETlXORGG3HF4Fix7xdjGRzCIuxNlNqVU1Ro3veLiqWhT4iydGP+4X90Ohuc
J/mYM/6OIhGkSbD0AqvF1UIHTWAMhwymOinSoQRJM0kb32nbpjUg5u+JOvmw
lgzaoclIf2SfJ/ecaCHXJsgt9MPO2SufFpPHleYYl44ohkGZaqfX1rNRyThm
JFb/f9rYeHV1BPxfN1SJMlCwPosXBXYG8451ctS9bdty5+EbXQRz//gEhpqM
YUtpeaVXwgtQVMJHsW/OHi7EZg/d9TuCtDthcnc+UCBX1a92tyQNh3A9GhEG
xcq9I4C+TvS8ergrURV9GIQagqiho+Q2LdMxp+m6bEnzA/kilbzptj4SMzUT
1J4sOrDjUDD1F8RNVIbZsNJrRM5jaz0Cu6cDhUcq6hlat5HzWuB6OImc28aD
Ryn6iLoYYCqKj8glxUFOFF6EZ5d0F7wBipSy2HhrbDKjh6jFxWgMHOSIa6LT
H+lWwy1EFoFGXnjl7KSQhDqhpwnl62vvUXej0/kjD6alBldR4QkFie5tTZau
kS9F+QLEoKLxPaUZ2sFGslEaS43RN+Vc3KS5H3AhzT4Ie1RRLsGJp9W5SH6/
P/eykJtFrZUmWVH3m3qRi13f+3bbqPFccqu2as10QNk+Q1+2sYSUmjVCTNR0
NAokMknYVCEAL7ovPwhIBA9KbBToYUe44LtP7kvDz+QsB5chaDkGolIrjlwr
SSekbqsuhslNDNKG6cqXJHoGQle2mjPlXCPL0vqnEU+SPCdwQxBjWxLm8+5a
PmvVwlGgqLDnu2b+RbU8+rOsqhdpfe8e+ZV6J3lM+PzIJa+JEh7bSl8URI1Y
T88T1WBVdS/stY+kNoWvCCLsHTVxyQfu0yNHifChsgw6jhf+SAaUmqBJJmEy
xGiv5eAuzwjdiVDaWaYklHcGfKD7mP12eJ0lnJIoZ9GEE2BqOVotsLjKxjfR
mdYtNC/DSAD9wA6r7Em2ZI0YvwAt3bSpzjV9FVJQFjep4gvjJSIMF8RBkhey
OQpxucjDhwogHM4YGLQsOIZQ1PKcIgh5JWS8TmtYfYXZOqMZDAsroEO7VL0h
oPE0T4vEV0M1+VGcr64GI6hcLAKT5LjF4BJaGV2CGlz3IytJJpV57l+qyt5R
NT+oy6TWhrE4/Jobh9m0NItSjpUa/Hq6qVkAK5TllK9+d4QcBgrE1CDiEEmw
CMcERNaBkCqrglVv0o+kZVlQSlpeHqU3CYjWuiCDkRJrFGRSounygy2f5QqO
NM2Ng8yY8u0ixUQVIjzw+FAgtGHFYiPnKEsG2wEcKqMAdNYS6phUOFpHBz2Z
xbO5mU2HYlzoheelEeVconTI2e7490ipGyuysoptYYWxILCJrv+Dgpgx2ddI
a6QgcJXnTp0x47D73DVlhPhJAGBvNBKZ1LXNqDPqdkqqFdEIy19+URHWhhhx
Gb2VaqOVSjmwrFKVHpsX2ps9XYuCX0Oh5MougFQc2IrUKpfSgChf2RiQDI4v
UdboHZlgRQzzodoRwDnIE8cSvjqXywTmsJ1J+doswAGDxVKLMiDORXK9FY0i
665DErIhGhwdkanY1cE+IgtCAq+d+6Y4HlruotSYfYoSvNAmvouDYT865kwl
gqwc+iPfLxf7U0GcEYAF1nv5toZjRlYCvRvKjTvLJ5yvT8qD7tlJNFqsL4i1
AVl4PDIHwQ6MszDYNUaMhQ5EoUeMFCxMwRC1YyVzQitZcxsk19KMrbx5aGaB
2lvhsBvJCRE/bhIrAaPH24hzsiMobbCPJmCZasqNg2PiOL6trkixWyJ9xoL3
8srAyTjbSxV6W7W4UXO5t+htMWOct9SBUaX1tKt5DOH6HdD9CUy7TyaNjqry
ZYvukwRbR+hKfVyLTNEbdIBQ6uR8FqpigsSZqKoiHNeCJNuAY25H11YohH0a
mKZnwDdMGG+L333H6QEBY0INtWGtnBBeUn0hJgZk0q4WD4cprRzgpWLDflhW
EHQdKIrH2W40IyBRSl8gWRBvoW/IsVfjH+TqFhxUtL7c/AC+Qx9oxfLiybY6
0ogx+4UVNKX4dDHPqXlwx3/XY7NsuFL7ZbHKwE6SDxSL5Ycua4Q2D2NOW3Yx
Hx+uzFsRbWCT8UJSHyu3maDyaBHaqouhIf34dtZh5m5RiXvBxJNwQg5UE9yt
hIIOorrEvy+XImsrtTXqai6IsC/A4fBBgxglTjSasEAMmwEtFnV/HDY7SVnM
8RrSCi+XGLH0XBRtga3dqmp3BNBNbmkVkMmVUJIY0bM1drdbNPGb6FhVRlLk
bOAEPEdhCGnO9xeb6keBCN3CDyVxJTsDDO7rEyuUN4Lf+bqWGjXWSpvz2sXk
7FAML2+ECuK1nXyL4nQVWN6DB+pGUbQMP050oVPb1CGyrfyIcUlOUFuDprAg
LEBRssGNt/Qew9tNurm3o2o1rQmiBSrX01R4fp6Rx1KTA/M0BkGntwcYrB0T
CQN2o6e5hwcKnw6HMFePzsOEMPOJlQAPY4EQZVNpTsTs/aCNMhwlE41jShQy
xQiBCTJ3ds6TaaIyN18EiSfzhcJHvcpViexZ1JmH5AgDH84n8Rht2MAmwvnL
0abR3Pz7Sfl0+NQGzLBbKw3flpKohkd1AZcyIFP2NmI1K38E9w4bhmFMPn5b
PDFaOStGtHX+5q8EU0r60PJB8SZMUYLtdUSXn5xXDXIJdW/F5Jb5bMIaDHt6
42HcTzEJaDk3mEqJZU8YZsluia9oJc+W59wy/i12cdkZx0+iHfI7Pdvb34t3
tne243h3e39/cLDX7Xa3bw7jx/pLDl9EY6y4X1yIwd4PV1tKI6LZU3A7KJVP
2k7nWr2Gf+09g86Tx74y/dj+QsAEgFDJ00Yg6Yfb2/YrTD7KEbe/4/jYOLaS
dppdbHvbz3aSBP8b78Tb23vbuzDVp0/7A3uqlcmSM9Xa+NBE9fefLQ9fowPQ
dwHCHwUH77wjxbseyw9H0T+229FOO9ptR3s/uq9WAOe3K8NqditWj7LvVETO
z8Y+N5VfG/5IQvcNNedSNJkdiY/cTz89crwNGxtXIIJ8yFKVhYn9fpTIMhN4
QyYwKcowqbB2xyTEJaFUjVg7jWidW6JZReUslJCAdxTUUdnrEsy/5I0Y3Jcd
blQCNR9Il12sMT68OqtlpgXaLC9TwCHkgwP7ESy1k/ENqiSr6drVvuVZOcFM
7eNEIWDjTHvGjlQfwSPOLb3pJnmp7a/ask5DsR46WtGSYc8yh6Xjj1bbMLdy
NNNWdFY9Am1vQgt0slDu5LLK2d+TsmqBZ35SI5eaYa0imbYteZDPcsg896WC
toEVWFqZq5FvQ12b4h/uTCrxXtkkcV8OZWXJfekoiQ6FilehJj7/X0tbrSQV
a45UETmbSeQXUGJ7y07B8TAaC9sqEzltzoqu6WJR8eKqPShArRRfPmLXqAaQ
v/e9JgvId3mWqutPJMMH5amWTm2rcf007KJvDl+WrL27eKKXxQlc7H2Zxb7R
trzoal5se65uXFWCClNiRa3TuZx9G2gOWe6HOCerM6hhBZexycgUjZfHOJ6k
09nIMWoOWCujM2W3Gih5okppXFzaIbqSBelHvtZYpvtzVVY5GVJYPP6gkyUl
TMCrVRudJFNBgBQL4qzgsFDxNU5H2ZwdVZWeMe8UpyWj9XEt9Nyc7FMVxEUp
sIO5Xkvy68onAUeYYtmYJK3uJDblbh9QpbhQ4TwR4KtzNOEmJbm8RMgwmsN9
PKdNGGdI3kZ+QHxBFRFUnbGIG45X8oWUP1cGe8vMrqsyXlxKDC5oHj1WDi6T
ktYXRnWfY+IEO/IxRfx0MsjnU4SHtf+5jUElVD1FkosaqBoNDyQkqUyli0sF
97j8MC7T24kaA/59JwhuIjsq3h5VRFwV9lCs37Jnu/72EI88PYZbaM8EunlY
zBQsrSpJBRJNVN12AmV1YAMdLsOucs96VWO0ches7c0Bw1A/xBMBUXDQjmo4
VddXB1axd/Ue0tzVXN5B52usYdeKCFYD68yZAGuKryY7zZ4bV302eUmIBxdZ
NpbY6ScRnEd69xDe3Tk43Ns/2DlQhh+yC9HTff10b9s8VaHZGJLNHaG0D+f6
+hbvtDEQR3I91V0p89EzyzqzutloXZMR22VsUxERxWNnMM1moiVNRLXmIRzC
kmahgDXIYyjG/HOuD4M2+5ybumKoyS6BeSHqug96UbFWE1Tyg2BeIFexQC9s
D5CHe6EGsTLuRc+DvbD7CCBfVAzkywNf9OpxL2x/awUNgZyvFhZCz4ZCsLxa
K6MhSECSVcrSk9iQTN7qiHY3M+HTo3pfhAWfrEZUF+FkA0CLE6laUzlUB6lk
eZ8C1BLKA7Q0BMnwqsdcxmCOkSRZ5R8cLa0etGqJEnCqGmQhUdXumE3YT60A
vox47RgDs4moVzXJ8VUhlmxn+CYLlLDqQucf0jjqVQQ8L4oKvWcqKKkaT7hM
7Tcf2qUiflT8ZmQgXN951iUIeMdT74bUt2tNqoHEvC/aOitm3IOGvCP+SPjp
FzRjnU5KSuLI000Z4w0mBye7rgJnFeFe8V8+dBVUw3iiVIxQhk1l0BRtjMvh
rAYGG9fpjxsb1dVjHC2NLKHxNReBMipRFgZ8O8PoDgwrwqGhvFmoqnDQEjvh
q4iYgZ20QsN5HVCxBuajKqs5cp2s3iQj9P3Czz50Tg0CC8AdiNxKpUBzWosC
zFJxsTqQ50wZVSoBrlYiBL5x3DvtcG14XfjTAr5sOsqN1OxHN8MEMbqZ6vmh
tU90zbiYR+L/ZEEUF04wwKSiKnf0l8s3r7WfiIWBQoVIDcU6UB2M6ItqEMI3
6F6hBpVHQX5TIJ+qkkDJRsfxGLOW2QLCUapsrE7inDNFaju+oSwMOc9nx6+P
oxbJU9arLXEY5XOXxZDbyD8IoNewik4Fy7XofgxntzoGS4OhmuBTtuXw5FQ9
hio8rDUKt8o5yRHjccyB+4w9gpYPBt57n8zt4WooEoewJcy+cui9odLeop5y
q+LSOZqCSjFSVQUJmbnPLBSq+RRtWCLv4dUMN8uUcyIw0H3SsX874lg35zUn
obpSPH2iIp5LjsYlvAgu/078BQvYkrqpykkqldfYiYDh4pzJimQUU3GEtZRq
vO8mXeuignbxPzuIXn9niNGuwDmGbYhB4ptLvL8KnYzrJi/5LGyPt1vD3Dvk
ksIJ06lIR8okyl0ympnKe1KJEiYmXFWCMOI+0QktYy4mJT18ytXXmCOWwZV5
BI0G1/dDmo2odcrWUYuGkAG0zf7uN281eWUnlHRlXyM2tgjZKtw7QiPGWLGX
OtjSCeuim6YbXfJQnesDlQsVz56iEevjXQwqAQy5hmRIWawhGA3+7IWAyldd
yfPVB41HcZeMphhlSoHwXm1vjgUw8SrqMimqRWV1YC0XlWXazLP+rCCrnWVJ
MvoROwPDMZF4h3WgawX9xtGQP0evUejWf35mHj6KgdWof5DzLbLfuVAc90v/
/BydKKKiEgZf1NQVjvNnmJIxEfCDbfutPgw88PGD/fk5OnMc/7E+jGs0dU7/
A1MSktMPduy3CLkZ+E6ex3PrZ0aTecU2ZFqcfL19+5msGbXnYLWmXp/LlBwL
DDzYXXpKPfoSzj99udak6qbEg4pkUKtOydwk/GDPfusqZ7PIC7idE/Pzg/35
OXqlb6rw9bZCU5rw4DbqI96FerBvv/X1p3TJ26MDAWhGv1MaFg6OWJ2yCTQ1
pXcJlLJruHrv1IMD+63yq7OHtxdnHereyl032a0rNWV2CfTJaxLg+MGh/Vbj
WfKKHvaM/e+KmlvidAXOEg8FuV99jAFuKc3daUrvUjq8tmb1c/Q0MCXaLD21
n9lpxkGklsl1DQ6x1pSsmBtrdtaUYGCF3ccz+x+z0DapXWqqZL/k7Oo4XlPT
m6fHJ1uERVa4TZldIjUIeI48eG6/9SuxhzM9pjwbLXmirClJhEyiprSzbb31
K03pQo9prSmRWfw6ngxgg/Es7exYb2FRjsDH1O8VfgiCM34Ync/yKSKZG4rT
lQec9zzGETpL9LoazyqrI1Mi2J963Vm5Zip6suWH4WEeAQ/dPLc0m6029rH5
GhQe5+cW54Z92xrAGU9y9OJ8E1kWyyM2IYYi9+OJFwtqSkW2jEJG6+hpM54Z
UNuxNEC9rerYdRhVlretfRr4TGOCWhJRjD5Fg0/IUqujURFtDP1KkpkoCJzw
PuY+Hu7P8lFHG6B8aE1RdvYP90nZURC6UwyhwXAGvirhssc05TwRrDAnCMWO
eDxjLIDQcA3Efn9eJjLkyoiX60ir3qhCs860TRqzSMZNRNGsW1b1wV1XH9SO
Kmwm5azGjFJMb0y8hdWiATa0LIpUvQeUV1wyD6ZbmnVf5rsJAYb5q0L5VMiw
xE+TERt1+Es2NVnj8ElJa+CGjPSgIgkp8Xv191e3sdTXgU3boU1j2f+daCRr
7J2rPFR28HDdHbTb/fX30R6Nv5vuEn7RpvpNrbu3u3IgSQl6d71f2VdlWSsc
A6GtOsFXVSzgA98+YxmpqkSu2nHYZT+DyzyeWDN33lQB/imZrPi7/4CrM/mP
aHP7483BFq7Cf9ygJMK/7G8F5r/HtA2aEuEWLjl9rVm5CpfSsyp5xoeHsAjR
JnDGTII/EcMRya3FEqzfRKt5xfR4Fy2Y9eLDrNc+rRfoiO9ISWxgA2yFhXuD
Tu6EEHD5RIOKF9bu+JTZtFVw1pxyd3EZYVmjyr2rRxW4de1Fsd6jN9jVL5dz
ZcYHTCGgx7xjbWs11reSrldhigdrXWwqH6ChWMevyCYXjq5C7Wbt1+WZbhvr
MstD5dziD2ko7FIqY0reVVlCj/8dHz1GTK3ZWEtGraVsCpbH7tMn+qLrftE1
X3TpCzJVfxMh9OpXJNOw/h6g2L2vQbGOWNlIvLSf9plegZofioJdIXjB6Fxi
93YxSPDtSivtOirmwADzonMoKn1VD8Z6nQTOzlP37KD6bj5oOkov8fPKUQrb
spyzg690+ZXuueXjpsOCxqY1ZNglzUHtKvZeiuEIsNK8GpVj82yNQ2PaqzsS
s0mhEFvWYez+58tyeDMwn7px2V2S9vvwaawyBpuAubk1GwoQ6TMm0kpTK5Pn
QrtkgMurt7vO2118W3F4ZbproNyKlO7Z+5rESt3+IrHSevFhxMrnND9tW1xl
fp7xr2l+uv1F87NefJj57bDhw7E0NrIfhcbJdpU62yBewxL1UU1Z7EYO3lwV
UxKtOhJdYbpT5ZjdjjTSMeGT6PyYqdg8NS5XZqN3Nki8MCcOsdCQW5QHYRvk
CookeZXllJvAWJptb7B03pyBerySInnyaIytAK8D5nGKrIvYnoLfsd9xG5PK
czgrKw9uoKYdiEOkwkQSA+OG9CW6X3eEmJJZyGP4J4fG2ZRgD4klD65fUrGa
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
l6pMkGZO/3b+5uLq9OL65fF3py+vr747ud49tFJrm4ym0lmHOitQ1LoJUo2F
m/hYwl69od09fowA3vvbW1Z+FtpOynkllMVuDc9reec1trdrN6JDmvhdHCNt
+oTa/OKjHLzm1jjJyFT/z3n9DZ5X2Jjf5il9+t/rlD6Kej9cUVnEVMWSvOLy
TazigwzYGdyXGFd/o1wa+hgwwbmwVWjYwiYHdpNSEcoGowqurepJfdiRD1kj
QsV2HKMRhAQUCrcIdGOLj5g4e8/RH29Q9Ua7zB1KZPD937oH289BTM0l7iAJ
TLnz8WCA74u6EeqtJa+0LDtZLJo+UnKex3PT3cDujkQsOJPbwfmZhmFCIywB
yy5HpjPztPfm8jT6HnRt2IBzTQsed8XTv3eoM+7eTtT4votvV1iMfnzbvBTw
grMQUd9uf7XZU1s1c6dn68z8+7i4E2iKypyDUy6bJ1y2PD/uHXbg+lNAPxaT
Q2UZFq9CWbsG5Zp7f3EWnaOKYzJblluJWfNKzNyNx26o773nzw6BP3IkrIlu
0N2utBqz2tWYrbcaFbbQW+IgDA4GTWsBjxdxg17gOFjYLAWIQOjT45jiYQff
DC8J9RVcEnqy1JIs7jjMNJZbqn7zUvWD/OIB16dfuz79h10fzVoqCxNcl0bG
MliRsfjrtf5y1fGbwdL8Zlly8vnQcsvWyIUGK3OhB1y5Ot40WJo3LblyIrKp
6PSYGr9GC1x1wd7D35pW7D1VnbCXDFtn78bec3R6DII9MSPdPkD/B1kLbTR9
yiVlqO+5xEjRgyK0cDyC4Mrxo6XZulJvcIl6lyss0aBoXqJB4S1R7/IXXiIc
Qc0S4aPVlyj6y0K5/6dV5f6/rCv3//Rbkft/suT+BTL/V5H362X9VvSXyzev
ox+SfnQJWmxcznLOmjqdDPI5g3ctQQBPD3YOyJKiFHijf6vox4GEghu4J0Xf
xqwhgSIW10w1bnZ204H/Q9oWuwG24ODFKX+mQYln/k/Ib4ImP0xv05IDRWG6
1PZffrhcQ3uxtrRREvlYI4mspbk07mP4lLjmmyo1Lto0YBwvcFekGklCvTrD
RsePXjncEMxEka3Fgsw3HbGP2F910QUKO9RW3kfM3NVQcQJ0JFY4njmecpq6
CjJtVtcqVRVXVtZ++hdR1h7wAK+jyf3062lyZ6XTIC0EG7TafgIddPbVNb8v
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
TgJ2gF/tbe/vbW92Gv8PrAnS4tzTAgA=

-->

</rfc>
