<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.26 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-pubsub-profile-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="ACE Pub-sub Profile">Publish-Subscribe Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-pubsub-profile-06"/>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization>Ericsson</organization>
      <address>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <author initials="C." surname="Sengul" fullname="Cigdem Sengul">
      <organization>Brunel University</organization>
      <address>
        <email>csengul@acm.org</email>
      </address>
    </author>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <date year="2023" month="March" day="13"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document defines an application profile for enabling secure group
communication for a constrained Publish-Subscribe (pub/sub) scenario, where Publishers and Subscribers communicate through a broker, using the ACE framework. This profile relies on transport layer or application layer security 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. The document describes how to request and provision keying material for group communication, and protect the content of the pub/sub client message exchange, focusing mainly on the pub/sub scenarios using the Constrained Application Protocol (CoAP) <xref target="I-D.ietf-core-coap-pubsub"/>.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>In the publish-subscribe (pub/sub) scenario, devices with limited reachability communicate via a broker, which enables store-and-forward messaging between these devices. This document specifies how to request, distribute and renew the keying material and configuration parameters to protect message exchanges for pub/sub communication, using <xref target="I-D.ietf-ace-key-groupcomm"/>, which expands from the ACE framework (<xref target="RFC9200"/>).  Message exchanges among the participants as well as message formats and processing follow the specifications for provisioning and renewing keying material in group communication scenarios in <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
      <t>The pub/sub communication using the Constrained Application Protocol (CoAP) <xref target="RFC7252"/> is specified in <xref target="I-D.ietf-core-coap-pubsub"/>.This document gives detailed specifications for CoAP pub/sub, and describes how it can be applicable to MQTT <xref target="MQTT-OASIS-Standard-v5"/>; similar adaptations can extend to other transport protocols as well.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 <xref target="RFC2119"/> <xref target="RFC8174"/>  when, and only when, they appear in all capitals, as shown here.</t>
        <t>Readers are expected to be familiar with:</t>
        <ul spacing="normal">
          <li>The terms and concepts described in <xref target="RFC9200"/>, and Authorization Information Format (AIF) <xref target="RFC9237"/> to express authorization information. In particular, analogously to <xref target="RFC9200"/>, terminology for entities in the architecture such as Client (C), Resource Server (RS), and Authorization Server (AS) is defined in OAuth 2.0 <xref target="RFC6749"/>.</li>
          <li>The terms and concept related to the message formats and processing, specified in <xref target="I-D.ietf-ace-key-groupcomm"/>, for provisioning and renewing keying material in group communication scenarios.</li>
          <li>The terms and concepts of pub/sub group communication, as described in <xref target="I-D.ietf-core-coap-pubsub"/>.</li>
          <li>The terms and concepts described in CBOR <xref target="RFC8949"/> and COSE <xref target="RFC9052"/><xref target="RFC9053"/>.</li>
        </ul>
        <t>A principal interested to participate in group communication as well as already participating as a group member is interchangeably denoted as "Client", "pub/sub client",  or "node".</t>
        <ul spacing="normal">
          <li>Group: a set of nodes that share common keying material and security parameters to protect their communications with one another. That is, the term refers to a "security group". This is not to be confused with an "application group", which has relevance at the application level and whose members may be a set of nodes registered to a pub/sub topic.</li>
        </ul>
      </section>
    </section>
    <section anchor="overview">
      <name>Application Profile Overview</name>
      <t>This document describes how to use <xref target="I-D.ietf-ace-key-groupcomm"/> and <xref target="RFC9200"/> to perform authentication, authorization and key distribution actions as overviewed in Section 2 of <xref target="I-D.ietf-ace-key-groupcomm"/>, when the considered group is pub/sub clients belonging to the same security group.</t>
      <t>Pub/sub clients communicate within their application groups mapped to a collection of pub/sub topics. The pub/sub topics may consist of one or more sub-topics, which may have their own sub-topics, forming a hierarchy. The applications decide how to map this hierarchy into different application groups, and a security group SHOULD be associated with a single application group. However, the same application group MAY be associated with multiple security groups. Further details and considerations on the mapping between the two types of groups are out of the scope of this document.</t>
      <t>The architecture of the scenario is shown in <xref target="archi"/>. A Client can act both as a publisher and a subscriber, publishing to some topics, and subscribing to others. However, for the simplicity of presentation, this profile describes Publisher and Subscriber Clients separately. The Broker acts as the ACE RS, and also corresponds to the Dispatcher in <xref target="I-D.ietf-ace-key-groupcomm"/>. The Clients communicate with The Key Distribution Center (KDC) to join security groups, and obtain the group keying material.</t>
      <t>Both Publisher and Subscriber Clients use the same pub/sub communication protocol and the same transport profile of ACE in their interaction with the broker. The pub/sub communication protocol considered in this document is CoAP, as described in <xref target="I-D.ietf-core-coap-pubsub"/>, but the specification can apply to other pub/sub protocols such as MQTT <xref target="MQTT-OASIS-Standard-v5"/>, or other transport protocols.  All clients MUST use CoAP when communicating to the KDC.</t>
      <figure anchor="archi">
        <name>Architecture for Pub/Sub with Authorization Server and Key Distribution Center</name>
        <artwork align="center"><![CDATA[
             +----------------+   +----------------+
             |                |   |      Key       |
             | Authorization  |   |  Distribution  |
             |    Server      |   |     Center     |
             |      (AS)      |   |     (KDC)      |
             +----------------+   +----------------+
                      ^                  ^
                      |                  |
     +---------(A)----+                  |
     |   +--------------------(B)--------+
     v   v
+------------+             +------------+
|            | <-- (O) --> |            |
| Pub/Sub    |             |   Broker   |
| Client     | <-- (C)---> |            |
|            |             |            |
+------------+             +------------+
]]></artwork>
      </figure>
      <t>All communications between the involved entities MUST be secured. This profile expects the establishment of a secure connection between a Client and Broker, using an ACE transport profile such as DTLS <xref target="RFC9202"/> or OSCORE <xref target="RFC9203"/> (A and C). Once the client establishes a secure association with KDC with the help of AS, it can request to join the security groups of its pub/sub topics (A and B), and  can communicate securely with the other group members, using the keying material provided by the KDC.</t>
      <t>(C) corresponds to the exchange between the Client and  the Broker, where the Client sends its access token to the Broker and establishes a secure connection with the Broker. Depending on the Information received in (A), the connection set-up may involve, for example, a DTLS handshake, or other protocols. Depending on the application, the set up phase may be skipped: for example, if OSCORE is used directly.</t>
      <t>In addition, this document describes an Optional Discovery though Broker (O), where an anonymous Clients MAY discover the topic categories, topics resources, the AS and the KDC from the Broker.</t>
      <t>It must be noted that Clients maintain two different security associations. On the one hand, the Publisher and the Subscriber clients have a security association with the Broker, which, as the ACE RS, verifies that the Clients are authorized (Security Association 1). On the other hand, the Publisher has a security association with the Subscriber, to protect the publication content (Security Association 2) while sending it through the broker. The Security Association 1 is set up using AS and a transport profile of <xref target="RFC9200"/>, the Security Association 2 is set up using AS, KDC and <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
      <t>Given that the publication content is protected, the Broker MAY accept unauthorised Subscribers. In this case, the Subscriber client MAY skip setting up Security Association 1 with the Broker and connect to it as an anonymous client to subscribe to topics of interest at the Broker.</t>
      <figure anchor="associations">
        <name>Security Associations between Publisher, Broker, Subscriber pairs.</name>
        <artwork align="center"><![CDATA[
+------------+             +------------+              +------------+
|            |             |            |              |            |
| Publisher  |             |   Broker   |              | Subscriber |
|            |             |            |              |            |
|            |             |            |              |            |
+------------+             +------------+              +------------+
      :   :                       : :                       : :
      :   '------ Security -------' '-----------------------' :
      :         Association 1                                 :
      '------------------------------- Security --------------'
                                     Association 2
]]></artwork>
      </figure>
      <t>In summary, this profile describes how:</t>
      <ol spacing="normal" type="1"><li>A Client gets the authorization to join a security group, and providing it with the group keying material to communicate with other group members.</li>
        <li>A Client retrieves group keying material to publish protected publications to the Broker or read protected publications.</li>
        <li>A Client retrieves authentication credentials of other group members, and provides and updates own authentication credentials.</li>
        <li>A Client is removed from the group.</li>
        <li>The KDC renews and redistributes the group keying (rekeying) material due to membership change in the group.</li>
      </ol>
      <t>Appendix <xref target="groupcomm_requirements"/> lists the specifications on this application
