<?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-ietf-ace-group-oscore-profile-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.0 -->
  <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-ietf-ace-group-oscore-profile-00"/>
    <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="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="December" day="22"/>
    <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
    Authentication and Authorization for Constrained Environments Working Group mailing list (ace@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ace-wg/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>
            <t>Group Manager, as the entity responsible for a set of groups where communications among members are secured with Group OSCORE.</t>
          </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>
            <t>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"/>).</t>
          </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>
            <t>'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.</t>
          </li>
          <li>
            <t>'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.</t>
          </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>
            <t>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'.</t>
          </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>
            <t>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.</t>
          </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>
                <t>salt takes as value the empty byte string.</t>
              </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>
                <t>info takes as value the PoP input.</t>
              </li>
              <li>
                <t>L is equal to 8, i.e., the size of the MAC, in bytes.</t>
              </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>
            <t>'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.</t>
          </li>
          <li>
            <t>'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.</t>
          </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>
            <t>As PoP input, the AS uses the same value considered by the Client in <xref target="sec-c-as-token-endpoint"/>.</t>
          </li>
          <li>
            <t>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.</t>
          </li>
          <li>
            <t>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.</t>
          </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>
            <t>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.</t>
          </li>
          <li>
            <t>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"/>.</t>
          </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>
            <t>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"/>.</t>
          </li>
          <li>
            <t>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.</t>
          </li>
          <li>
            <t>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.</t>
          </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>
            <t>The RS MUST check that the claims 'salt_input', 'contextId_input', and 'cnf' are included in the Access Token.</t>
          </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>
                <t>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.</t>
              </li>
              <li>
                <t>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.</t>
              </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>
            <t>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).</t>
          </li>
          <li>
            <t>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).</t>
          </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>
                <t>The current Group Identifier of the OSCORE group, as value of the 'context_id' parameter.</t>
              </li>
              <li>
                <t>The current Sender ID it has in the OSCORE group, as value of the 'salt_input' parameter.</t>
              </li>
              <li>
                <t>The new authentication credential it uses in the OSCORE group, as inner confirmation value of the 'req_cnf' parameter.</t>
              </li>
              <li>
                <t>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.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>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"/>.</t>
          </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>
            <t>Name: coap_group_oscore</t>
          </li>
          <li>
            <t>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.</t>
          </li>
          <li>
            <t>CBOR Value: TBD (value between 1 and 255)</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-oauth-params">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry, following the procedure specified in <xref section="11.2" sectionFormat="of" target="RFC6749"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Name: "context_id"</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="context_id"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Name: "salt_input"</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="salt_input"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Name: "client_cred_verify"</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="client_cred_verify"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Name: "client_cred_verify_mac"</t>
          </li>
          <li>
            <t>Parameter Usage Location: token request</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="client_cred_verify_mac"/> of [RFC-XXXX]</t>
          </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>
            <t>Name: "context_id"</t>
          </li>
          <li>
            <t>CBOR Key: TBD</t>
          </li>
          <li>
            <t>Value Type: bstr</t>
          </li>
          <li>
            <t>Reference: <xref target="context_id"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Name: "salt_input"</t>
          </li>
          <li>
            <t>CBOR Key: TBD</t>
          </li>
          <li>
            <t>Value Type: bstr</t>
          </li>
          <li>
            <t>Reference: <xref target="salt_input"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Name: "client_cred_verify"</t>
          </li>
          <li>
            <t>CBOR Key: TBD</t>
          </li>
          <li>
            <t>Value Type: bstr</t>
          </li>
          <li>
            <t>Reference: <xref target="client_cred_verify"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Name: "client_cred_verify_mac"</t>
          </li>
          <li>
            <t>CBOR Key: TBD</t>
          </li>
          <li>
            <t>Value Type: bstr</t>
          </li>
          <li>
            <t>Reference: <xref target="client_cred_verify_mac"/> of [RFC-XXXX]</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims">
        <name>CBOR Web Token (CWT) Claims Registry</name>
        <t>IANA is asked to add the following 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>
            <t>Claim Name: "salt_input"</t>
          </li>
          <li>
            <t>Claim Description: Client provided salt input</t>
          </li>
          <li>
            <t>JWT Claim Name: "N/A"</t>
          </li>
          <li>
            <t>Claim Key: TBD</t>
          </li>
          <li>
            <t>Claim Value Type(s): bstr</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="salt_input_claim"/> of [RFC-XXXX]</t>
          </li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>
            <t>Claim Name: "contextId_input"</t>
          </li>
          <li>
            <t>Claim Description: Client context id input</t>
          </li>
          <li>
            <t>JWT Claim Name: "N/A"</t>
          </li>
          <li>
            <t>Claim Key: TBD</t>
          </li>
          <li>
            <t>Claim Value Type(s): bstr</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="contextId_input_claim"/> of [RFC-XXXX]</t>
          </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>
            <t>Value: EXPORTER-ACE-Sign-Challenge-Client-AS</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Recommended: N</t>
          </li>
          <li>
            <t>Reference: <xref target="sec-c-as-token-endpoint"/> of [RFC-XXXX]</t>
          </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="23" month="October" 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 and obsoletes RFC 7390, while it updates RFC 7252
   and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-10"/>
        </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="2" month="September" 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-20"/>
        </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="September" 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-14"/>
        </reference>
        <reference anchor="I-D.ietf-ace-mqtt-tls-profile">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT) and Transport Layer Security (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 Authentication and Authorization for Constrained Environments (ACE) framework to enable authorization in a publish-subscribe messaging system based on Message Queuing Telemetry Transport (MQTT).  Proof-of-Possession keys, bound to OAuth 2.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="20" month="October" year="2023"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50%.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 COSE headers, a C509 TLS certificate type, and a C509
   file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-07"/>
        </reference>
        <reference anchor="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>
          <t>Optionally, define new methods for the Client to discover the necessary permissions and AS for accessing a resource, different from the one proposed in <xref target="RFC9200"/>: Not specified.</t>
        </li>
        <li>
          <t>Optionally, specify new grant types: Not specified.</t>
        </li>
        <li>
          <t>Optionally, define the use of client certificates as client credential type: Not specified.</t>
        </li>
        <li>
          <t>Specify the communication protocol the Client and RS must use: CoAP.</t>
        </li>
        <li>
          <t>Specify the security protocol the Client and RS must use to protect their communication: Group OSCORE, by using a pre-established Group OSCORE Security Context.</t>
        </li>
        <li>
          <t>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.</t>
        </li>
        <li>
          <t>Specify the proof-of-possession protocol(s) and how to select one, if several are available. Also specify which key types (e.g., symmetric/asymmetric) are supported by a specific proof-of- possession protocol: Group OSCORE algorithms; asymmetric keys verified and distributed by a Group Manager.</t>
        </li>
        <li>
          <t>Specify a unique ace_profile identifier: coap_group_oscore.</t>
        </li>
        <li>
          <t>If introspection is supported, specify the communication and security protocol for introspection: HTTP/CoAP (+ TLS/DTLS/OSCORE).</t>
        </li>
        <li>
          <t>Specify the communication and security protocol for interactions between client and AS: HTTP/CoAP (+ TLS/DTLS/OSCORE).</t>
        </li>
        <li>
          <t>Specify if/how the authz-info endpoint is protected, including how error responses are protected: Not protected.</t>
        </li>
        <li>
          <t>Optionally, define other methods of token transport than the authz-info endpoint: Not defined.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t><contact fullname="Ludwig Seitz"/> contributed as a co-author of initial versions of this document.</t>
      <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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
+iRZqYYN6FLTJ8bYgC4WK/vJGtNvlLjq2tmK2zy4SooozDXtVyCnSDLm59pS
vDNpKrM9q9xj2vKZhGTR2PQIE87wljVBd4jPRCh7Den+PyO6ljEiNFC1GAlf
KwKCKEG0Qw/0spDIUmSd4AfsJoRj1XvqrdXAq5ob86Y2cG+oFh90I0P69Mi3
KYIeIx4b4+XykFQHI4qi0dUDssne54XT1FX0zm4icpMQsUu1c81uRsgc2r/W
nds3zZfKD1+9++H1ldFjqzKWel7hRfNJabx8XPWBpSBvYF2wxMIID7wScy6/
ld4XHNRqg2ftwGlgo+1xfJ25EM1RPi18b7tp/m1P1zaTuJX3k+QB1QVMGqcb
RkwFvjZpYQzZWNUu0/qm3fDnm9qP8I+dn62mtikqAurPz7yb70HJ/Dn4A2mP
2C4l+PnzZjGavlN+9nNw/+JKfRwVZa6+h1eM8r7xK1X99TNeQZV3xSufsf3a
/uQNqKDK6LjbgcJXPHcXLzu7IARL1Gra4SyZpL/fjWAfIt+1sFgmEP5yGMwT
/GLYuwqhuLzNoOw2+LpqXB/rVuKOmyO5FdJ8CbbIc12JKfzMKix55rB6CvzI
Nh+KOyrdsB05v6u6OI1HpkAv1D3pdPtW1zhQKTXGIUu34FnNG6/ThyTPUtZD
90F/P7AUeKvrCOrNS+lQku0SnVpCe0PGJnXMAS5sWWAcvMxcja65Fo8tdKeM
w3c8UnY+iP2iev+Ebbd91qXX29yrjZcuiTAt9Et8/1aKMSoqZUWr17mFTF2l
jQ1dcV1cpaQib/PlrCQb8G7oZhVwP079HBm04dhCAgpLU1/EWi8tXd0s74J3
L7W3pwz2GXZSSWqrV1qBqxyd+tYcp6Q5WkWlgeFpJXVbLlzdHJ0WS5kBpsu5
VBClKY42Mk+QB9aoeQ5aWL2mK7cA04G421UrIt9QRFdZs9/tyfRXHao6jNyK
pMHTySIhuqpv6pjGTiNWLIxLJzNl9FRta0fzwiZqoqDIbmg5Iy0tTm9Adk8l
2z+ci3pnYVKfAql3g3RnbVdl1anUbc8is9lVksIPiUzzWMc6whFaf1sG5jkP
j/VP3Zy3rpevEz3zGJDf9BfIger7TbZOQFYcpgFqc07dXa5/YQKinx2/AXBO
TuGVJXM8IBYX4xeqUDlUKGBHPjRNut5J5QEsKu5oN7jI/gfb8VbrgsiUi8AH
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
/w+EQ5nyag4BAA==

-->

</rfc>
