<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.24 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-pubsub-profile-05" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.43.0 -->
  <front>
    <title abbrev="pubsub-profile">Pub-Sub Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-pubsub-profile-05"/>
    <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>
    <date year="2022" month="December" day="16"/>
    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This specification defines an application profile for authentication and authorization for Publishers and Subscribers in a constrained pub-sub scenario, using the ACE framework. This profile relies on transport layer or application layer security to authorize the pub-sub clients to the broker. Moreover, it describes the use of application layer security to protect the content of the pub-sub client message exchange through the broker. The profile mainly focuses on the pub-sub scenarios using
the Constrained Application Protocol (CoAP) <xref target="I-D.ietf-core-coap-pubsub" format="default"/>.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/ace-wg/pubsub-profile">https://github.com/ace-wg/pubsub-profile</eref>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>In the publish-subscribe (pub-sub) scenario, devices with limited reachability communicate via a broker, which enables store-and-forward messaging between the devices. This document defines a way to authorize pub-sub clients using the ACE framework <xref target="I-D.ietf-ace-oauth-authz" format="default"/> to obtain the keys for protecting the content
of their pub-sub messages when communicating through the broker. The pub-sub communication using the Constrained Application Protocol (CoAP) <xref target="RFC7252" format="default"/> is specified in <xref target="I-D.ietf-core-coap-pubsub" format="default"/>.This document gives detailed specifications for CoAP pub-sub, and describes how it can be adapted for MQTT <xref target="MQTT-OASIS-Standard-v5" format="default"/>; similar adaptations can extend to other transport protocols as well.</t>
      <section anchor="terminology" numbered="true" toc="default">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 <xref target="RFC2119" format="default"/>.</t>
        <t>Readers are expected to be familiar with:</t>
        <ul spacing="normal">
          <li>The terms and concepts
described in <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. In particular, analogously to <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, 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" format="default"/>.</li>
          <li>The terms and concept related to the message formats and processing specified in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>, for
provisioning and renewing keying material in group communication
scenarios. and terminology for entities such as the Key Distribution Center (KDC) and Dispatcher in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>.</li>
          <li>The terms and concepts of pub-sub group communication, as described in <xref target="I-D.ietf-core-coap-pubsub" format="default"/>.</li>
        </ul>
      </section>
    </section>
    <section anchor="overview" numbered="true" toc="default">
      <name>Application Profile Overview</name>
      <t>The objective of this document is to specify how to request, distribute and renew keying material and configuration parameters to protect message exchanges for pub-sub communication, using <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>, which expands from the ACE framework (<xref target="I-D.ietf-ace-oauth-authz" format="default"/>). The pub-sub communication protocol can be based on CoAP, as described in <xref target="I-D.ietf-core-coap-pubsub" format="default"/>, MQTT <xref target="MQTT-OASIS-Standard-v5" format="default"/> , or other transport. This document focuses on CoAP and expands on the transport profiles <xref target="I-D.ietf-ace-dtls-authorize" format="default"/> and <xref target="I-D.ietf-ace-oscore-profile" format="default"/>.</t>
      <t>The architecture of the scenario is shown in <xref target="archi" format="default"/>. Publisher or Subscriber Clients is referred to as Client in short. A Client can act both as a publisher and a subscriber, publishing to some topics, and subscribing to others. However, for the simplicity of presentation, this profile describes Publisher and Subscriber clients separately.
The Broker acts as the ACE RS, and also corresponds to the Dispatcher in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>).Both Publishers and Subscribers use the same pub-sub communication protocol and the same transport profile of ACE in their interaction with the broker. All clients need to use CoAP when communicating to the KDC.</t>
      <figure anchor="archi">
        <name>Architecture for Pub-Sub with Authorization Server and Key Distribution Center</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
             +----------------+   +----------------+
             |                |   |      Key       |
             | Authorization  |   |  Distribution  |
             |    Server      |   |     Center     |
             |      (AS)      |   |     (KDC)      |
             +----------------+   +----------------+
                      ^                  ^
                      |                  |
     +---------(A)----+                  |
     |   +--------------------(B)--------+
     v   v
+------------+             +------------+
|            |             |            |
| Pub-Sub    | <-- (C)---> |   Broker   |
| Client     |             |            |
|            |             |            |
+------------+             +------------+
]]></artwork>
      </figure>
      <t>This profile expects the establishment of a secure connection between a Client and Broker, using an ACE transport profile such as DTLS <xref target="I-D.ietf-ace-dtls-authorize" format="default"/> or OSCORE <xref target="I-D.ietf-ace-oscore-profile" format="default"/> (A and C). Once the client establishes a secure association with KDC with the help of AS, it can request to join the security groups of its pub-sub topics (A and B), and  can communicate securely with the other group members, using the keying material provided by the KDC. (C) corresponds to the exchange between the Client and  the Broker, where the Client sends its access token to the Broker and establishes a secure connection with the Broker. Depending on the Information received in (A), this can be for example DTLS handshake, or other protocols. Depending on the application, there may not be the need for this set up phase: for example, if OSCORE is used directly. Note that, in line with what's defined in the ACE transport profile used, the access token includes the scope (i.e. pubsub topics on the Broker) the Publisher is allowed to publish to. After the previous phases have taken place, the pub-sub communication can commence. The operations of publishing and subscribing are defined in <xref target="I-D.ietf-core-coap-pubsub" format="default"/>.</t>
      <t>It must be noted that Clients maintain two different security associations. On the one hand, the Publisher and the Subscriber clients have a security association with the Broker, so that, as the ACE RS, it can verify that the Clients are authorized (Security Association 1). On the other hand, the Publisher has a security association with the Subscriber, to protect the publication content (Security Association 2) while sending it through the broker. The Security Association 1 is set up using AS and a transport profile of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, the Security Association 2 is set up using AS, KDC and <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>. Note that, given that the publication content is protected, the Broker MAY accept unauthorised Subscribers. In this case, the Subscriber client can skip setting up Security Association 1 with the Broker and connect to it as an anonymous client to subscribe to topics of interest at the Broker.</t>
      <figure anchor="associations">
        <name>Security Associations between Publisher, Broker, Subscriber pairs.</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