profile of ACE, based on the requirements defined in Appendix A of <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
    </section>
    <section anchor="authorisation">
      <name>Getting Authorisation to Join a Pub/sub security group (A)</name>
      <t>Figure <xref target="message-flow"/> provides a high level overview of the message flow for a node getting authorisation to join a group. This message flow is expanded in the subsequent sections.</t>
      <figure anchor="message-flow">
        <name>Authorisation Flow</name>
        <artwork align="center"><![CDATA[
   Client                                       Broker   AS
      | [--Resource Request (CoAP/MQTT or other)-->] |    |
      | [<----AS Information (CoAP/MQTT or other)--] |    |
      |[<--Topic Collection/Resource/KDC Discovery->]|
      |                                              |
      | --Broker Authorisation Req (CoAP/HTTP or other)-->|
      | <---Authorisation Response (CoAP/HTTP or other) --|
      |                                                   |
      | --KDC Authorisation Req (CoAP/HTTP or other)----->|
      | <---Authorisation Response (CoAP/HTTP or other) --|
]]></artwork>
      </figure>
      <t>Since <xref target="RFC9200"/> recommends the use of CoAP and CBOR, this document describes the exchanges assuming CoAP and CBOR are used. However, using HTTP instead of CoAP is possible, using the corresponding parameters and methods. Analogously, JSON <xref target="RFC8259"/> can be used instead of CBOR, using the conversion method specified in Sections 6.1 and 6.2 of <xref target="RFC8949"/>. In case JSON is used, the Content Format or Media Type of the message has to be changed accordingly. Exact definition of these exchanges are considered out of scope for this document.</t>
      <section anchor="AS-discovery">
        <name>AS Discovery at the Broker (Optional)</name>
        <t>Complementary to what is defined in <xref target="RFC9200"/> (Section 5.1) for AS discovery, the Broker MAY send the address of the AS to the Client in the 'AS' parameter in the AS Information as a response to an Unauthorized Resource Request (Section 5.2).  An example using CBOR diagnostic notation and CoAP is given below:</t>
        <figure anchor="AS-info-ex">
          <name>AS Information example</name>
          <artwork align="center"><![CDATA[
    4.01 Unauthorized
    Content-Format: application/ace-groupcomm+cbor
    {"AS": "coaps://as.example.com/token"}
]]></artwork>
        </figure>
      </section>
      <section anchor="kdc-discovery">
        <name>Topic and KDC Discovery at the Broker</name>
        <t>A Broker can offer a topic discovery entry point to enable clients to find topics of interest. The resource entry point thus represents a collection of related resources as specified in <xref target="RFC6690"/> and is identified by the resource type "core.ps.coll". A topic collection is a group of topic configuration resources that define topic properties and are identified by the resource type "core.ps.conf". An anonymous pub/sub client MAY request a collection of the topics present in the broker by making a CoAP GET request to the collection URI.
An anonymous pub/sub client MAY read the configuration of a topic by making a CoAP GET request to the topic configuration URI.
(ToDo: Consider a discovery token to be consumed by the Broker for topic collection, and topic configuration?)</t>
        <t>(ToDo: Instead of defining "core.ps.gm", need to extend Topic Configuration Representation in core-coap-pubsub to include KDC?)
