<?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-rfc2629 version 1.5.6 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-ace-group-oscore-profile-08" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.9.1 -->
  <front>
    <title abbrev="Group OSCORE Profile of ACE">Group OSCORE Profile of the Authentication and Authorization for Constrained Environments Framework</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-ace-group-oscore-profile-08"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="R." surname="Höglund" fullname="Rikard Höglund">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>rikard.hoglund@ri.se</email>
      </address>
    </author>
    <author initials="L." surname="Seitz" fullname="Ludwig Seitz">
      <organization>Combitech</organization>
      <address>
        <postal>
          <street>Djäknegatan 31</street>
          <city>Malmö</city>
          <code>21135 Malmö</code>
          <country>Sweden</country>
        </postal>
        <email>ludwig.seitz@combitech.com</email>
      </address>
    </author>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <date year="2022" month="March" day="07"/>
    <area>Internet</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 OSCORE to provide communication security between a Client and a (set of) Resource Server(s) as members of an OSCORE Group. The profile securely binds an OAuth 2.0 Access Token with the public key of the Client associated with the private key used 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 correct 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.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Constrained RESTful Environments Working Group mailing list (ace@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/crimson84/draft-tiloca-ace-group-oscore-profile"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <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 get 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. That is, 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. For instance, 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. Also, introducing a different security group for each different set of access rights would result in additional keying material to distribute and manage. In particular, if the access rights for a single node change, this would require 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 in the system.</t>
      <t>A fine-grained access control model can be rather enforced within a same group, by using the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. 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 Server. However each of the current profiles of ACE defined in <xref target="I-D.ietf-ace-oscore-profile" format="default"/> <xref target="I-D.ietf-ace-dtls-authorize" format="default"/> <xref target="I-D.ietf-ace-mqtt-tls-profile" format="default"/> admits a single security protocol that cannot be used to protect group messages sent over IP multicast.</t>
      <t>This document specifies the "coap_group_oscore" profile of the ACE framework, where a Client uses CoAP <xref target="RFC7252" format="default"/> or CoAP over IP multicast <xref target="I-D.ietf-core-groupcomm-bis" format="default"/> to communicate to one or multiple Resource Servers, which are members of an application group and share a common set of resources. This profile uses Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/> 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" format="default"/> 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 by using an Access Token, which is bound to a key (the proof-of-possession key). This profile uses Group OSCORE to achieve server authentication, as well as proof-of-possession for the Client's public key used in the OSCORE group in question. Note that the proof of possession is not done by a dedicated protocol element, but rather occurs after the first Group OSCORE exchange.</t>
      <t>Furthermore, this profile provides proof of the Client's membership to the correct OSCORE group, by binding the Access Token to the Client's authentication credential used in the group and including the Client's public public key, as well as to information from the pre-established Group OSCORE Security Context. This allows the Resource Server 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" format="default"/> specifies how to use COSE <xref target="I-D.ietf-cose-rfc8152bis-struct" format="default"/><xref target="I-D.ietf-cose-rfc8152bis-algs" format="default"/> 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 protected messages (in group mode); or by protecting messages with pairwise keying material derived from the asymmetric keys of the two peers exchanging the message (in pairwise mode).</t>
      <section anchor="terminology" numbered="true" toc="default">
        <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" format="default"/> <xref target="RFC8174" format="default"/> 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" format="default"/>, COSE <xref target="I-D.ietf-cose-rfc8152bis-struct" format="default"/><xref target="I-D.ietf-cose-rfc8152bis-algs" format="default"/>, CoAP <xref target="RFC7252" format="default"/>, OSCORE <xref target="RFC8613" format="default"/> and Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/>. These especially include:</t>
        <ul spacing="normal">
          <li>Group Manager, as the entity responsible for a set of groups where communications among members are secured with Group OSCORE.</li>
          <li>
            <t>Authentication credential, as the set of information associated with an entity, including that entity's public key and parameters associated with the public key. Examples of authentication credentials are CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392" format="default"/>, X.509 certificates <xref target="RFC7925" format="default"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert" format="default"/>.  </t>
            <t>
Members of an OSCORE group have an associated authentication credential in the format used in the group. As per <xref section="2.3" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>, 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="I-D.ietf-ace-oauth-authz" format="default"/>, as well as in the OSCORE profile of ACE <xref target="I-D.ietf-ace-oscore-profile" format="default"/>. The terminology for entities in the considered architecture is defined in OAuth 2.0 <xref target="RFC6749" format="default"/>. 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>Equivalent COSE Key: a COSE Key built from an authentication credential used in the OSCORE group. The equivalent COSE Key preserves all the main information elements from the authentication credential, in particular the key coordinates and the comprehensive set of information related to the public key algorithm, including, e.g., the used elliptic curve (when applicable).</li>
          <li>Pairwise-only group: an OSCORE group that uses only the pairwise mode (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>).</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" numbered="true" toc="default">
      <name>Protocol Overview</name>
      <t>This section provides an overview of this profile, i.e., on how to use the ACE framework for authentication and authorization <xref target="I-D.ietf-ace-oauth-authz" format="default"/> to secure communications between a Client and a (set of) Resource Server(s) using Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/>.</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 for joining the OSCORE group through the respective Group Manager as defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/> 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" format="default"/>. In the figure, it is assumed that both RS1 and RS2 are associated with the same AS. It is also assumed that C, RS1 and RS2 have previously joined an OSCORE group with Group Identifier (gid) "abcd0000", and got assigned Sender ID (sid) "0", "1" and "2" in the group, respectively. The names of messages coincide with those of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> when applicable.</t>
      <figure anchor="fig-protocol-overview">
        <name>Protocol Overview.</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
C                           RS1          RS2                         AS
| [--- Resource Request -->] |            |                           |
|                            |            |                           |
| [<----  AS Request ------] |            |                           |
|       Creation Hints       |            |                           |
|                            |            |                           |
|-------- POST /token ----------------------------------------------->|
|  (aud: RS1, sid: 0, gid: abcd0000, ...) |                           |
|                            |            |                           |
|                            |            |                           |
|<-------------------------------- Access Token + RS Information -----|
|                            | (aud: RS1, sid: 0, gid: abcd0000, ...) |
|                            |            |                           |
|---- POST /authz-info ----->|            |                           |
|      (access_token)        |            |                           |
|                            |            |                           |
|<--- 2.01 Created ----------|            |                           |
|                            |            |                           |
|-------- POST /token ----------------------------------------------->|
|  (aud: RS2, sid: 0, gid: abcd0000, ...) |                           |
|                            |            |                           |
|                            |            |                           |
|                            |            |                           |
|<-------------------------------- Access Token + RS Information -----|
|                            | (aud: RS2, sid: 0, gid: abcd0000, ...) |
|                            |            |                           |
|----- POST /authz-info ----------------->|                           |
|       (access_token)       |            |                           |
|                            |            |                           |
|                            |            |                           |
|<--- 2.01 Created -----------------------|                           |
|                            |            |                           |
|-- Group OSCORE Request -+->|            |                           |
| (kid: 0, gid: abcd0000) \-------------->|                           |
|                            |            |                           |
|                         /proof-of-possession/                       |
|                            |            |                           |
|                            |            |                           |
|<-- Group OSCORE Response --|            |                           |
|         (kid: 1)           |            |                           |
|                            |            |                           |
/proof-of-possession/        |            |                           |
|                            |            |                           |
/Mutual authentication       |            |                           |
 between C and RS1/          |            |                           |
|                            |            |                           |
|                            |            |                           |
|<-- Group OSCORE Response ---------------|                           |
|         (kid: 2)           |            |                           |
|                            |            |                           |
/proof-of-possession/        |            |                           |
|                            |            |                           |
/Mutual authentication       |            |                           |
 between C and RS2/          |            |                           |
|                            |            |                           |
|            ...             |            |                           |
]]></artwork>
      </figure>
      <section anchor="sec-protocol-overview-pre-conditions" numbered="true" toc="default">
        <name>Pre-Conditions</name>
        <t>Using Group OSCORE and this profile requires both the Client and the Resource Servers to 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 may join the OSCORE group through the respective Group Manager by using the approach defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>, 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" format="default"/>.</t>
      </section>
      <section anchor="sec-protocol-overview-token-retrieval" numbered="true" toc="default">
        <name>Access Token Retrieval</name>
        <t>This profile requires that the Client retrieves an Access Token from the AS for the resource(s) it wants to access on each of the RSs, using the /token endpoint, as specified in <xref section="5.8" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>. In a general case, it can be assumed that different RSs are associated with different ASs, even if the RSs are members of a same 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 public key used in the OSCORE group; and a proof-of-possession (PoP) evidence to proof 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 public key indicated by the Client in the Access Token.</t>
        <t>The Access Token request and response MUST be confidentiality-protected and ensure authenticity. This profile RECOMMENDS the use of OSCORE 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="I-D.ietf-ace-oauth-authz" section="5" sectionFormat="bare" format="default"/> and <xref target="I-D.ietf-ace-oauth-authz" section="6" sectionFormat="bare" format="default"/> of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> MAY alternatively be used, such as TLS <xref target="RFC8446" format="default"/> or DTLS <xref target="RFC6347" format="default"/><xref target="I-D.ietf-tls-dtls13" format="default"/>.</t>
      </section>
      <section anchor="sec-protocol-overview-token-posting" numbered="true" toc="default">
        <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 mechanisms specified in <xref section="5.10" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>, as well as Content-Format = application/ace+cbor. 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 with Content-Format = application/ace+cbor. 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" format="default"/>. In practice, the RS maintains a collection of Security Contexts with associated authorization information, for all the clients that it is currently communicating with, and the authorization information is a policy 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 with 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>
      </section>
      <section anchor="sec-protocol-overview-communication" numbered="true" toc="default">
        <name>Secure Communication</name>
        <t>The Client can send a request protected with Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/> to the RS. This can be a unicast request addressed to the RS, or a multicast request 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" format="default"/>. 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" numbered="true" toc="default">
      <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), by means of the 'cnf' claim.</t>
      <section anchor="sec-c-as-token-endpoint" numbered="true" toc="default">
        <name>C-to-AS: POST to Token Endpoint</name>
        <t>The Client-to-AS request is specified in <xref section="5.8.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>. 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="I-D.ietf-ace-oscore-profile" format="default"/>), with the following additional parameters that MUST be included in the payload.</t>
        <ul spacing="normal">
          <li>'context_id', defined in <xref target="context_id" format="default"/> of this document. This parameter specifies the Group Identifier (GID), i.e., the Id Context of an OSCORE group where the Client and the RS are currently members. In particular, the Client wishes to communicate with the RS using the Group OSCORE Security Context associated with that OSCORE group.</li>
          <li>'salt_input', defined in <xref target="salt_input" format="default"/> of this document. This parameter includes the Sender ID that the Client has in the OSCORE group whose GID is specified in the 'context_id' parameter above.</li>
          <li>
            <t>'req_cnf', defined in <xref section="3.1" sectionFormat="of" target="I-D.ietf-ace-oauth-params" format="default"/>. This parameter follows the syntax from <xref section="3.1" sectionFormat="of" target="RFC8747" format="default"/> when including Value Type "COSE_Key" (1) and specifying an asymmetric key. In particular, the specified public key is the COSE Key equivalent to the authentication credential that the Client uses in the OSCORE group. The specified public key will be used as the pop-key bound to the Access Token.  </t>
            <t>
Alternative Value Types defined in future specifications are fine to consider, if indicating a non-encrypted asymmetric key or full-fledged autentication credential.</t>
          </li>
        </ul>
        <t>In addition, the Client computes its proof-of-possession (PoP) evidence, in order to prove possession of its own private key used in the OSCORE group to the AS. This allows the AS to verify that the Client indeed owns the private key associated with that public key, as its alleged identity credential within the OSCORE group.</t>
        <t>To this end, the Client MUST use as PoP input the byte representation of a quantity that uniquely represents the secure communication association between the Client and the AS. It is RECOMMENDED that the Client considers the following as PoP input.</t>
        <ul spacing="normal">
          <li>If the Client and the AS communicate over (D)TLS, the PoP input is an exporter value computed as defined in <xref section="7.5" sectionFormat="of" target="RFC8446" format="default"/>. In particular, the exporter label MUST be 'EXPORTER-ACE-Sign-Challenge-Client-AS' defined in <xref target="iana-tls-exporter-label" format="default"/> of this document, together with an empty 'context_value', and 32 bytes as 'key_length'.</li>
          <li>
            <t>If the Client and the AS communicate over OSCORE, the PoP input is the output PRK of a HKDF-Extract step <xref target="RFC5869" format="default"/>, 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" format="default"/> algorithms defined for COSE <xref target="I-D.ietf-cose-rfc8152bis-algs" format="default"/>. The Client and AS may agree on the HKDF algorithm to use during the Client's registration at the AS. HKDF SHA-256 is mandatory to implement.</t>
          </li>
        </ul>
        <t>Then, the Client computes the PoP evidence as follows.</t>
        <ul spacing="normal">
          <li>If the OSCORE group is not a pairwise-only group, the PoP evidence MUST be a signature. The Client computes the signature by using the same private key and signature algorithm it uses for signing messages in the OSCORE group. The private key corresponds to the authentication credential used in the OSCORE group, for which the equivalent COSE Key is specified in the 'req_cnf' parameter above.</li>
          <li>
            <t>If the OSCORE group is a pairwise-only group, the PoP evidence MUST be a MAC computed as follows, by using the HKDF Algorithm HKDF SHA-256, which consists of composing the HKDF-Extract and HKDF-Expand steps <xref target="RFC5869" format="default"/>.  </t>
            <t>
