<?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  (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-ace-group-oscore-profile-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="Group OSCORE Profile of ACE">The Group Object Security for Constrained RESTful Environments (Group OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-ace-group-oscore-profile-11"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <author initials="L." surname="Seitz" fullname="Ludwig Seitz">
      <organization>Combitech</organization>
      <address>
        <postal>
          <street>Djäknegatan 31</street>
          <city>Malmö</city>
          <code>21135 Malmö</code>
          <country>Sweden</country>
        </postal>
        <email>ludwig.seitz@combitech.com</email>
      </address>
    </author>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="10"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. 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, as well as proof-of-possession for the Client's public key. Also, it provides proof of the Client's membership to the OSCORE group by binding the Access Token to information from the Group OSCORE Security Context, thus allowing the Resource Server(s) to verify the Client's membership upon receiving a message protected with Group OSCORE from the Client. Effectively, the profile enables fine-grained access control paired with secure group communication, in accordance with the Zero Trust principles.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Constrained RESTful Environments Working Group mailing list (ace@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/crimson84/draft-tiloca-ace-group-oscore-profile"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>A number of applications rely on a group communication model where a Client can access a resource shared by multiple Resource Servers at once, e.g., over IP multicast. Typical examples are switching of luminaries, actuators control, and distribution of software updates. Secure communication in the group can be achieved by sharing a set of keying material, which is typically provided upon joining the group.</t>
      <t>For some of such applications, it may be just fine to enforce access control in a straightforward fashion. That is, any Client authorized to join the group, hence to obtain the group keying material, can be also implicitly authorized to perform any action at any resource of any Server in the group. An example of application where such implicit authorization might be used is a simple lighting scenario, where the lightbulbs are the Servers, while the user account on an app on the user's phone is the Client. In this case, it might be fine to not require additional authorization evidence from any user account, if it is acceptable that any current group member is also authorized to switch on and off any light, or to check their status.</t>
      <t>However, in different instances of such applications, the approach above is not desirable, as different group members are intended to have different access rights to resources of other group members. For instance, enforcing access control in accordance with a more fine-grained approach is required in the two following use cases.</t>
      <t>As a first case, an application provides control of smart locks acting as Servers in the group, where: a first type of Client, e.g., a user account of a child, is allowed to only query the status of the smart locks; while a second type of Client, e.g., a user account of a parent, is allowed to both query and change the status of the smart locks. Further similar applications concern the enforcement of different sets of permissions in groups with sensor/actuator devices, e.g., thermostats acting as Servers. Also, some group members may even be intended as Servers only. Hence, they must be prevented from acting as Clients altogether and from accessing resources at other Servers, especially when attempting to perform non-safe operations.</t>
      <t>As a second case, building automation scenarios often rely on Servers that, under different circumstances, enforce different level of priority for processing received commands. For instance, BACnet deployments consider multiple classes of Clients, e.g., a normal light switch (C1) and an emergency fire panel (C2). Then, a C1 Client is not allowed to override a command from a C2 Client, until the latter relinquishes control at its higher priority. That is: i) only C2 Clients should be able to adjust the minimum required level of priority on the Servers, so rightly locking out C1 Clients if needed; and ii) when a Server is set to accept only high-priority commands, only C2 Clients should be able to perform such commands otherwise allowed also to C1 Clients. Given the different maximum authority of different Clients, fine-grained access control would effectively limit the execution of high- and emergency-priority commands only to devices that are in fact authorized to do so. Besides, it would prevent a misconfigured or compromised device from initiating a high-priority command and lock out normal control.</t>
      <t>In the cases above, being a legitimate group member and storing the group keying material is not supposed to imply any particular access rights. Instead, access control to the secure group communication channel and access control to the resource space provided by Servers in the group should remain logically separated domains.</t>
      <t>This is aligned with the Zero Trust paradigm <xref target="NIST-800-207"/>, which focuses on resource protection and builds on the premise that trust is never granted implicitly, but must be continually evaluated. In particular, Zero Trust protections involve "minimizing access to resources (such as data and compute resources and applications/services) to only those subjects and assets identified as needing access as well as continually authenticating and authorizing the identity and security posture of each access request."</t>
      <t>Furthermore, <xref target="NIST-800-207"/> highlights how the Zero Trust goal is to "prevent unauthorized access to data and services coupled with making the access control enforcement as granular as possible", to "enforce least privileges needed to perform the action in the request."</t>
      <t>As a step in this direction, one can be tempted to introduce a different security group for each different set of access rights. However, this inconveniently results in additional keying material to distribute and manage. In particular, if the access rights for a single node change, this requires to evict that node from the current group, followed by that node joining a different group aligned with its new access rights. Moreover, the keying material of both groups would have to be renewed for their current members. Overall, this would have a non negligible impact on operations and performance.</t>
      <t>Instead, a fine-grained yet flexible access control model can be enforced within the same group, by using the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. That is, a Client has to first obtain authorization credentials in the form of an Access Token, and post it to the Resource Server(s) in the group before accessing the intended resources.</t>
      <t>The ACE framework delegates to separate profile documents how to secure communications between the Client and the Resource Servers. However each of the current profiles of ACE defined in <xref target="RFC9202"/><xref target="RFC9203"/><xref target="I-D.ietf-ace-mqtt-tls-profile"/> relies on a security protocol that cannot be used to protect one-to-many group messages, for example sent over IP multicast.</t>
      <t>This document specifies the "coap_group_oscore" profile of the ACE framework, where a Client uses the Constrained Application Protocol (CoAP) <xref target="RFC7252"/><xref target="I-D.ietf-core-groupcomm-bis"/> to communicate with one or multiple Resource Servers that are members of an application group and share a common set of resources. This profile uses Group Object Security for Constrained RESTful Environments (Group OSCORE) <xref target="I-D.ietf-core-oscore-groupcomm"/> as the security protocol to protect messages exchanged between the Client and the Resource Servers. Hence, it requires that both the Client and the Resource Servers have previously joined the same OSCORE group.</t>
      <t>That is, this profile describes how access control is enforced for a Client after it has joined an OSCORE group, to access resources at other members in that group. The process for joining the OSCORE group through the respective Group Manager as defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> takes place before the process described in this document, and is out of the scope of this profile.</t>
      <t>The Client proves its access to be authorized to the Resource Server(s) by using an Access Token bound to a key (the proof-of-possession key). This profile uses Group OSCORE to achieve server authentication and proof-of-possession for the Client's public key used in the OSCORE group in question. Note that proof-of-possession is not achieved through a dedicated protocol element, but instead after the first message exchange protected with Group OSCORE.</t>
      <t>Furthermore, this profile provides proof of the Client's membership to the OSCORE group, by binding the Access Token to the Client's authentication credential used in the group and including the Client's public key, as well as to information from the pre-established Group OSCORE Security Context. This allows the Resource Server(s) to verify the Client's group membership upon reception of a message protected with Group OSCORE from that Client.</t>
      <t>OSCORE <xref target="RFC8613"/> specifies how to use COSE <xref target="RFC9052"/><xref target="RFC9053"/> to secure CoAP messages. Group OSCORE builds on OSCORE to provide secure group communication, and ensures source authentication: by means of digital signatures embedded in the protected message (when using the group mode); or by protecting a message with pairwise keying material derived from the asymmetric keys of the two peers exchanging the message (when using the pairwise mode).</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
        <t>Readers are expected to be familiar with the terms and concepts related to CBOR <xref target="RFC8949"/>, COSE <xref target="RFC9052"/><xref target="RFC9053"/>, CoAP <xref target="RFC7252"/>, OSCORE <xref target="RFC8613"/>, and Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>. These especially include:</t>
        <ul spacing="normal">
          <li>Group Manager, as the entity responsible for a set of groups where communications among members are secured with Group OSCORE.</li>
          <li>
            <t>Authentication credential, as the set of information associated with an entity, including that entity's public key and parameters associated with the public key. Examples of authentication credentials are CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC7925"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.  </t>
            <t>