The Resource Type (rt=) Link Target Attribute value "core.ps.gm" is registered in <xref target="core_rt"/> (REQ10), and can be used to describe group-membership resources and its sub-resources at Broker, e.g., by using a link-format document <xref target="RFC6690"/>. Applications can use this common resource type to discover links to group-membership resources for joining pub/sub groups.</t>
      </section>
      <section anchor="auth-request">
        <name>Authorisation Request/Response for the KDC and the Broker</name>
        <t>The Client sends two Authorisation Requests to the AS for two audiences: the Broker and the KDC, respectively. AS handles authorisation requests for topics a Client is allowed to Publish or Subscribe to the Broker, corresponding to an application group.  The client sends a request to the KDC to join the security group(s) corresponding to those application groups to be able protect the message content with the group key.</t>
        <t>Communications between the Client and the AS MUST be secured, according to what is defined by the used transport profile of ACE. This section builds on Section 3 of <xref target="I-D.ietf-ace-key-groupcomm"/> and defined only additions or modifications to that specification.</t>
        <t>Both Authorisation Requests include the following fields (Section 3.1 of <xref target="I-D.ietf-ace-key-groupcomm"/>):</t>
        <ul spacing="normal">
          <li>'scope': Optional. If present, specifies the name of the topic groups, that the Client requests to access. This parameter is a CBOR byte string that encodes a CBOR array, whose format SHOULD follow the data model AIF-PUBSUB-GROUPCOMM defined below.</li>
          <li>'audience': Required identifier corresponding to either the KDC or the Broker.</li>
        </ul>
        <t>Other additional parameters can be included if necessary, as defined in <xref target="RFC9200"/>.</t>
        <t>For the Broker, the scope represents pub/sub topics i.e., the application group, and for the KDC, the scope represents the corresponding security group. This document expects a one-to-one mapping between the application group and the security group, and the client uses the same scope for both requests. If there is not a one-to-one mapping, the client MUST ask for the correct scopes in its Authorization Requests, and the correct policies regarding both sets of scopes MUST be available to the AS. How the client discovers the (application group, security group) association is out of scope of this document.</t>
        <section anchor="scope">
          <name>Format of Scope</name>
          <t>The 'scope' parameter SHOULD follow the AIF format (REQ1). However, if the ACE transport profile, supports another 'scope' format, then implementations MAY use this format.</t>
          <t>Based on the generic AIF model</t>
          <artwork><![CDATA[
      AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></artwork>
          <t>The value of the CBOR byte string used as the scope encodes the CBOR array [* [Toid, Tperm]], where each [Toid, Tperm] element corresponds to one scope entry.</t>
          <t>This document defines the new AIF specific data model AIF-PUBSUB-GROUPCOMM, that this profile SHOULD use to format and encode scope entries.</t>
          <ul spacing="normal">
            <li>The object identifier ("Toid") is a CBOR text string, specifying the topic name for the scope entry.</li>
            <li>The permission set ("Tperm") is a CBOR unsigned integer with value, specifying the Client role, based on the operations the Client can execute on Topic Data in the group. The set of numbers representing the permissions is converted into a single number by taking two to the power of each method number and computing the inclusive OR of the binary representations of all the power values. The roles a Client is allowed are Publish (1), Subscribe (or Read) (2) and Delete (3). An Admin(0) role is also defined, which is reserved for expressing permissions for Administrators of Pub/Sub groups. For Pub/Sub client communication, the scope entry MUST NOT include the Admin permission i.e.,  the least significant bit of "Tperm" always set to 0.</li>
          </ul>
          <figure anchor="scope-aif">
            <name>Pub/Sub scope using the AIF format</name>
            <artwork align="center"><![CDATA[
  AIF-PUBSUB-GROUPCOMM = AIF-Generic<pubsub-topic, pubsub-perm>
   pubsub-topic = tstr ; Pub/sub topic name
                       ; (the associated security group)

   pubsub-perm = uint . bits pubsub-roles

   pubsub-roles = &(
    Admin: 0,
    Pub: 1,
    Sub: 2,
    Delete: 3
   )

   scope_entry = [pubsub-topic, pubsub-perm]
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="as-response">
        <name>Authorisation response</name>
        <t>The AS responds with an Authorization Response to each request, containing claims, as defined in Section 5.8.2 of <xref target="RFC9200"/> and Section 3.2 of <xref target="I-D.ietf-ace-key-groupcomm"/> with the following additions:</t>
        <ul spacing="normal">
          <li>The AS MUST include the 'expires_in' parameter.  Other means for the AS to specify the lifetime of Access Tokens are out of the scope of this document.</li>
          <li>The AS MUST include the 'scope' parameter, when the value included in the Access Token differs from the one specified by the joining node in the Authorization Request.  In such a case, the second element of each scope entry MUST be present, and specifies the set of roles that the joining node is actually authorized to take in for that scope entry, encoded as specified in <xref target="auth-request"/>.</li>
        </ul>
        <t>ToDo: Extend the authorisation response to describe the token returned, and do a MUST on the Audience claim to indicate the response is for KDC or Broker?</t>
        <t>Furthermore, the AS MAY use the extended format of scope defined in Section 7 of <xref target="I-D.ietf-ace-key-groupcomm"/> for the 'scope' claim of the Access Token.  In such a case, the AS MUST use the CBOR tag with tag number TAG_NUMBER, associated with the CoAP Content-Format CF_ID for the media type application/aif+cbor registered in <xref target="content_format"/> of this document (REQ28).</t>
        <t>Note to RFC Editor: In the previous paragraph, please replace "TAG_NUMBER" with the CBOR tag number computed as TN(ct) in Section 4.3 of <xref target="RFC9277"/>, where ct is the ID assigned to the CoAP Content-Format registered in <xref target="content_format"/> of this document.  Then, please replace "CF_ID" with the ID assigned to that CoAP Content-Format.  Finally, please delete this paragraph.</t>
        <t>This indicates that the binary encoded scope follows the scope semantics defined for this application profile in <xref target="scope"/> of this document.</t>
      </section>
      <section anchor="token-post">
        <name>Token Transfer to KDC</name>
        <t>After receiving a token from the AS, the Client transfers the token to the KDC using one of the methods defined Section 3.3 <xref target="I-D.ietf-ace-key-groupcomm"/>. This typically includes sending a POST request to the authz-info endpoint. However, if using the DTLS transport profile of ACE <xref target="RFC9202"/> and the client uses a symmetric proof-of-possession key in the DTLS handshake, the Client MAY provide the access token to the KDC in the DTLS ClientKeyExchange message. In addition to that, the following applies.</t>
        <t>In the token transfer response to the Publisher Clients, i.e., the Clients whose scope of the access token includes the "Pub" role, the KDC MUST include the parameter 'kdcchallenge' in the CBOR map. 'kdcchallange' is a challenge N_S generated by the KDC, and is RECOMMENDED to be a 8-byte long random nonce. Later when joining the group, the Publisher Client can use the 'kdcchallenge' as part of proving possession of its private key (see <xref target="I-D.ietf-ace-key-groupcomm"/>). If a Publisher Client provides the Access Token to the KDC through an authz-info endpoint, the Client MUST support the parameter 'kdcchallenge'.</t>
        <t>If 'sign_info' is included in the Token Transfer Request, the KDC SHOULD include the 'sign_info' parameter in the Token Transfer Response. Note that the joining node may have obtained such information by alternative means e.g., the 'sign_info'  may have been pre-configured (OPT3).</t>
        <t>The following applies for each element 'sign_info_entry'.</t>
        <ul spacing="normal">
          <li>'sign_alg' MUST take value from the "Value" column of one of the recommended algorithms in the "COSE Algorithms" registry <xref target="IANA.cose_algorithms"/> (REQ3).</li>
          <li>'sign_parameters' is a CBOR array.  Its format and value are the same of the COSE capabilities array for the algorithm indicated in 'sign_alg' under the "Capabilities" column of the "COSE Algorithms" registry <xref target="IANA.cose_algorithms"/> (REQ4).</li>
          <li>'sign_key_parameters' is a CBOR array.  Its format and value are the same of the COSE capabilities array for the COSE key type of the keys used with the algorithm indicated in 'sign_alg', as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="IANA.cose_key-type"/> (REQ5).</li>
          <li>'cred_fmt' takes value from the "Label" column of the "COSE Header Parameters" registry <xref target="IANA.cose_header-parameters"/> (REQ6). Acceptable values denote a format of authentication credential that MUST explicitly provide 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). Acceptable formats of authentication credentials include CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC7925"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. Future formats would be acceptable to use as long as they comply with the criteria defined above.</li>
        </ul>
      </section>
    </section>
    <section anchor="kdc-interface">
      <name>Client Group Communication Interface at the KDC</name>
      <t>The Clients uses the following KDC resources to enable group communication:</t>
      <table>
        <thead>
          <tr>
            <th align="left">KDC resource</th>
            <th align="left">Description</th>
            <th align="left">Operations</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">/ace-group</td>
            <td align="left">Required. Contains a set of group names, each corresponding to one of the specified group identifiers</td>
            <td align="left">FETCH (All Clients)</td>
          </tr>
          <tr>
            <td align="left">/ace-group/GROUPNAME</td>
            <td align="left">Required. Contains symmetric group keying material associated with GROUPNAME</td>
            <td align="left">GET, POST (All)</td>
          </tr>
          <tr>
            <td align="left">/ace-group/GROUPNAME/creds</td>
            <td align="left">Required. Contains the authentication credentials of all the Publisher members of the group with name GROUPNAME</td>
            <td align="left">GET, FETCH (All)</td>
          </tr>
          <tr>
            <td align="left">/ace-group/GROUPNAME/num</td>
            <td align="left">Required. Contains the current version number for the symmetric group keying material of the group with name GROUPNAME</td>
            <td align="left">GET (All)</td>
          </tr>
          <tr>
            <td align="left">/ace-group/GROUPNAME/nodes/NODENAME</td>
            <td align="left">Required. Contains the group keying material for that group member NODENAME in GROUPNAME.</td>
            <td align="left">GET, DELETE (All). PUT not supported.</td>
          </tr>
          <tr>
            <td align="left">/ace-group/GROUPNAME/nodes/NODENAME/cred</td>
            <td align="left">Required. Authentication credential for NODENAME in the group GROUPNAME</td>
            <td align="left">POST (Pub)</td>
          </tr>
          <tr>
            <td align="left">/ace-group/GROUPNAME/kdc-cred</td>
            <td align="left">MUST be hosted if a group re-keying mechanism is used. Contains the authentication credential of the KDC for the group with name GROUPNAME.</td>
            <td align="left">GET (All)</td>
          </tr>
          <tr>
            <td align="left">/ace-group/GROUPNAME/policies</td>
            <td align="left">Optional. Contains the group policies of the group with</td>
            <td align="left"> </td>
          </tr>
          <tr>
            <td align="left">name GROUPNAME.</td>
            <td align="left">GET (All)</td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
      <t>Note that the use of these resources follows what is defined in <xref target="I-D.ietf-ace-key-groupcomm"/> applies, and only additions or modifications to that specification are defined in this document.</t>
      <section anchor="join">
        <name>Joining a Security Group</name>
        <t>This section describes the interactions between the joining node and the KDC to join a pub/sub group. Source authentication of a message sent within the pub/sub group is ensured by means of a digital signature embedded in the message. Subscribers must be able to retrieve Publishers' authentication credential from a trusted repository, to verify source authenticity of received messages. Hence, on joining a pub/sub group, a Publisher node is expected to provide its own authentication credential to the KDC.</t>
        <t>On a successful join, the Clients receive the symmetric COSE Key received from the KDC to protect the payload of a published topic data.</t>
        <t>The message exchange between the joining node and the KDC follows what's defined in Section 4.3.1.1 of <xref target="I-D.ietf-ace-key-groupcomm"/> and only additions or modifications to that specification are defined in this document.</t>
        <figure anchor="join-flow">
          <name>Join Flow</name>
          <artwork align="center"><![CDATA[
   Client                                  KDC
      |----- Joining Request (CoAP) ------>|
      |                                    |
      |<-----Joining Response (CoAP) ------|

]]></artwork>
        </figure>
        <section anchor="join-request">
          <name>Join Request</name>
          <t>After establishing a secure communication, the Client sends a Join Request to the KDC as described in Section 4.3 of <xref target="I-D.ietf-ace-key-groupcomm"/>. More specifically, the Client sends a POST request to the /ace-group/GROUPNAME endpoint, with Content-Format "application/ace-groupcomm+cbor". The payload MUST contain the following information formatted as a CBOR map, which MUST be encoded as defined in Section 4.3.1 of <xref target="I-D.ietf-ace-key-groupcomm"/>:</t>
          <ul spacing="normal">
            <li>'scope': Required. MUST be set to the specific group that the Client is attempting to join, i.e., the group name, and the roles it wishes to have in the group. This value corresponds to one scope entry, as defined in <xref target="scope"/>.</li>
            <li>'get_creds': Optional, present if the Subcriber Client wants to retrieve the public keys of all the Publisher Clients upon joining. Otherwise, this parameter MUST NOT be present. If the parameter is present, the parameter MUST encode the CBOR simple value "null" (0xf6). Note that no 'role_filter' is necessary as KDC returns the authentication credentials of Publisher Clients by default.</li>
            <li>'client_cred': The use of this parameter is detailed in <xref target="client_cred"/>.</li>
            <li>'cnonce': Optional, MUST be present if 'client_cred' is present. It is a dedicated nonce N_C generated by the Client. It is RECOMMENDED to use a 8-byte long random nonce. Join Requests MUST include a new 'cnonce' at each join attempt.</li>
            <li>'client_cred_verify': Optional, MUST be present if 'client_cred' is present. The use of this parameter is detailed in <xref target="pop"/>.</li>
          </ul>
          <t>As a Publisher Client has its own authentication credential to use in a group, it MUST support client_cred', 'cnonce', 'client_cred_verify' parameters.</t>
          <section anchor="client_cred">
            <name>Client Credentials-'client_cred'</name>
            <t>One of the following cases can occur when a new node attempts to join a pub/sub group.</t>
            <ul spacing="normal">
              <li>The joining node requests to join the group exclusively as a Subscriber or for Delete, i.e., it is not going to send messages to the group.  In this case, the joining node is not required to provide its own authentication credential to the KDC. In case the joining node still provides an authentication credential in the 'client_cred' parameter of the Join Request (see <xref target="join-request"/>), the KDC silently ignores that parameter, as well as the related parameters 'cnonce' and 'client_cred_verify'.</li>
              <li>
                <t>The joining node has a Publisher role, and
                </t>
                <ul spacing="normal">
                  <li>the KDC already acquired the authentication credential of the joining node either during a past group joining process, or during establishing a secure communication association, and the joining node and the KDC use a symmetric proof-of-possession key. If the authentication credential and the proof-of-possession key are compatible with the signature or ECDH algorithm, and possible associated parameters, then the key can be used for the authentication credential in pub/sub groups. In this case, the joining node MAY choose not to provide again its own authentication credential to the KDC, in order to limit the size of the Join Request.</li>
                  <li>the KDC hasn't acquired an authentication credential. Then, the joining node MUST provide a compatible authentication credential in the 'client_cred' parameter of the Join Request (see <xref target="join-request"/>).</li>
                </ul>
              </li>
            </ul>
            <t>Finally, the joining node MUST provide its own authentication credential again if it has provided the KDC with multiple authentication credentials during past joining processes intended for different pub/sub groups.  If the joining node provides its own authentication credential, the KDC performs consistency checks as per <xref target="join-request"/> and, in case of success, considers it as the authentication credential associated with the joining node in the pub/sub group.</t>
          </section>
          <section anchor="pop">
            <name>Proof-of-Possession</name>
            <t>The 'client_cred_verify' parameter contains the proof-of-possession evidence, and is computed as defined below (REQ14).</t>
            <t>The Publisher signs the scope, concatenated with N_S and concatenated with N_C using the private key corresponding to the public key in the 'client_cred' paramater.</t>
            <t>The N_S may be either:</t>
            <ul spacing="normal">
              <li>The challenge received from the KDC in the 'kdcchallenge' parameter of the 2.01 (Created) response to the Token Transfer Request (see <xref target="token-post"/>).</li>
              <li>If the Publisher Client used a symmetric proof-of-possession key in the DTLS handshake <xref target="RFC9202"/> with the KDC,  then it is an exporter value computed as defined in Section 7.5 of <xref target="RFC8446"/>.  Specifically, N_S is exported from the DTLS session between the joining node and the KDC, using an empty 'context_value', 32 bytes as 'key_length', and the exporter label "EXPORTER-ACE-Sign-Challenge-coap-group-pubsub-app" defined in <xref target="tls_exporter"/> of this document.</li>
              <li>If the Join Request is a retry in response to an error response from the KDC, which included a new 'kdcchallenge' parameter, N_S MUST be this new challenge parameter.</li>
            </ul>
          </section>
        </section>
        <section anchor="join-response">
          <name>Join Response</name>
          <t>On receiving the Join Request, the KDC processes the request as defined in Section 4.3.1 of <xref target="I-D.ietf-ace-key-groupcomm"/>, and may return a success or error response.</t>
          <t>If 'client_cred' field is present, the KDC verifies signature in the 'client_cred_verify'. As PoP input, the KDC uses the value of the 'scope' parameter from the Join Request as a CBOR byte string, concatenated with N_S encoded as a CBOR byte string, concatenated with N_C encoded as a CBOR byte string. As public key of the joining node, the KDC uses either the one included in the authentication credential retrieved from the 'client_cred' parameter of the Join Request or the already stored authentication credential from previous interactions with the joining node. The KDC verifies the PoP evidence, which is a signature, by using the public key of the joining node, as well as the signature algorithm used in the group and possible corresponding parameters.</t>
          <t>For a Publisher Client, the KDC assigns an available Sender ID that has not been used <!-- since the latest time when the current Group Identifier (Gid) value was assigned to --> in the group. The KDC MUST NOT assign a Sender ID to the joining node if the node doesn't have a Publisher role. The Sender ID MUST be unique, and MAY be short.
ToDo: SenderID Size from groupcomm oscore? - the maximum length of Sender ID in bytes equals the length of the AEAD nonce minus 6; for AES-CCM-16-64-128 the maximum length of Sender ID is 7 bytes.</t>
          <t>In the case of any join request error, the KDC and the Client attempting the join follow the procedure defined in <xref target="join-error"/>.</t>
          <t>In the case of success, the Client is added to the list of current members, if not already a member. The Client is assigned a NODENAME and a sub-resource /ace-group/GROUPNAME/nodes/NODENAME. NODENAME is associated to the access token and secure session of the Client. Publishers' client credentials are also associated with tuple containing NODENAME, GROUPNAME, <!-- Group Identifier (Gid), --> sender ID and access token. The KDC responds with a Join Response with response code 2.01 (Created) if the Client has been added to the list of group members, and 2.04 (Changed) otherwise (e.g., if the Client is re-joining).  The Content-Format  is "application/ace-groupcomm+cbor". The payload (formatted as a CBOR map) MUST contain the following fields from the Join Response and encode them as defined in Section 4.3.1 of <xref target="I-D.ietf-ace-key-groupcomm"/>:</t>
          <ul spacing="normal">
            <li>'gkty': the key type "Group_PubSub_COSE_Key" for the 'key' parameter defined in <xref target="iana-ace-groupcomm-key"/> of this document.</li>
            <li>
              <t>'key': The keying material for group communication includes 'group_SenderId' if the Client is a Publisher,
and a "COSE_Key". The "COSE_Key" object is defined in <xref target="RFC9052"/> <xref target="RFC9053"/> and contains:
              </t>
              <ul spacing="normal">
                <li>'kty' with value 4 (symmetric)</li>
                <li>'kid' with value defined by the KDC</li>
                <li>'alg' with value defined by the KDC</li>
                <li>'Base IV' with value defined by the KDC</li>
                <li>'k', the value of the symmetric key (REQ17)</li>
              </ul>
            </li>
            <li>'num': MUST be initialised to 0 as the version number of the keying material.</li>
            <li>'exp', MUST be present.</li>
            <li>'ace-groupcomm-profile' parameter MUST be present and has value "coap_group_pubsub_app" (PROFILE_TBD), which is defined in <xref target="iana-coap-profile"/> of this document.</li>
            <li>'creds', MUST be present, if the 'get_creds' parameter was present. Otherwise, it MUST NOT be present. The KDC provides the authentication credentials of all the Publisher Clients in the group.</li>
            <li>'peer_roles' MUST be present if 'creds' is also present. Otherwise, it MUST NOT be present.
(ToDo: Requested a change for this, and see how the Groupcomm draft is updated.)</li>
            <li>'peer_identifiers' MUST be present if 'creds' is also present. Otherwise, it MUST NOT be present. The identifiers are the Publisher Sender IDs whose authentication credential is specified in the 'creds' parameter (REQ 25).</li>
            <li>'kdc_cred', MUST be present if group re-keying is used, and encoded as a CBOR byte string, with value the original binary representation of the KDC's authentication credential (REQ8).</li>
            <li>'kdc_nonce', MUST be present, if 'kdc_cred' is present and encoded as a CBOR byte string, and including a dedicated nonce N_KDC generated by the KDC. For N_KDC, it is RECOMMENDED to use a 8-byte long random nonce.</li>
            <li>'kdc_cred_verify' MUST be present, if 'kdc_cred' is present and encoded as a CBOR byte string. The PoP evidence is computed over the nonce N_KDC, which is specified in the 'kdc_nonce' parameter and taken as PoP input. KDC MUST compute the signature by using the signature algorithm used in the group, as well as its own private key associated with the authentication credential specified in the 'kdc_cred' parameter (REQ21).</li>
            <li>'group_rekeying': MAY be omitted, if the KDC uses the "Point-to-Point" group rekeying scheme registered in Section 11.12 of <xref target="I-D.ietf-ace-key-groupcomm"/> as the default rekeying scheme in the group (OPT9). In any other case, the 'group_rekeying' parameter MUST be included.</li>
          </ul>
          <t>To generate the keying material, the KDC starts at the same Base IV and Partial IV, and different keys are derived for each sender, based on their Sender ID, sent as the 'group_SenderId' inside the 'key' parameter. A Publisher Client MUST support 'group_SenderId' parameter (REQ29).</t>
          <t>If the application requires backward security, the KDC MUST generate updated security parameters and group keying material, and provide it to the current group members, upon the new node's joining (see <xref target="rekeying"/>).  In such a case, the joining node is not able to access secure communication in the pubsub group prior its
joining.</t>
          <t>Upon receiving the Join Response, the joining node retrieves the KDC's authentication credential from the 'kdc_cred' parameter.  The joining node MUST verify the proof-of-possession (PoP) evidence, which is a signature, specified in the 'kdc_cred_verify' parameter of the Join Response (REQ21).</t>
        </section>
        <section anchor="join-error">
          <name>Join Error Handling</name>
          <t>The KDC MUST reply with a 4.00 (Bad Request) error response to the Join Request in the following cases:</t>
          <ul spacing="normal">
            <li>The 'client_cred' parameter is present in the Join Request and its value is not an eligible authentication credential (e.g., it is not of the format accepted in the group) (OPT8).</li>
            <li>The 'client_cred' parameter is present but does not include both the 'cnonce' and 'client_cred_verify' parameters.</li>
            <li>
              <t>The 'client_cred' parameter is not present while the joining node is not going to join the group exclusively as a Subscriber, and any of the following conditions holds:  </t>
              <ul spacing="normal">
                <li>The KDC does not store an eligible authentication credential (e.g., of the format accepted in the group) for the joining node.</li>
                <li>The KDC stores multiple eligible authentication credentials (e.g., of the format accepted in the group) for the joining node.</li>
              </ul>
            </li>
            <li>The 'scope' parameter is not present in the Join Request, or it is present and specifies any set of roles not included in the role list as defined in <xref target="scope"/>.</li>
          </ul>
          <t>A 4.00 (Bad Request) error response from the KDC to the joining node MAY have content format application/ace-groupcomm+cbor and contain a CBOR map as payload. The CBOR map MAY include the 'kdcchallenge' parameter.  If present, this parameter is a CBOR byte string, which encodes a newly generated 'kdcchallenge' value that the Client can use when preparing a new Join Request.  In such a case the KDC MUST store the newly generated value as the 'kdcchallenge' value associated with the joining node, possibly replacing the currently stored value.</t>
          <t>On receiving the Join Response, if 'kdc_cred' is present but the Client cannot verify the PoP evidence, the Client MUST stop processing the Join Response and MAY send a new Join Request to the KDC.</t>
          <t>The Group Manager MUST return a 5.03 (Service Unavailable) response to a Publisher's join request in case there are currently no Sender IDs available.</t>
        </section>
      </section>
      <section anchor="other-group-operations-through-the-kdc">
        <name>Other Group Operations through the KDC</name>
        <section anchor="query">
          <name>Querying for Group Information</name>
          <ul spacing="normal">
            <li>'/ace-group': All Clients send FETCH requests to retrieve a set of group names associated with their group identifiers. Each element of the CBOR array 'gid' is a CBOR byte string (REQ13), which encodes the Gid of the group for which the group name and the URI to the group-membership resource are provided.
ToDo: Support or not?</li>
            <li>'/ace-group/GROUPNAME':  All Clients can use GET requests to retrieve the symmetric group keying material of the group with the name GROUPNAME. The value of the GROUPNAME URI path and the group name in the access token scope ('gname') MUST coincide.</li>
            <li>'/ace-group/GROUPNAME/creds': KDC acts as a repository of authentication credentials for Publisher Clients. The Subscriber Clients of the group use GET/FETCH requests to retrieve the authentication credentials of all or subset of the group members of the group with name GROUPNAME. The KDC silently ignores  the Sender IDs   included in the 'get_creds' parameter of the request that are not associated with any current group member (REQ26).</li>
            <li>'/ace-group/GROUPNAME/num': All group member Clients use GET requests to retrieve the current version number for the symmetric group keying material of the group with name GROUPNAME.</li>
            <li>'/ace-group/GROUPNAME/kdc-cred': All group member Clients use GET requests to retrieve the current authentication credential of the KDC.</li>
          </ul>
        </section>
        <section anchor="updating-authentication-credentials">
          <name>Updating Authentication Credentials</name>
          <t>A Publisher Client can contact the KDC to upload a new authentication credential to use in the group, and replace the currently stored one. To this end, it sends a CoAP POST request to the /ace-group/GROUPNAME/nodes/NODENAME/cred. The KDC replaces the stored authentication credential of this Client (identified by NODENAME) with the one specified in the request at the KDC, for the group identified by GROUPNAME.</t>
        </section>
        <section anchor="removal-from-a-group">
          <name>Removal from a Group</name>
          <t>A Client can actively request to leave the group.  In this case, the Client sends a CoAP DELETE request to the endpoint /ace-group/GROUPNAME/nodes/NODENAME at the KDC, where GROUPNAME is the group name and NODENAME is its node name. KDC can also remove a group member due to any of the reasons described in Section 5 of <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
        </section>
        <section anchor="rekeying">
          <name>Rekeying a Group</name>
          <t>KDC MUST trigger a group rekeying as described in Section 6 of <xref target="I-D.ietf-ace-key-groupcomm"/> due to a change in the group membership or the current group keying material approaching its expiration time. KDC MAY trigger regularly scheduled update of the group keying material.</t>
          <t>Upon generating the new group keying material and before starting its distribution, the KDC MUST increment the version number of the group keying material. The KDC MUST preserve the current value of the Sender ID of each member in that group.
<!-- The KDC MUST also generate a new Group Identifier (Gid) for the group as introduced in {{I-D.ietf-ace-key-groupcomm}}. -->
          </t>
          <t>Default rekeying scheme is Point-to-point (Section 6.1 of <xref target="I-D.ietf-ace-key-groupcomm"/>), where KDC individually targets each node to rekey, using the pairwise secure communication association with that node.</t>
          <t>If the group rekeying is performed due to one or multiple Publisher Clients that have joined the group, then a rekeying message includes sender IDs, and authentication credentials that those Clients use in the group, together with their roles.  This information is specified by means of the parameters 'creds', 'peer_roles' and 'peer_identifiers', like done in the Join Response message.</t>
        </section>
      </section>
    </section>
    <section anchor="protected_communication">
      <name>PubSub Protected Communication (C)</name>
      <figure anchor="pubsub-3">
        <name>Secure communication between Publisher and Subscriber</name>
        <artwork align="center"><![CDATA[
+------------+             +------------+              +------------+
|            |             |            |              |            |
| Publisher  | ----(D)---> |   Broker   |              | Subscriber |
|            |             |            | <----(E)---- |            |
|            |             |            | -----(F)---> |            |
+------------+             +------------+              +------------+
]]></artwork>
      </figure>
      <t>(D) corresponds to the publication of a topic on the Broker, using a CoAP PUT. The publication (the resource representation) is protected with COSE  (<xref target="RFC9052"/><xref target="RFC9053"/>) by the Publisher. The (E) message is the subscription of the Subscriber, and uses a CoAP GET with the Observe option set to 0 (zero) <xref target="I-D.ietf-core-coap-pubsub"/>. The subscription MAY be unprotected. The (F) message is the response from the Broker, where the publication is protected with COSE by the Publisher.
(ToDo: Add Delete to the flow?)</t>
      <figure anchor="flow">
        <name>Example of protected communication for CoAP</name>
        <artwork align="center"><![CDATA[
  Publisher                Broker               Subscriber
      | --- PUT /topic ----> |                       |
      |  protected with COSE |                       |
      |                      | <--- GET /topic ----- |
      |                      |      Observe:0        |
      |                      | ---- response ------> |
      |                      |  protected with COSE  |
]]></artwork>
      </figure>
      <section anchor="oscon">
        <name>Using COSE Objects To Protect The Resource Representation</name>
        <t>The Publisher uses the symmetric COSE Key received from the KDC to protect the payload of the Publish operation (Section 4.3 of <xref target="I-D.ietf-core-coap-pubsub"/>). Specifically, the COSE Key is used to create a COSE_Encrypt0 object with an AEAD algorithm specified by the KDC. The AEAD key lengths, AEAD nonce length, and maximum Sender Sequence Number (Partial IV) are algorithm dependent.</t>
        <t>The Publisher uses the private key corresponding to the public key sent to the KDC to countersign the COSE Object as specified in <xref target="RFC9052"/> <xref target="RFC9053"/>. The payload is replaced by the COSE object before the publication is sent to the Broker.</t>
        <t>The Subscriber uses the 'kid' in the 'countersignature' field in the COSE object to retrieve the right public key to verify the countersignature. It then uses the symmetric key received from KDC to verify and decrypt the publication received in the payload from the Broker (in the case of CoAP the publication is received by the CoAP Notification).</t>
        <t>The COSE object is constructed in the following way (as described in <xref target="RFC9052"/> <xref target="RFC9053"/>).</t>
        <t>The protected Headers MUST contain:</t>
        <ul spacing="normal">
          <li>alg,  an AEAD algorithm specified by the KDC, the same as received in the symmetric COSE Key</li>
        </ul>
        <t>The unprotected Headers MUST contain:</t>
        <ul spacing="normal">
          <li>kid, with the value the same as in the symmetric COSE Key received</li>
          <li>the Partial IV, with value a Sender Sequence Number that is incremented for every message sent.  All leading bytes of value zero SHALL be removed when encoding the Partial IV, except in the case of Partial IV value 0, which is encoded to the byte string 0x00.</li>
          <li>the IV, generated following the construction in Section 5.2 of <xref target="RFC8613"/> using the sender ID, Partial IV, and Base IV from the symmetric COSE Key received.</li>
          <li>
            <t>the counter signature
            </t>
            <ul spacing="normal">
              <li>the algorithm (protected),</li>
              <li>the kid, the sender ID (unprotected)</li>
              <li>the signature computed as specified in <xref target="RFC9052"/> <xref target="RFC9053"/>.</li>
            </ul>
          </li>
          <li>The ciphertext, computed over the plaintext that MUST contain the message payload.</li>
        </ul>
        <t>The 'external_aad' is an empty string.</t>
        <t>The encryption and decryption operations are described in  <xref target="RFC9052"/> <xref target="RFC9053"/>.</t>
      </section>
    </section>
    <section anchor="mqtt-pubsub">
      <name>Applicability to MQTT PubSub Profile</name>
      <t>The steps MQTT clients go through would be similar to the CoAP clients, and the payload of the MQTT PUBLISH messages will be protected using COSE. The MQTT clients needs to use CoAP to communicate to the KDC, to join security groups, and be part of the pair-wise rekeying initiated by the KDC.</t>
      <t>Authorisation Server (AS) Discovery is defined in Section 2.2.6.1 of <xref target="I-D.ietf-ace-mqtt-tls-profile"/> for MQTT v5 clients (and not supported for MQTT v3 clients). $SYS/ has been widely adopted as a prefix to topics that contain Server-specific information or control APIs, and may be used for topic and KDC discovery.</t>
      <t>Differently for MQTT, the Client sends an authorisation request to the AS using AIF-MQTT data model for representing the requested scopes is described in Section 3 of the <xref target="I-D.ietf-ace-mqtt-tls-profile"/>. In the authorisation response, the 'profile' claim is set to "mqtt_pubsub_app" as defined in <xref target="iana-mqtt-profile"/>.</t>
      <t>Both Publisher and Subscriber Clients MUST authorise to the Broker with their respective tokens (described in <xref target="I-D.ietf-ace-mqtt-tls-profile"/>) i.e.,  anonymous Subscribers are not supported in the profile. A Publisher Client sends PUBLISH messages for a given topic and protects the payload with the corresponding key for the associated security group. The Broker validates the PUBLISH message by verifying its topic in the stored token. A Subscriber Client may send SUBSCRIBE messages with one or multiple topic filters. A topic filter may correspond to multiple topics. The Broker validates the SUBSCRIBE message by checking the stored token for the Client.
The Broker forwards all PUBLISH messages to all authorised Subscribers, including the retained messages.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>All the security considerations in <xref target="I-D.ietf-ace-key-groupcomm"/> apply.</t>
      <t>In the profile described above, when the Publisher and Subscriber use asymmetric crypto, which would make the message exchange quite heavy for small constrained devices. Moreover, all Subscribers must be able to access the public keys of all the Publishers to a specific topic to verify the publications.</t>
      <t>Even though Access Tokens have expiration times, an Access Token may need to be revoked before its expiration time (see <xref target="I-D.draft-ietf-ace-revoked-token-notification-03"/> for a list of possible circumstances). Clients can be excluded from future publications through re-keying for a certain topic. This could be set up to happen on a regular basis, for certain applications. How this could be done is out of scope for this work.
 The method described in <xref target="I-D.draft-ietf-ace-revoked-token-notification-03"/> MAY be used to allow an Authorization Server to notify the KDC about revoked Access Tokens.</t>
      <t>The Broker is only trusted with verifying that the Publisher is authorized to publish, but is not trusted with the publications itself, which it cannot read nor modify. In this setting, caching of publications on the Broker is still allowed.</t>
      <t>With respect to the reusage of nonces for Proof-of-Possession input, the same considerations apply as in the 
<xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
      <t>TODO: expand on security and privacy considerations</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-profile">
        <name>ACE Groupcomm Profile Registry</name>
        <t>The following registrations are done for the "ACE Groupcomm Profile" Registry following the procedure specified in <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <t>Note to RFC Editor: Please replace all occurrences of "[[This document]]"
with the RFC number of this specification and delete this paragraph.</t>
        <section anchor="iana-coap-profile">
          <name>CoAP Profile Registration</name>
          <t>Name: coap_group_pubsub_app</t>
          <t>Description: Profile for delegating client authentication and authorization for publishers and subscribers in a CoAP pub/sub setting scenario in a constrained environment.</t>
          <t>CBOR Key: TBD</t>
          <t>Reference: [[This document]]</t>
        </section>
        <section anchor="iana-mqtt-profile">
          <name>MQTT Profile Registration</name>
          <t>Name: mqtt_pubsub_app</t>
          <t>Description: Profile for delegating client authentication and authorization for publishers and subscribers in a MQTT pub/sub setting scenario in a constrained environment.</t>
          <t>CBOR Key: TBD</t>
          <t>Reference: [[This document]]</t>
        </section>
      </section>
      <section anchor="iana-ace-groupcomm-key">
        <name>ACE Groupcomm Key Registry</name>
        <t>The following registrations are done for the "ACE Groupcomm Key Types"  defined in Section 11.7 of <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <t>Note to RFC Editor: Please replace all occurrences of "[[This document]]"
with the RFC number of this specification and delete this paragraph.</t>
        <t>Name: Group_PubSub_COSE_Key</t>
        <t>Key Type Value: GROUPCOMM_KEY_TBD</t>
        <t>Profile: coap_group_pubsub_app, defined in <xref target="iana-coap-profile"/> of this document.</t>
        <t>Description: COSE_Key object</t>
        <t>References: <xref target="RFC9052"/> <xref target="RFC9053"/>, [[This document]]</t>
      </section>
      <section anchor="core_rt">
        <name>CoRE Resource Type</name>
        <t>IANA is asked to register the following entry in the "Resource Type (rt=) Link Target Attribute Values" registry within the "Constrained Restful Environments (CoRE) Parameters" registry group.</t>
        <ul spacing="normal">
          <li>Value: "core.ps.gm"</li>
          <li>Description: Group-membership resource for Pub/Sub communication.</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
        <t>Clients can use this resource type to discover a group membership resource at a Broker.</t>
      </section>
      <section anchor="aif">
        <name>AIF Media-Type Sub-Parameters</name>
        <t>For the media-types application/aif+cbor and application/aif+json defined in Section 5.1 of <xref target="RFC9237"/>, IANA is requested to register the following entries for the two media-type parameters Toid and Tperm, in the respective sub-registry defined in Section 5.2 of <xref target="RFC9237"/> within the "MIME Media Type Sub-Parameter" registry group.</t>
        <ul spacing="normal">
          <li>Parameter: Toid</li>
          <li>Name: pubsub-topic</li>
          <li>Description/Specification: Pub/sub topic name, corresponding to the security group</li>
          <li>Reference: [[This document]]</li>
          <li>Parameter: Tperm</li>
          <li>Name: pubsub-perm</li>
          <li>Description/Specification: Permissions corresponding to the roles in pub/sub group</li>
        </ul>
        <t>*Reference: [[This document]]</t>
      </section>
      <section anchor="content_format">
        <name>CoAP Content-Format</name>
        <t>IANA is asked to register the following entries to the "CoAP Content- Formats" registry within the "Constrained RESTful Environments (CoRE) Parameters" registry group.</t>
        <ul spacing="normal">
          <li>Media Type: application/aif+cbor;Toid="pubsub-topic",Tperm="pubsub-perm"</li>
          <li>Encoding: -</li>
          <li>ID: 294 (suggested)</li>
          <li>Reference: [RFC-XXXX]</li>
          <li>Media Type: application/aif+json;Toid="pubsub-topic",Tperm="pubsub-perm"</li>
          <li>Encoding: -</li>
          <li>ID: 295 (suggested)</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="tls_exporter">
        <name>TLS Exporter Labels</name>
        <t>IANA is asked to register the following entry to the "TLS Exporter Labels" registry defined in Section 6 of <xref target="RFC5705"/> and updated in Section 12 of <xref target="RFC8447"/>.</t>
        <ul spacing="normal">
          <li>Value: EXPORTER-ACE-Sign-Challenge-coap-group-pubsub-app</li>
          <li>DTLS-OK: Y</li>
          <li>Recommended: N</li>
          <li>Reference: [RFC-XXXX] (Section XXX)</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="IANA.cose_algorithms" target="https://www.iana.org/assignments/cose">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cose_key-type" target="https://www.iana.org/assignments/cose">
          <front>
            <title>COSE Key Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cose_header-parameters" target="https://www.iana.org/assignments/cose">
          <front>
            <title>COSE Header Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5705">
          <front>
            <title>Keying Material Exporters for Transport Layer Security (TLS)</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="March" year="2010"/>
            <abstract>
              <t>A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes.  This document describes a general mechanism for allowing that.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5705"/>
          <seriesInfo name="DOI" value="10.17487/RFC5705"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links.  Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type.  "RESTful" refers to the Representational State Transfer (REST) architecture.  A well-known URI is defined as a default entry point for requesting the links hosted by a server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt">
              <organization/>
            </author>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.  This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7925">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="T. Fossati" initials="T." surname="Fossati">
              <organization/>
            </author>
            <date month="July" year="2016"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery.  The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy.  These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE).  OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration.  Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need to be able to define basic security services for this data format.  This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.  </t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052). </t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices.  Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9237">
          <front>
            <title>An Authorization Information Format (AIF) for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>Information about which entities are authorized to perform what operations on which constituents of other entities is a crucial component of producing an overall system that is secure.  Conveying precise authorization information is especially critical in highly automated systems with large numbers of entities, such as the Internet of Things.</t>
              <t>This specification provides a generic information model and format for representing such authorization information, as well as two variants of a specific instantiation of that format for use with Representational State Transfer (REST) resources identified by URI path.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9237"/>
          <seriesInfo name="DOI" value="10.17487/RFC9237"/>
        </reference>
        <reference anchor="RFC9277">
          <front>
            <title>On Stable Storage for Items in Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document defines a stored ("file") format for Concise Binary Object Representation (CBOR) data items that is friendly to common systems that recognize file types, such as the Unix file(1) command.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9277"/>
          <seriesInfo name="DOI" value="10.17487/RFC9277"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="10" month="January" year="2023"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50%.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 COSE headers, a C509 TLS certificate type, and a C509
   file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-05"/>
        </reference>
        <reference anchor="I-D.ietf-core-coap-pubsub">
          <front>
            <title>Publish-Subscribe Broker for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>SmartThings</organization>
            </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Jaime Jimenez" initials="J." surname="Jimenez">
              <organization>Ericsson</organization>
            </author>
            <date day="7" month="November" year="2022"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP), and related extensions
   are intended to support machine-to-machine communication in systems
   where one or more nodes are resource constrained, in particular for
   low power wireless sensor networks.  This document defines a publish-
   subscribe Broker for CoAP that extends the capabilities of CoAP for
   supporting nodes with long breaks in connectivity and/or up-time.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-pubsub-11"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm">
          <front>
            <title>Key Provisioning for Group Communication using ACE</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="5" month="September" year="2022"/>
            <abstract>
              <t>   This document defines how to use the Authentication and Authorization
   for Constrained Environments (ACE) framework to distribute keying
   material and configuration parameters for secure group communication.
   Candidate group members acting as Clients and authorized to join a
   group can do so by interacting with a Key Distribution Center (KDC)
   acting as Resource Server, from which they obtain the keying material
   to communicate with other group members.  While defining general
   message formats as well as the interface and operations available at
   the KDC, this document supports different approaches and protocols
   for secure group communication.  Therefore, details are delegated to
   separate application profiles of this document, as specialized
   instances that target a particular group communication approach and
   define how communications in the group are protected.  Compliance
   requirements for such application profiles are also specified.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-16"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
              <organization/>
            </author>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC9202">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="S. Gerdes" initials="S." surname="Gerdes">
              <organization/>
            </author>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a profile of the Authentication and Authorization for Constrained Environments (ACE) framework that allows constrained servers to delegate client authentication and authorization.  The protocol relies on DTLS version 1.2 or later for communication security between entities in a constrained network using either raw public keys or pre-shared keys. A resource-constrained server can use this protocol to delegate management of authorization information to a trusted host with less-severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9202"/>
          <seriesInfo name="DOI" value="10.17487/RFC9202"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework.  It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="I-D.ietf-ace-mqtt-tls-profile">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT)-TLS profile of Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Cigdem Sengul" initials="C." surname="Sengul">
              <organization>Brunel University</organization>
            </author>
            <author fullname="Anthony Kirby" initials="A." surname="Kirby">
              <organization>Oxbotica</organization>
            </author>
            <date day="23" month="March" year="2022"/>
            <abstract>
              <t>   This document specifies a profile for the ACE (Authentication and
   Authorization for Constrained Environments) framework to enable
   authorization in a Message Queuing Telemetry Transport (MQTT)-based
   publish-subscribe messaging system.  Proof-of-possession keys, bound
   to OAuth2.0 access tokens, are used to authenticate and authorize
   MQTT Clients.  The protocol relies on TLS for confidentiality and
   MQTT server (Broker) authentication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-mqtt-tls-profile-17"/>
        </reference>
        <reference anchor="I-D.draft-ietf-ace-revoked-token-notification-03">
          <front>
            <title>Notification of Revoked Access Tokens in the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Sebastian Echeverria" initials="S." surname="Echeverria">
              <organization>CMU SEI</organization>
            </author>
            <author fullname="Grace Lewis" initials="G." surname="Lewis">
              <organization>CMU SEI</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   This document specifies a method of the Authentication and
   Authorization for Constrained Environments (ACE) framework, which
   allows an Authorization Server to notify Clients and Resource Servers
   (i.e., registered devices) about revoked Access Tokens.  The method
   allows Clients and Resource Servers to access a Token Revocation List
   on the Authorization Server, with the possible additional use of
   resource observation for the Constrained Application Protocol (CoAP).
   Resulting (unsolicited) notifications of revoked Access Tokens
   complement alternative approaches such as token introspection, while
   not requiring additional endpoints on Clients and Resource Servers.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-16"/>
        </reference>
        <reference anchor="MQTT-OASIS-Standard-v5" target="http://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html">
          <front>
            <title>OASIS Standard MQTT Version 5.0</title>
            <author initials="A." surname="Banks">
              <organization/>
            </author>
            <author initials="E." surname="Briggs">
              <organization/>
            </author>
            <author initials="K." surname="Borgendale">
              <organization/>
            </author>
            <author initials="R." surname="Gupta">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="groupcomm_requirements">
      <name>Requirements on Application Profiles</name>
      <t>This section lists the specifications on this profile based on the requirements defined in Appendix A of <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
      <ul spacing="normal">
        <li>REQ1: Specify the format and encoding of 'scope'. : See <xref target="scope"/>.</li>
        <li>REQ2: If the AIF format of 'scope' is used, register its specific instance of "Toid" and "Tperm" as Media Type parameters and a corresponding Content-Format, as per the guidelines in <xref target="RFC9237"/>.:See <xref target="aif"/>.</li>
        <li>REQ3: If used, specify the acceptable values for 'sign_alg':  values from the "Value" column of the "COSE Algorithms" registry <xref target="IANA.cose_algorithms"/>.</li>
        <li>REQ4: If used, specify the acceptable values for 'sign_parameters': format and values from the COSE algorithm