MAC = HKDF(salt, IKM, info, L)  </t>
            <t>
The input parameters of HKDF are as follows.  </t>
            <ul spacing="normal">
              <li>salt takes as value the empty byte string.</li>
              <li>
                <t>IKM is computed as a cofactor Diffie-Hellman shared secret, see Section 5.7.1.2 of <xref target="NIST-800-56A" format="default"/>, 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" format="default"/>.      </t>
                <t>
The Client's private key corresponds to the Client's authentication credential used in the OSCORE group, for which the equivalent COSE Key is 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="I-D.ietf-cose-rfc8152bis-algs" format="default"/> is mandatory to implement.</t>
              </li>
              <li>info takes as value the PoP input.</li>
              <li>L is equal to 8, i.e., the size of the MAC, in bytes.</li>
            </ul>
          </li>
        </ul>
        <t>Finally, the Client MUST include one of the two following parameters in the payload of the POST request to the AS.</t>
        <ul spacing="normal">
          <li>'client_cred_verify', defined in <xref target="client_cred_verify" format="default"/> of this document, specifying the Client's PoP evidence as a signature, which is computed as defined above. This parameter MUST be included if and only if the OSCORE group is not a pairwise-only group.</li>
          <li>'client_cred_verify_mac', defined in <xref target="client_cred_verify_mac" format="default"/> of this document, specifying the Client's PoP evidence as a MAC, which is computed as defined above. This parameter MUST be included if and only if the OSCORE group is a pairwise-only group.</li>
        </ul>
        <t>An example of such a request is shown in <xref target="fig-example-C-to-AS-symm" format="default"/>.</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 name="" type="" align="left" alt=""><![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" : {
         "COSE_Key" : {
           "kty" : EC2,
           "crv" : P-256,
           "x" : h'd7cc072de2205bdc1537a543d53c60a6acb62eccd890c7fa
                   27c9e354089bbe13',
           "y" : h'f95e1d4b851a2cc80fff87d8e23f22afb725d535e515d020
                   731e79a3b4e47120'
         }
       },
       "client_cred_verify" : h'...'
       (signature content omitted for brevity)
     }
]]></artwork>
        </figure>
        <section anchor="context_id" numbered="true" toc="default">
          <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="I-D.ietf-ace-oauth-authz" format="default"/>. 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" numbered="true" toc="default">
          <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="I-D.ietf-ace-oauth-authz" format="default"/>. 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" numbered="true" toc="default">
          <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="I-D.ietf-ace-oauth-authz" format="default"/>. 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" numbered="true" toc="default">
          <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="I-D.ietf-ace-oauth-authz" format="default"/>. 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" numbered="true" toc="default">
        <name>AS-to-C: Access Token</name>
        <t>After having verified the POST request to the /token endpoint and that the Client is authorized to obtain an Access Token corresponding to its Access Token request, the AS MUST verify the proof-of-possession (PoP) evidence. In particular, the AS proceeds as follows.</t>
        <ul spacing="normal">
          <li>As PoP input, the AS uses the same value considered by the Client in <xref target="sec-c-as-token-endpoint" format="default"/>.</li>
          <li>As public key of the Client, the AS uses the one specified in the 'req_cnf' parameter of the Access Token request.</li>
          <li>If the Access Token request includes the 'client_cred_verify' parameter, this specifies the PoP evidence as a signature. Then, the AS verifies the signature by using the public key of the Client.</li>
          <li>
            <t>If the Access Token request includes the 'client_cred_verify_mac' parameter, this specifies the PoP evidence as a Message Authentication Code (MAC).  </t>
            <t>
Then, the AS recomputes the MAC through the same process taken by the Client when preparing the value of the 'client_cred_verify_mac' parameter for the Access Token (see <xref target="sec-c-as-token-endpoint" format="default"/>), 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="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
        <t>If all verifications are successful, the AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>. In particular:</t>
        <ul spacing="normal">
          <li>The AS can signal that the use of Group OSCORE is REQUIRED for a specific Access Token by including the 'ace_profile' parameter with the value "coap_group_oscore" in the Access Token response. The Client MUST use Group OSCORE towards all the Resource Servers for which this Access Token is valid. Usually, it is assumed that constrained devices will be pre-configured with the necessary profile, so that this kind of profile signaling can be omitted.</li>
          <li>The AS MUST NOT include the 'rs_cnf' parameter defined in <xref target="I-D.ietf-ace-oauth-params" format="default"/>. 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" format="default"/>.</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" format="default"/> is RECOMMENDED.</t>
        <ul spacing="normal">
          <li>The profile "coap_group_oscore". If the Access Token is a CWT, this is placed in the 'ace_profile' claim of the Access Token, as per <xref section="5.10" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>.</li>
          <li>The salt input specified in the 'salt_input' parameter of the Token Request. If the Access Token is a CWT, the content of the 'salt_input' parameter MUST be placed in the 'salt_input' claim of the Access Token, defined in <xref target="salt_input_claim" format="default"/> of this document.</li>
          <li>The Context Id input specified in the 'context_id' parameter of the Token Request. If the Access Token is a CWT, the content of the 'context_id' parameter MUST be placed in the 'contextId_input' claim of the Access Token, defined in <xref target="contextId_input_claim" format="default"/> of this document.</li>
          <li>
            <t>The public key 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 public key MUST be specified in the 'cnf' claim, which follows the syntax from <xref section="3.1" sectionFormat="of" target="RFC8747" format="default"/> when including Value Type "COSE_Key" (1) and specifying an asymmetric key. In particular, the 'cnf' claim includes the same COSE Key specified in the 'req_cnf' parameter of the Token Request, i.e., the COSE Key equivalent to the authentication credential that the Client uses in the OSCORE group.  </t>
            <t>
Alternative Value Types defined in future specifications are fine to consider, if indicating a non-encrypted asymmetric key or full-fledged autentication credential.</t>
          </li>
        </ul>
        <t><xref target="fig-example-AS-to-C" format="default"/> 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 name="" type="" align="left" alt=""><![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" format="default"/> shows an example CWT Claims Set, containing the Client's public key in the group (as pop-key) in the 'cnf' claim.</t>
        <figure anchor="fig-example-AS-to-C-CWT">
          <name>Example CWT Claims Set with OSCORE parameters.</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
     {
       "aud" : "tempSensorInLivingRoom",
       "iat" : "1360189224",
       "exp" : "1360289224",
       "scope" :  "temperature_g firmware_p",
       "cnf" : {
         "COSE_Key" : {
           "kty" : EC2,
           "crv" : P-256,
           "x" : h'd7cc072de2205bdc1537a543d53c60a6acb62eccd890c7fa
                   27c9e354089bbe13',
           "y" : h'f95e1d4b851a2cc80fff87d8e23f22afb725d535e515d020
                   731e79a3b4e47120'
       },
       "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" format="default"/> and encoded in CBOR is shown in <xref target="fig-example-AS-to-C-CWT-encoding" format="default"/>, using the value abbreviations defined in <xref target="I-D.ietf-ace-oauth-authz" format="default"/> and <xref target="RFC8747" format="default"/>. 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>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 name="" type="" align="left" alt=""><![CDATA[
A7                                      # map(7)
   03                                   # unsigned(3)
   76                                   # text(22)
      74656D7053656E736F72496E4C6976696E67526F6F6D
   06                                   # unsigned(6)
   1A 5112D728                          # unsigned(1360189224)
   04                                   # unsigned(4)
   1A 51145DC8                          # unsigned(1360289224)
   09                                   # unsigned(9)
   78 18                                # text(24)
      74656D70657261747572655F67206669726D776172655F70
   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)
            D7CC072DE2205BDC1537A543D53C60A6ACB62ECCD890C7FA27C9
            E354089BBE13
         22                             # negative(2)
         58 20                          # bytes(32)
            F95E1D4B851A2CC80FFF87D8E23F22AFB725D535E515D020731E
            79A3B4E47120
   18 3C                                # unsigned(60)
   41                                   # bytes(1)
      00
   18 3D                                # unsigned(61)
   44                                   # bytes(4)
      ABCD0000
]]></artwork>
        </figure>
        <section anchor="salt_input_claim" numbered="true" toc="default">
          <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" numbered="true" toc="default">
          <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" numbered="true" toc="default">
      <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" format="default"/>) or with the pairwise mode (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>).</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 including the public key associated with its own 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" format="default"/>). This allows the RS receiving an Access Token to verify with the Group Manager of that OSCORE group whether such a Client has indeed that Sender ID and an authentication credential including that public key 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) public key; ii) successfully posting the Access Token to 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" numbered="true" toc="default">
        <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="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
      </section>
      <section anchor="sec-rs-c-created" numbered="true" toc="default">
        <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="I-D.ietf-ace-oauth-authz" format="default"/>, with the following additions.</t>
        <ul spacing="normal">
          <li>The RS MUST check that the claims 'salt_input', 'contextId_input' and 'cnf' are included in the Access Token.</li>
          <li>
            <t>The RS considers: the content of the 'contextId_input' claim as the GID of the OSCORE group; the content of the 'salt_input' claim as the Sender ID that the Client has in the group; and the content of the 'cnf' claim as the COSE Key equivalent to the authentication credential that the Client uses in the group.  </t>
            <t>