Members of an OSCORE group have an associated authentication credential in the format used in the group. As per <xref section="2.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, an authentication credential provides the public key as well as the comprehensive set of information related to the public key algorithm, including, e.g., the used elliptic curve (when applicable).</t>
          </li>
        </ul>
        <t>Readers are expected to be familiar with the terms and concepts described in the ACE framework for authentication and authorization <xref target="RFC9200"/>, as well as in the OSCORE profile of ACE <xref target="RFC9203"/>. The terminology for entities in the considered architecture is defined in OAuth 2.0 <xref target="RFC6749"/>. In particular, this includes Client (C), Resource Server (RS), and Authorization Server (AS).</t>
        <t>Note that, unless otherwise indicated, the term "endpoint" is used here following its OAuth definition, aimed at denoting resources such as /token and /introspect at the AS, and /authz-info at the RS. This document does not use the CoAP definition of "endpoint", which is "An entity participating in the CoAP protocol".</t>
        <t>Additionally, this document makes use of the following terminology.</t>
        <ul spacing="normal">
          <li>Pairwise-only group: an OSCORE group that uses only the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</li>
        </ul>
        <t>Examples throughout this document are expressed in CBOR diagnostic notation, without the tag and value abbreviations.</t>
      </section>
    </section>
    <section anchor="sec-protocol-overview">
      <name>Protocol Overview</name>
      <t>This section provides an overview of this profile, i.e., of how to use the ACE framework for authentication and authorization <xref target="RFC9200"/> to secure communications between a Client and one or more Resource Servers using Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
      <t>Note that this profile of ACE describes how access control can be enforced for a node after it has joined an OSCORE group, to access resources at other members in that group.</t>
      <t>In particular, the process of joining the OSCORE group through the respective Group Manager as defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> must take place before the process described in this document, and is out of the scope of this profile.</t>
      <t>An overview of the protocol flow for this profile is shown in <xref target="fig-protocol-overview"/>, where it is assumed that both the Resource Servers RS1 and RS2 are associated with the same Authorization Server AS. It is also assumed that the Client C, as well as RS1 and RS2 have previously joined an OSCORE group with Group Identifier (gid) 0xabcd0000, and that they got assigned Sender ID (sid) 0x00, 0x01 and 0x02 in the group, respectively. The names of messages coincide with those of <xref target="RFC9200"/> when applicable.</t>
      <figure anchor="fig-protocol-overview">
        <name>Protocol Overview.</name>
        <artwork align="center"><![CDATA[
C                            RS1          RS2                        AS
| [--- Resource Request --->] |            |                          |
|                             |            |                          |
| [<----- AS Request -------] |            |                          |
|       Creation Hints        |            |                          |
|                             |            |                          |
|-------- POST /token ----------------------------------------------->|
|  (aud: "RS1", sid: 0x00,    |            |                          |
|   gid: 0xabcd0000, ...)     |            |                          |
|                             |            |                          |
|                             |            |                          |
|<---------------------------------------------- Access Token T1 -----|
|                             |               + Access Information    |
|                             |            |                          |
|---- POST /authz-info ------>|            |                          |
|     (access_token T1)       |            |                          |
|                             |            |                          |
|<------ 2.01 Created --------|            |                          |
|                             |            |                          |
|-------- POST /token ----------------------------------------------->|
|  (aud: "RS2", sid: 0x00,    |            |                          |
|   gid: 0xabcd0000, ...)     |            |                          |
|                             |            |                          |
|                             |            |                          |
|<---------------------------------------------- Access Token T2 -----|
|                             |               + Access Information    |
|                             |            |                          |
|----- POST /authz-info ------------------>|                          |
|      (access_token T2)      |            |                          |
|                             |            |                          |
|                             |            |                          |
|<------ 2.01 Created ---------------------|                          |
|                             |            |                          |
|-- Group OSCORE Request -+-->|            |                          |
|    (kid: 0x00,           \  |            |                          |
|     gid: 0xabcd0000)      \------------->|                          |
|                             |            |                          |
|                          /proof-of-possession/                      |
|                             |            |                          |
|                             |            |                          |
|<-- Group OSCORE Response ---|            |                          |
|       (kid: 0x01)           |            |                          |
|                             |            |                          |
/proof-of-possession/         |            |                          |
|                             |            |                          |
/Mutual authentication        |            |                          |
 between C and RS1/           |            |                          |
|                             |            |                          |
|                             |            |                          |
|<-- Group OSCORE Response ----------------|                          |
|       (kid: 0x02)           |            |                          |
|                             |            |                          |
/proof-of-possession/         |            |                          |
|                             |            |                          |
/Mutual authentication        |            |                          |
 between C and RS2/           |            |                          |
|                             |            |                          |
|            ...              |            |                          |
]]></artwork>
      </figure>
      <section anchor="sec-protocol-overview-pre-conditions">
        <name>Pre-Conditions</name>
        <t>Using Group OSCORE and this profile requires that both the Client and the Resource Servers have previously joined the same OSCORE group. This especially includes the derivation of the Group OSCORE Security Context and the assignment of unique Sender IDs to use in the group. Nodes can join the OSCORE group through the respective Group Manager by using the approach defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>, which is also based on ACE.</t>
        <t>After the Client and Resource Servers have joined the group, this profile provides access control for accessing resources on those Resource Servers, by securely communicating with Group OSCORE.</t>
        <t>As a pre-requisite for this profile, the Client has to have successfully joined the OSCORE group where also the Resource Servers (RSs) are members. Depending on the limited information initially available, the Client may have to first discover the exact OSCORE group used by the RSs for the resources of interest, e.g., by using the approach defined in <xref target="I-D.tiloca-core-oscore-discovery"/>.</t>
      </section>
      <section anchor="sec-protocol-overview-token-retrieval">
        <name>Access Token Retrieval</name>
        <t>This profile requires that the Client retrieves an Access Token from the AS for the resource(s) that it wants to access at the RS(s), by using the /token endpoint as specified in <xref section="5.8" sectionFormat="of" target="RFC9200"/>.</t>
        <t>In general, different RSs can be associated with different ASs, even if the RSs are members of the same OSCORE group. However, assuming proper configurations and trust relations, it is possible for multiple RSs associated with the same AS to be part of a single audience (i.e., a group-audience, see <xref section="6.9" sectionFormat="of" target="RFC9200"/>). In such a case, the Client can request a single Access Token intended to the group-audience, hence to all the RSs included therein. A particular group-audience might be defined as including all the RSs in the OSCORE group.</t>
        <t>In the Access Token request to the AS, the Client MUST include the Group Identifier of the OSCORE group and its own Sender ID in that group. The AS MUST specify these pieces of information in the Access Token, included in the Access Token response to the Client.</t>
        <t>Furthermore, in the Access Token request to the AS, the Client MUST also include: its own authentication credential used in the OSCORE group; and a proof-of-possession (PoP) evidence to prove possession of the corresponding private key. The PoP evidence is computed over a PoP input uniquely related to the secure communication association between the Client and the AS. The AS MUST include also the authentication credential indicated by the Client in the Access Token.</t>
        <t>The Access Token request and response MUST be confidentiality-protected and ensure authenticity. In this profile, it is RECOMMENDED to use OSCORE <xref target="RFC8613"/> between the Client and the AS, to reduce the number of libraries the client has 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"/> MAY alternatively be used, such as TLS <xref target="RFC8446"/> or DTLS <xref target="RFC9147"/>.</t>
      </section>
      <section anchor="sec-protocol-overview-token-posting">
        <name>Access Token Posting</name>
        <t>After having retrieved the Access Token from the AS, the Client posts the Access Token to the RS, using the /authz-info endpoint and the mechanisms specified in <xref section="5.10" sectionFormat="of" target="RFC9200"/>. When using this profile, the communication with the /authz-info endpoint is not protected.</t>
        <t>If the Access Token is valid, the RS replies to this POST request with a 2.01 (Created) response. Also, the RS associates the received Access Token with the Group OSCORE Security Context identified by the Group Identifier specified in the Access Token, following <xref section="3.2" sectionFormat="of" target="RFC8613"/>. In practice, the RS maintains a collection of Security Contexts with associated authorization information, for all the clients that it is currently communicating with. The authorization information is a policy that is used as input when processing requests from those clients.</t>
        <t>Finally, the RS stores the association between i) the authorization information from the Access Token; and ii) the Group Identifier of the OSCORE group together with the Sender ID and the authentication credential of the Client in that group. This binds the Access Token to the Group OSCORE Security Context of the OSCORE group.</t>
        <t>Finally, when the Client communicates with the RS using the Group OSCORE Security Context, the RS verifies that the Client is a legitimate member of the OSCORE group and especially the exact group member with the same Sender ID associated with the Access Token. This occurs when verifying a request protected with Group OSCORE, since the request includes the Client's Sender ID and either it embeds a signature computed also over that Sender ID (if protected with the group mode), or it is protected by means of pairwise symmetric keying material derived from the asymmetric keys of the two peers (if protected with the pairwise mode).</t>
        <t>The above has considered an Access Token intended to a single RS. However, as discussed in <xref target="sec-protocol-overview-token-retrieval"/>, an Access Token can be intended to a group-audience including multiple RSs in the OSCORE group. In such a case, the Client could efficiently post the Access Token to many or all of those RSs at once (e.g., over IP multicast), after which each RS individually performs the same steps described above.</t>
      </section>
      <section anchor="sec-protocol-overview-communication">
        <name>Secure Communication</name>
        <t>The Client can send a request protected with Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> to the RS. This can be a unicast request addressed to the RS, or a one-to-many group request (e.g., over IP multicast) addressed to the OSCORE group where the RS is also a member. To this end, the Client uses the Group OSCORE Security Context already established upon joining the OSCORE group, e.g., by using the approach defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>. The RS may send a response back to the Client, protecting it by means of the same Group OSCORE Security Context.</t>
      </section>
    </section>
    <section anchor="sec-c-as-comm">
      <name>Client-AS Communication</name>
      <t>This section details the Access Token POST Request that the Client sends to the /token endpoint of the AS, as well as the related Access Token response.</t>
      <t>The Access Token MUST be bound to the public key of the Client as proof-of-possession key (pop-key), which is included in the Client's authentication credential specified in the 'cnf' claim of the Access Token.</t>
      <section anchor="sec-c-as-token-endpoint">
        <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"/>. The Client MUST send this POST request to the /token endpoint over a secure channel that guarantees authentication, message integrity and confidentiality.</t>
        <t>The POST request is formatted as the analogous Client-to-AS request in the OSCORE profile of ACE (see <xref section="3.1" sectionFormat="of" target="RFC9203"/>), with the following additional parameters that MUST be included in the payload.</t>
        <ul spacing="normal">
          <li>'context_id', defined in <xref target="context_id"/> of this document. This parameter specifies the Group Identifier (GID), i.e., the ID Context of an OSCORE group that includes as members both the Client and the RS(s) in the audience for which the Access Token is asked to be issued. In particular, the Client wishes to communicate with the RS(s) in that audience using the Group OSCORE Security Context associated with that OSCORE group.</li>
          <li>'salt_input', defined in <xref target="salt_input"/> of this document. This parameter includes the Sender ID that the Client has in the OSCORE group whose GID is specified in the 'context_id' parameter above.</li>
          <li>
            <t>'req_cnf', defined in <xref section="3.1" sectionFormat="of" target="RFC9201"/>. This parameter follows the syntax from <xref section="3.1" sectionFormat="of" target="RFC8747"/>, and its inner confirmation value specifies the authentication credential that the Client uses in the OSCORE group. The public key included in the authentication credential will be used as the pop-key bound to the Access Token.  </t>
            <t>