+------------+             +------------+              +------------+
|            |             |            |              |            |
| Publisher  |             |   Broker   |              | Subscriber |
|            |             |            |              |            |
|            |             |            |              |            |
+------------+             +------------+              +------------+
      :   :                       : :                       : :
      :   '------ Security -------' '-----------------------' :
      :         Association 1                                 :
      '------------------------------- Security --------------'
                                     Association 2
]]></artwork>
      </figure>
    </section>
    <section anchor="kdc-interface" numbered="true" toc="default">
      <name>Interfacing the KDC</name>
      <t>This profile builds on the mechanisms defined in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/> to enable the following for pub-sub communication:</t>
      <ol spacing="normal" type="1">
        <li>Authorizing a Client to join a topic's security group(s), and providing it with the group keying material to communicate with other group members.</li>
        <li>Allowing a Client to retrieve group keying material for the Publisher Client to publish protected publications to the Broker, and for the Subscriber Client to read protected publications.</li>
        <li>Allowing a group member to retrieve authentication credentials of other group members and to provide and updated authentication credential.</li>
        <li>Allowing a group member to leave the group.</li>
        <li>Evicting a group member from the group.</li>
        <li>Renewing and redistributing the group keying (rekeying) material due to membership change in the group.</li>
      </ol>
      <t>To this end, the Clients uses the following KDC resources:</t>
      <ul spacing="normal">
        <li>'/ace-group':  A Client can access this resource in order to retrieve a set of
group names, each corresponding to one of the specified group identifiers.</li>
        <li>'/ace-group/GROUPNAME': Corresponds to the resource associated
with group GROUPNAME, and contains its symmetric group keying material.</li>
        <li>'/ace-group/GROUPNAME/creds':  Contains the authentication credentials of all the Publisher members of the group with name GROUPNAME.</li>
        <li>'/ace-group/GROUPNAME/num': Contains the current version number for the symmetric group keying material of the group with name GROUPNAME.</li>
        <li>'/ace-group/GROUPNAME/nodes/NODENAME': Contains the group keying material and the individual keying material for that group member NODENAME in GROUPNAME. All Clients can send a DELETE request to leave the group with name GROUPNAME. GET operation is supported for all Clients. PUT is not supported.</li>
        <li>'/ace-group/GROUPNAME/nodes/NODENAME/cred':  A Publisher Client can POST to this resource to upload at the KDC a new authentication credential to use in the group GROUPNAME. The KDC returns 4.01 (Unauthorized) error response for requests from the Subscriber Clients.</li>
        <li>'ace-group/GROUPNAME/kdc-cred': MUST be hosted if a group re-keying mechanism is used. Contains the authentication credential of the KDC for the group with name GROUPNAME.</li>
      </ul>
      <t>The following resource may be optionally hosted: '/ace-group/GROUPNAME/policies' (KDC doesn't host policies for GROUPNAME).
ToDo:  REQUIRED of the application profiles of this specification to register a Resource Type for the root url-path (REQ10)</t>
      <t>Note that the use of these resources follows what is defined in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/> applies, and only additions or
modifications to that specification are defined in this document.</t>
    </section>
    <section anchor="authorisation" numbered="true" toc="default">
      <name>Joining a pub-sub security group (A-B)</name>
      <t>Figure <xref target="message-flow" format="default"/> provides a high level overview of the message flow for a node joining a group. This message flow is expanded in the subsequent sections.</t>
      <figure anchor="message-flow">
        <name>Authorisation Flow</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
   Client                                       Broker   AS      KDC
      | [--Resource Request (CoAP/MQTT or other)-->] |       |       |
      |                                           |       |       |
      | [<----AS Information (CoAP/MQTT or other)--] |       |       |
      |                                                   |       |
      | ----- Authorisation Request (CoAP/HTTP or other)---->|       |
      |                                                   |       |
      | <------Authorisation Response (CoAP/HTTP or other) --|       |
      |                                                           |
      |----------------------Token Post (CoAP)------------------->|
      |                                                           |
      |------------------- Joining Request (CoAP) --------------->|
      |                                                           |
      |------------------ Joining Response (CoAP) --------------->|

]]></artwork>
      </figure>
      <t>Since <xref target="I-D.ietf-ace-oauth-authz" format="default"/> recommends the use of CoAP and CBOR, this document describes the exchanges assuming CoAP and CBOR are used. However, using HTTP instead of CoAP is possible, using the corresponding parameters and methods. Analogously, JSON <xref target="RFC8259" format="default"/> can be used instead of CBOR, using the conversion method specified in Sections 6.1 and 6.2 of <xref target="RFC8949" format="default"/>. In case JSON is used, the Content Format or Media Type of the message has to be changed accordingly. Exact definition of these exchanges are considered out of scope for this document.</t>
      <section anchor="AS-discovery" numbered="true" toc="default">
        <name>AS Discovery (Optional)</name>
        <t>Complementary to what is defined in <xref target="I-D.ietf-ace-oauth-authz" format="default"/> (Section 5.1) for AS discovery, the Broker MAY send the address of the AS to the Client in the 'AS' parameter in the AS Information as a response to an Unauthorized Resource Request (Section 5.2).  An example using CBOR diagnostic notation and CoAP is given below:</t>
        <figure anchor="AS-info-ex">
          <name>AS Information example</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
    4.01 Unauthorized
    Content-Format: application/ace-groupcomm+cbor
    {"AS": "coaps://as.example.com/token"}
]]></artwork>
        </figure>
      </section>
      <section anchor="auth-request" numbered="true" toc="default">
        <name>Authorisation Request/Response for the KDC and the Broker</name>
        <t>After retrieving the AS address, the Client sends two Authorisation Requests to the AS for the KDC and the Broker, respectively. Note that the AS authorises what topics a Client is allowed to Publish or Subscribe to the Broker, which means authorising which application and security groups a Client can join. This is because being able to publish or subscribe to a topic at the Broker requires authorisation to join an application group. To secure the message contents, the client needs to request to be part of the security group(s) for the selected application groups.</t>
        <t>Communications between the Client and the AS MUST be secured,
   according to what is defined by the used transport profile of ACE. Both Authorisation Requests include the following fields