The RS MUST check whether it already stores an authentication credential associated with the pair (GID, Sender ID) above, such that the COSE Key specified in the 'cnf' claim is its equivalent COSE Key.  </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="10" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>, specifying the Client's Sender ID in the OSCORE group, i.e., the value of the 'salt_input' claim. Then, the RS performs the following actions.  </t>
            <ul spacing="normal">
              <li>The RS MUST check whether the Client's authentication credential retrieved from the Group Manager is such that the COSE Key specified in the 'cnf' claim of the Access Token is its equivalent COSE Key.</li>
              <li>The RS MUST check that the Client's Sender ID provided by the Group Manager together with the Client's authentication credential matches the one retrieved from the 'salt_input' claim of the Access Token.</li>
            </ul>
          </li>
        </ul>
        <t>If any of the checks above fails, the RS MUST consider the Access Token non valid, and MUST respond to the Client with an error response code equivalent to the CoAP code 4.00 (Bad Request).</t>
        <t>If the Access Token is valid and further checks on its content are successful, the RS associates the authorization information from the Access Token with the Group OSCORE Security Context.</t>
        <t>In particular, the RS associates the authorization information from the Access Token with the 3-tuple (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 3-tuple (GID, SaltInput, AuthCred) associated with the Access Token might change. In particular:</t>
        <ul spacing="normal">
          <li>If the OSCORE group is rekeyed (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/> and <xref section="20" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>), the Group Identifier also changes in the group, and the new one replaces the current 'GID' value in the 3-tuple.</li>
          <li>If the Client requests and obtains a new OSCORE Sender ID from the Group Manager (see <xref section="2.5.3.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/> and <xref section="9" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>), the new Sender ID replaces the current 'SaltInput' value in the 3-tuple.</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="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
      </section>
      <section anchor="sec-client-rs-secure-communication" numbered="true" toc="default">
        <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" numbered="true" toc="default">
          <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" format="default"/>.</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 Token request.</t>
        </section>
        <section anchor="resource-server-side" numbered="true" toc="default">
          <name>Resource Server Side</name>
          <t>After successful validation of the Access Token as defined in <xref target="sec-rs-c-created" format="default"/> 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" format="default"/>.</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 to the stored Access Token. As defined in <xref target="sec-client-public-key-change" format="default"/>, 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" format="default"/>.</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" numbered="true" toc="default">
        <name>Access Rights Verification</name>
        <t>The RS MUST follow the procedures defined in <xref section="5.10.2" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>. If an RS receives a Group OSCORE-protected request from a Client, the RS processes it according to <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/>.</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 with a 4.03 (Forbidden). If the RS has an Access Token for the Client but the requested action is not authorized, the RS MUST reject the request with a 4.05 (Method Not Allowed).</t>
      </section>
      <section anchor="sec-client-public-key-change" numbered="true" toc="default">
        <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 it uses in the group. When this happens, the Client uploads the new authentication credential to the Group Manager, as defined in <xref section="11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>.</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" format="default"/>. In particular, when sending the POST request as defined in <xref target="sec-c-as-token-endpoint" format="default"/>, the Client indicates:  </t>
            <ul spacing="normal">
              <li>The current Group Identifier of the OSCORE group, as value of the 'context_id' parameter.</li>
              <li>The current Sender ID it has in the OSCORE group, as value of the 'salt_input' parameter.</li>
              <li>The public key of the new authentication credential it uses in the OSCORE group, as value of the 'req_cnf' parameter. In particular, the specified public key is the COSE Key equivalent to the new authentication credential that the Client uses in the OSCORE group.</li>
              <li>The proof-of-possession (PoP) evidence corresponding to the public key of the new authentication credential, as value of the 'client_cred_verify' or 'client_cred_verify_mac' parameter.</li>
            </ul>
          </li>
          <li>After receiving the response from the AS (see <xref target="sec-as-c-token" format="default"/>), the Client performs the same exchanges with the RS as defined in <xref target="sec-c-rs-comm" format="default"/>.</li>
        </ol>
        <t>When receiving the new Access Token, the RS performs the same steps defined in <xref target="sec-rs-c-created" format="default"/>, 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 3-tuple has the same GID and SaltInput values as in the 3-tuple including the new authentication credential of the Client and associated with the new Access Token.</t>
      </section>
    </section>
    <section anchor="sec-comm-as" numbered="true" toc="default">
      <name>Secure Communication with the AS</name>
      <t>As specified in the ACE framework (see Sections <xref target="I-D.ietf-ace-oauth-authz" section="5.8" sectionFormat="bare" format="default"/> and <xref target="I-D.ietf-ace-oauth-authz" section="5.9" sectionFormat="bare" format="default"/> of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>), 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" format="default"/> for this communication is RECOMMENDED in this profile. Other protocols fulfilling the security requirements defined in Sections <xref target="I-D.ietf-ace-oauth-authz" section="5" sectionFormat="bare" format="default"/> and <xref target="I-D.ietf-ace-oauth-authz" section="6" sectionFormat="bare" format="default"/> of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> (such as HTTP and DTLS or TLS) MAY be used instead.</t>
      <t>If OSCORE <xref target="RFC8613" format="default"/> 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="I-D.ietf-ace-oauth-authz" format="default"/>, and through the /token endpoint as specified in <xref section="5.8" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
    </section>
    <section anchor="sec-discard-context" numbered="true" toc="default">
      <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" format="default"/>).</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" format="default"/>. 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" numbered="true" toc="default">
      <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" format="default"/>, 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" name="" type="" alt=""><![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" format="default"/>, 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" name="" type="" alt=""><![CDATA[
/-----------------+----------+------------\
| Claim name      | CBOR Key | Value Type |
|-----------------+----------+------------|
| salt_input      | TBD      | bstr       |
| contextId_input | TBD      | bstr       |
\-----------------+----------+------------/
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. 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 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 whose audience comprises multiple RSs.</t>
      <t>In such a case, as per <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>, the AS has to ensure the integrity protection of the Access Token by protecting it through an asymmetric signature. In addition, the used audience has to correctly identify all the RSs that are intended recipients of the Access Token. 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" format="default"/>, 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, for group requests and responses.</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" format="default"/>) and in pairwise mode (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>).</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 over multicast to multiple recipients, or sent over unicast to one 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 one recipient.</t>
    </section>
    <section anchor="sec-privacy-considerations" numbered="true" toc="default">
      <name>Privacy Considerations</name>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. 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" format="default"/> 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" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <section anchor="iana-ace-oauth-profile" numbered="true" toc="default">
        <name>ACE Profile Registry</name>
        <t>IANA is asked to add the following entry to the "ACE Profile" registry defined in <xref section="8.8" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
        <ul spacing="normal">
          <li>Name: coap_group_oscore</li>
          <li>Description: Profile to secure communications between constrained nodes using the Authentication and Authorization for Constrained Environments framework, by enabling authentication and fine-grained authorization of members of an OSCORE group, that use a pre-established Group OSCORE Security Context to communicate with Group OSCORE. Optionally, the dual mode defined in <xref target="full-version" format="default"/> additionally establishes a pairwise OSCORE Security Context, and thus also enables OSCORE communication between two members of the OSCORE group.</li>
          <li>CBOR Value: TBD (value between 1 and 255)</li>
          <li>Reference: [[this document]]</li>
        </ul>
      </section>
      <section anchor="iana-oauth-params" numbered="true" toc="default">
        <name>OAuth Parameters Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters" registry.</t>
        <ul spacing="normal">
          <li>Name: "context_id"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="context_id" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "salt_input"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="salt_input" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="client_cred_verify" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify_mac"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="client_cred_verify_mac" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "client_cred"</li>
          <li>Parameter Usage Location: token request</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="client_cred-appendix" format="default"/> of [[this document]]</li>
        </ul>
      </section>
      <section anchor="iana-token-cbor-mappings" numbered="true" toc="default">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>IANA is asked to add the following entries to the "OAuth Parameters CBOR Mappings" registry defined in <xref section="8.10" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
        <ul spacing="normal">
          <li>Name: "context_id"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="context_id" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "salt_input"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="salt_input" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="client_cred_verify" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "client_cred_verify_mac"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="client_cred_verify_mac" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Name: "client_cred"</li>
          <li>CBOR Key: TBD</li>
          <li>Value Type: bstr</li>
          <li>Reference: <xref target="client_cred-appendix" format="default"/> of [[this document]]</li>
        </ul>
      </section>
      <section anchor="iana-token-cwt-claims" numbered="true" toc="default">
        <name>CBOR Web Token Claims Registry</name>
        <t>IANA is asked to add the following entries to the "CBOR Web Token Claims" registry.</t>
        <ul spacing="normal">
          <li>Claim Name: "salt_input"</li>
          <li>Claim Description: Client provided salt input</li>
          <li>JWT Claim Name: "N/A"</li>
          <li>Claim Key: TBD</li>
          <li>Claim Value Type(s): bstr</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="salt_input_claim" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Claim Name: "contextId_input"</li>
          <li>Claim Description: Client context id input</li>
          <li>JWT Claim Name: "N/A"</li>
          <li>Claim Key: TBD</li>
          <li>Claim Value Type(s): bstr</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="contextId_input_claim" format="default"/> of [[this document]]</li>
        </ul>
        <t>&nbsp;</t>
        <ul spacing="normal">
          <li>Claim Name: "client_cred"</li>
          <li>Claim Description: Client Credential</li>
          <li>JWT Claim Name: "N/A"</li>
          <li>Claim Key: TBD</li>
          <li>Claim Value Type(s): map</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="client_cred_claim-appendix" format="default"/> of [[this document]]</li>
        </ul>
      </section>
      <section anchor="iana-tls-exporter-label" numbered="true" toc="default">
        <name>TLS Exporter Label Registry</name>
        <t>IANA is asked to add the following entry to the "TLS Exporter Label" registry defined in <xref section="6" sectionFormat="of" target="RFC5705" format="default"/> and updated in <xref section="12" sectionFormat="of" target="RFC8447" format="default"/>.</t>
        <ul spacing="normal">
          <li>Value: EXPORTER-ACE-Sign-Challenge-Client-AS</li>
          <li>DTLS-OK: Y</li>
          <li>Recommended: N</li>
          <li>Reference: [[this document]] (<xref target="sec-c-as-token-endpoint" format="default"/>)</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-core-groupcomm-bis" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-groupcomm-bis.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-groupcomm-bis-06.txt">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Chonggang Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <abstract>
              <t>   This document specifies the use of the Constrained Application
   Protocol (CoAP) for group communication, including the use of UDP/IP
   multicast as the default underlying data transport.  Both unsecured
   and secured CoAP group communication are specified.  Security is
   achieved by use of the Group Object Security for Constrained RESTful
   Environments (Group OSCORE) protocol.  The target application area of
   this specification is any group communication use cases that involve
   resource-constrained devices or networks that support CoAP.  This
   document replaces RFC 7390, while it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-06"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-groupcomm.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-groupcomm-14.txt">
          <front>
            <title>Group OSCORE - Secure Group Communication for CoAP</title>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuss Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Jiye Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <abstract>
              <t>   This document defines 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 approach 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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-14"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oauth-authz" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oauth-authz.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-oauth-authz-46.txt">
          <front>
            <title>Authentication and Authorization for Constrained Environments (ACE) using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="Ludwig Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Goeran Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Erik Wahlstroem">
	 </author>
            <author fullname="Samuel Erdtman">
              <organization>Spotify AB</organization>
            </author>
            <author fullname="Hannes Tschofenig">
              <organization>Arm Ltd.</organization>
            </author>
            <date month="November" day="8" year="2021"/>
            <abstract>
              <t>   This specification defines a framework for authentication and
   authorization in Internet of Things (IoT) environments called ACE-
   OAuth.  The framework is based on a set of building blocks including
   OAuth 2.0 and the Constrained Application Protocol (CoAP), thus
   transforming a well-known and widely used authorization solution into
   a form suitable for IoT devices.  Existing specifications are used
   where possible, but extensions are added and profiles are defined to
   better serve the IoT use cases.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oauth-authz-46"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-profile" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oscore-profile.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-oscore-profile-19.txt">
          <front>
            <title>OSCORE Profile of the Authentication and Authorization for Constrained Environments Framework</title>
            <author fullname="Francesca Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Ludwig Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Göran Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Martin Gunnarsson">
              <organization>RISE</organization>
            </author>
            <date month="May" day="6" year="2021"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  It
   utilizes Object Security for Constrained RESTful Environments
   (OSCORE) to provide communication security and proof-of-possession
   for a key owned by the client and bound to an OAuth 2.0 access token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-profile-19"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oauth-params" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oauth-params.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-oauth-params-16.txt">
          <front>
            <title>Additional OAuth Parameters for Authorization in Constrained Environments (ACE)</title>
            <author fullname="Ludwig Seitz">
              <organization>Combitech</organization>
            </author>
            <date month="September" day="7" year="2021"/>
            <abstract>
              <t>   This specification defines new parameters and encodings for the OAuth
   2.0 token and introspection endpoints when used with the framework
   for authentication and authorization for constrained environments
   (ACE).  These are used to express the proof-of-possession key the
   client wishes to use, the proof-of-possession key that the
   Authorization Server has selected, and the key the Resource Server
   uses to authenticate to the client.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oauth-params-16"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm-oscore" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-key-groupcomm-oscore.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-key-groupcomm-oscore-13.txt">
          <front>
            <title>Key Management for OSCORE Groups in ACE</title>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Jiye Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <author fullname="Francesca Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <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
   secured with Group Object Security for Constrained RESTful
   Environments (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-13"/>
        </reference>
        <reference anchor="I-D.ietf-cose-rfc8152bis-struct" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-rfc8152bis-struct.xml" target="https://www.ietf.org/archive/id/draft-ietf-cose-rfc8152bis-struct-15.txt">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="Jim Schaad">
              <organization>August Cellars</organization>
            </author>
            <date month="February" day="1" year="2021"/>
            <abstract>
              <t>   Concise Binary Object Representation (CBOR) is a data format designed
   for small code size and small message size.  There is a need for the
   ability to have basic security services defined 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.

   This document along with [I-D.ietf-cose-rfc8152bis-algs] obsoletes
   RFC8152.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-rfc8152bis-struct-15"/>
        </reference>
        <reference anchor="I-D.ietf-cose-rfc8152bis-algs" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-rfc8152bis-algs.xml" target="https://www.ietf.org/archive/id/draft-ietf-cose-rfc8152bis-algs-12.txt">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="Jim Schaad">
              <organization>August Cellars</organization>
            </author>
            <date month="September" day="24" year="2020"/>
            <abstract>
              <t>   Concise Binary Object Representation (CBOR) is a data format designed
   for small code size and small message size.  There is a need for the
   ability to have basic security services defined 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 XXXX.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-rfc8152bis-algs-12"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <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" target="https://www.rfc-editor.org/info/rfc5705" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5705.xml">
          <front>
            <title>Keying Material Exporters for Transport Layer Security (TLS)</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <date year="2010" month="March"/>
            <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" target="https://www.rfc-editor.org/info/rfc5869" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author initials="H." surname="Krawczyk" fullname="H. Krawczyk">
              <organization/>
            </author>
            <author initials="P." surname="Eronen" fullname="P. Eronen">
              <organization/>
            </author>
            <date year="2010" month="May"/>
            <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" target="https://www.rfc-editor.org/info/rfc6749" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author initials="D." surname="Hardt" fullname="D. Hardt" role="editor">
              <organization/>
            </author>
            <date year="2012" month="October"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.  This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization/>
            </author>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <date year="2014" month="June"/>
            <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" target="https://www.rfc-editor.org/info/rfc7748" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7748.xml">
          <front>
            <title>Elliptic Curves for Security</title>
            <author initials="A." surname="Langley" fullname="A. Langley">
              <organization/>
            </author>
            <author initials="M." surname="Hamburg" fullname="M. Hamburg">
              <organization/>
            </author>
            <author initials="S." surname="Turner" fullname="S. Turner">
              <organization/>
            </author>
            <date year="2016" month="January"/>
            <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <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" target="https://www.rfc-editor.org/info/rfc8392" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8392.xml">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="E." surname="Wahlstroem" fullname="E. Wahlstroem">
              <organization/>
            </author>
            <author initials="S." surname="Erdtman" fullname="S. Erdtman">
              <organization/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
              <organization/>
            </author>
            <date year="2018" month="May"/>
            <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" target="https://www.rfc-editor.org/info/rfc8613" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author initials="G." surname="Selander" fullname="G. Selander">
              <organization/>
            </author>
            <author initials="J." surname="Mattsson" fullname="J. Mattsson">
              <organization/>
            </author>
            <author initials="F." surname="Palombini" fullname="F. Palombini">
              <organization/>
            </author>
            <author initials="L." surname="Seitz" fullname="L. Seitz">
              <organization/>
            </author>
            <date year="2019" month="July"/>
            <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" target="https://www.rfc-editor.org/info/rfc8447" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8447.xml">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author initials="J." surname="Salowey" fullname="J. Salowey">
              <organization/>
            </author>
            <author initials="S." surname="Turner" fullname="S. Turner">
              <organization/>
            </author>
            <date year="2018" month="August"/>
            <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="RFC6920" target="https://www.rfc-editor.org/info/rfc6920" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6920.xml">
          <front>
            <title>Naming Things with Hashes</title>
            <author initials="S." surname="Farrell" fullname="S. Farrell">
              <organization/>
            </author>
            <author initials="D." surname="Kutscher" fullname="D. Kutscher">
              <organization/>
            </author>
            <author initials="C." surname="Dannewitz" fullname="C. Dannewitz">
              <organization/>
            </author>
            <author initials="B." surname="Ohlman" fullname="B. Ohlman">
              <organization/>
            </author>
            <author initials="A." surname="Keranen" fullname="A. Keranen">
              <organization/>
            </author>
            <author initials="P." surname="Hallam-Baker" fullname="P. Hallam-Baker">
              <organization/>
            </author>
            <date year="2013" month="April"/>
            <abstract>
              <t>This document defines a set of ways to identify a thing (a digital object in this case) using the output from a hash function.  It specifies a new URI scheme for this purpose, a way to map these to HTTP URLs, and binary and human-speakable formats for these names. The various formats are designed to support, but not require, a strong link to the referenced object, such that the referenced object may be authenticated to the same degree as the reference to it.  The reason for this work is to standardise current uses of hash outputs in URLs and to support new information-centric applications and other uses of hash outputs in protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6920"/>
          <seriesInfo name="DOI" value="10.17487/RFC6920"/>
        </reference>
        <reference anchor="RFC8747" target="https://www.rfc-editor.org/info/rfc8747" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8747.xml">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="L." surname="Seitz" fullname="L. Seitz">
              <organization/>
            </author>
            <author initials="G." surname="Selander" fullname="G. Selander">
              <organization/>
            </author>
            <author initials="S." surname="Erdtman" fullname="S. Erdtman">
              <organization/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
              <organization/>
            </author>
            <date year="2020" month="March"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization/>
            </author>
            <date year="2020" month="December"/>
            <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="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.ietf-ace-dtls-authorize" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-dtls-authorize.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-dtls-authorize-18.txt">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Stefanie Gerdes">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Olaf Bergmann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Carsten Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Göran Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Ludwig Seitz">
              <organization>Combitech</organization>
            </author>
            <date month="June" day="4" year="2021"/>
            <abstract>
              <t>   This specification defines a profile of the ACE framework that allows
   constrained servers to delegate client authentication and
   authorization.  The protocol relies on DTLS version 1.2 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="Internet-Draft" value="draft-ietf-ace-dtls-authorize-18"/>
        </reference>
        <reference anchor="I-D.ietf-tls-dtls13" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-dtls13.xml" target="https://www.ietf.org/internet-drafts/draft-ietf-tls-dtls13-43.txt">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author initials="E" surname="Rescorla" fullname="Eric Rescorla">
              <organization/>
            </author>
            <author initials="H" surname="Tschofenig" fullname="Hannes Tschofenig">
              <organization/>
            </author>
            <author initials="N" surname="Modadugu" fullname="Nagendra Modadugu">
              <organization/>
            </author>
            <date year="2021" month="April" day="30"/>
            <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 intentionally 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="Internet-Draft" value="draft-ietf-tls-dtls13-43"/>
        </reference>
        <reference anchor="I-D.tiloca-core-oscore-discovery" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.tiloca-core-oscore-discovery.xml" target="https://www.ietf.org/archive/id/draft-tiloca-core-oscore-discovery-11.txt">
          <front>
            <title>Discovery of OSCORE Groups with the CoRE Resource Directory</title>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Christian Amsuess">
	 </author>
            <author fullname="Peter van der Stok">
              <organization>Consultant</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <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-11"/>
        </reference>
        <reference anchor="I-D.ietf-ace-mqtt-tls-profile" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-mqtt-tls-profile.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-mqtt-tls-profile-15.txt">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT)-TLS profile of Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Cigdem Sengul">
              <organization>Brunel University</organization>
            </author>
            <author fullname="Anthony Kirby">
              <organization>Oxbotica</organization>
            </author>
            <date month="March" day="1" year="2022"/>
            <abstract>
              <t>   This document specifies a profile for the ACE (Authentication and
   Authorization for Constrained Environments) framework to enable
   authorization in a Message Queuing Telemetry Transport (MQTT)-based
   publish-subscribe messaging system.  Proof-of-possession keys, bound
   to OAuth2.0 access tokens, are used to authenticate and authorize
   MQTT Clients.  The protocol relies on TLS for confidentiality and
   MQTT server (broker) authentication.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-03"/>
        </reference>
        <reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6347" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <author initials="N." surname="Modadugu" fullname="N. Modadugu">
              <organization/>
            </author>
            <date year="2012" month="January"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6347"/>
          <seriesInfo name="DOI" value="10.17487/RFC6347"/>
        </reference>
        <reference anchor="RFC7925" target="https://www.rfc-editor.org/info/rfc7925" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7925.xml">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig" role="editor">
              <organization/>
            </author>
            <author initials="T." surname="Fossati" fullname="T. Fossati">
              <organization/>
            </author>
            <date year="2016" month="July"/>
            <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" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <date year="2018" month="August"/>
            <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>
      </references>
    </references>
    <section anchor="full-version" numbered="true" toc="default">
      <name>Dual Mode (Group OSCORE &amp; OSCORE)</name>
      <t>This appendix defines the dual mode of this profile, which allows using both OSCORE <xref target="RFC8613" format="default"/> and Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/> as security protocols, by still relying on a single Access Token.</t>
      <t>That is, the dual mode of this profile specifies how a Client uses CoAP <xref target="RFC7252" format="default"/> to communicate to a single Resource Server, or CoAP over IP multicast <xref target="I-D.ietf-core-groupcomm-bis" format="default"/> to communicate to multiple Resource Servers that are members of a group and share a common set of resources.</t>
      <t>In particular, the dual mode of this profile uses two complementary security protocols to provide secure communication between the Client and the Resource Server(s). That is, it defines the use of either OSCORE or Group OSCORE to protect unicast requests addressed to a single Resource Server, as well as possible responses. Additionally, it defines the use of Group OSCORE to protect multicast requests sent to a group of Resource Servers, as well as possible individual responses. Like in the main mode of this profile, the Client and the Resource Servers need to have already joined the same OSCORE group, for instance by using the approach defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>, which is also based on ACE.</t>
      <t>The Client proves its access to be authorized to the Resource Server by using an Access Token, which is bound to a key (the proof-of-possession key). This profile mode uses OSCORE to achieve proof of possession, and OSCORE or Group OSCORE to achieve server authentication.</t>
      <t>Unlike in the main mode of this profile, where a public key is used as pop-key, this dual mode uses OSCORE-related, symmetric keying material as pop-key instead. Furthermore, this dual mode provides proof of Client's membership to the correct OSCORE group, by securely binding the pre-established Group OSCORE Security Context to the pairwise OSCORE Security Context newly established between the Client and the Resource Server.</t>
      <t>In addition to the terminology used for the main mode of this profile, the rest of this appendix refers also to "pairwise OSCORE Security Context" as to an OSCORE Security Context established between only one Client and one Resource Server, and used to communicate with OSCORE <xref target="RFC8613" format="default"/>.</t>
      <section anchor="sec-protocol-overview-appendix" numbered="true" toc="default">
        <name>Protocol Overview</name>
        <t>This section provides an overview on how to use the ACE framework for authentication and authorization <xref target="I-D.ietf-ace-oauth-authz" format="default"/> to secure communications between a Client and a (set of) Resource Server(s) using OSCORE <xref target="RFC8613" format="default"/> and/or Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/>.</t>
        <t>Just as for main mode of this profile overviewed in <xref target="sec-protocol-overview" format="default"/>, the process for joining the OSCORE group through the respective Group Manager as defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/> must take place before the process described in the rest of this section, and is out of the scope of this profile.</t>
        <t>An overview of the protocol flow for the dual mode of this profile is shown in <xref target="fig-protocol-overview-appendix" format="default"/>. In the figure, it is assumed that both RS1 and RS2 are associated with the same AS. It is also assumed that C, RS1 and RS2 have previously joined an OSCORE group with Group Identifier (gid) "abcd0000", and got assigned Sender ID (sid) "0", "1" and "2" in the group, respectively. The names of messages coincide with those of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> when applicable.</t>
        <figure anchor="fig-protocol-overview-appendix">
          <name>Protocol Overview.</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
C                           RS1          RS2                         AS
| [--- Resource Request -->] |            |                           |
|                            |            |                           |
| [<----  AS Request ------] |            |                           |
|       Creation Hints       |            |                           |
|                            |            |                           |
|-------- POST /token ----------------------------------------------->|
| (aud: RS1, sid: 0, gid: abcd0000, ...)  |                           |
|                            |            |                           |
|<-------------------------------- Access Token + RS Information -----|
|                            | (aud: RS1, sid: 0, gid: abcd0000, ...) |
|                            |            |                           |
|---- POST /authz-info ----->|            |                           |
|  (access_token, N1, ID1)   |            |                           |
|                            |            |                           |
|<-- 2.01 Created (N2, ID2) -|            |                           |
|                            |            |                           |
/Pairwise            /Pairwise            |                           |
 Security Context     Security Context    |                           |
 Derivation/          Derivation/         |                           |
|                            |            |                           |
|-------- POST /token ----------------------------------------------->|
| (aud: RS2, sid: 0, gid: abcd0000, ...)  |                           |
|                            |            |                           |
|<-------------------------------- Access Token + RS Information -----|
|                            | (aud: RS2, sid: 0, gid: abcd0000, ...) |
|                            |            |                           |
|---- POST /authz-info ------------------>|                           |
|  (access_token, N1', ID1') |            |                           |
|                            |            |                           |
|<-- 2.01 Created (N2', ID2')-------------|                           |
|                            |            |                           |
/Pairwise Security           |   /Pairwise Security                   |
 Context Derivation/         |    Context Derivation/                 |
|                            |            |                           |
|----- OSCORE Request ------>|            |                           |
|        (kid: ID2)          |            |                           |
|                            |            |                           |
|                            |            |                           |
|                            |            |                           |
|                            |            |                           |
|                /Proof-of-possession;    |                           |
|                 Pairwise Security       |                           |
|                 Context storage/        |                           |
|                            |            |                           |
|<---- OSCORE Response ------|            |                           |
|                            |            |                           |
/Proof-of-possession;        |            |                           |
 Pairwise Security           |            |                           |
 Context storage/            |            |                           |
|                            |            |                           |
/Mutual authentication       |            |                           |
 between C and RS1           |            |                           |
 (as OSCORE peers)/          |            |                           |
|                            |            |                           |
|                            |            |                           |
|- Group OSCORE Request -+-->|            |                           |
| (kid: 0, gid: abcd0000) \-------------->|                           |
|                            |            |                           |
|<-- Group OSCORE Response --|            |                           |
|         (kid: 1)           |            |                           |
|                            |            |                           |
/Mutual authentication       |            |                           |
 between C and RS1           |            |                           |
 (as group members)/         |            |                           |
|                            |            |                           |
|<-- Group OSCORE Response ---------------|                           |
|         (kid: 2)           |            |                           |
|                            |            |                           |
/Mutual authentication       |            |                           |
 between C and RS2           |            |                           |
 (as group members)/         |            |                           |
|                            |            |                           |
|            ...             |            |                           |
]]></artwork>
        </figure>
        <section anchor="sec-protocol-overview-pre-conditions-appendix" numbered="true" toc="default">
          <name>Pre-Conditions</name>
          <t>The same pre-conditions for the main mode of this profile (see <xref target="sec-protocol-overview-pre-conditions" format="default"/>) hold for the dual mode described in this appendix.</t>
        </section>
        <section anchor="sec-protocol-overview-token-posting-appendix" numbered="true" toc="default">
          <name>Access Token Posting</name>
          <t>After having retrieved the Access Token from the AS, the Client generates a nonce N1 and an identifier ID1 unique in the sets of its own Recipient IDs from its pairwise OSCORE Security Contexts. The client then posts both the Access Token, N1 and its chosen ID to the RS, using the /authz-info endpoint and mechanisms specified in <xref section="5.10" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/> and Content-Format = application/ace+cbor.</t>
          <t>When using the dual mode of this profile, the communication with the authz-info endpoint is not protected, except for update of access rights. Note that, when using the dual mode, this request can alternatively be protected with Group OSCORE, using the Group OSCORE Security Context paired with the pairwise OSCORE Security Context originally established with the first Access Token posting.</t>
          <t>If the Access Token is valid, the RS replies to this POST request with a 2.01 (Created) response with Content-Format = application/ace+cbor, which in a CBOR map contains a nonce N2 and an identifier ID2 unique in the sets of its own Recipient IDs from its pairwise OSCORE Security Contexts.</t>
        </section>
        <section anchor="sec-oscore-setup-appendix" numbered="true" toc="default">
          <name>Setup of the Pairwise OSCORE Security Context</name>
          <t>After sending the 2.01 (Created) response, the RS sets the ID Context of the pairwise OSCORE Security Context (see <xref section="3" sectionFormat="of" target="RFC8613" format="default"/>) to the Group Identifier of the OSCORE group specified in the Access Token, concatenated with N1, concatenated with N2, concatenated with the value in the contextId parameter of the OSCORE_Input_Material provided in the 'cnf' claim of the Access Token.</t>
          <t>Then, the RS derives the complete pairwise OSCORE Security Context associated with the received Access Token, following <xref section="3.2" sectionFormat="of" target="RFC8613" format="default"/>. In practice, the RS maintains a collection of Security Contexts with associated authorization information, for all the clients that it is currently communicating with, and the authorization information is a policy used as input when processing requests from those clients.</t>
          <t>During the derivation process, the RS uses: the ID Context above; the exchanged nonces N1 and N2; the identifier ID1 received from the Client, set as its own OSCORE Sender ID; the identifier ID2 provided to the Client, set as its Recipient ID for the Client; and the parameters in the Access Token. The derivation process uses also the Master Secret of the OSCORE group, that the RS knows as a group member, as well as the Sender ID of the Client in the OSCORE group, which is specified in the Access Token. This ensures that the pairwise OSCORE Security Context is securely bound to the Group OSCORE Security Context of the OSCORE group.</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.</t>
          <t>After having received the nonce N2, the Client sets the ID Context in its pairwise OSCORE Security Context (see <xref section="3" sectionFormat="of" target="RFC8613" format="default"/>) to the Group Identifier of the OSCORE group, concatenated with N1, concatenated with N2, concatenated with the value in the contextId parameter of the OSCORE_Input_Material provided in the 'cnf' parameter of the Access Token response from the AS. Then, the Client derives the complete pairwise OSCORE Security Context, following <xref section="3.2" sectionFormat="of" target="RFC8613" format="default"/>.</t>
          <t>During the derivation process, the Client uses: the ID Context above, the exchanged nonces N1 and N2; the identifier ID1 provided to the RS, set as its own Recipient ID for the RS; the identifier ID2 received from the RS, set as its own OSCORE Sender ID; and the parameters received from the AS. The derivation process uses also the Master Secret of the OSCORE group, that the Client knows as a group member, as well as its own Sender ID in the OSCORE group.</t>
          <t>When the Client communicates with the RS using the pairwise OSCORE Security Context, the RS achieves proof-of-possession of the credentials bound to the Access Token. Also, the RS verifies that the Client is a legitimate member of the OSCORE group.</t>
        </section>
        <section anchor="sec-protocol-overview-communication-appendix" numbered="true" toc="default">
          <name>Secure Communication</name>
          <t>Other than starting the communication with the RS using Group OSCORE as described in <xref target="sec-client-rs-secure-communication" format="default"/>, the Client can send to the RS a request protected with OSCORE, using the pairwise OSCORE Security Context.</t>
          <t>If the request is successfully verified, then the RS stores the pairwise OSCORE Security Context, and uses it to protect the possible response, as well as further communications with the Client, until the Access Token is deleted, due to, for example, expiration. This pairwise OSCORE Security Context is discarded when an Access Token (whether the same or different) is used to successfully derive a new pairwise OSCORE Security Context.</t>
          <t>As discussed in <xref section="7" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>, the use of random nonces N1 and N2 during the exchange between the Client and the RS prevents the reuse of an Authenticated Encryption with Associated Data (AEAD) nonce/key pair for two different messages. Reuse might otherwise occur when Client and RS derive a new pairwise OSCORE Security Context from an existing (non-expired) Access Token, e.g., in case of reboot of either the Client or the RS, and might lead to loss of both confidentiality and integrity.</t>
          <t>Additionally, just as per the main mode of this profile (see <xref target="sec-client-rs-secure-communication" format="default"/>), the Client and RS can also securely communicate by protecting messages with Group OSCORE, using the Group OSCORE Security Context already established upon joining the OSCORE group.</t>
        </section>
      </section>
      <section anchor="sec-c-as-comm-appendix" numbered="true" toc="default">
        <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><xref section="3.2" sectionFormat="of" target="RFC8613" format="default"/> defines how to derive a pairwise OSCORE Security Context based on a shared Master Secret and a set of other parameters, established between the OSCORE client and server, which the client receives from the AS in this exchange.</t>
        <t>The proof-of-possession key (pop-key) received from the AS in this exchange MUST be used to build the Master Secret in OSCORE (see <xref target="sec-c-rs-setup-client-appendix" format="default"/> and <xref target="sec-c-rs-setup-server-appendix" format="default"/>).</t>
        <section anchor="sec-c-as-token-endpoint-appendix" numbered="true" toc="default">
          <name>C-to-AS: POST to Token Endpoint</name>
          <t>The Client-to-AS request is specified in <xref section="5.8.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>. 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 main mode of this profile (see <xref target="sec-c-as-token-endpoint" format="default"/>), with the following modifications.</t>
          <ul spacing="normal">
            <li>The parameter 'req_cnf' MUST NOT be included in the payload.</li>
            <li>The parameter 'client_cred', defined in <xref target="client_cred-appendix" format="default"/> of this document, MUST be included in the payload. This parameter specifies the public key that the Client uses in the OSCORE group, whose identifier is indicated in the 'context_id' parameter. In particular, the specified public key is the COSE Key equivalent to the authentication credential that the Client uses in the OSCORE group.</li>
            <li>The proof-of-possession (PoP) evidence included in the 'client_cred_verify' or 'client_cred_verify_mac' parameter is computed by using the Client's private key associated with the public key in the 'client_cred' parameter above.</li>
          </ul>
          <t>An example of such a request is shown in <xref target="fig-example-C-to-AS-symm-appendix" format="default"/>.</t>
          <figure anchor="fig-example-C-to-AS-symm-appendix">
            <name>Example C-to-AS POST /token request for an Access Token bound to a symmetric key.</name>
            <artwork name="" type="" align="left" alt=""><![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',
       "client_cred" : {
         "COSE_Key" : {
           "kty" : EC2,
           "crv" : P-256,
           "x" : h'd7cc072de2205bdc1537a543d53c60a6acb62eccd890c7fa
                   27c9e354089bbe13',
           "y" : h'f95e1d4b851a2cc80fff87d8e23f22afb725d535e515d020
                   731e79a3b4e47120'
         }
       },
       "client_cred_verify" : h'...'
       (signature content omitted for brevity),
     }
]]></artwork>
          </figure>
          <t>Later on, the Client may want to update its current access rights, without changing the existing pairwise OSCORE Security Context with the RS. In this case, the Client MUST include in its POST request to the /token endpoint a 'req_cnf' parameter, defined in <xref section="3.1" sectionFormat="of" target="I-D.ietf-ace-oauth-params" format="default"/>, which MUST include a 'kid' field, as defined in <xref section="3.1" sectionFormat="of" target="RFC8747" format="default"/>. The 'kid' field has as value a CBOR byte string containing the OSCORE_Input_Material Identifier (assigned as discussed in <xref target="sec-as-c-token-appendix" format="default"/>).</t>
          <t>This identifier, together with other information such as audience, can be used by the AS to determine the shared secret bound to the proof-of-possession Access Token and therefore MUST identify a symmetric key that was previously generated by the AS as a shared secret for the communication between the Client and the RS. The AS MUST verify that the received value identifies a proof-of-possession key that has previously been issued to the requesting Client. If that is not the case, the Client-to-AS request MUST be declined with the error code "invalid_request" as defined in <xref section="5.8.3" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
          <t>This POST request for updating the access rights of an Access Token SHOULD NOT include the parameters 'salt_input', 'context_id', 'client_cred' and 'client_cred_verify'. An exception is the case defined in <xref target="sec-client-public-key-change-dual-mode" format="default"/>, where the Client, following a change of authentication credential in the OSCORE group, requests a new Access Token associated with the public key of the new authentication credential, while still without changing the existing pairwise OSCORE Security Context with the RS.</t>
          <t>An example of such a request is shown in <xref target="fig-example-C-to-AS-symm-kid-appendix" format="default"/>.</t>
          <figure anchor="fig-example-C-to-AS-symm-kid-appendix">
            <name>Example C-to-AS POST /token request for updating rights to an Access Token bound to a symmetric key.</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
     Header: POST (Code=0.02)
     Uri-Host: "as.example.com"
     Uri-Path: "token"
     Content-Format: "application/ace+cbor"
     Payload:
     {
       "audience" : "tempSensor4711",
       "scope" : "read",
       "req_cnf" : {
         "kid" : h'01'
       }
     }
]]></artwork>
          </figure>
          <section anchor="client_cred-appendix" numbered="true" toc="default">
            <name>'client_cred' Parameter</name>
            <t>The 'client_cred' parameter is an OPTIONAL parameter of the Access Token request message defined in <xref section="5.8.1." sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>. This parameter provides an asymmetric key that the Client wishes to use as its own public key, but which is not used as proof-of-possession key.</t>
            <t>This parameter follows the syntax of the 'cnf' claim from <xref section="3.1" sectionFormat="of" target="RFC8747" format="default"/> when including Value Type "COSE_Key" (1) and specifying an asymmetric key. Alternative Value Types defined in future specifications are fine to consider if indicating a non-encrypted asymmetric key.</t>
          </section>
        </section>
        <section anchor="sec-as-c-token-appendix" numbered="true" toc="default">
          <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.</t>
          <t>In particular, the AS proceeds as defined in <xref target="sec-as-c-token" format="default"/>, with the difference that it uses the public key specified in the 'client_cred' parameter as public key of the Client.</t>
          <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. The AS does not perform this operation when asked to update a previously released Access Token.</t>
          <t>If all verifications are successful, the AS responds as defined in <xref section="5.8.2" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>. 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="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
          <t>The AS can signal that the use of OSCORE and 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. This means that the Client MUST use OSCORE and/or Group OSCORE towards all the Resource Servers for which this Access Token is valid.</t>
          <t>In particular, the Client MUST follow <xref target="sec-c-rs-setup-client-appendix" format="default"/> to derive the pairwise OSCORE Security Context to use for communications with the RS. Instead, the Client has already established the related Group OSCORE Security Context to communicate with members of the OSCORE group, upon previously joining that group.</t>
          <t>Usually, it is assumed that constrained devices will be pre-configured with the necessary profile, so that this kind of profile signaling can be omitted.</t>
          <t>In contrast with the main mode of this profile, the Access Token response to the Client is analogous to the one in the OSCORE profile of ACE, as described in <xref section="3.2" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>. In particular, the AS provides an OSCORE_Input_Material object, which is defined in <xref section="3.2.1" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/> and included in the 'cnf' parameter (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-ace-oauth-params" format="default"/>) of the Access Token response.</t>
          <t>The AS MUST send different OSCORE_Input_Material (and therefore different Access Tokens) to different authorized clients, in order for the RS to differentiate between clients.</t>
          <t>In the issued Access Token, the AS MUST include as metadata the same information as defined in the main mode of this profile (see <xref target="sec-as-c-token" format="default"/>) with the following modifications.</t>
          <ul spacing="normal">
            <li>
              <t>The public key that the client uses in the OSCORE group and specified in the 'client_cred' parameter of the Token request (see <xref target="sec-c-as-token-endpoint-appendix" format="default"/>) MUST also be included in the Access Token.  </t>
              <t>
If the Access Token is a CWT, the AS MUST include it in the 'client_cred' claim of the Access Token, defined in <xref target="client_cred_claim-appendix" format="default"/> of this document. In particular, the 'client_cred' claim includes the same COSE Key specified in the 'client_cred' parameter of the Token Request, i.e., the COSE Key equivalent to the authentication credential that the Client uses in the OSCORE group.</t>
            </li>
            <li>The OSCORE_Input_Material specified in the 'cnf' parameter of the Access Token response MUST also be included in the Access Token. If the Access Token is a CWT, the same OSCORE_Input_Material included in the 'cnf' parameter of the Access Token response MUST be included in the 'osc' field of the 'cnf' claim of the Access Token (see <xref section="3.2" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>).</li>
          </ul>
          <t><xref target="fig-example-AS-to-C-appendix" format="default"/> shows an example of such an AS response. The access token has been truncated for readability.</t>
          <figure anchor="fig-example-AS-to-C-appendix">
            <name>Example AS-to-C Access Token response with the Group OSCORE profile.</name>
            <artwork name="" type="" align="left" alt=""><![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,
       "cnf" : {
         "osc" : {
           "alg" : AES-CCM-16-64-128,
           "id"  : h'01',
           "ms" : h'f9af838368e353e78888e1426bd94e6f',
           "salt" : h'1122',
           "contextId" : h'99'
         }
       }
     }
]]></artwork>
          </figure>
          <t><xref target="fig-example-AS-to-C-CWT-appendix" format="default"/> shows an example CWT, containing the necessary OSCORE parameters in the 'cnf' claim.</t>
          <figure anchor="fig-example-AS-to-C-CWT-appendix">
            <name>Example CWT with OSCORE parameters.</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
     {
       "aud" : "tempSensorInLivingRoom",
       "iat" : 1360189224,
       "exp" : 1360289224,
       "scope" :  "temperature_g firmware_p",
       "cnf" : {
         "osc" : {
           "alg" : AES-CCM-16-64-128,
           "id"  : h'01',
           "ms" : h'f9af838368e353e78888e1426bd94e6f',
           "salt" : h'1122',
           "contextId" : h'99'
       },
       "salt_input" : h'00',
       "contextId_input" : h'abcd0000',
       "client_cred" : {
         "COSE_Key" : {
           "kty" : EC2,
           "crv" : P-256,
           "x" : h'd7cc072de2205bdc1537a543d53c60a6acb62eccd890c7fa
                   27c9e354089bbe13',
           "y" : h'f95e1d4b851a2cc80fff87d8e23f22afb725d535e515d020
                   731e79a3b4e47120'
         }
       }
     }
]]></artwork>
          </figure>
          <t>The same CWT as in <xref target="fig-example-AS-to-C-CWT-appendix" format="default"/> and encoded in CBOR is shown in <xref target="fig-example-AS-to-C-CWT-encoding-appendix" format="default"/>, using the value abbreviations defined in <xref target="I-D.ietf-ace-oauth-authz" format="default"/> and <xref target="RFC8747" format="default"/>.</t>
          <t>NOTE: it should be checked (and in case fixed) that the values used below (which are not yet registered) are the final values registered in IANA.</t>
          <figure anchor="fig-example-AS-to-C-CWT-encoding-appendix">
            <name>Example CWT with OSCORE parameters.</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
