<?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.39 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-pubsub-profile-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.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-07"/>
    <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="September" day="13"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 90?>

<t>This document defines an application profile of the Authentication and Authorization for Constrained Environments (ACE) framework, to enable secure group communication in the Publish-Subscribe (pub/sub) architecture for the Constrained Application Protocol (CoAP) [draft-ietf-core-coap-pubsub], where Publishers and Subscribers communicate through a Broker. This profile relies on protocol-specific transport profiles of ACE to achieve communication security, server authentication, and proof-of-possession for a key owned by the Client and bound to an OAuth 2.0 Access Token. This document specifies the provisioning and enforcement of authorization information for Clients to act as Publishers and/or Subscribers, as well as the provisioning of keying material and security parameters that Clients use for protecting their communications end-to-end through the Broker.</t>
      <t>Note to RFC Editor: Please replace "[draft-ietf-core-coap-pubsub]" with the RFC number of that document and delete this paragraph.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Authentication and Authorization for Constrained Environments Working Group mailing list (ace@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ace/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ace-wg/pubsub-profile"/>.</t>
    </note>
  </front>
  <middle>
    <?line 95?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In a publish-subscribe (pub/sub) scenario, devices with limited reachability communicate via a Broker, which enables store-and-forward messaging between these devices. This effectively enables a form of group communication, where all the Publishers and Subscribers participating in the same pub/sub topic are considered members of the same group associated with that topic.</t>
      <t>With a focus on the pub/sub architecture defined in <xref target="I-D.ietf-core-coap-pubsub"/> for the Constrained Application Protocol (CoAP) <xref target="RFC7252"/>, this document defines an application profile of the Authentication and Authorization for Constrained Environments (ACE) framework <xref target="RFC9200"/>, which enables pub/sub communication where a group of Publishers and Subscribers securely communicate through a Broker using CoAP.</t>
      <t>Building on the message formats and processing defined in <xref target="I-D.ietf-ace-key-groupcomm"/>, this document specifies the provisioning and enforcement of authorization information for Clients to act as Publishers and/or Subscribers at the Broker, as well as the provisioning of keying material and security parameters that Clients use for protecting end-to-end their communications via the Broker.</t>
      <t>In order to protect the pub/sub operations at the Broker as well as the provisioning of keying material and security parameters, this profile relies on protocol-specific transport profiles of ACE (e.g., <xref target="RFC9202"/>, <xref target="RFC9203"/>, or <xref target="I-D.ietf-ace-edhoc-oscore-profile"/>) 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>
      <t>Furthermore, the content of published messages that are circulated by the Broker is protected end-to-end between the corresponding Publisher and the intended Subscribers. To this end, this profile relies on COSE <xref target="RFC9052"/><xref target="RFC9053"/> and on keying material provided to the Publishers and Subscribers participating in the same pub/sub topic. In particular, source authentication of published content is achieved by means of the corresponding Publisher signing such content with its own private key.</t>
      <t>While this profile focuses on the pub/sub architecture for CoAP, this document also describes how it can be applicable to MQTT <xref target="MQTT-OASIS-Standard-v5"/>. Similar adaptations can also extend to further transport protocols and pub/sub architectures.</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 are in this case the Clients acting as Publishers and/or Subscribers for a topic.</li>
        </ul>
      </section>
    </section>
    <section anchor="overview">
      <name>Application Profile Overview</name>
      <t>This document describes how to use <xref target="RFC9200"/> and <xref target="I-D.ietf-ace-key-groupcomm"/> to perform authentication, authorization, and key distribution operations as overviewed in <xref section="2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>, where the considered group is the security group including the pub/sub Clients that exchange end-to-end protected content through the Broker.</t>
      <t>Pub/sub Clients communicate within their application groups, each of which is mapped to a pub/sub topic. Depending on the application, a pub/sub topic may consist of one or more sub-topics, which may have their own sub-topics and so on, thus forming a hierarchy. 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>This profile considers the architecture shown in <xref target="archi"/>. A Client can act as a Publisher, or a Subscriber, or both, e.g., by publishing to some topics and subscribing to others. However, for the simplicity of presentation, this profile describes Publisher and Subscriber Clients separately.</t>
      <t>Both Publishers and Subscribers Clients act as ACE Clients. The Broker acts as an ACE RS, and corresponds to the Dispatcher in <xref target="I-D.ietf-ace-key-groupcomm"/>. The Key Distribution Center (KDC) also acts as an ACE RS, and builds on what is defined for the KDC in <xref target="I-D.ietf-ace-key-groupcomm"/>. From a high-level point of view, the Clients interact with the KDC in order to join security groups, upon which they obtain the group keying material to use for protecting and verifying the content published in the corresponding pub/sub topics and protected end-to-end.</t>
      <figure anchor="archi">
        <name>Architecture for Pub/Sub with Authorization Server and Key Distribution Center</name>
        <artwork align="center"><![CDATA[
             +---------------+   +--------------+
             | Authorization |   |     Key      |
             |    Server     |   | Distribution |
             |      (AS)     |   |    Center    |
             |               |   |    (KDC)     |
             +---------------+   +--------------+
                      ^                  ^
                      |                  |
     +---------(A)----+                  |
     |                                   |
     |   +--------------------(B)--------+
     v   v
+------------+             +------------+
|            | <-- (O) --> |            |
|  Pub/Sub   |             |   Broker   |
|  Client    | <-- (C)---> |            |
|            |             |            |
+------------+             +------------+
]]></artwork>
      </figure>
      <t>Both Publisher and Subscriber Clients MUST use the same pub/sub communication protocol for their interaction with the Broker. When using the profile defined in this document, such a protocol MUST be CoAP, which is used as described in <xref target="I-D.ietf-core-coap-pubsub"/>. What is specified in this document can apply to other pub/sub protocols such as MQTT <xref target="MQTT-OASIS-Standard-v5"/>, or to further transport protocols.</t>
      <t>All Publisher and Subscriber Clients MUST use CoAP when communicating with the KDC.</t>
      <t>Furthermore, both Publisher and Subscriber Clients MUST use the same transport profile of ACE (e.g., <xref target="RFC9202"/> for DTLS; or <xref target="RFC9203"/> or <xref target="I-D.ietf-ace-edhoc-oscore-profile"/> for OSCORE) in their interaction with the Broker. In order to reduce the number of libraries that Clients have to support, it is RECOMMENDED that the same transport profile of ACE is used also for the interaction between the Clients and the KDC.</t>
      <t>All communications between the involved entities MUST be secured.</t>
      <t>The Client and the Broker MUST have a secure association, which they establish with the help of the AS and using a transport profile of ACE. This is shown by the interactions A and C in <xref target="archi"/>. During this process, the Client obtains an Access Token from the AS and uploads it to the Broker, thus providing an evidence of the pub-sub topics that it is authorized to participate in, and with which permissions.</t>
      <t>The Client and the KDC MUST have a secure association, which they also establish with the help of the AS and using a transport profile of ACE. This is shown by the interactions A and B in <xref target="archi"/>. During this process, the Client obtains an Access Token from the AS and uploads it to the KDC, thus providing an evidence of the security groups that it can join, as corresponding to the pub/sub topics of interest at the Broker. Based on the permissions specified in the Access Token, the Client can request the KDC to join a security group, after which the Client obtains from the KDC the keying material to use for communicating with the other group members. This builds on the process for joining security groups with ACE defined in <xref target="I-D.ietf-ace-key-groupcomm"/> and further specified in this document.</t>
      <t>In addition, this profile allows an anonymous Client to perform some of the discovery operations defined in <xref section="2.3" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/> through the Broker, as shows by the interaction O in <xref target="archi"/>. That is, an anonymous Client can discover:</t>
      <ul spacing="normal">
        <li>the Broker itself, by relying on the resource type "core.ps" (see <xref section="2.3.1" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/>); and</li>
        <li>topics of interest at the Broker (i.e., the corresponding topic resources hosted at the Broker), by relying on the resource type "core.ps.conf" (see <xref section="2.3.2" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/>).</li>
      </ul>
      <t>However, an anonymous Client is not allowed to access topic resources at the Broker and obtain from those any additional information or metadata about the corresponding topic (e.g., the topic status, the URI of the topic-data resource where to publish or subscribe for that topic, or the URI to the KDC).</t>
      <t>As highlighted in <xref target="associations"/>, each Client maintains two different security associations pertaining to the pub/sub group communication. On the one hand, the Client has a pairwise security association with the Broker, which, as the ACE RS, verifies that the Client is authorized to publish and/or subscribe on a certain set of topics (Security Association 1). As discussed above, this security association is set up with the help of the AS and using a transport profile of ACE, when the Client obtains the Access Token to upload to the Broker.</t>
      <t>On the other hand, separately for each topic, all the Publisher and Subscribers for that topic have a common, group security association, through which the published content sent through the Broker is protected end-to-end (Security Association 2). As discussed above, this security association is set up and maintained as the different Clients request the KDC to join the security group, upon which they obtain from the KDC the corresponding group keying material to use for protecting end-to-end and verifying the content of their pub/sub group communication.</t>
      <figure anchor="associations">
        <name>Security Associations between Publisher, Broker, and Subscriber.</name>
        <artwork align="center"><![CDATA[
+------------+             +------------+              +------------+
|            |             |            |              |            |
| Publisher  |             |   Broker   |              | Subscriber |
|            |             |            |              |            |
|            |             |            |              |            |
+------------+             +------------+              +------------+
      :   :                     :   :                      :   :
      :   '----- Security ------'   '------ Security ------'   :
      :        Association 1              Association 1        :
      :                                                        :
      '---------------------- Security ------------------------'
                            Association 2
]]></artwork>
      </figure>
      <t>In summary, this profile specifies the following functionalities.</t>
      <ol spacing="normal" type="1"><li>A Client obtains the authorization to participate in a pub-sub topic at the Broker with certain permissions. This pertains operations defined in <xref target="I-D.ietf-core-coap-pubsub"/> for taking part in pub/sub group communication with CoAP.</li>
        <li>A Client obtains the authorization to join a security group with certain permissions. This allows the Client to obtain from the KDC the group keying material for communicating with other group members, i.e., to protect end-to-end and verify the content published at the Broker on pub/sub topics associated with the security group.</li>
        <li>A Client obtains from the KDC the authentication credentials of other group members, and provides the KDC with its own (updated) authentication credential.</li>
        <li>A Client leaves the group or is removed from the group by the KDC.</li>
        <li>The KDC renews and redistributes the group keying material (rekeying), e.g., due to a membership change in the group.</li>
      </ol>
      <t><xref target="groupcomm_requirements"/> lists the specifications on this application profile of ACE, based on the requirements defined in <xref section="A" sectionFormat="of" 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><xref target="message-flow"/> provides a high level overview of the message flow for a Client getting authorisation to join a group. Square brackets denote optional steps. The message flow is expanded in the subsequent sections.</t>
      <figure anchor="message-flow">
        <name>Authorisation Flow</name>
        <artwork align="center"><![CDATA[
Client                                          Broker   AS   KDC
   |                                                 |    |     |
   |[<-------- Discovery of Topic Resource -------->]|    |     |
   |                                                 |    |     |
   |[--------------- Resource Request ------------->]|    |     |
   |[<--------------- AS Information ---------------]|    |     |
   |                                                 |    |     |
   |                                                 |    |     |
   |----- Authorisation Request (Audience: Broker) ------>|     |
   |<---- Authorisation Response (Audience: Broker) ------|     |
   |                                                 |    |     |
   |                                                 |    |     |
   |------ Upload of authorisation information ----->|    |     |
   |<----- Establishment of secure association ----->|    |     |
   |                                                 |    |     |
   |                                                 |    |     |
   |[<-- Discovery of KDC and name of sec. group -->]|    |     |
   |                                                 |    |     |
   |                                                 |    |     |
   |------- Authorisation Request (Audience: KDC) ------->|     |
   |<------ Authorisation Response (Audience: KDC) -------|     |
   |                                                 |    |     |
   |                                                 |    |     |
   |--------- Upload of authorisation information ------------->|
   |<-------- Establishment of secure association ------------->|
   |                                                 |    |     |
   |                                                 |    |     |
   |----- Request to join the security group for the topic ---->|
   |<-------- Keying material for the security group -----------|
   |                                                 |    |     |
   |                                                 |    |     |
   |---------------- Resource Request -------------->|    |     |
   |                                                 |    |     |
]]></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.</t>
      <t>However, using HTTP instead of CoAP is possible, by leveraging the corresponding parameters and methods. Analogously, JSON <xref target="RFC8259"/> can be used instead of CBOR, using the conversion method specified in Sections <xref target="RFC8949" section="6.1" sectionFormat="bare"/> and <xref target="RFC8949" section="6.2" sectionFormat="bare"/> of <xref target="RFC8949"/>. In case JSON is used, the Content-Format of the message has to be changed accordingly. Exact definitions of these exchanges are out of scope for this document.</t>
      <section anchor="topic-discovery">
        <name>Topic Discovery at the Broker (Optional)</name>
        <t>The discovery of a topic at the Broker can be performed by discovering the corresponding topic resources hosted at the Broker. For example, the Client can send a lookup request to /.well-known/core at the Broker, specifying as lookup criterion the resource type "core.ps.conf" (see <xref section="2.3.2" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/>).</t>
        <t>Although the links to the topic resources are also specified in the representation of the collection resource at the Broker (see <xref section="2.4" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/>), the Client is not supposed to access such a resource, as intended for administrative operations that are out of the scope of this document.</t>
      </section>
      <section anchor="AS-discovery">
        <name>AS Discovery at the Broker (Optional)</name>
        <t>Complementary to what is defined in <xref section="5.1" sectionFormat="of" target="RFC9200"/> for AS discovery, the Broker MAY send the address of the AS to the Client in the 'AS' parameter of the AS Request Creation Hints, as a response to an Unauthorized Resource Request (see <xref section="5.2" sectionFormat="of" target="RFC9200"/>). An example using CBOR diagnostic notation and CoAP is given below:</t>
        <figure anchor="AS-info-ex">
          <name>AS Request Creation Hints Example</name>
          <artwork align="left"><![CDATA[
    4.01 Unauthorized
    Content-Format: application/ace+cbor
    Payload:
    {
     "AS": "coaps://as.example.com/token"
    }
]]></artwork>
        </figure>
      </section>
      <section anchor="kdc-discovery">
        <name>KDC Discovery at the Broker (Optional)</name>
        <t>Once a Client has obtained an Access Token from the AS and accordingly established a secure association with the Broker, the Client has the permission to access the topic resources at the broker that pertain the topics on which the Client is authorized to operate.</t>
        <t>In particular the Client is authorized to retrieve the representation of a topic resource, from which the Client can retrieve information related to the topic in question, as specified in <xref section="2.5" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/>.</t>
        <t>This profile extends the set of CoAP Pubsub Parameters that is possible to specify within the representation of a topic resource, as originally defined in <xref section="3" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/>. In particular, this profile defines the following two parameters that the Broker can specify in a response from a topic resource (see <xref section="2.5" sectionFormat="of" target="I-D.ietf-core-coap-pubsub"/>). Note that, when these parameters are transported in a their respective field of the message payload, the Content-Format application/core-pubsub+cbor MUST be used.</t>
        <ul spacing="normal">
          <li>'kdc_uri', with value the URI of the group membership resource at KDC, where Clients can send a request to join the security group associated with the topic in question. The URI is encoded as a CBOR text string. Clients will have to obtain an Access Token from the AS to upload to the KDC, before starting the joining process with the KDC to join the security group.</li>
          <li>'sec_gp', specifying the name of the security group associated with the topic in question, as a stable and invariant identifier. The name of the security group is encoded as a CBOR text string.</li>
        </ul>
        <t>Furthermore, 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 KDC, e.g., by using a link-format document <xref target="RFC6690"/>. As an alternative to the discovery approach defined above and provided by the Broker, applications can use this common resource type to discover links to group-membership resources at the KDC for joining security groups associated with pub/sub topics.</t>
      </section>
      <section anchor="auth-request">
        <name>Authorisation Request/Response for the KDC and the Broker</name>
        <t>A Client sends two Authorisation Requests to the AS, targeting two different audiences, i.e, the Broker and the KDC.</t>
        <t>As to the former, the AS handles Authorisation Requests for topics that the Client is allowed to publish and/or subscribe at the Broker, as corresponding to an application group.</t>
        <t>As to the latter, the AS handles Authorization Requests for security groups that the Client is allowed to join, in order to obtain the group keying material for protecting end-to-end and verifying the content of exchanged pub-sub messages on the associated topics.</t>
        <t>This section builds on Section 3 of <xref target="I-D.ietf-ace-key-groupcomm"/> and defines only additions or modifications to that specification.</t>
        <t>Both Authorisation Requests include the following fields (see <xref section="3.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>):</t>
        <ul spacing="normal">
          <li>
            <t>'scope': Optional. If present, it specifies the following information, depending on the specifically targeted audience.  </t>
            <t>
If the audience is the Broker, the scope specifies the name of the topics that the Client wishes to access, together with the corresponding permissions. If the audience is the KDC, the scope specifies the name of the security groups that the Client wishes to join, together with the corresponding permissions.  </t>
            <t>
This parameter is encoded as a CBOR byte string, whose value is the binary encoding of a CBOR array. The format MUST follow the data model AIF-PUBSUB-GROUPCOMM defined below.</t>
          </li>
          <li>'audience': Required identifier corresponding to either the Broker or the KDC.</li>
        </ul>
        <t>Other additional parameters can be included if necessary, as defined in <xref target="RFC9200"/>.</t>
        <t>When using this profile, it is expected that a one-to-one mapping is enforced between the application group and the security group (see <xref target="overview"/>). If this is not the case, the correct access policies corresponding both sets of scopes have to be available to the AS.</t>
        <section anchor="scope">
          <name>Format of Scope</name>
          <t>The 'scope' parameter MUST follow the AIF format. (REQ1).</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 MUST use to format and encode scope entries.</t>
          <ul spacing="normal">
            <li>The object identifier ("Toid") is a CBOR text string, specifying the name of the application group (topic name) or the corresponding security group.</li>
            <li>
              <t>The permission set ("Tperm") is a CBOR unsigned integer, whose value provides permission details associated with this topic's resources at the Broker or associated with this security group at the KDC.  </t>
              <ul spacing="normal">
                <li>Admin (0): Reserved for scope entries that express permissions for Administrators of Pub/Sub groups.</li>
                <li>GroupType (1): Used to indicate whether the Toid indicates an application group or security group.  0 signals an application group, 1 signals a security group.</li>
                <li>Publish (1): Concerns the publication of data from the Client to the topic, by means of PUT request to the corresponding data resource at the broker.</li>
                <li>Read (2): Concerns the subscription to the topic (i.e., a GET request with Observe option set to 0), or a reading of the latest published data to the topic data resource (i.e., GET request).</li>
                <li>Delete (3): Concerns de deletion of the topic data resource (i.e., DELETE request).</li>
              </ul>
            </li>
          </ul>
          <t>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. Since this application profile considers user-related operations, the scope entries MUST have the least significant bit of "Tperm" set to 0.</t>
          <t>It must be noted that, when Toid indicates the application group, the Client has always the permission to retrieve the configuration of the topic indicated by Toid (i.e., GET and FETCH requests to the topic resource at the broker).</t>
          <t>The specific interactions between the Client and the Broker are defined in <xref target="I-D.ietf-core-coap-pubsub"/>.</t>
          <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-perm-details

   pubsub-perm-details = &(
    Admin: 0,
    AppGroup: 1
    Publish: 2,
    Read: 3,
    Delete: 4
   )

   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 interactions that the joining node is authorized for that scope entry, encoded as specified in <xref target="auth-request"/>.</li>
        </ul>
        <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 "psk_identity" field of the DTLS ClientKeyExchange message when using DTLS 1.2 <xref target="RFC6347"/>, or in the "identity" field of a PskIdentity within the PreSharedKeyExtension of the ClientHello message when using DTLS 1.3 <xref target="RFC9147"/>. 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 "Publish" permission, 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 Pub/Sub 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 (Pub).</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 name GROUPNAME.</td>
            <td align="left">GET (All)</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"/>, 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 security group. Source authentication of a message sent within the group is ensured by means of a digital signature embedded in the message. Subscribers must be able to retrieve Publishers' authentication credentials from a trusted repository, to verify source authenticity of received messages. Hence, on joining a 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 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 is 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
      |----- Join Request (CoAP) ------>|
      |                                 |
      |<-----Join 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 permissions 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 group.</t>
            <ul spacing="normal">
              <li>The joining node isn't a Publisher Client, 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 is a Publisher Client, 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 the group. 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 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 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' parameter.</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 the 'client_cred' field is present, the KDC verifies the 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 isn't a Publisher Client. The Sender ID MUST be unique within the group. Similar to <xref target="RFC8613"/>, the Sender ID can be short: 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 to 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 the tuple containing NODENAME, GROUPNAME, <!-- Group Identifier (Gid), --> a newly assigne sender ID and the access token. Note that, as long as the secure association between the client and the KDC persists, then the same client re-joining the group is recognized by the KDC by virtue of their secure association. As a consequence, the re-joining client keeps the same NODENAME and related subresource /ace-group/GROUPNAME/nodes/NODENAME, while receiving a new Sender ID according to the same criteria above.</t>
          <t>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_Keying_Material" 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:
              </t>
              <ul spacing="normal">
                <li>'group_SenderId', specifying the Client's Sender ID encoded as a CBOR byte string. This field MUST be included if the Client is a Publisher, and MUST NOT be included otherwise.</li>
                <li>'cred_fmt' parameter, specifiying the format of authentication credentials used in the group. This parameter takes its value from the "Label" column of the "COSE Header Parameters" registry <xref target="IANA.cose_header-parameters"/>. At the time of writing this specification, acceptable formats of authentication credentials are CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC7925"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. Further formats may be available in the future, and would be acceptable to use as long as they comply with the criteria defined above (REQ6).</li>
                <li>'sign_alg' parameter, specifying the Signature Algorithm used to sign messages in the group. This parameter takes values from the "Value" column of the "COSE Algorithms" registry <xref target="IANA.cose_algorithms"/>.</li>
                <li>
                  <t>'sign_params' parameter, specifying the parameters of the Signature Algorithm. This parameter is a CBOR array, which includes the following two elements: 'sign_alg_capab' and 'sign_key_type_capab'.
                  </t>
                  <ul spacing="normal">
                    <li>'sign_alg_capab'is a CBOR array, with the same format and value of the COSE capabilities array for the Signature Algorithm indicated in 'sign_alg', as specified for that algorithm in the "Capabilities" column of the "COSE Algorithms" registry <xref target="IANA.cose_algorithms"/>.</li>
                    <li>'sign_key_type_capab' is a CBOR array, with the same format and value of the COSE capabilities array for the COSE key type of the keys used with the Signature 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>
                  </ul>
                </li>
                <li>and a "COSE_Key", specifying a "COSE_Key" object as defined in <xref target="RFC9052"/> <xref target="RFC9053"/> and containing:'kty' with value 4 (symmetric), 'kid', 'alg' and 'Base IV' with value defined by the KDC, and 'k', specifying the value of the symmetric key (REQ17). ToDo:The 'kid' is a CBOR byte string encoding the Gid of the group.</li>
              </ul>
            </li>
            <li>'num': the version number of the keying material specified in the 'key' field (with initial value set to 0 on creation of the group)</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-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>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 permissions not included in the list 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. ToDo: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.</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 a 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>The 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 the Publisher Clients use in the group.  This information is specified by means of the parameters 'creds' and 'peer_identifiers', like done in the Join Response message (i.e., 'peer_roles' MAY be omitted).</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 (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 the 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 (the publication is received through the Observe Notification or as the response to a GET request to the topic data resource).</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, the AEAD algorithm specified by the KDC, the same as received in the symmetric COSE Key in the Join Response</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 <!-- representing group id-->
          </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>
            <t>Countersignature version 2 header, version 2 counter signature on encrypted content as defined in <xref target="RFC9338"/><xref target="RFC9053"/>, includes
            </t>
            <ul spacing="normal">
              <li>the algorithm (protected),</li>
              <li>the kid, the sender ID (unprotected)</li>
              <li>the signature computed over the payload the ciphertext, with context string 'CounterSignatureV2' and  'external_aad' as an empty string.</li>
            </ul>
          </li>
          <li>The ciphertext, computed over the plaintext that MUST contain the message payload. The 'external_aad' is an empty string.</li>
        </ul>
        <t>The encryption and decryption operations are described in  <xref target="RFC9052"/> <xref target="RFC9053"/>. The AEAD nonce is 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.</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>When the Client sends an authorisation request to the AS using the AIF-PUBSUB-GROUPCOMM data model, in the authorisation response, the 'profile' claim is set to "mqtt_pubsub_app" as defined in <xref target="iana-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, 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"/> 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"/> 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.</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>
      <t>Note to RFC Editor: Please replace "[RFC-XXXX]" with the RFC number of this document and delete this paragraph.</t>
      <t>This document has the following actions for IANA.</t>
      <section anchor="iana-ace-groupcomm-key">
        <name>ACE Groupcomm Key Registry</name>
        <t>IANA is asked to register the following entry in the "ACE Groupcomm Key Types" registry defined in Section 11.7 of <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <ul spacing="normal">
          <li>Name: Group_PubSub_Keying_Material</li>
          <li>Key Type Value: GROUPCOMM_KEY_TBD</li>
          <li>Profile: coap_group_pubsub_app, defined in <xref target="iana-profile"/> of this document.</li>
          <li>Description: Encoded as described in the <xref target="join-response"/> of this document.</li>
          <li>References: <xref target="RFC9052"/>, <xref target="RFC9053"/>, [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="iana-profile">
        <name>ACE Groupcomm Profile Registry</name>
        <t>IANA is asked to register the following entries in the "ACE Groupcomm Profiles" registry defined in Section 11.8 of <xref target="I-D.ietf-ace-key-groupcomm"/>.</t>
        <ul spacing="normal">
          <li>Name: coap_group_pubsub_app</li>
          <li>Description: Profile for delegating client authentication and authorization for publishers and subscribers in a CoAP pub/sub setting scenario in a constrained environment.</li>
          <li>CBOR Value: TBD</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Name: mqtt_pubsub_app</li>
          <li>Description: Profile for delegating client authentication and authorization for publishers and subscribers in a MQTT pub/sub setting scenario in a constrained environment.</li>
          <li>CBOR Value: TBD</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </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 the KDC.</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: [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Parameter: Tperm</li>
          <li>Name: pubsub-perm</li>
          <li>Description/Specification: Permissions corresponding to the topic data interactions in the pub/sub group</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
      </section>
      <section anchor="content_format">
        <name>CoAP Content-Formats</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>Content Type: application/aif+cbor;Toid="pubsub-topic",Tperm="pubsub-perm"</li>
          <li>Content Coding: -</li>
          <li>ID: 294 (suggested)</li>
          <li>Reference: [RFC-XXXX]</li>
        </ul>
        <t> </t>
        <ul spacing="normal">
          <li>Content Type: application/aif+json;Toid="pubsub-topic",Tperm="pubsub-perm"</li>
          <li>Content Coding: -</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]</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="IANA.cose_algorithms" target="http://www.iana.org/assignments/cose">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cose_key-type" target="http://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="http://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"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5705">
          <front>
            <title>Keying Material Exporters for Transport Layer Security (TLS)</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes. This document describes a general mechanism for allowing that. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5705"/>
          <seriesInfo name="DOI" value="10.17487/RFC5705"/>
        </reference>
        <reference anchor="RFC6347">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="January" year="2012"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol. The DTLS protocol provides communications privacy for datagram protocols. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees. Datagram semantics of the underlying transport are preserved by the DTLS protocol. This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6347"/>
          <seriesInfo name="DOI" value="10.17487/RFC6347"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <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"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC7925">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery. The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8447">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="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"/>
            <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"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <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="RFC9338">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Countersignatures</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="December" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) defines a set of security services for CBOR. This document defines a countersignature algorithm along with the needed header parameters and CBOR tags for COSE. This document updates RFC 9052.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9338"/>
          <seriesInfo name="DOI" value="10.17487/RFC9338"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="7" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50%.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 COSE headers, a C509 TLS certificate type, and a C509
   file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-06"/>
        </reference>
        <reference anchor="I-D.ietf-core-coap-pubsub">
          <front>
            <title>A publish-subscribe architecture for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>Unaffiliated</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="13" month="March" year="2023"/>
            <abstract>
              <t>   This document describes a publish-subscribe architecture for CoAP
   that extends the capabilities of CoAP for supporting nodes with long
   breaks in connectivity and/or up-time.  The Constrained Application
   Protocol (CoAP) is used by CoAP clients both to publish and to
   subscribe via a known topic resource.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-pubsub-12"/>
        </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"/>
            <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"/>
            <author fullname="O. Bergmann" initials="O." surname="Bergmann"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a profile of the Authentication and Authorization for Constrained Environments (ACE) framework that allows constrained servers to delegate client authentication and authorization. The protocol relies on DTLS version 1.2 or later for communication security between entities in a constrained network using either raw public keys or pre-shared keys. A resource-constrained server can use this protocol to delegate management of authorization information to a trusted host with less-severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9202"/>
          <seriesInfo name="DOI" value="10.17487/RFC9202"/>
        </reference>
        <reference anchor="RFC9203">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9203"/>
          <seriesInfo name="DOI" value="10.17487/RFC9203"/>
        </reference>
        <reference anchor="I-D.ietf-ace-edhoc-oscore-profile">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC) and Object Security for Constrained Environments (OSCORE) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE</organization>
            </author>
            <date day="7" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies a profile for the Authentication and
   Authorization for Constrained Environments (ACE) framework.  It
   utilizes Ephemeral Diffie-Hellman Over COSE (EDHOC) for achieving
   mutual authentication between an OAuth 2.0 Client and Resource
   Server, and it binds an authentication credential of the Client to an
   OAuth 2.0 access token.  EDHOC also establishes an Object Security
   for Constrained RESTful Environments (OSCORE) Security Context, which
   is used to secure communications when accessing protected resources
   according to the authorization information indicated in the access
   token.  A resource-constrained server can use this profile to
   delegate management of authorization information to a trusted host
   with less severe limitations regarding processing power and memory.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-edhoc-oscore-profile-02"/>
        </reference>
        <reference anchor="I-D.ietf-ace-mqtt-tls-profile">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT) and Transport Layer Security (TLS) Profile of Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <author fullname="Cigdem Sengul" initials="C." surname="Sengul">
              <organization>Brunel University</organization>
            </author>
            <author fullname="Anthony Kirby" initials="A." surname="Kirby">
              <organization>Oxbotica</organization>
            </author>
            <date day="23" month="March" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework to enable authorization in a publish-subscribe messaging system based on Message Queuing Telemetry Transport (MQTT).  Proof-of-Possession keys, bound to OAuth 2.0 access tokens, are used to authenticate and authorize MQTT Clients.  The protocol relies on TLS for confidentiality and MQTT server (Broker) authentication.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-mqtt-tls-profile-17"/>
        </reference>
        <reference anchor="I-D.draft-ietf-ace-revoked-token-notification">
          <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="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="2" month="June" year="2023"/>
            <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.  As specified
   in this document, the method allows Clients and Resource Servers to
   access a Token Revocation List on the Authorization Server by using
   the Constrained Application Protocol (CoAP), with the possible
   additional use of resource observation.  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-06"/>
        </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>
    <?line 749?>

<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_Keying_Material, 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-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 anchor="sec-document-updates">
      <name>Document Updates</name>
      <t>RFC EDITOR: PLEASE REMOVE THIS SECTION.</t>
      <section anchor="sec-06-07">
        <name>Version -06 to -07</name>
        <ul spacing="normal">
          <li>Revised abstract and introduction.</li>
          <li>Clarified use of "application groups".</li>
          <li>Revised use of protocols and transport profiles with Broker and KDC.</li>
          <li>Revised overview of the profile and its security associations.</li>
          <li>Revised presentation of authorization flow.</li>
          <li>Subscribers cannot be anonymous anymore.</li>
          <li>Further clarifications, fixes and editorial improvements.</li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors wish to thank <contact fullname="Ari Keränen"/>, <contact fullname="John Preuß Mattsson"/>, <contact fullname="Jim Schaad"/>, <contact fullname="Ludwig Seitz"/>, and <contact fullname="Göran Selander"/> 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:
H4sIAAAAAAAAA81923Ybx7Xgu9bSP/RQsw7JBIB40ZWOM4eiKJuJJCokZZ+s
OMPVBJpkHwFouLtBipGVX5mX+Yb5gfNjs69Vu6q7QdCWc8zENgl012XXrn2/
9Pv9+/eudpLt+/fu36vzepztJO/mZ+O8uuwfz8+qYZmfZcm7sjjPx1lyXpTJ
7ry+zKZ1PkzrvJgm6XREHxVl/g/+BB/aK6ZVXab5NBsl+9OrvCymE3ipStZ2
9/bX799Lz87KDKaFv3C6fjU/00nu3xsVw2k6gYWMyvS87udZfd5Ph1l/BuuB
Z2f8XH/jKa55WIzy6cVOMoeHnuEH+azcSepyXtVbGxvPN7ZgsjJLd5LjbDgv
8/rm/r3rovxwURbzGc//PfwJQyTf4Ef3733IbuCB0U5yMK2zcprV/Ze4DJgp
rXeSqh7dvwermORVBZutb2awzoP9k1c4dVUDNE7TcTGFD2+y6v69Wb6T/K0u
hr2kKsq6zM4r+O1mgr/8Hd9ICXI79+/BKSTwk0+rneTVIHkHg0zO8mnOHzM4
XpXpdJhVwzT+uigBAPtlPqyqYsofZZM0H+8k5/rKYKav/HsmDw6GxSSceG8A
UJpezMd21r38YpRNgi9ovhflfJqNk/fT/CorKwKsmXhY0fP/ng4nA3g8nOfN
IDnJx8UwtfO8ScthEXxO0xwdHO8nuy+CwSf46KCmR/+9zAdVhrCcFuUEMPAq
28GHD3bf7sIOqwzO4wKQs76cVNEXcNJ9OsDw48ssHWVlf5aWsC5AAX7t6NXe
1ubmc/398dONx/r7k+1HT93vT55vuN+fPnLPP916vOV+f77l3n22+fSR+337
uXvm2aNHT8zvbvxnTza33e/P/fjPN/z48Lt75vmmf/c5XAj/+7b5/Kn/fXv7
GcOj/3JANw9h0h+eFWU/m8Jly0b9YVbW8TMlPFOkM7mj4bd4dxHWdOcA6SY7
dE+n58GB4Ya2Hj83i90yv283h8xGl8WwX1Q0uRCF5lOTH+u6X4+rxhMRcQFy
VHyAzdXw72l/WtT5uZC4WzYjK6Cn3vzl5KR/uHt8cNw/RlqQlqP+FZ91kgh1
XaHvE/2e3km+wysEtPPxYGOFnx6lNT68tbH5VD6p0/IiAxJ0WdeznYcPgUpW
gyKt8qpfzLIp3rKHuFn+1xWM9LCo6I8+/gHLHFzWE7nBju4k9NPXX+SC7g6S
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

-->

</rfc>