(Section 3.1 of <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>):</t>
        <ul spacing="normal">
          <li>'scope', specifying the name of the groups, that the Client requests to access. This parameter is a CBOR byte string that encodes a CBOR array, whose format MUST follow the data model AIF-PUBSUB-GROUPCOMM defined below.</li>
          <li>'audience', an identifier, corresponding to either the KDC or the Broker.</li>
        </ul>
        <t>Other additional parameters can be included if necessary, as defined in <xref target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
        <t>For the Broker, the scope represents pub-sub topics i.e., the application group, and for the KDC, the scope represents the security group. If there is a one-to-one mapping between the application group and the security group, the client uses the same scope for both requests. If there is not a one-to-one mapping, the correct policies regarding both sets of scopes MUST be available to the AS.</t>
        <t>The client MUST ask for the correct scopes in its Authorization Requests. How the client discovers the (application group, security group) association is out of scope of this document.
ToDo: Should the Client ask with the topic names, and KDC does the security group mapping?
Look into something like OSCORE group discovery draft-tiloca-core-oscore-discovery-12?</t>
        <t>The 'scope' parameter used for the KDC follows the AIF format. Based on the generic AIF model</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
      AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></artwork>
        <t>the value of the CBOR byte string used as 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. In particular, the object identifier ("Toid") is a CBOR text string, specifying the topic name for the scope entry. The permission set ("Tperm") is a CBOR unsigned integer with value, specifying the role(s) that the Client wishes to take in the group. The set of numbers representing the role 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.</t>
        <figure anchor="scope-aif">
          <name>Pub-Sub scope using the AIF format</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
  AIF-PUBSUB-GROUPCOMM = AIF-Generic<pubsub-topic pubsub-permissions>
   pubsub-topic = tstr

   pubsub-permissions = uint . bits pubsub-roles

   pubsub-roles = &(
    Pub: 0,
    Sub: 1
   )

   scope_entry = [pubsub-topic, pubsub-permissions]
]]></artwork>
        </figure>
      </section>
      <section anchor="authorisation-response" numbered="true" toc="default">
        <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="I-D.ietf-ace-oauth-authz" format="default"/> and Section 3.2 of <xref target="I-D.ietf-ace-key-groupcomm" format="default"/> with the following additions:</t>
        <ul spacing="normal">
          <li>The AS MUST include the 'scope' parameter, when the value included in the Access Token differs from the one specified by the joining node in the Authorization Request.  In such a case, the second element of each scope entry MUST be present, and specifies the set
of roles that the joining node is actually authorized to take in for that scope entry, encoded as specified in <xref target="auth-request" format="default"/>.</li>
        </ul>
        <t>The 'profile' claim is set to "coap_pubsub_app" as defined in <xref target="iana-coap-profile" format="default"/>.</t>
        <t>On receiving the Authorisation Response, the Client needs to manage which token to use for which audience, i.e., the KDC or the Broker.</t>
      </section>
      <section anchor="token-post" numbered="true" toc="default">
        <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" format="default"/>). This includes sending a POST request to the authz-info endpoint,  and if using the DTLS transport profile of ACE, the Client MAY provide the access token to the KDC during the secure session establishment.</t>
        <t>When using the authz-info endpoint, a Subscriber Client MAY ask in addition for the format of the public keys in the group, used for source authentication, as well as any other group parameters. In this case, the message MUST have Content-Format set to "application/ace+cbor" defined in Section 8.16 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>.
The message payload MUST be formatted as a CBOR map, which MUST include the access token and MAY include the 'sign_info' parameter, specifying the CBOR simple value "null" (0xf6) to request information about the signature algorithm, signature algorithm parameters, signature key parameters and about the exact format of authentication credentials used in the groups that the Client has been authorized to join. Alternatively, the joining node MAY retrieve this information by other means as described in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>.</t>
        <t>The KDC verifies the token to check of the Client is authorized to access the topic with the requested role. After successful verification, the Client is authorized to receive the group keying material from the KDC and join the group. The KDC replies to the Client with a 2.01 (Created) response, using Content-Format "application/ace+cbor". The payload of the 2.01 response is a CBOR map.</t>
        <t>For Publisher Clients, i.e., the Clients whose scope of the access token includes the "Pub" role, the KDC MUST include the parameter 'kdcchallenge' in the CBOR map, specifying a dedicated challenge N_S generated by the KDC. For the N_S value, it is RECOMMENDED to use a 8-byte long random nonce. Later when joining the group, the Publisher Client MUST send its own public key to the KDC and use the 'kdcchallenge' as part of proving possession of the corresponding private key (see <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>).</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.</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" format="default"/>.</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" format="default"/>.</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" format="default"/>.</li>
          <li>'cred_fmt' takes value from the "Label" column of the "COSE
Header Parameters" registry <xref target="IANA.cose_header-parameters" format="default"/>. 
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). Current acceptable formats of authentication credentials are CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs) <xref target="RFC8392" format="default"/>, X.509 certificates <xref target="RFC7925" format="default"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert" format="default"/>. Future formats would be acceptable to use as long as they comply with the criteria defined above.</li>
        </ul>
        <t>ToDo: Need to specify N_S generation if we are allowing DTLS profile token transfer.</t>
      </section>
      <section anchor="join-request" numbered="true" toc="default">
        <name>Join Request</name>
        <t>In the next step, a node MUST have established a secure communication association