A8                                      # map(8)
   03                                   # unsigned(3)
   76                                   # text(22)
      74656D7053656E736F72496E4C6976696E67526F6F6D
   06                                   # unsigned(6)
   1A 5112D728                          # unsigned(1360189224)
   04                                   # unsigned(4)
   1A 51145DC8                          # unsigned(1360289224)
   09                                   # unsigned(9)
   78 18                                # text(24)
      74656D70657261747572655F67206669726D776172655F70
   08                                   # unsigned(8)
   A1                                   # map(1)
      04                                # unsigned(4)
      A5                                # map(5)
         04                             # unsigned(4)
         0A                             # unsigned(10)
         00                             # unsigned(0)
         41                             # bytes(1)
            01                          # "\x01"
         02                             # unsigned(2)
         50                             # bytes(16)
            F9AF838368E353E78888E1426BD94E6F
         05                             # unsigned(5)
         42                             # bytes(2)
            1122                        # "\x11\""
         06                             # unsigned(6)
         41                             # bytes(1)
            99                          # "\x99"
   18 3C                                # unsigned(60)
   41                                   # bytes(1)
      00
   18 3D                                # unsigned(61)
   44                                   # bytes(4)
      ABCD0000
   18 3E                                # unsigned(62)
   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)
            D7CC072DE2205BDC1537A543D53C60A6ACB62ECCD890C7FA27C9
            E354089BBE13
         22                             # negative(2)
         58 20                          # bytes(32)
            F95E1D4B851A2CC80FFF87D8E23F22AFB725D535E515D020731E
            79A3B4E47120
]]></artwork>
          </figure>
          <t>If the Client has requested an update to its access rights using the same pairwise OSCORE Security Context, which is valid and authorized, the AS MUST omit the 'cnf' parameter in the response to the client.</t>
          <t>Instead, the updated Access Token conveyed in the AS-to-C response MUST include a 'cnf' claim specifying a 'kid' field, as defined in <xref section="3.1" sectionFormat="of" target="RFC8747" format="default"/>. The response from the AS MUST carry the OSCORE Input Material identifier in the 'kid' field within the 'cnf' claim of the Access Token. That is, the 'kid' field is a CBOR byte string, with value the same value of the 'kid' field of the 'req_cnf' parameter from the C-to-AS request for updating rights to the Access Token (see <xref target="fig-example-C-to-AS-symm-kid-appendix" format="default"/>). This information needs to be included in the Access Token, in order for the RS to identify the previously generated pairwise OSCORE Security Context.</t>
          <t><xref target="fig-example-AS-to-C-kid-appendix" format="default"/> shows an example of such an AS response. The Access Token has been truncated for readability.</t>
          <figure anchor="fig-example-AS-to-C-kid-appendix">
            <name>Example AS-to-C Access Token response with the Group OSCORE profile, for update of access rights.</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
     Header: Created (Code=2.01)
     Content-Type: "application/ace+cbor"
     Payload:
     {
       "access_token" : h'8343a1010aa2044c53 ...'
        (remainder of CWT omitted for brevity),
       "profile" : "coap_group_oscore",
       "expires_in" : 3600
     }
]]></artwork>
          </figure>
          <t><xref target="fig-example-AS-to-C-CWT-kid-appendix" format="default"/> shows an example CWT, containing the necessary OSCORE parameters in the 'cnf' claim for update of access rights.</t>
          <figure anchor="fig-example-AS-to-C-CWT-kid-appendix">
            <name>Example CWT with OSCORE parameters for update of access rights.</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
     {
       "aud" : "tempSensorInLivingRoom",
       "iat" : 1360189224,
       "exp" : 1360289224,
       "scope" :  "temperature_h",
       "cnf" : {
         "kid" : h'01'
       }
     }
]]></artwork>
          </figure>
          <section anchor="client_cred_hash-appendix" numbered="true" toc="default">
            <name>Public Key Hash as Client Credential</name>
            <t>As a possible optimization to limit the size of the Access Token, the AS may specify as value of the 'client_cred' claim simply the hash of the Client's public key, i.e., the hash of the COSE Key K equivalent to the authentication credential that the Client uses in the OSCORE group.</t>
            <t>The specifically used hash-function MUST be collision-resistant on byte-strings, and MUST be selected from the "Named Information Hash Algorithm" Registry defined in <xref section="9.4" sectionFormat="of" target="RFC6920" format="default"/>.</t>
            <t>In particular, the AS provides the Client with an Access Token as defined in <xref target="sec-as-c-token-appendix" format="default"/>, with the following differences.</t>
            <t>The AS prepares INPUT_HASH as follows, with | denoting byte string concatenation.</t>
            <ul spacing="normal">
              <li>If the equivalent COSE Key K has COSE Key Type OKP, INPUT_HASH = i, where 'i' is the x-parameter of the COSE_Key specified in the 'client_cred' parameter of the Token request, encoded as a CBOR byte string.</li>
              <li>If the equivalent COSE Key K has COSE Key Type EC2, INPUT_HASH = (i_1 | i_2), where 'i_1' and 'i_2' are the x-parameter and y-parameter of the COSE_Key specified in the 'client_cred' parameter of the Token request, respectively, each encoded as a CBOR byte string.</li>
              <li>If the equivalent COSE Key K has COSE Key Type RSA, INPUT_HASH = (i_1 | i_2), where 'i_1' and 'i_2' are the n-parameter and e-parameter of the COSE_Key specified in the 'client_cred' parameter of the Token request, respectively, each encoded as a CBOR byte string.</li>
            </ul>
            <t>Then, the AS hashes INPUT_HASH according to the procedure described in <xref target="RFC6920" format="default"/>, with the output OUTPUT_HASH in binary format, as described in <xref section="6" sectionFormat="of" target="RFC6920" format="default"/>.</t>
            <t>Finally, the AS includes a single entry within the 'client_cred' claim of the Access Token. This entry has label "kid" (3) defined in <xref section="3.1" sectionFormat="of" target="RFC8747" format="default"/>, and value a CBOR byte string wrapping OUTPUT_HASH.</t>
            <t>Upon receiving the Access Token, the RS processes it according to <xref target="sec-rs-c-created-appendix" format="default"/>, with the following differences.</t>
            <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 content of the 'client_cred' claim as the hash RECEIVED_HASH of a COSE Key equivalent to the authentication credential that the Client uses in the group.</t>
            <t>The RS MUST check whether it already stores an authentication credential associated with the pair (GID, Sender ID) above, such that the recomputed hash NEW_HASH of its equivalent COSE Key matches with RECEIVED_HASH from the 'client_cred' claim.</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="10" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>, specifying the Client's Sender ID in the OSCORE group, i.e., the value of the 'salt_input' claim. Then, the RS performs the following actions.</t>
            <ul spacing="normal">
              <li>The RS MUST check whether RECEIVED_HASH matches with the recomputed hash NEW_HASH of a COSE Key equivalent to the Client's authentication credential retrieved from the Group Manager.</li>
              <li>The RS MUST check that the Client's Sender ID provided by the Group Manager together with the Client's authentication credential matches the one retrieved from the 'salt_input' claim of the Access Token.</li>
            </ul>
            <t>The RS MUST calculate NEW_HASH using the same method used by the AS described above, and using the same hash function. The hash function to use can be determined from the information conveyed in the 'client_cred' claim, as the procedure described in <xref target="RFC6920" format="default"/> also encodes the used hash function as metadata of the hash value.</t>
          </section>
          <section anchor="client_cred_claim-appendix" numbered="true" toc="default">
            <name>Client Credential Claim</name>
            <t>The 'client_cred' claim provides an asymmetric key that the Client owning the Access Token wishes to use as its own public key, but which is not used as proof-of-possession key.</t>
            <t>This parameter follows the syntax of the 'cnf' claim from <xref section="3.1" sectionFormat="of" target="RFC8747" format="default"/> when including Value Type "COSE_Key" (1) and specifying an asymmetric key. Alternative Value Types defined in future specifications are fine to consider, if indicating a non-encrypted asymmetric key or full-fledged autentication credential.</t>
          </section>
        </section>
      </section>
      <section anchor="sec-c-rs-comm-appendix" numbered="true" toc="default">
        <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. With respect to the exchanged messages and their content, the Client and the RS perform as defined in the OSCORE profile of ACE (see <xref section="4" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>).</t>
        <t>That is, the Client generates a nonce N1 and posts it to the RS, together with: an identifier ID1 unique in the sets of its own Recipient IDs from its pairwise OSCORE Security Contexts; and the Access Token that includes the material provisioned by the AS.</t>
        <t>Then, the RS generates a nonce N2, and an identifier ID2 unique in the sets of its own Recipient IDs from its pairwise OSCORE Security Contexts. After that, the RS derives a pairwise OSCORE Security Context as described in <xref section="3.2" sectionFormat="of" target="RFC8613" format="default"/>. In particular, it uses the two exchanged nonces and the two identifiers established with the Client, as well as two shared secrets together with additional pieces of information specified in the Access Token.</t>
        <t>Both the client and the RS generate the pairwise OSCORE Security Context using the pop-key as part of the OSCORE Master Secret. In addition, the derivation of the pairwise OSCORE Security Context takes as input also information related to the OSCORE group, i.e., the Master Secret and Group Identifier of the group, as well as the Sender ID of the Client in the group. Hence, the derived pairwise OSCORE Security Context is also securely bound to the Group OSCORE Security Context of the OSCORE Group. Thus, the proof-of-possession required to bind the Access Token to the Client occurs after the first OSCORE message exchange.</t>
        <t>Therefore, an attacker using a stolen Access Token cannot generate a valid pairwise OSCORE Security Context and thus cannot prove possession of the pop-key. Also, if a Client legitimately owns an Access Token but has not joined the OSCORE group, that Client cannot generate a valid pairwise OSCORE Security Context either, since it lacks the Master Secret used in the OSCORE group.</t>
        <t>Besides, just as in the main mode (see <xref target="sec-c-rs-comm" format="default"/>), the RS is able to verify whether the Client has indeed the claimed Sender ID and authentication credential in the OSCORE group.</t>
        <section anchor="sec-c-rs-authz-appendix" numbered="true" toc="default">
          <name>C-to-RS POST to authz-info Endpoint</name>
          <t>The Client MUST generate a nonce N1, an OSCORE Recipient ID (ID1), and post them to the /authz-info endpoint of the RS together with the Access Token, as defined in the OSCORE profile of ACE (see <xref section="4.1" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>).</t>
          <t>The same recommendations, considerations and behaviors defined in <xref section="4.1" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/> hold.</t>
          <t>If the Client has already posted a valid Access Token, has already established a pairwise OSCORE Security Context with the RS, and wants to update its access rights, the Client can do so by posting the new Access Token (retrieved from the AS and specifying the updated set of access rights) to the /authz-info endpoint.</t>
          <t>The Client MUST protect the request using either the pairwise OSCORE Security Context established during the first Access Token exchange, or the Group OSCORE Security Context associated with that pairwise OSCORE Security Context.</t>
          <t>In either case, the Client MUST only send the Access Token in the payload, i.e., no nonce or identifier are sent. After proper verification (see <xref section="4.2" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>), the new Access Token will supersede the old one at the RS, by replacing the corresponding authorization information. At the same time, the RS will maintain the same pairwise OSCORE Security Context and Group OSCORE Security Context, as now both associated with the new Access Token.</t>
        </section>
        <section anchor="sec-rs-c-created-appendix" numbered="true" toc="default">
          <name>RS-to-C: 2.01 (Created)</name>
          <t>The RS MUST verify the validity of the Access Token as defined in <xref target="sec-rs-c-created" format="default"/>, with the following modifications.</t>
          <ul spacing="normal">
            <li>If the POST request to /authz-info is not protected, the RS checks that the 'cnf' claim is included in the Access Token and that it contains an OSCORE_Input_Material object. Also, the RS checks that the 'salt_input', 'client_cred' and 'contextId_input' claims are included in the Access Token.</li>
            <li>If the POST request to /authz-info is protected with the pairwise OSCORE Security Context shared with the Client or with the Group OSCORE Security Context of the OSCORE group, i.e., the Client is requesting an update of access rights, the RS checks that the 'cnf' claim is included in the Access Token and that it contains only the 'kid' field.</li>
            <li>If the 'salt_input', 'client_cred' and 'contextId_input' claims are included in the Access Token, the RS extracts the content of 'client_cred'. Then, the RS considers that content as the COSE Key equivalent to the authentication credential that the Client uses in the group, whose GID is specified in the 'contextId_input' claim. The RS can compare this public key with the actual COSE Key equivalent to the authentication credential of the claimed Client, retrieved from its local storage or from the Group Manager (see <xref target="sec-rs-c-created" format="default"/>).</li>
          </ul>
          <t>If any of the checks 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 proceeds as follows.</t>
          <t>In case the POST request to /authz-info was not protected, the RS MUST generate a nonce N2, an OSCORE Recipient ID (ID2), and include them in the 2.01 (Created) response to the Client, as defined in the OSCORE profile of ACE (see <xref section="4.2" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>).</t>
          <t>Instead, in case the POST request to /authz-info was protected, the RS MUST ignore any nonce and identifiers in the request, if any was sent. Then, the RS MUST check that the 'kid' field of the 'cnf' claim in the new Access Token matches the identifier of the OSCORE Input Material of a pairwise OSCORE Security Context such that:</t>
          <ul spacing="normal">
            <li>The pairwise OSCORE Security Context was used to protect the request, if this was protected with OSCORE; or</li>
            <li>The pairwise OSCORE Security Context is bound to the Group OSCORE Security Context used to protect the request, if this was protected with Group OSCORE.</li>
          </ul>
          <t>If either verification is successful, the new Access Token supersedes the old one at the RS. Besides, the RS associates the new Access Token to the same pairwise OSCORE Security Context identified above, as also bound to a Group OSCORE Security Context. The RS MUST respond with a 2.01 (Created) response with no payload, protected with the same Security Context used to protect the request.  In particular, no new pairwise OSCORE Security Context is established between the Client and the RS. If any verification fails, the RS MUST respond with a 4.01 (Unauthorized) error response.</t>
          <t>Further recommendations, considerations and behaviors defined in <xref section="4.2" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/> hold for this document.</t>
        </section>
        <section anchor="sec-c-rs-setup-client-appendix" numbered="true" toc="default">
          <name>OSCORE Setup - Client Side</name>
          <t>Once having received the 2.01 (Created) response from the RS, following an unprotected POST request to the /authz-info endpoint, the Client MUST extract the nonce N2 from the 'nonce2' parameter, and the Client identifier from the 'ace_server_recipientid' parameter in the CBOR map of the response payload. Note that this identifier is used by C as Sender ID in the pairwise OSCORE Security Context to be established with the RS, and is different as well as unrelated to the Sender ID of C in the OSCORE group.</t>
          <t>Then, the Client performs the following actions, in order to set up and fully derive the pairwise OSCORE Security Context for communicating with the RS.</t>
          <ul spacing="normal">
            <li>The Client MUST set the ID Context of the pairwise OSCORE Security Context as the concatenation of: i) GID, i.e., the Group Identifier of the OSCORE group, as specified by the Client in the 'context_id' parameter of the Client-to-AS request; ii) the nonce N1; iii) the nonce N2; and iv) CID, i.e., the value in the contextId parameter of the OSCORE_Input_Material provided in the 'cnf' parameter of the Access Token response from the AS. The concatenation occurs in this order: ID Context = GID | N1 | N2 | CID, where | denotes byte string concatenation.</li>
            <li>The Client MUST set the updated Master Salt of the pairwise OSCORE Security Context as the concatenation of SaltInput, MSalt, the nonce N1, the nonce N2 and GMSalt, where: i) SaltInput is the Sender ID that the Client has in the OSCORE group, which is known to the Client as a member of the OSCORE group; ii) MSalt is the (optional) Master Salt in the pairwise OSCORE Security Context (received from the AS in the Token); and iii) GMSalt is the (optional) Master Salt in the Group OSCORE Security Context, which is known to the Client as a member of the OSCORE group. The concatenation occurs in this order: Master Salt = SaltInput | MSalt | N1 | N2 | GMSalt, where | denotes byte string concatenation. Optional values, if not specified, are not included in the concatenation. The five parameters SaltInput, MSalt, N1, N2 and GMSalt are to be concatenated as encoded CBOR byte strings. An example of Master Salt construction using CBOR encoding is given in <xref target="fig-example-master-salt-construction" format="default"/>.</li>
          </ul>
          <figure anchor="fig-example-master-salt-construction">
            <name>Example of Master Salt construction using CBOR encoding.</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