At the time of writing this specification, acceptable formats of authentication credentials in Group OSCORE are CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC7925"/>, and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.  </t>
            <t>
Further formats may be available in the future, and would be acceptable to use as long as they comply with the criteria compiled in <xref section="2.3" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>. In particular, an authentication credential has to explicitly include the public key as well as the comprehensive set of information related to the public key algorithm, including, e.g., the used elliptic curve (when applicable).  </t>
            <t>
[ As to CWTs and CCSs, the CWT Confirmation Methods 'kcwt' and 'kccs' are under pending registration requested by draft-ietf-ace-edhoc-oscore-profile. ]  </t>
            <t>
[ As to X.509 certificates, the CWT Confirmation Methods 'x5bag' and '5chain' are under pending registration requested by draft-ietf-ace-edhoc-oscore-profile. ]  </t>
            <t>
[ As to C509 certificates, the CWT Confirmation Methods 'c5b'and 'c5c' are under pending registration requested by draft-ietf-ace-edhoc-oscore-profile. ]</t>
          </li>
        </ul>
        <t>In addition, the Client computes its proof-of-possession (PoP) evidence, in order to prove to the AS the possession of its own private key used in the OSCORE group. This allows the AS to verify that the Client indeed owns the private key associated with the public key of the authentication credential that the Client allegedly uses in the OSCORE group.</t>
        <t>To this end, the Client MUST use as PoP input the byte representation of an information that uniquely represents the secure communication association between the Client and the AS. It is RECOMMENDED that the Client considers the following as PoP input.</t>
        <ul spacing="normal">
          <li>If the Client and the AS communicate over (D)TLS, the PoP input is an exporter value computed as defined in <xref section="7.5" sectionFormat="of" target="RFC8446"/>. In particular, the exporter label MUST be 'EXPORTER-ACE-Sign-Challenge-Client-AS' defined in <xref target="iana-tls-exporter-label"/> of this document, together with an empty 'context_value', and 32 bytes as 'key_length'.</li>
          <li>
            <t>If the Client and the AS communicate over OSCORE, the PoP input is the output PRK of a HKDF-Extract step <xref target="RFC5869"/>, i.e., PRK = HMAC-Hash(salt, IKM). In particular, 'salt' takes (x1 | x2), where x1 is the ID Context of the OSCORE Security Context between the Client and the AS, x2 is the Sender ID of the Client in that Security Context, and | denotes byte string concatenation. Also, 'IKM' is the OSCORE Master Secret of the OSCORE Security Context between the Client and the AS.  </t>
            <t>
The HKDF MUST be one of the HMAC-based HKDF <xref target="RFC5869"/> algorithms defined for COSE <xref target="RFC9053"/>. The Client and AS may agree on the HKDF algorithm to use during the Client's registration at the AS. HKDF SHA-256 is mandatory to implement.</t>
          </li>
        </ul>
        <t>Then, the Client computes the PoP evidence as follows.</t>
        <ul spacing="normal">
          <li>If the OSCORE group is not a pairwise-only group, the PoP evidence MUST be a signature. The Client computes the signature by using the same private key and signature algorithm it uses for signing messages in the OSCORE group. The Client's private key is the one associated with the Client's authentication credential used in the OSCORE group and specified in the 'req_cnf' parameter above.</li>
          <li>
            <t>If the OSCORE group is a pairwise-only group, the PoP evidence MUST be a MAC computed as follows, by using the HKDF Algorithm HKDF SHA-256, which consists of composing the HKDF-Extract and HKDF-Expand steps <xref target="RFC5869"/>.  </t>
            <t>
MAC = HKDF(salt, IKM, info, L)  </t>
            <t>
The input parameters of HKDF are as follows.  </t>
            <ul spacing="normal">
              <li>salt takes as value the empty byte string.</li>
              <li>
                <t>IKM is computed as a cofactor Diffie-Hellman shared secret (see Section 5.7.1.2 of <xref target="NIST-800-56A"/>), using an ECDH algorithm pre-agreed between Client and AS. The Client uses its own Diffie-Hellman private key and the Diffie-Hellman public key of the AS. For X25519 and X448, the procedure is described in <xref section="5" sectionFormat="of" target="RFC7748"/>.      </t>
                <t>
The Client's private key is the one associated with the Client's authentication credential used in the OSCORE group and specified in the 'req_cnf' parameter above. The Client may obtain the Diffie-Hellman public key of the AS during its registration process at the AS.      </t>
                <t>