established before attempting to join a group.  Possible ways to provide a secure communication association are described in the DTLS transport profile <xref target="I-D.ietf-ace-dtls-authorize" format="default"/> and OSCORE transport profile <xref target="I-D.ietf-ace-oscore-profile" format="default"/> of ACE.</t>
        <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" format="default"/>. 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" format="default"/>:</t>
        <ul spacing="normal">
          <li>'scope' parameter set to the specific group that the Client is attempting to join, i.e., the group name, and the roles it wishes to have in the group. This value corresponds to one scope entry, as defined in <xref target="auth-request" format="default"/>.</li>
          <li>'get_creds' parameter MAY be present if the Client needs to retrieve the public keys of the other members. The Subscriber Clients MUST have access to the public keys of all the Publisher Clients. This may be achieved by requesting the public keys of all the Publisher Clients. In this case, parameter MUST be set to "null".</li>
          <li>'client_cred' parameter MUST be included if the Client is a Publisher and contains the Client's public key formatted according to the encoding of the public keys used in the group. For a Subscriber-only Client,  the Joining Request MUST NOT contain the 'client_cred' parameter.</li>
          <li>'cnonce', includes a dedicated nonce N_C generated by the Client, if 'client_cred' is present.  It is RECOMMENDED to use a 8-byte long random nonce.</li>
          <li>'client_cred_verify', if 'client_cred' is present. This parameter contains the proof-of-possession evidence. Client signs the scope, concatenated with N_S and concatenated with N_C using the private key corresponding to the public key in the 'client_cred' paramater. N_S is 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" format="default"/>).</li>
          <li>OPTIONALLY, the 'creds_repo', if the format of the Client's authentication credential in the 'client_cred' parameter is a certificate.</li>
          <li>'control_uri', using the default url-path is /ace-group/GROUPNAME/node</li>
        </ul>
        <t>An example of the Join Request for a CoAP Publisher using CoAP and CBOR is specified in <xref target="fig-req-pub-kdc" format="default"/>, where SIG is a signature computed using the private key associated to the public key and the algorithm in 'client_cred'.</t>
        <figure anchor="fig-req-pub-kdc">
          <name>Joining Request payload for a Publisher</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
{
  "scope" : [["Broker1/Temp", 1]],
  "client_cred" : ToDo:Fix,
  "cnonce" : h'd36b581d1eef9c7c,
  "client_cred_verify" : SIG
    }
}
]]></artwork>
        </figure>
        <t>An example of the payload of a Join Request for a Subscriber using CoAP and CBOR is specified in <xref target="fig-req-sub-kdc" format="default"/>.</t>
        <figure anchor="fig-req-sub-kdc">
          <name>Joining Request payload for a Subscriber</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
{
  "scope" : [["Broker1/Temp", 2]],
  "get_creds" : "null"
}
]]></artwork>
        </figure>
      </section>
      <section anchor="join-response" numbered="true" toc="default">
        <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" format="default"/>, and may return a success or error response.</t>
        <t>If 'client_cred' field is present, the KDC verifies signature in the 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>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 assigned a sub-resource /ace-group/GROUPNAME/nodes/NODENAME. NODENAME is associated to the access token and secure session of the Client. For Publishers, their public key is also associated with tuple containing NODENAME, GROUPNAME and access token. The public key of the Publisher is stored.</t>
        <t>Then, 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" format="default"/>:</t>
        <ul spacing="normal">
          <li>'gkty', the key type for the 'key' parameter.</li>
          <li>
            <t>'key', the keying material for group communication. This is a "COSE_Key" object (defined in <xref target="RFC9052" format="default"/> <xref target="RFC9053" format="default"/>, containing:
            </t>
            <ul spacing="normal">
              <li>'kty' with value 4 (symmetric)</li>
              <li>'alg' with value defined by the AS (Content Encryption Algorithm)</li>
              <li>'Base IV' with value defined by the AS</li>
              <li>'k' with value the symmetric key value</li>
              <li>OPTIONALLY, 'kid' with an identifier for the key value 
ToDo: Check the format of the 'key' value (REQ17)
ToDo: Additionally, documents specifying the key format MUST register it in the "ACE Groupcomm Key Types" registry including its name, type and application profile to be used with.</li>
            </ul>
          </li>
          <li>'num' containing the version number for the 'key'. The initial version number is set to 1.</li>
          <li>'exp', the value of the expiration time of the 'key'</li>
          <li>'creds', MUST be present, if the 'get_creds' parameter was present. Otherwise, it MUST NOT be present. If the joining node has asked for the authentication credentials of all the group members, i.e., 'get_creds' had value the CBOR simple value "null" (0xf6) in the Join Request, then the Group Manager 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.</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.</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.</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.</li>
        </ul>
        <t>An example of the Join Response for a CoAP Publisher using CoAP and CBOR (corresponding to Join Request in <xref target="fig-req-pub-kdc" format="default"/>) is shown in.  <xref target="fig-resp-pub-kdc" format="default"/>.</t>
        <figure anchor="fig-resp-pub-kdc">
          <name>Join Response payload for a Publisher</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
{
  "gkty" : "COSE_Key",
  "key" : {1: 4, 2: h'1234', 3: 12, 5: h'1f389d14d17dc7',
          -1: h'02e2cc3a9b92855220f255fff1c615bc'},
  "num" : 1
}
]]></artwork>
        </figure>
        <t>An example of the payload of a Join Response for a Subscriber using CoAP and CBOR (corresponding to the request in <xref target="fig-req-sub-kdc" format="default"/>) is shown in <xref target="fig-resp-sub-kdc" format="default"/>.</t>
        <figure anchor="fig-resp-sub-kdc">
          <name>Joining Response payload for a Subscriber</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
{
  "gkty" : "COSE_Key"
  "key" : {1: 4, 2: h'1234', 3: 12, 5: h'1f389d14d17dc7',
          -1: h'02e2cc3a9b92855220f255fff1c615bc'},
  "creds" : [{ToDo:Fix Example}]
  "peer_roles": [1],
  "peer_identifiers": ["1"]
}
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="protected_communication" numbered="true" toc="default">
      <name>PubSub Protected Communication (C)</name>
      <figure anchor="pubsub-3">
        <name>Secure communication between Publisher and Subscriber</name>
        <artwork align="center" name="" type="" alt=""><![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" format="default"/><xref target="RFC9053" format="default"/>) 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" format="default"/>. The subscription MAY be unprotected.
The (F) message is the response from the Broker, where the publication is protected with COSE by the Publisher.</t>
      <figure anchor="flow">
        <name>Example of protected communication for CoAP</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
  Publisher                Broker               Subscriber
      | --- PUT /topic ----> |                       |
      |  protected with COSE |                       |
      |                      | <--- GET /topic ----- |
      |                      |      Observe:0        |
      |                      | ---- response ------> |
      |                      |  protected with COSE  |
]]></artwork>
      </figure>
      <section anchor="oscon" numbered="true" toc="default">
        <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" format="default"/>). Specifically, the COSE Key is used to create a COSE_Encrypt0 object with algorithm specified by the KDC. The Publisher uses the private key corresponding to the public key sent to the KDC in exchange B  to countersign the COSE Object as specified in <xref target="RFC9052" format="default"/> <xref target="RFC9053" format="default"/>. The payload is replaced by the COSE object before the publication is sent to the Broker.