capabilities as specified in the "COSE Algorithms" registry <xref target="IANA.cose_algorithms"/>.</li>
        <li>REQ5: If used, specify the acceptable values for 'sign_key_parameters' : Its format and value are the same of the COSE capabilities array for the COSE key type of the keys used with the algorithm indicated in 'sign_alg', as specified for that key type in the "Capabilities" column of the "COSE Key Types" registry <xref target="IANA.cose_key-type"/>.</li>
        <li>REQ6: Specify the acceptable formats for authentication credentials and, if used, the acceptable values for 'cred_fmt':  Acceptable formats explicitly provide the public key as well as the comprehensive set of information related to the public key algorithm. Takes value from the "Label" column of the "COSE Header Parameters" registry <xref target="IANA.cose_header-parameters"/>.</li>
        <li>REQ7: If the value of the GROUPNAME URI path and the group name in the access token scope (gname) are not required to coincide, specify the mechanism to map the GROUPNAME value in the URI to the group name: not applicable; a perfect matching is required.</li>
        <li>REQ8: Define whether the KDC has an authentication credential and if this has to be provided through the 'kdc_cred' parameter : Optional, see <xref target="join-response"/> of this document.</li>
        <li>REQ9: Specify if any part of the KDC interface as defined in <xref target="I-D.ietf-ace-key-groupcomm"/> is not supported by the KDC: Some left optional, see <xref target="kdc-interface"/> of this document.</li>
        <li>REQ10: Register a Resource Type for the root url-path, which is used to discover the correct url to access at the KDC : the Resource Type (rt=) Link Target Attribute value "core.ps.gm" is registered in Section <xref target="core_rt"/>.