The Client and AS may agree on the ECDH algorithm to use during the Client's registration at the AS. The ECDH-SS + HKDF-256 algorithm specified in <xref section="6.3.1" sectionFormat="of" target="RFC9053"/> is mandatory to implement.</t>
              </li>
              <li>info takes as value the PoP input.</li>
              <li>L is equal to 8, i.e., the size of the MAC, in bytes.</li>
            </ul>
          </li>
        </ul>
        <t>Finally, the Client MUST include one of the two following parameters in the payload of the POST request to the AS.</t>
        <ul spacing="normal">
          <li>'client_cred_verify', defined in <xref target="client_cred_verify"/> of this document, specifying the Client's PoP evidence as a signature, which is computed as defined above. This parameter MUST be included if and only if the OSCORE group is not a pairwise-only group.</li>
          <li>'client_cred_verify_mac', defined in <xref target="client_cred_verify_mac"/> of this document, specifying the Client's PoP evidence as a MAC, which is computed as defined above. This parameter MUST be included if and only if the OSCORE group is a pairwise-only group.</li>
        </ul>
        <t>An example of such a request is shown in <xref target="fig-example-C-to-AS-symm"/>.</t>
        <figure anchor="fig-example-C-to-AS-symm">
          <name>Example C-to-AS POST /token request for an Access Token bound to an asymmetric key.</name>
          <artwork><![CDATA[
Header: POST (Code=0.02)
Uri-Host: "as.example.com"
Uri-Path: "token"
Content-Format: "application/ace+cbor"
Payload:
{
  "audience" : "tempSensor4711",
  "scope" : "read",
  "context_id" : h'abcd0000',
  "salt_input" : h'00',
  "req_cnf" : {
    "kccs" : {
      "sub" : "42-50-31-FF-EF-37-32-39",
      "cnf" : {
        "COSE_Key" : {
          "kty" : 2,
          "crv" : 1,
          "x" : h'd7cc072de2205bdc1537a543d53c60a6
                  acb62eccd890c7fa27c9e354089bbe13',
          "y" : h'f95e1d4b851a2cc80fff87d8e23f22af
                  b725d535e515d020731e79a3b4e47120'
        }
      }
    }
  },
  "client_cred_verify" : h'...'
   (signature content omitted for brevity)
}
]]></artwork>
        </figure>
        <t>In the example above, the Client specifies that its authentication credential in the OSCORE group is the CCS shown in <xref target="fig-client-auth-cred"/>.</t>
        <figure anchor="fig-client-auth-cred">
          <name>Example of Client Authentication Credential as CWT Claims Set (CCS).</name>
          <artwork><![CDATA[
{
  "sub" : "42-50-31-FF-EF-37-32-39",
  "cnf" : {
    "COSE_Key" : {
      "kty" : 2,
      "crv" : 1,
      "x" : h'd7cc072de2205bdc1537a543d53c60a6
              acb62eccd890c7fa27c9e354089bbe13',
      "y" : h'f95e1d4b851a2cc80fff87d8e23f22af
              b725d535e515d020731e79a3b4e47120'
    }
  }
}
]]></artwork>
        </figure>
        <section anchor="context_id">
          <name>'context_id' Parameter</name>
          <t>The 'context_id' parameter is an OPTIONAL parameter of the Access Token request message defined in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>. This parameter provides a value that the Client wishes to use with the RS as a hint for a security context. Its exact content is profile specific.</t>
        </section>
        <section anchor="salt_input">
          <name>'salt_input' Parameter</name>
          <t>The 'salt_input' parameter is an OPTIONAL parameter of the Access Token request message defined in <xref section="5.8.1" sectionFormat="of" target="RFC9200"/>. This parameter provides a value that the Client wishes to use as part of a salt with the RS, for deriving cryptographic keying material. Its exact content is profile specific.</t>
        </section>
        <section anchor="client_cred_verify">
          <name>'client_cred_verify' Parameter</name>
          <t>The 'client_cred_verify' parameter is an OPTIONAL parameter of the Access Token request message defined in <xref section="5.8.1." sectionFormat="of" target="RFC9200"/>. This parameter provides a signature computed by the Client to prove the possession of its own private key.</t>
        </section>
        <section anchor="client_cred_verify_mac">
          <name>'client_cred_verify_mac' Parameter</name>
          <t>The 'client_cred_verify_mac' parameter is an OPTIONAL parameter of the Access Token request message defined in <xref section="5.8.1." sectionFormat="of" target="RFC9200"/>. This parameter provides a Message Authentication Code (MAC) computed by the Client to prove the possession of its own private key.</t>
        </section>
      </section>
      <section anchor="sec-as-c-token">
        <name>AS-to-C: Access Token</name>
        <t>After having verified the POST request to the /token endpoint and that the Client is authorized to obtain an Access Token corresponding to its Access Token request, the AS MUST verify the proof-of-possession (PoP) evidence. In particular, the AS proceeds as follows.</t>
        <ul spacing="normal">
          <li>As PoP input, the AS uses the same value considered by the Client in <xref target="sec-c-as-token-endpoint"/>.</li>
          <li>As public key of the Client, the AS uses the one included in the authentication credential specified in the 'req_cnf' parameter of the Access Token request.</li>
          <li>If the Access Token request includes the 'client_cred_verify' parameter, this specifies the PoP evidence as a signature. Then, the AS verifies the signature by using the public key of the Client.</li>
          <li>
            <t>If the Access Token request includes the 'client_cred_verify_mac' parameter, this specifies the PoP evidence as a Message Authentication Code (MAC).  </t>
            <t>
Then, the AS recomputes the MAC through the same process taken by the Client when preparing the value of the 'client_cred_verify_mac' parameter for the Access Token (see <xref target="sec-c-as-token-endpoint"/>), with the difference that the AS uses its own Diffie-Hellman private key and the Diffie-Hellman public key of the Client. The verification succeeds if and only if the recomputed MAC is equal to the MAC conveyed as PoP evidence in the Access Token request.</t>
          </li>
        </ul>
        <t>If both the 'client_cred_verify' and 'client_cred_verify_mac' parameters are present, or if the verification of the PoP evidence fails, the AS considers the Client request invalid.</t>
        <t>If the Client request was invalid, or not authorized, the AS returns an error response as described in <xref section="5.8.3" sectionFormat="of" target="RFC9200"/>.</t>
        <t>If all verifications are successful, the AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="RFC9200"/>. In particular:</t>
        <ul spacing="normal">
          <li>The AS can signal that the use of Group OSCORE is REQUIRED for a specific Access Token by including the 'ace_profile' parameter with the value "coap_group_oscore" in the Access Token response. The Client MUST use Group OSCORE towards all the Resource Servers for which this Access Token is valid. 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.</li>
          <li>The AS MUST NOT include the 'rs_cnf' parameter defined in <xref target="RFC9201"/>. In general, the AS may not be aware of the authentication credentials (and public keys included thereof) that the RSs use in the OSCORE group. Also, the Client is able to retrieve the authentication credentials of other group members from the responsible Group Manager, both upon joining the group or later on as a group member, as defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</li>
        </ul>
        <t>The AS MUST include the following information as metadata of the issued Access Token. The use of CBOR web tokens (CWT) as specified in <xref target="RFC8392"/> is RECOMMENDED.</t>
        <ul spacing="normal">
          <li>The profile "coap_group_oscore". If the Access Token is a CWT, this is placed in the 'ace_profile' claim of the Access Token, as per <xref section="5.10" sectionFormat="of" target="RFC9200"/>.</li>
          <li>The salt input specified in the 'salt_input' parameter of the Token Request. If the Access Token is a CWT, the content of the 'salt_input' parameter MUST be placed in the 'salt_input' claim of the Access Token, defined in <xref target="salt_input_claim"/> of this document.</li>
          <li>The Context Id input specified in the 'context_id' parameter of the Token Request. If the Access Token is a CWT, the content of the 'context_id' parameter MUST be placed in the 'contextId_input' claim of the Access Token, defined in <xref target="contextId_input_claim"/> of this document.</li>
          <li>
            <t>The authentication credential that the client uses in the OSCORE group and specified in the 'req_cnf' parameter of the Token request.  </t>
            <t>