ToDo: Check RFC9338 for counter signatures</t>
        <t>The Subscriber uses the 'kid' in the 'countersignature' field in the COSE object to retrieve the right public key to verify the countersignature. It then uses the symmetric key received from KDC to verify and decrypt the publication received in the payload from the Broker (in the case of CoAP the publication is received by the CoAP Notification).</t>
        <t>The COSE object is constructed in the following way:</t>
        <ul spacing="normal">
          <li>The protected Headers (as described in <xref target="RFC9052" format="default"/> <xref target="RFC9053" format="default"/>) MUST contain the kid parameter if it was provided in the Joining Response, with value the kid of the symmetric COSE Key received and MUST contain the content encryption algorithm.</li>
          <li>
            <t>The unprotected Headers MUST contain the Partial IV, with value a sequence number that is incremented for every message sent, and the counter signature that includes:
            </t>
            <ul spacing="normal">
              <li>the algorithm (same value as in the asymmetric COSE Key received in (B)) in the protected header;</li>
              <li>the kid (same value as the kid of the asymmetric COSE Key received in (B)) in the unprotected header;</li>
              <li>the signature computed as specified in <xref target="RFC9052" format="default"/> <xref target="RFC9053" format="default"/>.</li>
            </ul>
          </li>
          <li>The ciphertext, computed over the plaintext that MUST contain the message payload.</li>
        </ul>
        <t>The 'external_aad' is an empty string.</t>
        <t>An example is given in <xref target="fig-cose-ex" format="default"/>:</t>
        <figure anchor="fig-cose-ex">
          <name>Example of COSE Object sent in the payload of a PUBLISH operation</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
16(
  [
    / protected / h'a2010c04421234' / {
        \ alg \ 1:12, \ AES-CCM-64-64-128 \
        \ kid \ 4: h'1234'
      } / ,
    / unprotected / {
      / iv / 5:h'89f52f65a1c580',
      / countersign / 7:[
        / protected / h'a10126' / {
          \ alg \ 1:-7
        } / ,
        / unprotected / {
          / kid / 4:h'11'
        },
        / signature / SIG / 64 bytes signature /
      ]
    },
    / ciphertext / h'8df0a3b62fccff37aa313c8020e971f8aC8d'
  ]
)
]]></artwork>
        </figure>
        <t>The encryption and decryption operations are described in  <xref target="RFC9052" format="default"/> <xref target="RFC9053" format="default"/>.</t>
      </section>
    </section>
    <section anchor="other-group-operations" numbered="true" toc="default">
      <name>Other Group Operations</name>
      <section anchor="querying-for-group-information" numbered="true" toc="default">
        <name>Querying for Group Information</name>
        <ul spacing="normal">
          <li>'/ace-group': All Clients use FETCH requests to retrieve a set of group names associated with their group identifiers. ToDo: Encoding of gid</li>
          <li>'/ace-group/GROUPNAME':  All Clients can use GET requests to retrieve the symmetric group keying material of the group with the name GROUPNAME. The value of the GROUPNAME URI path and the group name in the access token scope ('gname') MUST coincide.</li>
          <li>'/ace-group/GROUPNAME/creds': KDC acts as a repository of authentication credentials for Publisher Clients. The Subscriber Clients of the group use GET/FETCH requests to retrieve the authentication credentials of all or subset of the group members of the group with name GROUPNAME.</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" numbered="true" toc="default">
        <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 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" numbered="true" toc="default">
        <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" format="default"/>.</t>
      </section>
      <section anchor="rekeying-a-group" numbered="true" toc="default">
        <name>Rekeying a Group</name>
        <t>KDC MUST trigger a group rekeying as described in Section 6 
of <xref target="I-D.ietf-ace-key-groupcomm" format="default"/> 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>Default rekeying scheme is Point-to-point (Section 6.1 of <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>), where KDC individually targets ach 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 MUST also include the authentication credentials that those Clients use in the group, together with the roles and node identifier that the corresponding Client has in the group.  This information is specified by means of the parameters 'creds',
'peer_roles' and 'peer_identifiers', like done in the Join Response message.</t>
        <t>ToDo: Any additional rekeying mechanisms?