ToDo: This possibly will not stay as the final method, KDC discovery done differently through topic discovery?</li>
        <li>REQ11: Define what specific actions (e.g., CoAP methods) are allowed on each resource provided by the KDC interface, depending on whether the Client is a current group member; the roles that a Client is authorized to take as per the obtained access token;  and the roles that the Client has as current group member.: See <xref target="kdc-interface"/> of this document.</li>
        <li>REQ12: Categorize possible newly defined operations for Clients into primary operations expected to be minimally supported and secondary operations, and provide accompanying considerations: None added.</li>
        <li>REQ13: Specify the encoding of group identifier: CBOR byte string, see <xref target="query"/>.</li>
        <li>REQ14: Specify the approaches used to compute and verify the PoP evidence to include in 'client_cred_verify', and which of those approaches is used in which case: See <xref target="pop"/> in this document.</li>
        <li>REQ15: Specify how the nonce N_S is generated, if the token is not provided to the KDC through the Token Transfer Request to the authz-info endpoint (e.g., if it is used directly to validate TLS
instead): See <xref target="pop"/> in this document.</li>
        <li>REQ16: Define the initial value of the 'num' parameter: The initial value MUST be set to 0.</li>
        <li>REQ17: Specify the format of the 'key' parameter: See <xref target="join-response"/>.</li>
        <li>REQ18: Specify the acceptable values of the 'gkty' parameter: Group_PubSub_COSE_Key, see <xref target="iana-ace-groupcomm-key"/>.</li>
        <li>REQ19: Specify and register the application profile identifier: coap_group_pubsub_app, see <xref target="iana-coap-profile"/>.</li>
        <li>REQ20: If used, specify the format and content of 'group_policies' and its entries.  Specify the policies default values: ToDo.</li>
        <li>REQ21: Specify the approaches used to compute and verify the PoP evidence to include in 'kdc_cred_verify', and which of those approaches is used in which case: see <xref target="join-response"/>.</li>
        <li>REQ22: Specify the communication protocol the members of the group must use.: CoAP <xref target="RFC7252"/>, and for