If the Access Token is a CWT, the Client's authentication credential MUST be specified in the 'cnf' claim, which follows the syntax from <xref section="3.1" sectionFormat="of" target="RFC8747"/>. In particular, the 'cnf' claim includes the same authentication credential specified in the 'req_cnf' parameter of the Token Request (see <xref target="sec-c-as-token-endpoint"/>).</t>
          </li>
        </ul>
        <t><xref target="fig-example-AS-to-C"/> shows an example of such an AS response. The access token has been truncated for readability.</t>
        <figure anchor="fig-example-AS-to-C">
          <name>Example AS-to-C Access Token response with the Group OSCORE profile.</name>
          <artwork><![CDATA[
Header: Created (Code=2.01)
Content-Type: "application/ace+cbor"
Payload:
{
  "access_token" : h'8343a1010aa2044c53 ...'
   (remainder of CWT omitted for brevity),
  "ace_profile" : "coap_group_oscore",
  "expires_in" : 3600
}
]]></artwork>
        </figure>
        <t><xref target="fig-example-AS-to-C-CWT"/> shows an example CWT Claims Set, containing the Client's public key in the group (as pop-key), as specified by the inner confirmation value in the 'cnf' claim.</t>
        <figure anchor="fig-example-AS-to-C-CWT">
          <name>Example CWT Claims Set with OSCORE parameters.</name>
          <artwork><![CDATA[
{
  "aud" : "tempSensorInLivingRoom",
  "iat" : "1360189224",
  "exp" : "1360289224",
  "scope" :  "temperature_g firmware_p",
  "cnf" : {
    "kccs" : {
      "sub" : "42-50-31-FF-EF-37-32-39",
      "cnf" : {
        "COSE_Key" : {
          "kty" : 2,
          "crv" : 1,
          "x" : h'd7cc072de2205bdc1537a543d53c60a6
                  acb62eccd890c7fa27c9e354089bbe13',
          "y" : h'f95e1d4b851a2cc80fff87d8e23f22af
                  b725d535e515d020731e79a3b4e47120'
        }
      }
    }
  "salt_input" : h'00',
  "contextId_input" : h'abcd0000'
}
]]></artwork>
        </figure>
        <t>The same CWT Claims Set as in <xref target="fig-example-AS-to-C-CWT"/> and encoded in CBOR is shown in <xref target="fig-example-AS-to-C-CWT-encoding"/>, using the value abbreviations defined in <xref target="RFC9200"/> and <xref target="RFC8747"/>. The bytes in hexadecimal are reported in the first column, while their corresponding CBOR meaning is reported after the "#" sign on the second column, for easiness of readability.</t>
        <t>Editor's note: it should be checked (and in case fixed) that the values used below (which are not yet registered) are the final values registered by IANA.</t>
        <figure anchor="fig-example-AS-to-C-CWT-encoding">
          <name>Example CWT Claims Set with OSCORE parameters, CBOR encoded.</name>
          <artwork><![CDATA[
A7                                      # map(7)
   03                                   # unsigned(3)
   76                                   # text(22)
      74656D7053656E736F72496E4C6976696E67526F6F6D
      # "tempSensorInLivingRoom"
   06                                   # unsigned(6)
   1A 5112D728                          # unsigned(1360189224)
   04                                   # unsigned(4)
   1A 51145DC8                          # unsigned(1360289224)
   09                                   # unsigned(9)
   78 18                                # text(24)
      74656D70657261747572655F67206669726D776172655F70
      # "temperature_g firmware_p"
   08                                   # unsigned(8)
   A1                                   # map(1)
      05                                # unsigned(5)
      A2                                # map(2)
         02                             # unsigned(2)
         77                             # text(23)
            34322D35302D33312D46462D45462D33372D33322D3339
            # "42-50-31-FF-EF-37-32-39"
         08                             # unsigned(8)
         A1                             # map(1)
            01                          # unsigned(1)
            A4                          # map(4)
               01                       # unsigned(1)
               02                       # unsigned(2)
               20                       # negative(0)
               01                       # unsigned(1)
               21                       # negative(1)
               58 20                    # bytes(32)
                  D7CC072DE2205BDC1537A543D53C60A6
                  ACB62ECCD890C7FA27C9E354089BBE13
               22                       # negative(2)
               58 20                    # bytes(32)
                  F95E1D4B851A2CC80FFF87D8E23F22AF
                  B725D535E515D020731E79A3B4E47120
   18 3C                                # unsigned(60)
   41                                   # bytes(1)
      00
   18 3D                                # unsigned(61)
   44                                   # bytes(4)
      ABCD0000
]]></artwork>
        </figure>
        <section anchor="salt_input_claim">
          <name>Salt Input Claim</name>
          <t>The 'salt_input' claim provides a value that the Client requesting the Access Token wishes to use as a part of a salt with the RS, e.g., for deriving cryptographic material.</t>
          <t>This parameter specifies the value of the salt input, encoded as a CBOR byte string.</t>
        </section>
        <section anchor="contextId_input_claim">
          <name>Context ID Input Claim</name>
          <t>The 'contextId_input' claim provides a value that the Client requesting the Access Token wishes to use with the RS, as a hint for a security context.</t>
          <t>This parameter specifies the value of the Context ID input, encoded as a CBOR byte string.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-c-rs-comm">
      <name>Client-RS Communication</name>
      <t>This section details the POST request and response to the /authz-info endpoint between the Client and the RS.</t>
      <t>The proof-of-possession required to bind the Access Token to the Client is explicitly performed when the RS receives and verifies a request from the Client protected with Group OSCORE, either with the group mode (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) or with the pairwise mode (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
      <t>In particular, the RS uses the Client's public key bound to the Access Token, either when verifying the signature of the request (if protected with the group mode), or when verifying the request as integrity-protected with pairwise keying material derived from the two peers' authentication credentials and asymmetric keys (if protected with the pairwise mode). In either case, the RS also authenticates the Client.</t>
      <t>Similarly, when receiving a protected response from the RS, the Client uses the RS's public key either when verifying the signature of the response (if protected with the group mode), or when verifying the response as integrity-protected with pairwise keying material derived from the two peers' authentication credentials and asymmetric keys (if protected with the pairwise mode). In either case, the Client also authenticates the RS. Mutual authentication is only achieved after the client has successfully verified the protected response from the RS.</t>
      <t>Therefore, an attacker using a stolen Access Token cannot generate a valid Group OSCORE message as protected through the Client's private key, and thus cannot prove possession of the pop-key bound to the Access Token. Also, if a Client legitimately owns an Access Token but has not joined the OSCORE group, it cannot generate a valid Group OSCORE message, as it does not store the necessary keying material shared among the group members.</t>
      <t>Furthermore, a Client C1 is supposed to obtain a valid Access Token from the AS, as specifying the Client's authentication credential (and the public key included thereof) associated with the Client's private key used in the OSCORE group, together with its own Sender ID in that OSCORE group (see <xref target="sec-c-as-token-endpoint"/>). This allows the RS receiving the Access Token to verify with the Group Manager of that OSCORE group whether such a Client indeed has that Sender ID and uses that authentication credential in the OSCORE group.</t>
      <t>As a consequence, a different Client C2, also member of the same OSCORE group, is not able to impersonate C1, by: i) getting a valid Access Token, specifying the Sender ID of C1 and a different (made-up) authentication credential; ii) successfully posting the Access Token to the RS; and then iii) attempting to communicate using Group OSCORE impersonating C1, while blaming C1 for the consequences.</t>
      <section anchor="sec-c-rs-authz">
        <name>C-to-RS POST to authz-info Endpoint</name>
        <t>The Client posts the Access Token to the /authz-info endpoint of the RS, as defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>.</t>
      </section>
      <section anchor="sec-rs-c-created">
        <name>RS-to-C: 2.01 (Created)</name>
        <t>The RS MUST verify the validity of the Access Token as defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>, with the following additions.</t>
        <ul spacing="normal">
          <li>The RS MUST check that the claims 'salt_input', 'contextId_input', and 'cnf' are included in the Access Token.</li>
          <li>
            <t>The RS considers: the content of the 'contextId_input' claim as the GID of the OSCORE group; the content of the 'salt_input' claim as the Sender ID that the Client has in the group; and the inner confirmation value of 'cnf' claim as the authentication credential that the Client uses in the group.  </t>
            <t>
The RS MUST check whether it already stores the authentication credential specified in the inner confirmation value of the 'cnf' claim as associated with the pair (GID, Sender ID) above.  </t>
            <t>