The pub-sub model would make sense. In this case, the KDC acts
as publisher (KDC authentication credential??) and publishes each rekeying message to a specific "rekeying topic", which is associated with the group and is hosted at a broker server.  Following their group joining, the group members subscribe to the rekeying topic at the broker, thus receiving the group rekeying messages as they are published by the KDC.</t>
      </section>
    </section>
    <section anchor="mqtt-pubsub" numbered="true" toc="default">
      <name>Considerations for Supporting 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.</t>
      <t>In MQTT, topics are organised as a tree, and in the <xref target="I-D.ietf-ace-mqtt-tls-profile" format="default"/>, 'scope' captures permissions for not a single topic but a topic filter. Therefore, topic names (i.e., group names) may include wildcards spanning several levels of the topic tree. Hence, it is important to distinguish application groups and security groups defined in <xref target="I-D.ietf-core-groupcomm-bis" format="default"/>.</t>
      <t>Also differently for MQTT, the Client sends a token request to AS for the requested topics (application groups) using AIF-MQTT data model for representing the requested scopes is described in Section 3 of the <xref target="I-D.ietf-ace-mqtt-tls-profile" format="default"/>. In the authorisation response, the 'profile' claim is set to "mqtt_pubsub_app" as defined in <xref target="iana-mqtt-profile" format="default"/>.
Both Publisher and Subscriber Clients authorise to the Broker with their respective tokens (described in <xref target="I-D.ietf-ace-mqtt-tls-profile" format="default"/>).</t>
      <t>A Publisher Client sends PUBLISH messages for a given topic and protects the payload with the corresponding key for the associated security group. RS validates the PUBLISH message by verifying its topic in the stored token.</t>
      <t>A Subscriber Client may send SUBSCRIBE messages with one or multiple topic filters. A topic filter may correspond to multiple topics. RS validates the SUBSCRIBE message by checking the stored token for the Client.</t>
      <t>Authorisation Server (AS) Discovery is defined in Section 2.2.6.1 of <xref target="I-D.ietf-ace-mqtt-tls-profile" format="default"/> for MQTT v5 clients (and not supported for MQTT v3 clients).</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>All the security considerations in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/> 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 be able 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-02" format="default"/> 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-02" format="default"/> MAY be used to allow an Authorization Server to notify the KDC about revoked Access Tokens.</t>
      <t>The Broker is only trusted with verifying that the Publisher is authorized to publish, but is not trusted with the publications itself, which it cannot read nor modify. In this setting, caching of publications on the Broker is still allowed.</t>
      <t>TODO: expand on security and privacy considerations</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="iana-profile" numbered="true" toc="default">
        <name>ACE Groupcomm Profile Registry</name>
        <t>The following registrations are done for the "ACE Groupcomm Profile" Registry following the procedure specified in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>.</t>
        <t>Note to RFC Editor: Please replace all occurrences of "[[This document]]"
with the RFC number of this specification and delete this paragraph.</t>
        <section anchor="iana-coap-profile" numbered="true" toc="default">
          <name>CoAP Profile Registration</name>
          <t>Name: coap_pubsub_app</t>
          <t>Description: Profile for delegating client authentication and authorization for publishers and subscribers in a CoAP pub-sub setting scenario in a constrained environment.</t>
          <t>CBOR Key: TBD</t>
          <t>Reference: [[This document]]</t>
        </section>
        <section anchor="iana-mqtt-profile" numbered="true" toc="default">
          <name>MQTT Profile Registration</name>
          <t>Name: mqtt_pubsub_app</t>
          <t>Description: Profile for delegating client authentication and authorization for publishers and subscribers in a MQTT pub-sub setting scenario in a constrained environment.</t>
          <t>CBOR Key: TBD</t>
          <t>Reference: [[This document]]</t>
        </section>
      </section>
      <section anchor="iana-ace-groupcomm-key" numbered="true" toc="default">
        <name>ACE Groupcomm Key Registry</name>
        <t>The following registrations are done for the ACE Groupcomm Key Registry following the procedure specified in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>.</t>
        <t>Note to RFC Editor: Please replace all occurrences of "[[This document]]"
with the RFC number of this specification and delete this paragraph.</t>
        <t>Name: COSE_Key</t>
        <t>Key Type Value: TBD</t>
        <t>Profile: coap_pubsub_app, mqtt_pubsub_app</t>
        <t>Description: COSE_Key object</t>
        <t>References: <xref target="RFC9052" format="default"/> <xref target="RFC9053" format="default"/>, [[This document]]</t>
      </section>
      <section anchor="aif" numbered="true" toc="default">
        <name>AIF</name>
        <t>For the media-types application/aif+cbor and application/aif+json defined in Section 5.1 of <xref target="RFC9237" format="default"/>, 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" format="default"/> within the "MIME Media Type Sub-Parameter" registry group.</t>
        <t>For Toid:
Name: 
Description/Specification:
Reference: [[This document]]</t>
        <t>For Tperm:
Name: 
Description/Specification: 
Reference: [[This document]]</t>
      </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" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </reference>
        <reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <seriesInfo name="DOI" value="10.17487/RFC6749"/>
            <seriesInfo name="RFC" value="6749"/>
            <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>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7252"/>
            <seriesInfo name="RFC" value="7252"/>
            <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>
        </reference>
        <reference anchor="RFC7925" target="https://www.rfc-editor.org/info/rfc7925">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <seriesInfo name="DOI" value="10.17487/RFC7925"/>
            <seriesInfo name="RFC" value="7925"/>
            <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>
        </reference>
        <reference anchor="RFC8392" target="https://www.rfc-editor.org/info/rfc8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8392"/>
            <seriesInfo name="RFC" value="8392"/>
            <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>
        </reference>
        <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="STD" value="94"/>
            <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>
        </reference>
        <reference anchor="RFC9052" target="https://www.rfc-editor.org/info/rfc9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <seriesInfo name="DOI" value="10.17487/RFC9052"/>
            <seriesInfo name="RFC" value="9052"/>
            <seriesInfo name="STD" value="96"/>
            <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>
        </reference>
        <reference anchor="RFC9053" target="https://www.rfc-editor.org/info/rfc9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <seriesInfo name="DOI" value="10.17487/RFC9053"/>
            <seriesInfo name="RFC" value="9053"/>
            <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>
        </reference>
        <reference anchor="RFC9237" target="https://www.rfc-editor.org/info/rfc9237">
          <front>
            <title>An Authorization Information Format (AIF) for Authentication and Authorization for Constrained Environments (ACE)</title>
            <seriesInfo name="DOI" value="10.17487/RFC9237"/>
            <seriesInfo name="RFC" value="9237"/>
            <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>
        </reference>
        <reference anchor="I-D.draft-ietf-rats-uccs-01" target="https://www.ietf.org/archive/id/draft-ietf-rats-uccs-01.txt">
          <front>
            <title>A CBOR Tag for Unprotected CWT Claims Sets</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-rats-uccs-01"/>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Nancy Cam-Winget" initials="N." surname="Cam-Winget">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="12" month="July" year="2021"/>
            <abstract>
              <t>CBOR Web Token (CWT, RFC 8392) Claims Sets sometimes do not need the protection afforded by wrapping them into COSE, as is required for a true CWT. This specification defines a CBOR tag for such unprotected CWT Claims Sets (UCCS) and discusses conditions for its proper use.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert" target="https://www.ietf.org/archive/id/draft-ietf-cose-cbor-encoded-cert-04.txt">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-04"/>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="10" month="July" year="2022"/>
            <abstract>
              <t>This document specifies a CBOR encoding of X.509 certificates. The resulting certificates are called C509 Certificates. The CBOR encoding supports a large subset of RFC 5280 and all certificates compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA eUICC, and CA/Browser Forum Baseline Requirements profiles. When used to re-encode DER encoded X.509 certificates, the CBOR encoding can in many cases reduce the size of RFC 7925 profiled certificates with over 50%. The CBOR encoded structure can alternatively be signed directly ("natively signed"), which does not require re- encoding for the signature to be verified. The document also specifies C509 COSE headers, a C509 TLS certificate type, and a C509 file format.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-oauth-authz" target="https://www.ietf.org/archive/id/draft-ietf-ace-oauth-authz-46.txt">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oauth-authz-46"/>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Erik Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="Samuel Erdtman" initials="S." surname="Erdtman">
              <organization>Spotify AB</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>Arm Ltd.</organization>
            </author>
            <date day="8" month="November" year="2021"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-core-coap-pubsub" target="https://www.ietf.org/archive/id/draft-ietf-core-coap-pubsub-11.txt">
          <front>
            <title>Publish-Subscribe Broker for the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-pubsub-11"/>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>SmartThings</organization>
            </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Jaime Jimenez" initials="J." surname="Jimenez">
              <organization>Ericsson</organization>
            </author>
            <date day="7" month="November" year="2022"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), and related extensions are intended to support machine-to-machine communication in systems where one or more nodes are resource constrained, in particular for low power wireless sensor networks. This document defines a publish- subscribe Broker for CoAP that extends the capabilities of CoAP for supporting nodes with long breaks in connectivity and/or up-time.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm" target="https://www.ietf.org/archive/id/draft-ietf-ace-key-groupcomm-16.txt">
          <front>
            <title>Key Provisioning for Group Communication using ACE</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-16"/>
            <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>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis" target="https://www.ietf.org/archive/id/draft-ietf-core-groupcomm-bis-07.txt">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-07"/>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Chonggang Wang" initials="C." surname="Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <abstract>
              <t>This document specifies the use of the Constrained Application Protocol (CoAP) for group communication, including the use of UDP/IP multicast as the default underlying data transport. Both unsecured and secured CoAP group communication are specified. Security is achieved by use of the Group Object Security for Constrained RESTful Environments (Group OSCORE) protocol. The target application area of this specification is any group communication use cases that involve resource-constrained devices or networks that support CoAP. This document replaces RFC 7390, while it updates RFC 7252 and RFC 7641.</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <seriesInfo name="DOI" value="10.17487/RFC8259"/>
            <seriesInfo name="RFC" value="8259"/>
            <seriesInfo name="STD" value="90"/>
            <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>
        </reference>
        <reference anchor="I-D.ietf-ace-actors" target="https://www.ietf.org/archive/id/draft-ietf-ace-actors-07.txt">
          <front>
            <title>An architecture for authorization in constrained environments</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-actors-07"/>
            <author fullname="Stefanie Gerdes" initials="S." surname="Gerdes">
              <organization>Universitaet Bremen TZI</organization>
            </author>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>RISE SICS</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universitaet Bremen TZI</organization>
            </author>
            <date day="22" month="October" year="2018"/>
            <abstract>
              <t>Constrained-node networks are networks where some nodes have severe constraints on code size, state memory, processing capabilities, user interface, power and communication bandwidth (RFC 7228). This document provides terminology, and identifies the elements that an architecture needs to address, providing a problem statement, for authentication and authorization in these networks.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-dtls-authorize" target="https://www.ietf.org/archive/id/draft-ietf-ace-dtls-authorize-18.txt">
          <front>
            <title>Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-dtls-authorize-18"/>
            <author fullname="Stefanie Gerdes" initials="S." surname="Gerdes">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Olaf Bergmann" initials="O." surname="Bergmann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <date day="4" month="June" year="2021"/>
            <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>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-profile" target="https://www.ietf.org/archive/id/draft-ietf-ace-oscore-profile-19.txt">
          <front>
            <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-profile-19"/>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Martin Gunnarsson" initials="M." surname="Gunnarsson">
              <organization>RISE</organization>
            </author>
            <date day="6" month="May" year="2021"/>
            <abstract>
              <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-mqtt-tls-profile" target="https://www.ietf.org/archive/id/draft-ietf-ace-mqtt-tls-profile-17.txt">
          <front>
            <title>Message Queuing Telemetry Transport (MQTT)-TLS profile of Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-mqtt-tls-profile-17"/>
            <author fullname="Cigdem Sengul" initials="C." surname="Sengul">
              <organization>Brunel University</organization>
            </author>
            <author fullname="Anthony Kirby" initials="A." surname="Kirby">
              <organization>Oxbotica</organization>
            </author>
            <date day="23" month="March" year="2022"/>
            <abstract>
              <t>This document specifies a profile for the ACE (Authentication and Authorization for Constrained Environments) framework to enable authorization in a Message Queuing Telemetry Transport (MQTT)-based publish-subscribe messaging system. Proof-of-possession keys, bound to OAuth2.0 access tokens, are used to authenticate and authorize MQTT Clients. The protocol relies on TLS for confidentiality and MQTT server (Broker) authentication.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.draft-ietf-ace-revoked-token-notification-02" target="https://www.ietf.org/archive/id/draft-ietf-ace-revoked-token-notification-02.txt">
          <front>
            <title>Notification of Revoked Access Tokens in the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-revoked-token-notification-02"/>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Ludwig Seitz" initials="L." surname="Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Sebastian Echeverria" initials="S." surname="Echeverria">
              <organization>CMU SEI</organization>
            </author>
            <author fullname="Grace Lewis" initials="G." surname="Lewis">
              <organization>CMU SEI</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <abstract>
              <t>This document specifies a method of the Authentication and Authorization for Constrained Environments (ACE) framework, which allows an Authorization Server to notify Clients and Resource Servers (i.e., registered devices) about revoked Access Tokens. The method allows Clients and Resource Servers to access a Token Revocation List on the Authorization Server, with the possible additional use of resource observation for the Constrained Application Protocol (CoAP). Resulting (unsolicited) notifications of revoked Access Tokens complement alternative approaches such as token introspection, while not requiring additional endpoints on Clients and Resource Servers.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="MQTT-OASIS-Standard-v5" target="http://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html">
          <front>
            <title>OASIS Standard MQTT Version 5.0</title>
            <author initials="A." surname="Banks">
              <organization/>
            </author>
            <author initials="E." surname="Briggs">
              <organization/>
            </author>
            <author initials="K." surname="Borgendale">
              <organization/>
            </author>
            <author initials="R." surname="Gupta">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="requirements-on-application-profiles" numbered="true" toc="default">
      <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" format="default"/>.</t>
      <ul spacing="normal">
        <li>REQ1: Specify the format and encoding of 'scope'. : TODO.</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" format="default"/>.</li>
        <li>REQ3: If used, specify the acceptable values for 'sign_alg': TODO</li>
        <li>REQ4: If used, specify the acceptable values for 'sign_parameters': TODO</li>
        <li>REQ5: If used, specify the acceptable values for 'sign_key_parameters' : TODO</li>
        <li>REQ6: Specify the acceptable formats for authentication