pub/sub communication <xref target="I-D.ietf-core-coap-pubsub"/></li>
        <li>REQ23: Specify the security protocol the group members must use to protect their communication. This must provide encryption, integrity and replay protection.: Symmetric COSE Key is used to create a COSE_Encrypt0 object with an AEAD algorithm specified by the KDC.</li>
        <li>REQ24: Specify how the communication is secured between Client and KDC.  Optionally, specify transport profile of ACE <xref target="RFC9200"/> to use between Client and KDC.: ACE transport profile such as DTLS <xref target="RFC9202"/> or OSCORE <xref target="RFC9203"/>.</li>
        <li>REQ25: Specify the format of the identifiers of group members.: the Sender ID defined in <xref target="join-response"/>.</li>
        <li>REQ26: Specify policies at the KDC to handle ids that are not included in 'get_creds'.: See <xref target="query"/>.</li>
        <li>REQ27: Specify the format of newly-generated individual keying material for group members, or of the information to derive it, and corresponding CBOR label.: Not applicable.</li>
        <li>REQ28: Specify which CBOR tag is used for identifying the semantics of binary scopes, or register a new CBOR tag if a suitable one does not exist already.: See <xref target="as-response"/> and <xref target="content_format"/> of this document.</li>
        <li>REQ29: Categorize newly defined parameters according to the same criteria of Section 8 of <xref target="I-D.ietf-ace-key-groupcomm"/>.:  A Publisher Client MUST support 'group_SenderId' in 'key'; see <xref target="join-response"/></li>
        <li>REQ30: Define whether Clients must, should or may support the conditional parameters defined in Section 8 of <xref target="I-D.ietf-ace-key-groupcomm"/>, and under which circumstances.: A Publisher Client MUST support client_cred', 'cnonce', 'client_cred_verify' parameters; see <xref target="join-request"/>. A Publisher Client that provides the token to the KDC, through the authz-info endpoint, MUST support the parameter 'kdcchallenge'; see <xref target="token-post"/>.</li>
        <li>OPT1: Optionally, if the textual format of 'scope' is used, specify CBOR values to use for abbreviating the role identifiers in the group: No.</li>
        <li>OPT2: Optionally, specify the additional parameters used in the exchange of Token Transfer Request and Response : No.</li>
        <li>OPT3: Optionally, specify the negotiation of parameter values for signature algorithm and signature keys, if 'sign_info' is not used: See <xref target="token-post"/>.</li>
        <li>OPT4: Optionally, specify possible or required payload formats for specific error cases.: See <xref target="join-error"/>.</li>
        <li>OPT5: Optionally, specify additional identifiers of error types, as values of the 'error' field in an error response from the KDC: No.</li>
        <li>OPT6: Optionally, specify the encoding of 'creds_repo' if the default is not used: No.</li>
        <li>OPT7: Optionally, specify the functionalities implemented at the 'control_uri' resource hosted at the Client, including message exchange encoding and other details.: No.</li>
        <li>OPT8: Optionally, specify the behavior of the handler in case of failure to retrieve an authentication credential for the specific node: The KDC MUST reply with a 4.00 (Bad Request) error response to the Join Request; see <xref target="join-error"/>.</li>
        <li>OPT9: Optionally, define a default group rekeying scheme, to refer to in case the 'rekeying_scheme' parameter is not included in the Join Response: the "Point-to-Point" rekeying scheme registered in Section 11.12 of