SaltInput, MSalt, N1, N2 and GMSalt, in CBOR diagnostic notation:
      SaltInput = h'00'
      MSalt = h'f9af838368e353e78888e1426bd94e6f'
      N1 = h'018a278f7faab55a'
      N2 = h'25a8991cd700ac01'
      GMSalt = h'99'

SaltInput, MSalt, N1, N2 and GMSalt, as CBOR encoded byte strings:
      SaltInput = 0x4100
      MSalt = 0x50f9af838368e353e78888e1426bd94e6f
      N1 = 0x48018a278f7faab55a
      N2 = 0x4825a8991cd700ac01
      GMSalt = 0x4199

Master Salt = 0x41 00
                50 f9af838368e353e78888e1426bd94e6f
                48 018a278f7faab55a
                48 25a8991cd700ac01
                41 99
]]></artwork>
          </figure>
          <ul spacing="normal">
            <li>The Client MUST set the Master Secret of the pairwise OSCORE Security Context to the concatenation of MSec and GMSec, where: i) MSec is the value of the 'ms' parameter in the OSCORE_Input_Material of the 'cnf' parameter, received from the AS in <xref target="sec-as-c-token-appendix" format="default"/>; while ii) GMSec is the Master Secret of the Group OSCORE Security Context, which is known to the Client as a member of the OSCORE group.</li>
            <li>The Client MUST set the Recipient ID as ace_client_recipientid, sent as described in <xref target="sec-c-rs-authz-appendix" format="default"/>.</li>
            <li>The Client MUST set the Sender ID as ace_server_recipientid, received as described in <xref target="sec-c-rs-authz-appendix" format="default"/>.</li>
            <li>The Client MUST set the AEAD Algorithm, ID Context, HKDF, and OSCORE Version as indicated in the corresponding parameters received from the AS in <xref target="sec-as-c-token-appendix" format="default"/>, if present in the OSCORE_Input_Material of the 'cnf' parameter. In case these parameters are omitted, the default values SHALL be used as described in Sections <xref target="RFC8613" section="3.2" sectionFormat="bare" format="default"/> and <xref target="RFC8613" section="5.4" sectionFormat="bare" format="default"/> of <xref target="RFC8613" format="default"/>.</li>
          </ul>
          <t>Finally, the client MUST derive the complete pairwise OSCORE Security Context following <xref section="3.2.1" sectionFormat="of" target="RFC8613" format="default"/>.</t>
          <t>From then on, when communicating with the RS to access the resources as specified by the authorization information, the Client MUST use the newly established pairwise OSCORE Security Context or the Group OSCORE Security Context of the OSCORE Group where both the Client and the RS are members.</t>
          <t>If any of the expected parameters is missing (e.g., any of the mandatory parameters from the AS or the RS), or if ace_client_recipientid equals ace_server_recipientid (and as a consequence the Sender and Recipient Keys derived would be equal, see <xref section="3.3" sectionFormat="of" target="RFC8613" format="default"/>), then the client MUST stop the exchange, and MUST NOT derive the pairwise OSCORE Security Context. The Client MAY restart the exchange, to get the correct security input material.</t>
          <t>The Client can use this pairwise OSCORE Security Context to send requests to the RS protected with OSCORE. Besides, the Client can use the Group OSCORE Security Context for protecting unicast requests to the RS, or multicast requests to the OSCORE group including also the RS. Mutual authentication as group members is only achieved after the client has successfully verified the Group OSCORE protected response from the RS. Similarly, mutual authentication as OSCORE peers is only achieved after the client has successfully verified the OSCORE protected response from the RS, using the pairwise OSCORE Security Context.</t>
          <t>Note that the ID Context of the pairwise OSCORE Security Context can be assigned by the AS, communicated and set in both the RS and Client after the exchange specified in this profile is executed. Subsequently, the Client and RS can update their ID Context by running a mechanism such as the one defined in Appendix B.2 of <xref target="RFC8613" format="default"/> if they both support it and are configured to do so. In that case, the ID Context in the pairwise OSCORE Security Context will not match the "contextId" parameter of the corresponding OSCORE_Input_Material. Running the procedure in Appendix B.2 of <xref target="RFC8613" format="default"/> results in the keying material in the pairwise OSCORE Security Contexts of the Client and RS being updated. The Client can achieve the same result by re-posting the Access Token to the unprotected /authz-info endpoint at the RS, as described in <xref section="4.1" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/>, although without updating the ID Context.</t>
        </section>
        <section anchor="sec-c-rs-setup-server-appendix" numbered="true" toc="default">
          <name>OSCORE Setup - Resource Server Side</name>
          <t>After validation of the Access Token as defined in <xref target="sec-rs-c-created-appendix" format="default"/> and after sending the 2.01 (Created) response to an unprotected POST request to the /authz-info endpoint, the RS performs the following actions, in order to set up and fully derive the pairwise OSCORE Security Context created to communicate with the Client.</t>
          <ul spacing="normal">
            <li>The RS MUST set the ID Context of the pairwise OSCORE Security Context as the concatenation of: i) GID, i.e., the Group Identifier of the OSCORE group, as specified in the 'contextId' parameter of the OSCORE_Input_Material, in the 'cnf' claim of the Access Token received from the Client (see <xref target="sec-c-rs-authz-appendix" format="default"/>); ii) the nonce N1; iii) the nonce N2; and iv) CID which is the value in the contextId parameter of the OSCORE_Input_Material provided in the 'cnf' claim of the Access Token. The concatenation occurs in this order: ID Context = GID | N1 | N2 | CID, where | denotes byte string concatenation.</li>
            <li>The RS MUST set the new Master Salt of the pairwise OSCORE Security Context as the concatenation of SaltInput, MSalt, the nonce N1, the nonce N2 and GMSalt, where: i) SaltInput is the Sender ID that the Client has in the OSCORE group, as specified in the 'salt_input' claim included in the Access Token received from the Client (see <xref target="sec-c-rs-authz-appendix" format="default"/>); ii) MSalt is the (optional) Master Salt in the pairwise OSCORE Security Context as specified in the 'salt' parameter in the OSCORE_Input_Material of the 'cnf' claim, included in the Access Token received from the Client; and iii) GMSalt is the (optional) Master Salt in the Group OSCORE Security Context, which is known to the RS as a member of the OSCORE group. The concatenation occurs in this order: Master Salt = SaltInput | MSalt | N1 | N2  | GMSalt, where | denotes byte string concatenation. Optional values, if not specified, are not included in the concatenation. The same considerations for building the Master Salt, considering the inputs as encoded CBOR byte strings as in <xref target="fig-example-master-salt-construction" format="default"/>, hold also for the RS.</li>
            <li>The RS MUST set the Master Secret of the pairwise OSCORE Security Context to the concatenation of MSec and GMSec, where: i) MSec is the value of the 'ms' parameter in the OSCORE_Input_Material of the 'cnf' claim, included in the Access Token received from the Client (see <xref target="sec-c-rs-authz-appendix" format="default"/>); while ii) GMSec is the Master Secret of the Group OSCORE Security Context, which is known to the RS as a member of the OSCORE group.</li>
            <li>The RS MUST set the Recipient ID as ace_server_recipientid, sent as described in <xref target="sec-rs-c-created-appendix" format="default"/>.</li>
            <li>The RS MUST set the Sender ID as ace_client_recipientid, received as described in <xref target="sec-rs-c-created-appendix" format="default"/>.</li>
            <li>The RS MUST set the AEAD Algorithm, ID Context, HKDF, and OSCORE Version from the corresponding parameters received from the Client in the Access Token (see <xref target="sec-c-rs-authz-appendix" format="default"/>), if present in the OSCORE_Input_Material of the 'cnf' claim. In case these parameters are omitted, the default values SHALL be used as described in Sections <xref target="RFC8613" section="3.2" sectionFormat="bare" format="default"/> and <xref target="RFC8613" section="5.4" sectionFormat="bare" format="default"/> of <xref target="RFC8613" format="default"/>.</li>
          </ul>
          <t>Finally, the RS MUST derive the complete pairwise OSCORE Security Context following <xref section="3.2.1" sectionFormat="of" target="RFC8613" format="default"/>.</t>
          <t>Once having completed the derivation above, the RS MUST associate the authorization information from the Access Token with the just established pairwise OSCORE Security Context. Furthermore, as defined in <xref target="sec-rs-c-created" format="default"/>, the RS MUST associate the authorization information from the Access Token with the Group OSCORE Security Context.</t>
          <t>Then, the RS uses this pairwise OSCORE Security Context to verify requests from and send responses to the Client protected with OSCORE, when this Security Context is used. If OSCORE verification fails, error responses are used, as specified in <xref section="8" sectionFormat="of" target="RFC8613" format="default"/>.</t>
          <t>Besides, the RS uses the Group OSCORE Security Context to verify (multicast) requests from and send responses to the Client protected with Group OSCORE. When processing an incoming request protected with Group OSCORE, the RS MUST consider as valid authentication credential of the Client only the authentication credential associated with the stored Access Token. As defined in <xref target="sec-client-public-key-change-dual-mode" format="default"/>, a change of authentication credential in the group requires the Client to upload to the RS a new Access Token, where the 'client_cred' claim specifies a COSE Key equivalent to the new authentication credential that the Client has in the group.</t>
          <t>If Group OSCORE verification fails, error responses are used, as specified in Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="8" sectionFormat="bare" format="default"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="9" sectionFormat="bare" format="default"/> of <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/>. Additionally, for every incoming request, if OSCORE or Group OSCORE verification succeeds, the verification of access rights is performed as described in <xref target="sec-c-rs-access-rights-appendix" format="default"/>.</t>
          <t>After the deletion of the Access Token related to a pairwise OSCORE Security Context and to a Group OSCORE Security Context, due to, for example, expiration, the RS MUST NOT use the pairwise OSCORE Security Context. The RS MUST respond with an unprotected 4.01 (Unauthorized) error message to received requests that correspond to a pairwise OSCORE Security Context with a deleted Access Token. Also, 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>
          <t>The same considerations, related to the value of the ID Context changing, as in <xref target="sec-c-rs-setup-client-appendix" format="default"/> hold also for the RS.</t>
        </section>
        <section anchor="sec-c-rs-access-rights-appendix" numbered="true" toc="default">
          <name>Access Rights Verification</name>
          <t>The RS MUST follow the procedures defined in <xref target="sec-c-rs-access-rights" format="default"/>.</t>
          <t>Additionally, if the RS receives an OSCORE-protected request from a Client, the RS processes it according to <xref target="RFC8613" format="default"/>.</t>
          <t>If the OSCORE verification succeeds, and the target resource requires authorization, the RS retrieves the authorization information from the Access Token associated with the pairwise OSCORE Security Context and to 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.</t>
        </section>
        <section anchor="sec-client-public-key-change-dual-mode" numbered="true" toc="default">
          <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 it uses in the group. When this happens, the Client uploads the new authentication credential to the Group Manager, as defined in <xref section="11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>.</t>
          <t>After that, the Client may still have an Access Token previously uploaded to the RS, which is not expired yet and still valid to the best of the Client's knowledge. Then, 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-token-endpoint-appendix" format="default"/> for the update of access rights, i.e., with the 'req_cnf' parameter including only a 'kid' field. In particular, when sending the POST request to the AS, the Client indicates:  </t>
              <ul spacing="normal">
                <li>The current Group Identifier of the OSCORE group, as value of the 'context_id' parameter.</li>
                <li>The current Sender ID it has in the OSCORE group, as value of the 'salt_input' parameter.</li>
                <li>The public key of the new authentication credential it uses in the OSCORE group, as value of the 'client_cred' parameter. In particular, the specified public key is the COSE Key equivalent to the new authentication credential that the Client uses in the OSCORE group.</li>
                <li>The proof-of-possession (PoP) evidence corresponding to the public key of the new authentication credential, as value of the 'client_cred_verify' or 'client_cred_verify_mac' parameter.</li>
                <li>The same current or instead new set of access rights, as value of the 'scope' parameter.</li>
              </ul>
            </li>
            <li>After receiving the response from the AS (see <xref target="sec-as-c-token-appendix" format="default"/>), the Client performs the same exchanges with the RS as defined in <xref target="sec-c-rs-comm-appendix" format="default"/>, with the following difference: the POST request to /authz-info for uploading the new Access Token MUST be protected with the pairwise OSCORE Security Context shared with the RS.</li>
          </ol>
          <t>When receiving the new Access Token, the RS performs the same steps defined in <xref target="sec-rs-c-created-appendix" format="default"/>. In particular, no new pairwise OSCORE Security Context is established between the Client and the RS.</t>
        </section>
      </section>
      <section anchor="sec-comm-as-appendix" numbered="true" toc="default">
        <name>Secure Communication with the AS</name>
        <t>The same considerations for secure communication with the AS as defined in <xref target="sec-comm-as" format="default"/> hold.</t>
      </section>
      <section anchor="sec-discard-context-appendix" numbered="true" toc="default">
        <name>Discarding the Security Context</name>
        <t>The Client and the RS MUST follow what is defined in <xref section="6" sectionFormat="of" target="I-D.ietf-ace-oscore-profile" format="default"/> about discarding the pairwise OSCORE Security Context.</t>
        <t>Additionally, they MUST follow what is defined in the main mode of the profile (see <xref target="sec-discard-context" format="default"/>), with respect to the Group OSCORE Security Context.</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" format="default"/>. In such a case, the Client SHOULD request a new Access Token and post it to the RS, in order to establish a new pairwise OSCORE Security Context and bind it to the Group OSCORE Security Context obtained upon re-joining the group.</t>
      </section>
      <section anchor="sec-cbor-mappings-appendix" numbered="true" toc="default">
        <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" format="default"/>, with the following addition, using the given integer abbreviation for the map key.</t>
        <figure anchor="fig-cbor-mappings-parameters-appendix">
          <name>CBOR mappings for new parameters.</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