credentials and, if used, the acceptable values for 'cred_fmt': TODO</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: TODO</li>
        <li>REQ8: Define whether the KDC has an authentication credential and if this has to be provided through the 'kdc_cred' parameter : TODO</li>
        <li>REQ9: Specify if any part of the KDC interface as defined in <xref target="I-D.ietf-ace-key-groupcomm" format="default"/> is not supported by the KDC: TODO</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 : TODO</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.</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: ToDo.</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: ToDo</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): TODO</li>
        <li>REQ16: Define the initial value of the 'num' parameter: 1</li>
        <li>REQ17: Specify the format of the 'key' parameter: ToDo</li>
        <li>REQ18: Specify the acceptable values of the 'gkty' parameter: ToDo</li>
        <li>REQ19: Specify and register the application profile identifier: coap_pubsub_app</li>
        <li>REQ20: If used, specify the format and content of 'group_policies' and its entries.  Specify the policies default values: N/A</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</li>
        <li>REQ22: Specify the communication protocol the members of the group must use.</li>
        <li>REQ23: Specify the security protocol the group members must use to protect their communication. This must provide encryption, integrity and replay protection.</li>
        <li>REQ24: Specify how the communication is secured between Client and KDC.  Optionally, specify transport profile of ACE [RFC9200] to use between Client and KDC.</li>
        <li>REQ25: Specify the format of the identifiers of group members.</li>
        <li>REQ26: Specify policies at the KDC to handle ids that are not
included in 'get_creds'.</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.</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.</li>
        <li>REQ29: Categorize newly defined parameters according to the same criteria of Section 8 of <xref target="I-D.ietf-ace-key-groupcomm" format="default"/>.</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" format="default"/>, and under which
circumstances.</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: N/A</li>
        <li>OPT2: Optionally, specify the additional parameters used in the
exchange of Token Transfer Request and Response : N/A</li>
        <li>OPT3: Optionally, specify the negotiation of parameter values for signature algorithm and signature keys, if 'sign_info' is not used: N/A</li>
        <li>OPT4: Optionally, specify possible or required payload formats for specific error cases.: not defined</li>
        <li>OPT5: Optionally, specify additional identifiers of error types, as values of the 'error' field in an error response from the KDC: not defined.</li>
        <li>OPT6: Optionally, specify the encoding of 'creds_repo' if the
default is not used.: N/A</li>
        <li>OPT7: Optionally, specify the functionalities implemented at the 'control_uri' resource hosted at the Client, including message exchange encoding and other details</li>
        <li>OPT8: Optionally, specify the behavior of the handler in case of failure to retrieve an authentication credential for the specific node:</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:</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</li>
        <li>OPT11: Optionally, specify policies that instruct Clients to
retain messages and for how long, if they are unsuccessfully
decrypted</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</li>
        <li>OPT13: Optionally, specify how the identifier of a group member's authentication credential is included in requests sent to other group members</li>
        <li>OPT14: Optionally, specify additional information to include in rekeying messages for the "Point-to-Point" group rekeying scheme:</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" format="default"/>:</li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments" toc="default">
      <name>Acknowledgments</name>
      <t>The author wishes to thank Ari Keraenen, John Mattsson, Ludwig Seitz, Goeran Selander, Jim Schaad and Marco Tiloca for the useful discussion and reviews that helped shape this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ZXvEAAA=

-->

</rfc>