If this is not the case, the RS MUST request the Client's authentication credential to the Group Manager of the OSCORE group as described in <xref section="9.3" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>, specifying the Client's Sender ID in the OSCORE group, i.e., the value of the 'salt_input' claim. Then, the RS performs the following actions.  </t>
            <ul spacing="normal">
              <li>The RS MUST check whether the Client's authentication credential retrieved from the Group Manager matches the one retrieved from the inner confirmation value of the 'cnf' claim of the Access Token.</li>
              <li>The RS MUST check whether the Client's Sender ID provided by the Group Manager together with the Client's authentication credential matches the one retrieved from the 'salt_input' claim of the Access Token.</li>
            </ul>
          </li>
        </ul>
        <t>If any of the checks above fails, the RS MUST consider the Access Token non valid, and MUST respond to the Client with an error response code equivalent to the CoAP code 4.00 (Bad Request).</t>
        <t>If the Access Token is valid and further checks on its content are successful, the RS associates the authorization information from the Access Token with the Group OSCORE Security Context.</t>
        <t>In particular, the RS associates the authorization information from the Access Token with the triple (GID, SaltInput, AuthCred), where GID is the Group Identifier of the OSCORE group, while SaltInput and AuthCred are the Sender ID and the authentication credential that the Client uses in that OSCORE group, respectively.</t>
        <t>The RS MUST keep this association up-to-date over time, as the triple (GID, SaltInput, AuthCred) associated with the Access Token might change. In particular:</t>
        <ul spacing="normal">
          <li>If the OSCORE group is rekeyed (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/> and <xref section="11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>), the Group Identifier also changes in the group, and the new one replaces the current 'GID' value in the triple (GID, SaltInput, AuthCred).</li>
          <li>If the Client requests and obtains a new OSCORE Sender ID from the Group Manager (see <xref section="2.6.3.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/> and <xref section="9.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>), the new Sender ID replaces the current 'SaltInput' value in the triple (GID, SaltInput, AuthCred).</li>
        </ul>
        <t>Finally, the RS MUST send a 2.01 (Created) response to the Client, as defined in <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>.</t>
      </section>
      <section anchor="sec-client-rs-secure-communication">
        <name>Client-RS Secure Communication</name>
        <t>When previously joining the OSCORE group, both the Client and RS have already established the related Group OSCORE Security Context to communicate as group members. Therefore, they can simply start to securely communicate using Group OSCORE, without deriving any additional keying material or security association.</t>
        <section anchor="client-side">
          <name>Client Side</name>
          <t>After having received the 2.01 (Created) response from the RS, following the POST request to the /authz-info endpoint, the Client starts the communication with the RS, by sending a request protected with Group OSCORE using the Group OSCORE Security Context <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
          <t>When communicating with the RS to access the resources as specified by the authorization information, the Client MUST use the Group OSCORE Security Context of the OSCORE group, whose GID was specified in the 'context_id' parameter of the Access Token request.</t>
        </section>
        <section anchor="resource-server-side">
          <name>Resource Server Side</name>
          <t>After successful validation of the Access Token as defined in <xref target="sec-rs-c-created"/> and after having sent the 2.01 (Created) response, the RS can start to communicate with the Client using Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
          <t>When processing an incoming request protected with Group OSCORE, the RS MUST consider as valid Client's authentication credential only the one associated with the stored Access Token. As defined in <xref target="sec-client-public-key-change"/>, a possible change of authentication credential requires the Client to upload to the RS a new Access Token bound to the new authentication credential.</t>
          <t>Additionally, for every incoming request, if Group OSCORE verification succeeds, the verification of access rights is performed as described in <xref target="sec-c-rs-access-rights"/>.</t>
          <t>After the expiration of the Access Token related to a Group OSCORE Security Context, if the Client uses the Group OSCORE Security Context to send a request for any resource intended for OSCORE group members and that requires an active Access Token, the RS MUST respond with a 4.01 (Unauthorized) error message protected with the Group OSCORE Security Context.</t>
        </section>
      </section>
      <section anchor="sec-c-rs-access-rights">
        <name>Access Rights Verification</name>
        <t>The RS MUST follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="RFC9200"/>. If an RS receives a request protected with Group OSCORE from a Client, the RS processes the request according to <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
        <t>If the Group OSCORE verification succeeds, and the target resource requires authorization, the RS retrieves the authorization information from the Access Token associated with the Group OSCORE Security Context. Then, the RS MUST verify that the action requested on the resource is authorized.</t>
        <t>The response code MUST be 4.01 (Unauthorized) if the RS has no valid Access Token for the Client. If the RS has an Access Token for the Client but no actions are authorized on the target resource, the RS MUST reject the request and MUST respond to the Client with a 4.03 (Forbidden) response. If the RS has an Access Token for the Client but the requested action is not authorized, the RS MUST reject the request and MUST respond to the Client with a 4.05 (Method Not Allowed) response.</t>
      </section>
      <section anchor="sec-client-public-key-change">
        <name>Change of Client's Authentication Credential in the Group</name>
        <t>During its membership in the OSCORE group, the Client might change the authentication credential that it uses in the group. When this happens, the Client uploads the new authentication credential to the Group Manager, as defined in <xref section="9.4" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
        <t>After that, and in order to continue communicating with the RS, the Client MUST perform the following actions.</t>
        <ol spacing="normal" type="1"><li>
            <t>The Client requests a new Access Token to the AS, as defined in <xref target="sec-c-as-comm"/>. In particular, when sending the POST request as defined in <xref target="sec-c-as-token-endpoint"/>, the Client indicates:  </t>
            <ul spacing="normal">
              <li>The current Group Identifier of the OSCORE group, as value of the 'context_id' parameter.</li>
              <li>The current Sender ID it has in the OSCORE group, as value of the 'salt_input' parameter.</li>
              <li>The new authentication credential it uses in the OSCORE group, as inner confirmation value of the 'req_cnf' parameter.</li>
              <li>The proof-of-possession (PoP) evidence corresponding to the public key of the new authentication credential, as value of the 'client_cred_verify' or 'client_cred_verify_mac' parameter.</li>
            </ul>
          </li>
          <li>After receiving the response from the AS (see <xref target="sec-as-c-token"/>), the Client performs the same exchanges with the RS as defined in <xref target="sec-c-rs-comm"/>.</li>
        </ol>
        <t>When receiving the new Access Token, the RS performs the same steps defined in <xref target="sec-rs-c-created"/>, with the following addition in case the new Access Token is successfully verified and stored. The RS also deletes the old Access Token, i.e., the one whose associated triple (GID, SaltInput, AuthCred) has the same GID and SaltInput values as in the triple including the new authentication credential of the Client and associated with the new Access Token.</t>
      </section>
    </section>
    <section anchor="sec-comm-as">
      <name>Secure Communication with the 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 Client) and the AS communicate via the /token or /introspection endpoint. The use of CoAP and OSCORE <xref target="RFC8613"/> for this communication is RECOMMENDED in this profile. 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 or TLS) MAY be used instead.</t>
      <t>If OSCORE <xref target="RFC8613"/> is used, the requesting entity and the AS are expected to have a pre-established Security Context in place. How this Security Context is established is out of the scope of this profile. Furthermore, the requesting entity and the AS communicate using OSCORE through the /introspection endpoint as specified in <xref section="5.9" sectionFormat="of" target="RFC9200"/>, and through the /token endpoint as specified in <xref section="5.8" sectionFormat="of" target="RFC9200"/>.</t>
    </section>
    <section anchor="sec-discard-context">
      <name>Discarding the Security Context</name>
      <t>As members of an OSCORE group, the Client and the RS may independently leave the group or be forced to, e.g., if compromised or suspected so. Upon leaving the OSCORE group, the Client or RS also discards the Group OSCORE Security Context, which may anyway be renewed by the Group Manager through a group rekeying process (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
      <t>The Client or RS can acquire a new Group OSCORE Security Context, by re-joining the OSCORE group, e.g., by using the approach defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>. In such a case, the Client SHOULD request a new Access Token and post it to the RS.</t>
    </section>
    <section anchor="sec-cbor-mappings">
      <name>CBOR Mappings</name>
      <t>The new parameters defined in this document MUST be mapped to CBOR types as specified in <xref target="fig-cbor-mappings-parameters"/>, using the given integer abbreviation for the map key.</t>
      <figure anchor="fig-cbor-mappings-parameters">
        <name>CBOR mappings for new parameters.</name>
        <artwork align="center"><![CDATA[
+------------------------+----------+------------+
| Parameter name         | CBOR Key | Value Type |
+------------------------+----------+------------+
| context_id             | TBD      | bstr       |
| salt_input             | TBD      | bstr       |
| client_cred_verify     | TBD      | bstr       |
| client_cred_verify_mac | TBD      | bstr       |
+------------------------+----------+------------+
]]></artwork>
      </figure>
      <t>The new claims defined in this document MUST be mapped to CBOR types as specified in <xref target="fig-cbor-mappings-claims"/>, using the given integer abbreviation for the map key.</t>
      <figure anchor="fig-cbor-mappings-claims">
        <name>CBOR mappings for new claims.</name>
        <artwork align="center"><![CDATA[
+-----------------+----------+------------+
| Claim name      | CBOR Key | Value Type |
+-----------------+----------+------------+
| salt_input      | TBD      | bstr       |
| contextId_input | TBD      | bstr       |
+-----------------+----------+------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus, the general security considerations from the ACE framework also apply to this profile.</t>
      <t>The proof-of-possession (PoP) key bound to an Access Token is always an asymmetric key, i.e., the public key included in the authentication credential that the Client uses in the OSCORE group. This means that there is never a same shared secret used as PoP key with possible multiple RSs. Therefore, it is possible and safe for the AS to issue an Access Token for an audience that includes multiple RSs (i.e., a group-audience, see <xref section="6.9" sectionFormat="of" target="RFC9200"/>).</t>
      <t>In such a case, as per <xref section="6.1" sectionFormat="of" target="RFC9200"/>, the AS has to ensure the integrity protection of the Access Token by protecting it through an asymmetric signature. In addition, the used group-audience has to correctly identify all the RSs that are intended recipients of the Access Token, and for which the single scope specified in the Access Token applies. As a particular case, the audience can be the name of the OSCORE group, if the Access Token is intended to all the RSs in that group.</t>
      <t>Furthermore, this document inherits the general security considerations about Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>, as to the specific use of Group OSCORE according to this profile.</t>
      <t>Group OSCORE is designed to secure point-to-point as well as point-to-multipoint communications, providing a secure binding between a single request and multiple corresponding responses. In particular, Group OSCORE fulfills the same security requirements of OSCORE.</t>
      <t>Group OSCORE ensures source authentication of messages both in group mode (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) and in pairwise mode (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
      <t>When protecting an outgoing message in group mode, the sender uses its private key to compute a digital signature, which is embedded in the protected message. The group mode can be used to protect messages sent to multiple recipients (e.g., over IP multicast) or to a single recipient.</t>
      <t>When protecting an outgoing message in pairwise mode, the sender uses a pairwise symmetric key, as derived from the asymmetric keys of the two peers exchanging the message. The pairwise mode can be used to protect only messages intended to a single recipient.</t>
    </section>
    <section anchor="sec-privacy-considerations">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>. Thus the general privacy considerations from the ACE framework also apply to this profile.</t>
      <t>As this profile uses Group OSCORE, the privacy considerations from <xref target="I-D.ietf-core-oscore-groupcomm"/> apply to this document as well.</t>
      <t>An unprotected response to an unauthorized request may disclose information about the RS and/or its existing relationship with the Client. It is advisable to include as little information as possible in an unencrypted response. However, since both the Client and the RS share a Group OSCORE Security Context, unauthorized, yet protected requests are followed by protected responses, which can thus include more detailed information.</t>
      <t>Although it may be encrypted, the Access Token is sent in the clear to the /authz-info endpoint at the RS. Thus, if the Client uses the same single Access Token from multiple locations with multiple Resource Servers, it can risk being tracked through the Access Token's value.</t>
      <t>Note that, even though communications are protected with Group OSCORE, some information might still leak, due to the observable size, source address, and destination address of exchanged messages.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace "[RFC-XXXX]" with the RFC number of this document and delete this paragraph.</t>
      <section anchor="iana-ace-oauth-profile">
        <name>ACE Profile Registry</name>
        <t>IANA is asked to add the following entry to the "ACE Profile" registry within the "Authentication and Authorization for Constrained Environments (ACE)" registry group, following the procedure specified in <xref section="8.8" sectionFormat="of" target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>Name: coap_group_oscore</li>
          <li>Description: Profile to secure communications between constrained nodes using the Authentication and Authorization for Constrained Environments framework, by enabling authentication and fine-grained authorization of members of an OSCORE group, that use a pre-established Group OSCORE Security Context to communicate with Group OSCORE.</li>
          <li>CBOR Value: TBD (value between 1 and 255)</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry, following the procedure specified in <xref section="11.2" sectionFormat="of" target="RFC6749"/>.</t>
        <ul spacing="normal">
          <li>Name: "context_id"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="context_id"/> of [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "salt_input"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="salt_input"/> of [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="client_cred_verify"/> of [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify_mac"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="client_cred_verify_mac"/> of [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-token-cbor-mappings">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" registry within the "Authentication and Authorization for Constrained Environments (ACE)" registry group, following the procedure specified in <xref section="8.10" sectionFormat="of" target="RFC9200"/>.</t>
        <ul spacing="normal">
          <li>Name: "context_id"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="context_id"/> of [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "salt_input"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="salt_input"/> of [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="client_cred_verify"/> of [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify_mac"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="client_cred_verify_mac"/> of [RFC-XXXX]</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 entries to the "CBOR Web Token (CWT) Claims" registry, following the procedure specified in <xref section="9.1" sectionFormat="of" target="RFC8392"/>.</t>
        <ul spacing="normal">
          <li>Claim Name: "salt_input"</li>
          <li>Claim Description: Client provided salt input</li>
          <li>JWT Claim Name: "N/A"</li>
          <li>Claim Key: TBD</li>
          <li>Claim Value Type(s): bstr</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="salt_input_claim"/> of [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Claim Name: "contextId_input"</li>
          <li>Claim Description: Client context id input</li>
          <li>JWT Claim Name: "N/A"</li>
          <li>Claim Key: TBD</li>
          <li>Claim Value Type(s): bstr</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="contextId_input_claim"/> of [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-tls-exporter-label">
        <name>TLS Exporter Label Registry</name>
        <t>IANA is asked to add the following entry to the "TLS Exporter Label" registry within the "Transport Layer Security (TLS) Parameters" registry group, following the procedure specified in <xref section="6" sectionFormat="of" target="RFC5705"/> and updated in <xref section="12" sectionFormat="of" target="RFC8447"/>.</t>
        <ul spacing="normal">
          <li>Value: EXPORTER-ACE-Sign-Challenge-Client-AS</li>
          <li>DTLS-OK: Y</li>
          <li>Recommended: N</li>
          <li>Reference: <xref target="sec-c-as-token-endpoint"/> of [RFC-XXXX]</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="Chonggang Wang" initials="C." surname="Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="11" month="January" year="2023"/>
            <abstract>
              <t>   This document specifies the use of the Constrained Application
   Protocol (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 RFC 7390, while it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-08"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm">
          <front>
            <title>Group Object Security for Constrained RESTful Environments (Group OSCORE)</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>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <date day="22" month="June" year="2023"/>
            <abstract>
              <t>   This document defines the security protocol Group Object Security for
   Constrained RESTful Environments (Group OSCORE), providing end-to-end
   security of CoAP messages exchanged between members of a group, e.g.,
   sent over IP multicast.  In particular, the described protocol
   defines how OSCORE is used in a group communication setting to
   provide source authentication for CoAP group requests, sent by a
   client to multiple servers, and for protection of the corresponding
   CoAP responses.  Group OSCORE also defines a pairwise mode where each
   member of the group can efficiently derive a symmetric pairwise key
   with any other member of the group for pairwise OSCORE communication.
   Group OSCORE can be used between endpoints communicating with CoAP or
   CoAP-mappable HTTP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-18"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm-oscore">
          <front>
            <title>Key Management for OSCORE Groups in ACE</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="March" year="2023"/>
            <abstract>
              <t>   This document defines an application profile of the ACE framework for
   Authentication and Authorization, to request and provision keying
   material in group communication scenarios that are based on CoAP and
   are secured with Group Object Security for Constrained RESTful
   Environments (Group OSCORE).  This application profile delegates the
   authentication and authorization of Clients, that 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 for a key owned by the Client
   and bound to an OAuth 2.0 Access Token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-16"/>
        </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="RFC5705">
          <front>
            <title>Keying Material Exporters for Transport Layer Security (TLS)</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes. This document describes a general mechanism for allowing that. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5705"/>
          <seriesInfo name="DOI" value="10.17487/RFC5705"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7748">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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="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="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </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="NIST-800-56A" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography - NIST Special Publication 800-56A, Revision 3</title>
            <author initials="E." surname="Barker" fullname="Elaine Barker">
              <organization/>
            </author>
            <author initials="L." surname="Chen" fullname="Lily Chen">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky" fullname="Allen Roginsky">
              <organization/>
            </author>
            <author initials="A." surname="Vassilev" fullname="Apostol Vassilev">
              <organization/>
            </author>
            <author initials="R." surname="Davis" fullname="Richard Davis">
              <organization/>
            </author>
            <date year="2018" month="April"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.tiloca-core-oscore-discovery">
          <front>
            <title>Discovery of OSCORE Groups with the CoRE Resource Directory</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>Consultant</organization>
            </author>
            <date day="8" month="March" year="2023"/>
            <abstract>
              <t>   Group communication over the Constrained Application Protocol (CoAP)
   can be secured by means of Group Object Security for Constrained
   RESTful Environments (Group OSCORE).  At deployment time, devices may
   not know the exact security groups to join, the respective Group
   Manager, or other information required to perform the joining
   process.  This document describes how a CoAP endpoint can use
   descriptions and links of resources registered at the CoRE Resource
   Directory to discover security groups and to acquire information for
   joining them through the respective Group Manager.  A given security
   group may protect multiple application groups, which are separately
   announced in the Resource Directory as sets of endpoints sharing a
   pool of resources.  This approach is consistent with, but not limited
   to, the joining of security groups based on the ACE framework for
   Authentication and Authorization in constrained environments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-discovery-13"/>
        </reference>
        <reference anchor="I-D.ietf-ace-mqtt-tls-profile">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT)-TLS profile of Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Cigdem Sengul" initials="C." surname="Sengul">
              <organization>Brunel University</organization>
            </author>
            <author fullname="Anthony Kirby" initials="A." surname="Kirby">
              <organization>Oxbotica</organization>
            </author>
            <date day="23" month="March" year="2022"/>
            <abstract>
              <t>   This document specifies a profile for the ACE (Authentication and
   Authorization for Constrained Environments) framework to enable
   authorization in a Message Queuing Telemetry Transport (MQTT)-based
   publish-subscribe messaging system.  Proof-of-possession keys, bound
   to OAuth2.0 access tokens, are used to authenticate and authorize
   MQTT Clients.  The protocol relies on TLS for confidentiality and
   MQTT server (Broker) authentication.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-06"/>
        </reference>
        <reference anchor="RFC7925">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery. The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="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="RFC9202">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="S. Gerdes" initials="S." surname="Gerdes"/>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a profile of the Authentication and Authorization for Constrained Environments (ACE) framework that allows constrained servers to delegate client authentication and authorization. The protocol relies on DTLS version 1.2 or later for communication security between entities in a constrained network using either raw public keys or pre-shared keys. A resource-constrained server can use this protocol to delegate management of authorization information to a trusted host with less-severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9202"/>
          <seriesInfo name="DOI" value="10.17487/RFC9202"/>
        </reference>
        <reference anchor="NIST-800-207" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf">
          <front>
            <title>Zero Trust Architecture - NIST Special Publication 800-207</title>
            <author initials="S." surname="Rose" fullname="Scott Rose">
              <organization/>
            </author>
            <author initials="O." surname="Borchert" fullname="Oliver Borchert">
              <organization/>
            </author>
            <author initials="S." surname="Mitchell" fullname="Stu Mitchell">
              <organization/>
            </author>
            <author initials="S." surname="Connelly" fullname="Sean Connelly">
              <organization/>
            </author>
            <date year="2020" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="profile-requirements">
      <name>Profile Requirements</name>
      <t>This appendix lists the specifications of this profile based on the requirements of the ACE framework, as requested in <xref section="C" sectionFormat="of" target="RFC9200"/>.</t>
      <ul spacing="normal">
        <li>Optionally, define new methods for the Client to discover the necessary permissions and AS for accessing a resource, different from the one proposed in <xref target="RFC9200"/>: Not specified.</li>
        <li>Optionally, specify new grant types: Not specified.</li>
        <li>Optionally, define the use of client certificates as client credential type: Not specified.</li>
        <li>Specify the communication protocol the Client and RS must use: CoAP.</li>
        <li>Specify the security protocol the Client and RS must use to protect their communication: Group OSCORE, by using a pre-established Group OSCORE Security Context.</li>
        <li>Specify how the Client and the RS mutually authenticate: Explicitly, by possession of a common Group OSCORE Security Context, and by either: usage of digital signatures embedded in messages, if protected with the group mode of Group OSCORE; or protection of messages with the pairwise mode of Group OSCORE, by using pairwise symmetric keys derived from the asymmetric keys of the two peers exchanging the message. Note that mutual authentication is not completed before the Client has verified a Group OSCORE response using the corresponding Group OSCORE Security Context.</li>
        <li>Specify the proof-of-possession protocol(s) and how to select one, if several are available. Also specify which key types (e.g., symmetric/asymmetric) are supported by a specific proof-of- possession protocol: Group OSCORE algorithms; asymmetric keys verified and distributed by a Group Manager.</li>
        <li>Specify a unique ace_profile identifier: coap_group_oscore.</li>
        <li>If introspection is supported, specify the communication and security protocol for introspection: HTTP/CoAP (+ TLS/DTLS/OSCORE).</li>
        <li>Specify the communication and security protocol for interactions between client and AS: HTTP/CoAP (+ TLS/DTLS/OSCORE).</li>
        <li>Specify if/how the authz-info endpoint is protected, including how error responses are protected: Not protected.</li>
        <li>Optionally, define other methods of token transport than the authz-info endpoint: Not defined.</li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Christian Amsüss"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="John Preuß Mattsson"/>, <contact fullname="Dave Robin"/>, <contact fullname="Jim Schaad"/>, and <contact fullname="Göran Selander"/> for their comments and feedback.</t>
      <t>The work on this document has been partly supported by VINNOVA and the Celtic-Next project CRITISEC; and by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
5ED1/SZbJyArDtMAtTmn7i7XvzAB0c+O3wA4J6fwypI5HhCLi/ELVagcKhSw
Ix+aJl3vpPIAFhV3tBtcZP+D7XirdUFkykXgg4IpEbQTDpx5rBJe07d2UsoV
IMZnVyPLwMCXKURWKRuKLwAxAIpNM+vCUXfR8mo7doHr9uV2CRonl2A7capJ
miYlYnTNLXBog8eWnDFRYDkze6MsgElaXcrKPPmCgXEhUys0UlhcZp8tQ0pP
vX7LjwA7KKm8m5ILNHbJdzYHj3MWVQiZq9gCT/6SG9mrrvVrZq1bAKnoVnmk
lY7rAMvFigZ4UZaMdZ2sxcTqgPAkeIvHGzWqZgv++TesmTncVS73S+hlg8L5
ho+7mtO0asb1DNybXcNTcli+02+Z1hQqszq4tKLz5uaW8JG8SLOMWm1bPaRJ
xqgwB7uXE7rkJ2EXIiXk4PoxdOuljqkr4sP4Pil0xaPsWw3rnSVlOfPms3Q1
vgJlmYJgxqYl1lbIR4qqYgsxFDhtXQarXDRpkeuThWywtKgdng1BFQrNVWyF
vWVVIBf6IuEQ2dhS9zYPUNzLPh3E5PSe8cRmmLg6xUJcOgqgUr3pVq2uUQh1
PTkW44kwX1m3qHupK8ukITWKZR7TfLWyWfPRWaYuIKADN4qw1ztflXYHeVK8
h00Rj8pDaldo+37tqfZkQBCg8hqAG3D4W9xTtJ7ecHUFeRfEijTCIpu7OMYJ
BIC+oI8A6N63gnip87azcQGLJ2TFG1tbWpbHMZyxTPyJyX8uMZZ/QMasgoNa
ZFG5KjVKrGOWSZiGFbaoQl+VAD3xPNlzkSGToUkQcG/Ii+AtbKXQtQLB7k8/
/dvo6uXzjx93rVAlPJ8uTYWywz9oXxjWk0wszENqEySzxoANvpV87YYv5X3k
JA/cBrlNM7rRTjI/vMsQ902lIe+lPIljb28wcf6oQL9rzbGrbv5lQ09i+u4X
EAzWyFKdd5OzzX3QDfGHs2r84XfBa6Cci6DSIhl+uaQkyAW+eqEhaPRkD5uV
dmvfGZFmMfXu1NXYnwUELcvILy5SjCYhllUHRdccSB4ew01VI1V2VdAkLLlD
VSXutVW9QIWaOwBQciqRG+2CnFr7nECgIMf1771+/wCevRHynp2LQNMDofMb
hJhxMBd1OC3xGZ8pNkfnRGj7atefxeDe1ljX7eocypPT43MH7ewbbOFL4zb/
nlTSl5JdXwTO9aQISk6iQujnsBxsSn59NfoWfhlJ05CP+1Iyif3i4MI00sf7
Iz/yRfAatP+WjovF19bSrH7Gv8bSrHsZ1y6t5vLYXwV6DXdqb7dUDAX8i5Zr
rr5eQ1NuYKuGwjiry490fQFCc6f+TQuTustJaslaBRGI68G/TSThgjz6Prv7
dCrddqbPJ7qt9/ZFaejzZ28iCRr5BzFWd8TRdTqy9WQzPTyUKnz1ScSwYtLP
EEDn5s4PuvmHEJVDXfVIRD852o9p18f1+aaRJDz/B9WUUw33+unAjGOdDn9h
zoj4lDymz5Ya9qUwtcjkLNFvyr9y25FK4ol/E3tecRuOi8OYMnX1gRra58HL
cCxmtag7K9pCPtWe4VOfYgFU52rg3bd5mBb4HDz1iAV2SpPcp9SuOpXrEzm0
yinrnx72ZcHdchGHZUVBU+rZ2THdNLCjGMlFcPWnt29ubq9u2iAy2qNkmrbh
zOCk4Njastx3MEJTAdbefvPdRfBn4jioCZMv7iJ4XWG5TYnR3vm12+1gDBY3
++2U+Wb5svEApcnWtp3cyjCl5Pg4+RCA/i7jEoWNVoWfcQbTFXYRies3r3jU
yOtp6h4ckA6rkvHNwtS0cfIAhZTnVMlQ+HUVJedGcROCO+dWPZHPE4qacrXW
YMTRvkhXK1q1IqaVlvYKYmIrbJjbwrl3TlxQQYXGpsqyZdMYWjdYV7hMzGpY
95rcbWkyMmXDwkjkJR8Hp0aor63ALEmy6vAjuRJyIjmZmyon0/epYerbsiDb
7oIyQivj6IjJBkPYXuhSXqthreLCc+ToNK4trUpnjXeyaq0mp48aRmJvSKuf
5AWyI9mtllbgtk4MacXweY13EacZqz6fF7CNkKtqKgERNw6i3EjksFvZ7NMP
332NcQw3Bqxd/A3da70RLHjXxyu+ZLBCu/rkKdS07cQ6KIwkoYcKLzGZqKaP
Vl8uk7fuHoh2gRsnihsg3Bx/yobcC4XuIF3ptAnP0Msz4xiLoDMs0GktL5sJ
78Nkho5Gbq2p+QL7jyl2RtlOMlSlQfvUQPlAttNZyOtm4MSsK1f1MoOadV54
0d7ZFOye8m5efF05RacaIEZZmoyXejonW9QBVRgAKf8N8yrMTWIqISBBMqi4
y1R/Eje/WHXgzMkbXjQyLcrtqLAfZOvOeBeUDv6U8tn3v0L15ikK3qcMiYM1
nHHlJHC2kefHM2xmMNpm5mTyVLGqOo9+YrWBbVmFD/iO2+bJ85CzHND/bBIz
fCWqEqtIx1z4pdUuINa0aXU8h8ztIxf4IHqfZg8zEU+N1hHyd7Gg7z5iQhn7
pkX8zW6aqWxBdjwWHOihNiA4NUb1fhre5RiFwrSdefHP/1sUHzG/AX54JtIf
sY1k8F0YL9+rb/+Q3aWgBInlP/834GtZFkWWqt8uMXv7Jhsn+ps/gMI9Am4V
xh9Vvjp8++0//wEgABYxCzGi+1EXPyjpRdsj76kQMWpeMl+LooeZn+ao7w7E
nATseWKT8h+vX79+88eBllFDgUHq9ms0IuAAqfRzeHN9ez26Gn6tRAw++KJ3
2DvUj4yun1+P2i8wCrL/Lekb4TQXpJIF5/3eSb8HmPf/ACb4h6j8DgEA

-->

</rfc>