/----------------+----------+------------\
| Parameter name | CBOR Key | Value Type |
|----------------+----------+------------|
| client_cred    | TBD      | map        |
\----------------+----------+------------/
]]></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" format="default"/>, with the following addition, using the given integer abbreviation for the map key.</t>
        <figure anchor="fig-cbor-mappings-claims-appendix">
          <name>CBOR mappings for new claims.</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
/--------------+----------+------------\
| Claim name   | CBOR Key | Value Type |
|--------------+----------+------------|
| client_cred  | TBD      | map        |
\--------------+----------+------------/
]]></artwork>
        </figure>
      </section>
      <section anchor="sec-security-considerations-appendix" numbered="true" toc="default">
        <name>Security Considerations</name>
        <t>The dual mode of this profile inherits the security considerations from the main mode (see <xref target="sec-security-considerations" format="default"/>), as well as from the security considerations of the OSCORE profile of ACE <xref target="I-D.ietf-ace-oscore-profile" format="default"/>. Also, the security considerations about OSCORE <xref target="RFC8613" format="default"/> hold for the dual mode of this profile, as to the specific use of OSCORE.</t>
        <t>Unlike the main mode and consistently with <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>, the dual mode of this profile cannot be used to issue an Access Token for an audience that comprises multiple RSs. This is because the proof-of-possession key bound to an Access Token is the OSCORE Master Secret included in the OSCORE_Input_Material object of the 'cnf' claim, and it has to be shared only between the Client and one RS.</t>
      </section>
      <section anchor="sec-privacy-considerations-appendix" numbered="true" toc="default">
        <name>Privacy Considerations</name>
        <t>The same privacy considerations as defined in the main mode of this profile apply (see <xref target="sec-privacy-considerations" format="default"/>).</t>
        <t>In addition, as this profile mode also uses OSCORE, the privacy considerations from <xref target="RFC8613" format="default"/> apply as well, as to the specific use of OSCORE.</t>
        <t>Furthermore, this profile mode inherits the privacy considerations from the OSCORE profile of ACE <xref target="I-D.ietf-ace-oscore-profile" format="default"/>.</t>
      </section>
    </section>
    <section anchor="profile-requirements" numbered="true" toc="default">
      <name>Profile Requirements</name>
      <t>This appendix lists the specifications on this profile based on the    requirements of the ACE framework, as requested in Appendix C of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
      <ul spacing="normal">
        <li>(Optional) discovery process of how the Client finds the right AS for an RS it wants to send a request to: Not specified.</li>
        <li>Communication protocol the Client and the RS must use: CoAP.</li>
        <li>Security protocol(s) the Client and RS must use: Group OSCORE, i.e., exchange of secure messages by using a pre-established Group OSCORE Security Context. The optional dual mode defined in <xref target="full-version" format="default"/> additionally uses OSCORE, i.e., establishment of a pairwise OSCORE Security Context and exchange of secure messages.</li>
        <li>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 the mutual authentication is not completed before the Client has verified an OSCORE or a Group OSCORE response using the corresponding security context.</li>
        <li>Content-format of the protocol messages: "application/ace+cbor".</li>
        <li>Proof-of-Possession protocol(s) and how to select one; which key types (e.g., symmetric/asymmetric) supported: Group OSCORE algorithms; distributed and verified asymmetric keys. In the optional dual mode defined in <xref target="full-version" format="default"/>: OSCORE algorithms; pre-established symmetric keys.</li>
        <li>profile identifier: coap_group_oscore</li>
        <li>(Optional) how the RS talks to the AS for introspection: HTTP/CoAP (+ TLS/DTLS/OSCORE).</li>
        <li>How the client talks to the AS for requesting a token: HTTP/CoAP (+ TLS/DTLS/OSCORE).</li>
        <li>How/if the authz-info endpoint is protected: Not protected.</li>
        <li>(Optional) other methods of token transport than the authz-info endpoint: Not specified.</li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowldegment" toc="default">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank Benjamin Kaduk, John Mattsson, Dave Robin, Jim Schaad and Goeran 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:
H4sIAP40JmIAA+1963Lb2Jngfz0FSq5aSwlJi9RdnZ4aWpLbnvZFK7nTmUpP
uUASlBBTAEOAljWx92n2GfYF5sX2u50rDkBQtjudzHi3JmoCOJfvfOe7X7rd
7kaZlrPkJIp+WOTLefTm6vTN5Xl0scin6SyJ8mlU3iTRcAn/NyvTcVymeRbF
2YR+yhfpf/Iv03wRneZZUS7iNEsm0Xn2IV3k2S18VETPFvFtcpcv3m/Eo9Ei
+XBSO9fw9Hxjko8zeP8kmiziadkt01k+jrvxOOle41fdvBjni6Q756+6s7hM
inJjY+NRVJSwsHfxLM/g63KxTDY20vmC/izKwc7O8c5gI14k8Un0IiuTRZaU
G3fXJzhp9DOsLs2ueWEb7+/MK90zXMYG7PwEJphsbIzzCbx5Ei3LafdoY54C
6KLoUTSOs2hZJFG8WMT30VY6jeLZLLpPiu0IYHMTFzfRTbKAJUVRmY9P8An8
WeSLcpFMixMaY5JM4+UMIFbm6vn9LT/G/9yICeYnGxH968r/RlGawRuvetFb
gpX+mcH4Kl6Mc/9RvoAdXL64Oo+GT/WPcHpJAtt8UcTTv+SLSXEdA0SjwUC/
MU7L+5PoxxQgbX7LJzDL1Xm3f7C3txNdwe7e3+SzW+uFZVYu4Luru2SSZPr3
5DZOZyfRLa6vx8f8r4u0VyTh/V32ouf/9f+uZ8ts4u3wMn0fLybVp7+hTS5o
ib2bnFbYtM2XvegqScv/9Pb4cjm5S6+9R7TB0/x2lJbJ+KayxbO//Nf/fZ8l
vMHdvrfBV/Hs9r/+X3WHg35/d7/6tHF7M1od7AlW969jtaAe/BXe5LNedAH3
FN7LUm+jQCyycVKM48AbtN/zRTouCqA5gUN9my+Km/g2U4e6+00PdaqW2pur
pf5rIqujvW9sZPniFijkhwQv7YvuWS9NgGwQASNqBm/ddkdpUX0sZE6/5byB
1DBHatDF//Of1WcOjaz5dB4DXS4qD98n99baeCRveUXSXUzHR/39ASy9C8Bf
jsvGV+LZNU10+ewU0OtY/tw/3NlXfx4dqF8PDvfUn4eD/YH683DvSP486h/u
qT93j9ULRwf9XfXn3t6hGux4sKN+PdS/Hh3zFK9fXL3tHu3sdPcPhkxVGyns
eS96Gi/eJwsPZc9nyPTcZ9VbfXpjYZBc6nR2b//ufTTsRZf5Nfz5/t77cDib
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
FthSPL5eJCS/RMf7g4P9AZz+/wfIjC7nE+4BAA==

-->

</rfc>