<xref target="I-D.ietf-ace-key-groupcomm"/>.</li>
        <li>OPT10: Optionally, specify the functionalities implemented at the 'control_group_uri' resource hosted at the Client, including message exchange encoding and other details. : No.</li>
        <li>OPT11: Optionally, specify policies that instruct Clients to retain messages and for how long, if they are unsuccessfully decrypted.: No.</li>
        <li>OPT12: Optionally, specify for the KDC to perform group rekeying (together or instead of renewing individual keying material) when receiving a Key Renewal Request: ToDo.</li>
        <li>OPT13: Optionally, specify how the identifier of a group member's authentication credential is included in requests sent to other group members: No.</li>
        <li>OPT14: Optionally, specify additional information to include in rekeying messages for the "Point-to-Point" group rekeying scheme: ToDo.</li>
        <li>OPT15: Optionally, specify if Clients must or should support any of the parameters defined as optional in <xref target="I-D.ietf-ace-key-groupcomm"/>: No.</li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author wishes to thank <contact fullname="Ari Keränen"/>, <contact fullname="John Preuß Mattsson"/>, <contact fullname="Ludwig Seitz"/>, <contact fullname="Göran Selander"/>, and <contact fullname="Jim Schaad"/> for the useful discussion and reviews that helped shape this document.</t>
      <t>The work on this document has been partly supported by the H2020 project SIFIS-Home (Grant agreement 952652).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
L47PdAk49gAA

-->

</rfc>
