<?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.8 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc tocdepth="2"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ace-key-groupcomm-08" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" tocDepth="2" version="3">
  <!-- xml2rfc v2v3 conversion 2.46.0 -->
  <front>
    <title abbrev="Key Provisioning for Group Communication">Key Provisioning for Group Communication using ACE</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-08"/>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <date year="2020" month="July" day="13"/>
    <workgroup>ACE Working Group</workgroup>
    <abstract>
      <t>This document defines message formats and procedures for requesting and distributing group keying material using the ACE framework, to protect communications between group members.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/ace-wg/ace-key-groupcomm"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>This document expands the ACE framework <xref target="I-D.ietf-ace-oauth-authz" format="default"/> to define the message exchanges used to request, distribute and renew the keying material in a group communication scenario, e.g. based on multicast <xref target="I-D.ietf-core-groupcomm-bis" format="default"/> or on publishing-subscribing <xref target="I-D.ietf-core-coap-pubsub" format="default"/>.
The ACE framework is based on CBOR <xref target="RFC7049" format="default"/>, so CBOR is the format used in this specification. However, using JSON <xref target="RFC8259" format="default"/> instead of CBOR is possible, using the conversion method specified in Sections 4.1 and 4.2 of <xref target="RFC7049" format="default"/>.</t>
      <t>Profiles that use group communication can build on this document, by defining a number of details such as the exact group communication protocol and security protocols used. The specific list of details a profile needs to define is shown in <xref target="req" format="default"/>.</t>
      <t>If the application requires backward and forward security, new keying material is generated and distributed to the group upon membership changes. A key management scheme performs the actual distribution of the new keying material to the group. In particular, the key management scheme rekeys the current group members when a new node joins the group, and the remaining group members when a node leaves the group. Rekeying mechanisms can be based on <xref target="RFC2093" format="default"/>, <xref target="RFC2094" format="default"/> and <xref target="RFC2627" format="default"/>.</t>
      <section anchor="terminology" numbered="true" toc="default">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here.</t>
        <t>Readers are expected to be familiar with the terms and concepts described in  <xref target="I-D.ietf-ace-oauth-authz" format="default"/><xref target="I-D.ietf-cose-rfc8152bis-struct" format="default"/><xref target="I-D.ietf-cose-rfc8152bis-algs" format="default"/>, such as Authorization Server (AS) and Resource Server (RS).</t>
        <t>This document additionally uses the following terminology:</t>
        <ul spacing="normal">
          <li>Transport profile, to indicate a profile of ACE as per Section 5.6.4.3 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. A transport profile specifies the communication protocol and communication security protocol between an ACE Client and Resource Server, as well as proof-of-possession methods, if it supports proof-of-possession access tokens, etc. Tranport profiles of ACE include, for instance, <xref target="I-D.ietf-ace-oscore-profile" format="default"/>, <xref target="I-D.ietf-ace-dtls-authorize" format="default"/> and <xref target="I-D.ietf-ace-mqtt-tls-profile" format="default"/>.</li>
          <li>Application profile, that defines how applications enforce and use supporting security services they require. These services may include, for instance, provisioning, revocation and (re-)distribution of keying material. An application profile may define specific procedures and message formats.</li>
        </ul>
      </section>
    </section>
    <section anchor="overview" numbered="true" toc="default">
      <name>Overview</name>
      <t>The full procedure can be separated in two phases: the first follows the ACE framework, between Client, AS and KDC. The second part is the key distribution between Client and KDC. After the two phases the Client is able to participate in the group communication, via a Dispatcher entity.</t>
      <figure anchor="fig-roles">
        <name>Key Distribution Participants</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
+------------+                  +-----------+
|     AS     |                  |    KDC    |
|            |        .-------->|           |
+------------+       /          +-----------+
      ^             /
      |            /
      v           /                           +-----------+
+------------+   /      +------------+        |+-----------+
|   Client   |<-'       | Dispatcher |        ||+-----------+
|            |<-------->|            |<------->||   Group   |
+------------+          +------------+         +|  members  |
                                                +-----------+
]]></artwork>
      </figure>
      <!-- Peter 30-07: Figure 1 is not referenced in the text. I suggest a slightly different figure where dispatcher and KDC are endpoints of the RS, and for multicast the communication is directly between Client and group members without passing through the RS.

Marco: I am not sure the change is consistent, since the KDC is an AS in pub-sub, i.e. not an RS or part of an RS. Also, in group OSCORE the KDC is the RS, not part of it.

Marco: We have extended the definition of Dispatcher, clarifying the two main cases involving either a Broker (ACE RS) or a bus (multicast delivery). Does this help?
-->

<!-- Peter 18-11: According to text both Dispatcher and KDC can be RS, but only Dispatcher has (RS) added in the figure 1.

FP: Where is the text about Dispatcher being RS in the text? -->

<t>The following participants (see <xref target="fig-roles" format="default"/>) take part in the authorization and key distribution.</t>
      <ul spacing="normal">
        <li>Client (C): node that wants to join the group communication. It can request write and/or read rights.</li>
        <li>Authorization Server (AS): same as AS in the ACE Framework; it enforces access policies, and knows if a node is allowed to join a given group with write and/or read rights.</li>
        <li>Key Distribution Center (KDC): maintains the keying material to protect group communications, and provides it to Clients authorized to join a given group. During the first part of the exchange (<xref target="sec-auth" format="default"/>), it takes the role of the RS in the ACE Framework. During the second part (<xref target="key-distr" format="default"/>), which is not based on the ACE Framework, it distributes the keying material. In addition, it provides the latest keying material to group members when requested or, if required by the application, when membership changes.</li>
      </ul>
      <!-- Peter 18-11: Page 4, bullet 3: remove last phrase "If required.... Changes.". It does not add anything, does it?
FP: modified text to shorten.
  -->

<ul spacing="normal">
        <li>Dispatcher: entity through which the Clients communicate with the group and which distributes messages to the group members. Examples of dispatchers are: the Broker node in a pub-sub setting; a relayer node for group communication that delivers group messages as multiple unicast messages to all group members; an implicit entity as in a multicast communication setting, where messages are transmitted to a multicast IP address and delivered on the transport channel.</li>
      </ul>
      <!-- Marco 22-02: A KDC can be responsible for more groups, while every group is associated to only one KDC.
FP: Proposal: let's add this sentence later. There is some considerations to be done about using a "cluster of KDC", but I don't want to overcomplicate v-00. Security considerations?
-->

<t>This document specifies a mechanism for:</t>
      <ul spacing="normal">
        <li>Authorizing a new node to join the group (<xref target="sec-auth" format="default"/>), and providing it with the group keying material to communicate with the other group members (<xref target="key-distr" format="default"/>).</li>
        <li>Allowing a group member to leave the group (<xref target="sec-node-removal" format="default"/>).</li>
        <li>Evicting a group member from the group (<xref target="sec-node-removal" format="default"/>).</li>
        <li>Allowing a group member to retrieve keying material (<xref target="update-keys" format="default"/> and <xref target="new-keys" format="default"/>).</li>
        <li>Renewing and re-distributing the group keying material (rekeying) upon a membership change in the group (<xref target="ssec-group-leaving" format="default"/> and <xref target="sec-node-removal" format="default"/>).</li>
      </ul>
      <t><xref target="fig-flow" format="default"/> provides a high level overview of the message flow for a node joining a group communication setting, which can be expanded as follows.</t>
      <ol spacing="normal" type="1">
        <li>The joining node requests an Access Token from the AS, in order to access a specific group-membership resource on the KDC and hence join the associated group. This exchange between Client and AS MUST be secured, as specified by the transport profile of ACE used between Client and KDC. The joining node will start or continue using a secure communication association with the KDC, according to the response from the AS.</li>
        <li>The joining node transfers authentication and authorization information to the KDC, by posting the obtained Access Token to the /authz-info endpoint at the KDC. This exchange, and all further communications between the Client and the KDC, MUST occur over the secure channel established as a result of the transport profile of ACE used between Client and KDC. After that, a joining node MUST have a secure communication association established with the KDC, before starting to join a group under that KDC. Possible ways to provide a secure communication association are DTLS <xref target="RFC6347" format="default"/> and OSCORE <xref target="RFC8613" format="default"/>.</li>
        <li>The joining node starts the joining process to become a member of the group, by accessing the related group-membership resource at the KDC.
At the end of the joining process, the joining node has received from the KDC the parameters and keying material to securely communicate with the other members of the group, and the KDC has stored the association between the authorization information from the access token and the secure session with the client.</li>
        <li>The joining node and the KDC maintain the secure association, to support possible future communications. These especially include key management operations, such as retrieval of updated keying material or participation to a group rekeying process.</li>
        <li>The joining node can communicate securely with the other group members, using the keying material provided in step 3.</li>
      </ol>
      <figure anchor="fig-flow">
        <name>Message Flow Upon New Node's Joining</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
            C                           AS  KDC                Group
            |                           |    |                 Member
          / |                           |    |                     |
          | |   Authorization Request   |    |                     |
 Defined  | |-------------------------->|    |                     |
 in the   | |                           |    |                     |
   ACE    | |   Authorization Response  |    |                     |
framework | |<--------------------------|    |                     |
          | |                                |                     |
          \ |---------- Token Post --------->|                     |
            |                                |                     |
            |------- Joining Request ------->|                     |
            |                                |                     |
            |<------ Joining Response -------|-- Group Rekeying -->|
            |                                |                     |
            |                                     Dispatcher       |
            |                                         |            |
            |<===== Secure group communication =======|===========>|
            |                                         |            |
]]></artwork>
      </figure>
    </section>
    <section anchor="sec-auth" numbered="true" toc="default">
      <name>Authorization to Join a Group</name>
      <t>This section describes in detail the format of messages exchanged by the participants when a node requests access to a given group. This exchange is based on ACE <xref target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
      <t>As defined in <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, the Client requests from the AS an authorization to join the group through the KDC (see <xref target="ssec-authorization-request" format="default"/>). If the request is approved and authorization is granted, the AS provides the Client with a proof-of-possession access token and parameters to securely communicate with the KDC (see <xref target="ssec-authorization-response" format="default"/>).</t>
      <t>Communications between the Client and the AS MUST be secured, as defined by the transport profile of ACE used. The Content-Format used in the message is the one indicated by the used transport profile of ACE. For example, this can be application/ace+cbor for the first two messages and application/cwt for the third message, which are defined in the ACE framework. The transport profile of ACE also defines a number of details such as the communication and security protocols used with the KDC (see Appendix C of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>).</t>
      <t><xref target="fig-group-member-registration" format="default"/> gives an overview of the exchange described above.</t>
      <figure anchor="fig-group-member-registration">
        <name>Message Flow of Join Authorization</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                            AS  KDC
   |                                               |   |
   |---- Authorization Request: POST /token ------>|   |
   |                                               |   |
   |<--- Authorization Response: 2.01 (Created) ---|   |
   |                                               |   |
   |----- POST Token: POST /authz-info --------------->|
   |                                                   |
]]></artwork>
      </figure>
      <!-- Peter 30-07: It would be nice if here the use of DTLS (or not) and the content format is specified: application/cbor or application/Cose+cbor

[MT] This should be out of scope, as actually per the specific ACE profile in use.
-->

<section anchor="ssec-authorization-request" numbered="true" toc="default">
        <name>Authorization Request</name>
        <t>The Authorization Request sent from the Client to the AS is defined in Section 5.6.1 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> and MAY contain the following parameters, which, if included, MUST have the corresponding values:</t>
        <ul spacing="normal">
          <li>
            <t>'scope', containing the identifier of the specific group(s), or topic(s) in the case of pub-sub, that the Client wishes to access, and optionally the role(s) that the Client wishes to take.  </t>
            <t>
This value is a CBOR byte string, encoding a CBOR array of one or more  entries.  </t>
            <t>
By default, each entry is encoded as specified by <xref target="I-D.bormann-core-ace-aif" format="default"/>. It is up to the application profiles to define and register Toid and Tperm to fit the use case. The object identifier Toid corresponds to the group name, while the permission set Tperm indicates the roles that the client wishes to take in the group.  </t>
            <t>
Otherwise, each scope entry can be defined as a CBOR array, which contains:  </t>
            <ul spacing="normal">
              <li>As first element, the identifier of the specific group or topic.</li>
              <li>Optionally, as second element, the role (or CBOR array of roles) that the Client wishes to take in the group. This element is optional since roles may have been pre-assigned to the Client, as associated to its verifiable identity credentials. Alternatively, the application may have defined a single, well-known role for the target resource(s) and audience(s).</li>
            </ul>
            <t>
In each entry, the encoding of the group or topic identifier (REQ1 in <xref target="req" format="default"/>) and of the role identifiers (REQ2) is application specific, and part of the requirements for the application profile.  </t>
            <t>
In particular, the application profile may specify CBOR values to use for abbreviating role identifiers (OPT7).  </t>
            <t>
An example of CDDL definition <xref target="RFC8610" format="default"/> of scope using the format above, with group name and role identifiers encoded as text strings is given in <xref target="cddl-ex" format="default"/>.</t>
          </li>
          <li>'audience', with an identifier of a KDC.</li>
          <li>'req_cnf', as defined in Section 3.1 of <xref target="I-D.ietf-ace-oauth-params" format="default"/>, optionally containing the public key or a reference to the public key of the Client, if it wishes to communicate that to the AS.</li>
        </ul>
        <!--
Peter 30-07: Question: is this a certificate identifier, or the public key extracted from the certificate, or a hash?????

Marco: It is just as per ACE. See Sections 3.2 and 3.4 of draft-ietf-ace-cwt-proof-of-possession-03
-->

<t>Other additional parameters as defined in <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, can be included if necessary.</t>
        <!--
Marco 27-02: "scope" should include a list of identifiers. One can ask authorization for joining multiple groups in a single Authorization Request, so getting a single Access Token.

Jim 13-07: Section 3.1 - Can I get authorization for multiple items at a single time?

FP: Is this something we really want to cover? I think this could open up to a number of comments and questions (how do you renew keying material for just one of these res, for example). Let's think a bit more about this.
-->

<!-- Jim 13-07: Section 3.1 - Does it make sense to allow for multiple audiences to be on a single KDC?

Marco: In principle yes, if you consider a logical audience as the GM/Broker at a single physical KDC.

Should we discuss this in the draft?
-->

<t>As in <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, these parameters are included in the payload, which is formatted as a CBOR map. The Content-Format "application/ace+cbor" defined in Section 8.14 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> is used.</t>
        <figure anchor="cddl-ex">
          <name>CDLL definition of scope, using as example group name encoded as tstr and role as tstr</name>
          <artwork type="CDDL" align="center" name="" alt=""><![CDATA[
gname = tstr

role = tstr

scope_entry = [ gname , ? ( role / [ 2*role ] ) ]

scope = << [ + scope_entry ] >>
]]></artwork>
        </figure>
      </section>
      <section anchor="ssec-authorization-response" numbered="true" toc="default">
        <name>Authorization Response</name>
        <t>The Authorization Response sent from the AS to the Client is defined in Section 5.6.2 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> and MUST contain the following parameters:</t>
        <ul spacing="normal">
          <li>'access_token', containing the proof-of-possession access token.</li>
          <li>'cnf' if symmetric keys are used, not present if asymmetric keys are used. This parameter is defined in Section 3.2 of <xref target="I-D.ietf-ace-oauth-params" format="default"/> and contains the symmetric proof-of-possession key that the Client is supposed to use with the KDC.</li>
          <li>'rs_cnf' if asymmetric keys are used, not present if symmetric keys are used. This parameter is defined in Section 3.2 of <xref target="I-D.ietf-ace-oauth-params" format="default"/> and contains information about the public key of the KDC.</li>
          <li>'expires_in', contains the lifetime in seconds of the access token. This parameter MAY be omitted if the application defines how the expiration time is communicated to the Client via other means, or if it establishes a default value.</li>
        </ul>
        <t>Additionally, the Authorization Response MAY contain the following parameters, which, if included, MUST have the corresponding values:</t>
        <ul spacing="normal">
          <li>'scope' containing the scope the AS grants access to. This parameter has the same format and encoding of 'scope' in the Authorization Request, defined in <xref target="ssec-authorization-request" format="default"/>.</li>
        </ul>
        <t>Other additional parameters as defined in <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, if necessary.</t>
        <t>The proof-of-possession access token (in 'access_token' above) MUST contain the following parameters:</t>
        <ul spacing="normal">
          <li>a confirmation claim (see for example 'cnf' defined in Section 3.1 of <xref target="RFC8747" format="default"/> for CWT);</li>
          <li>an expiration time claim (see for example 'exp' defined in Section 3.1.4 of <xref target="RFC8392" format="default"/> for CWT);</li>
          <li>a scope claim (see for example 'scope' registered in Section 8.13 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/> for CWT). This claim has the same encoding as 'scope' parameter above. Additionally, this claim has the same value of the 'scope' parameter if the parameter is present in the message, or it takes the value of 'scope' in the Authorization Request otherwise.</li>
        </ul>
        <t>The access token MAY additionally contain other claims that the transport profile of ACE requires, or other optional parameters.</t>
        <t>As in <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, these parameters are included in the payload, which is formatted as a CBOR map. The Content-Format "application/ace+cbor" is used.</t>
        <t>When receiving an Authorization Request from a Client that was previously authorized, and for which the AS still owns a valid non-expired access token, the AS MAY reply with that token. Note that it is up to application profiles of ACE to make sure that re-posting the same token does not cause re-use of keying material between nodes (for example, that is done with the use of random nonces in <xref target="I-D.ietf-ace-oscore-profile" format="default"/>).</t>
      </section>
      <section anchor="token-post" numbered="true" toc="default">
        <name>Token Post</name>
        <t>The Client sends a CoAP POST request including the access token to the KDC, as specified in Section 5.8.1 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. If the specific transport profile of ACE defines it, the Client MAY use a different endpoint than /authz-info at the KDC to post the access token to.</t>
        <t>Optionally, the Client might want to request information concerning the public keys in the group, as well as concerning the algorithm and related parameters for computing signatures in the group. In such a case, the joining node MAY ask for that information to the KDC in this same request. To this end, it sends the CoAP POST request to the /authz-info endpoint using the Content-Format "application/ace+cbor".</t>
        <t>The payload of the message MUST be formatted as a CBOR map including the access token.</t>
        <t>Additionally, the CoAP POST request MAY contain the following parameter, which, if included, MUST have the corresponding values:</t>
        <ul spacing="normal">
          <li>'sign_info' defined in <xref target="sign-info" format="default"/>, encoding the CBOR simple value Null to require information about the signature algorithm, signature algorithm parameters, signature key parameters and on the exact encoding of public keys used in the group.</li>
        </ul>
        <t>Alternatively, the joining node may retrieve this information by other means.</t>
        <t>After successful verification, the Client is authorized to receive the group keying material from the KDC and join the group. In particular, the KDC replies to the Client with a 2.01 (Created) response, using Content-Format "application/ace+cbor" defined in Section 8.14 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
        <t>The payload of the 2.01 response is a CBOR map. If the access token contains a role that requires the Client to send its own public key to the KDC when joining the group, the CBOR map MUST include the parameter 'kdcchallenge' defined in Section <xref target="kdcchallenge" format="default"/>, specifying a dedicated challenge N_S generated by the KDC. The Client uses this challenge to prove possession of its own private key (see the 'client_cred_verify' parameter in <xref target="key-distr" format="default"/>). Note that the payload format of the response deviates from the one defined in the ACE framework (see Section 5.8.1 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>), which has no payload.</t>
        <t>The KDC MUST store the 'kdcchallenge' value associated to the Client at least until it receives a join request from it (see <xref target="ssec-key-distribution-exchange" format="default"/>), to be able to verify the proof of possession. The same challenge MAY be reused several times by the Client, to generate new proof of possessions, e.g. in case of update of the public key, or to join a different group with a different key, so it is RECOMMENDED that the KDC keeps storing the 'kdcchallenge' after the first join is processed as well. If the KDC has already discarded the 'kdcchallenge', that will trigger an error response with a newly generated 'kdcchallenge' that the client can use to restart the join process, as specified in <xref target="ssec-key-distribution-exchange" format="default"/>.</t>
        <t>If 'sign_info' is included in the request, the KDC MAY include the 'sign_info' parameter defined in <xref target="sign-info" format="default"/>, with the same encoding. Note that the field 'id' takes the value of the group name for which the 'sign_info_entry' applies to.</t>
        <t>Note that the CBOR map specified as payload of the 2.01 (Created) response may include further parameters, e.g. according to the signalled transport profile of ACE.</t>
        <t>Applications of this specification MAY define alternative specific negotiations of parameter values for signature algorithm and signature keys, if 'sign_info' is not used (OPT2).</t>
        <!--
Note that this step could be merged with the following message from the Client to the KDC, namely Key Distribution Request.
-->

<section anchor="sign-info" numbered="true" toc="default">
          <name>'sign_info' Parameter</name>
          <t>The 'sign_info' parameter is an OPTIONAL parameter of the Token Post response message defined in Section 5.1.2. of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. This parameter contains information and parameters about the signature algorithm and the public keys to be used between the Client and the RS. Its exact content is application specific.</t>
          <t>In this specification and in application profiles building on it, this parameter is used to ask and retrieve from the KDC information about the signature algorithm and related parameters used in the group.</t>
          <t>When used in the request, the 'sign_info' encodes the CBOR simple value Null, to require information and parameters on the signature algorithm and on the public keys used.</t>
          <t>The CDDL notation <xref target="RFC8610" format="default"/> of the 'sign_info' parameter formatted as in the request is given below.</t>
          <artwork type="CDDL" name="" align="left" alt=""><![CDATA[
   sign_info_req = nil
]]></artwork>
          <t>The 'sign_info' parameter of the 2.01 (Created) response is a CBOR array of one or more elements. The number of elements is at most the number of groups the client has been authorized to join. Each element contains information about signing parameters and keys for one or more group or topic and is formatted as follows.</t>
          <ul spacing="normal">
            <li>The first element 'id' is an identifier of the group or an array of identifiers for the groups for which this information applies.</li>
            <li>The second element 'sign_alg' is an integer or a text string if the POST request included the 'sign_info' parameter with value Null, and indicates the signature algorithm used in the group identified by 'gname'. It is REQUIRED of the application profiles to define specific values that this parameter can take (REQ3), selected from the set of signing algorithms of the COSE Algorithms registry <xref target="COSE.Algorithms" format="default"/>.</li>
            <li>The third element 'sign_parameters' is a CBOR array indicating the parameters of the signature algorithm. Its content depends on the value of 'sign_alg'. It is REQUIRED of the application profiles to define the possible values and structure for the elements of this parameter (REQ4).</li>
            <li>The fourth element 'sign_key_parameters' is a CBOR array indicating the parameters of the key used with the signature algorithm. Its content depends on the value of 'sign_alg'. It is REQUIRED of the application profiles to define the possible values and structure for the elements of this parameter (REQ5).</li>
            <li>The fifth element 'pub_key_enc' parameter is either a CBOR integer indicating the encoding of public keys used in the group identified by 'gname', or has value Null indicating that the KDC does not act as repository of public keys for group members. Its acceptable values are taken from the "CWT Confirmation Method" Registry defined in <xref target="RFC8747" format="default"/>. It is REQUIRED of the application profiles to define specific values to use for this parameter (REQ6).</li>
          </ul>
          <t>The CDDL notation <xref target="RFC8610" format="default"/> of the 'sign_info' parameter formatted as in the response is given below, with gname formatted as a bstr (note that gname can be encoded differently, see REQ1).</t>
          <artwork type="CDDL" name="" align="left" alt=""><![CDATA[
   sign_info_res = [ + sign_info_entry ]

   sign_info_entry =
   [
     id : gname / [ + gname ],
     sign_alg : int / tstr / nil,
     sign_parameters : [ any ] / nil,
     sign_key_parameters : [ any ] / nil,
     pub_key_enc = int / nil
   ]

   gname = tstr
]]></artwork>
        </section>
        <section anchor="kdcchallenge" numbered="true" toc="default">
          <name>'kdcchallenge' Parameter</name>
          <t>The 'kdcchallenge' parameter is an OPTIONAL parameter of the Token Post response message defined in Section 5.1.2. of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. This parameter contains a challenge generated by the KDC and provided to the Client. The Client may use this challenge to prove possession of its own private key in the Joining Request (see the 'client_cred_verify' parameter in <xref target="key-distr" format="default"/>).</t>
        </section>
      </section>
    </section>
    <section anchor="key-distr" numbered="true" toc="default">
      <name>Keying Material Provisioning and Group Membership Management</name>
      <t>This section defines the interface available at the KDC. Moreover, this section specifies how the clients can use this interface to join a group, leave a group, retrieve the group policies or the new keying material.</t>
      <t>During the first exchange with the KDC ("Joining") after posting the Token, the Client sends a request to the KDC, specifying the group it wishes to join (see <xref target="ssec-key-distribution-exchange" format="default"/>). Then, the KDC verifies the access token and that the Client is authorized to join that group. If so, it provides the Client with the keying material to securely communicate with the other members of the group. Whenever used, the Content-Format in messages containing a payload is set to application/ace-groupcomm+cbor, as defined in <xref target="content-type" format="default"/>.</t>
      <!-- Jim 13-07: Should one talk about the ability to use OBSERVE as part of
key distribution?

Marco: It was just briefly mentioned before and not really elaborated. Although it would work, it seems not useful to have it together with a proper rekeying scheme where the KDC takes the initiative anyway. This would result in much more network traffic and epoch-synchronization.
-->

<!-- Jim 13-07: Section 4.x - I am having a hard time trying to figure out the difference between a group and a topic.  The text does not always seem to distinguish these well.

Marco: We could just go for "group", as a collection of devices sharing the same keyign material (i.e. a security group). Then a group can be mapped to a topic of common interest for its members, such as in a pub-sub environment.
-->

<t>When the Client is already a group member, the Client can use the interface at the KDC to perform the following actions:</t>
      <ul spacing="normal">
        <li>The Client can get the current keying material, for cases such as expiration, loss or suspected mismatch, due to e.g. reboot or missed group rekeying. This is described in <xref target="update-keys" format="default"/>.</li>
        <li>The Client can retrieve a new individual key, or new input material to derive it. This is described in <xref target="new-keys" format="default"/>.</li>
        <li>The Client can get the public keys of other group members. This is described in <xref target="sec-key-retrieval" format="default"/>.</li>
        <li>The Client can get the group policies. This is described in <xref target="policies" format="default"/>.</li>
        <li>The Client can get the version number of the keying material currently used in the group. This is described in <xref target="key-version" format="default"/>.</li>
        <li>The Client can request to leave the group. This is further discussed in <xref target="ssec-group-leaving" format="default"/>.</li>
      </ul>
      <!--
  Jim 14-06: Discuss that a Key Distribution Request/Response can be performed exactly in the same way also by an already member of the group. Mention the cases when this happens, e.g. believed lost of synchronization with the current group security context, crash and reboot and so on, so forced re-synchronization with the correct current security context.

  TODO: Add a general description on when the following msgs are used:
    - join new nodes
    - member for rekeying (triggered by KDC)
    - member after they forgot (crash)
-->

<!-- Jim 13-07: Section 4.x  - cnf - text does not allow for key identifier

Marco: In Section 4.2, we are indicating the key identifier in the optional 'kid' parameter of the COSE Key.
-->

<!-- Jim 13-07: Section X.X - Define a new cnf method to hold the OSCORE context parameters - should it be a normal COSE_Key or something new just to makes sure that it is different.

Marco: Isn't it ok as we are doing with the COSE Key in Section 4.2? Then it works quite fine in ace-oscoap-joining when considering the particular joining of OSCORE groups.
-->

<t>Upon receiving a request from a Client, the KDC MUST check that it is storing a valid access token from that Client for the group name associated to the endpoint. If that is not the case, i.e. the KDC does not store a valid access token or this is not valid for that Client for the group name, the KDC MUST respond to the Client with a 4.01 (Unauthorized) error message.</t>
      <section anchor="interface-at-the-kdc" numbered="true" toc="default">
        <name>Interface at the KDC</name>
        <t>The KDC is configured with the following resources. Note that the root url-path "ace-group" given here are default names: implementations are not required to use these names, and can define their own instead. The Interface Description (if=) Link Target Attribute value ace.group is registered (<xref target="if-ace-group" format="default"/>) and can be used to describe this interface.</t>
        <ul spacing="normal">
          <li>/ace-group: this resource indicates that this specification is used. If other applications run on a KDC implementing this specification and use this same resource, these applications will collide, and a mechanism will be needed to differentiate the endpoints.</li>
          <li>/ace-group/GROUPNAME: one sub-resource to /ace-group is implemented for each group the KDC manages. These resources are identified by the group names of the groups the KDC manages (in this example, the group name has value "GROUPNAME").  Each resource contains the symmetric group keying material for that group.  These resources support GET and POST method.</li>
          <li>/ace-group/GROUPNAME/pub-key: this resource contains the public keys of all group members. This resource supports GET and FETCH methods.</li>
          <li>/ace-group/GROUPNAME/policies: this resource contains the group policies. This resource supports the GET method.</li>
          <li>/ace-group/GROUPNAME/num:  this resource contains the version number for the symmetric group keying material. This sub-resource supports the GET method.</li>
          <li>/ace-group/GROUPNAME/nodes/NODENAME: one sub-resource to /ace-group/GROUPNAME is implemented for each node in the group the KDC manages. These resources are identified by the node name (in this example, the node name has value "NODENAME"). Each resource contains the group and individual keying material for that node. These resources support GET, PUT and DELETE methods.</li>
          <li>/ace-group/GROUPNAME/nodes/NODENAME/pub-key: one sub-resource to /ace-group/GROUPNAME/nodes/NODENAME is implemented for each node in the group the KDC manages. These resources are identified by the node name (in this example, the node name has value "NODENAME"). Each resource contains the individual public keying material for that node. These resources support the POST method.</li>
        </ul>
        <t>The details for the handlers of each resource are given in the following sections. These endpoints are used to perform the operations introduced in <xref target="key-distr" format="default"/>.</t>
        <section anchor="ace-group" numbered="true" toc="default">
          <name>ace-group</name>
          <t>No handlers are implemented for this resource.</t>
        </section>
        <section anchor="ace-groupgroupname" numbered="true" toc="default">
          <name>ace-group/GROUPNAME</name>
          <t>This resource implements GET and POST handlers.</t>
          <section anchor="gid-post" numbered="true" toc="default">
            <name>POST Handler</name>
            <t>The POST handler adds the public key of the client to the list of the group members' public keys and returns the symmetric group keying material for the group identified by "GROUPNAME". Note that the group joining exchange is done by the client via this operation, as described in <xref target="ssec-key-distribution-exchange" format="default"/>.</t>
            <t>The handler expects a request with payload formatted as a CBOR map which MAY contain the following fields, which, if included, MUST have the corresponding values:</t>
            <ul spacing="normal">
              <li>'scope', with value the specific resource at the KDC that the Client is authorized to access, i.e. group or topic identifier, and role(s). This value is a CBOR byte string encoding one scope entry, as defined in <xref target="ssec-authorization-request" format="default"/>.</li>
              <li>
                <t>'get_pub_keys', if the Client wishes to receive the public keys of the other nodes in the group from the KDC. This parameter may be present if the KDC stores the public keys of the nodes in the group and distributes them to the Client; it is useless to have here if the set of public keys of the members of the group is known in another way, e.g. it was provided by the AS. Note that including this parameter may result in a large message size for the following response, which can be inconvenient for resource-constrained devices. The parameter's value is a non-empty CBOR array containing two CBOR arrays:  </t>
                <ul spacing="normal">
                  <li>The first array contains zero or more roles (or combination of roles) of group members for the group identified by "GROUPNAME". The Client indicates that it wishes to receive the public keys of all nodes having these roles. If empty, it means the client wishes to receive the public keys of all nodes.</li>
                  <li>The second array is empty.</li>
                </ul>
                <t>
The CDDL definition <xref target="RFC8610" format="default"/> of 'get_pub_keys' is given in <xref target="cddl-ex-getpubkeys" format="default"/> using as example encoding: node identifier encoded as byte string, role identifier as text string, and combination of roles encoded as a CBOR array of roles. Note that the array ids is empty for this handler, but is not necessarily empty for the value of "get_pub_keys" received by the handler of FETCH to ace-group/GROUPNAME/pub-key (see <xref target="pubkey-fetch" format="default"/>).</t>
              </li>
            </ul>
            <figure anchor="cddl-ex-getpubkeys">
              <name>CDLL definition of get_pub_keys, using as example node identifier encoded as bstr and role as tstr</name>
              <artwork type="CDDL" align="center" name="" alt=""><![CDATA[
id = bstr

role = tstr

comb_role = [ 2*role ]

get_pub_keys = [ [ *(role / comb_role) ], [ *id ] ]
]]></artwork>
            </figure>
            <ul spacing="normal">
              <li>'client_cred', with value the public key or certificate of the Client, encoded as a CBOR byte string. This field contains the public key of the Client. This field is used if the KDC is managing (collecting from/distributing to the Client) the public keys of the group members, and if the Client's role in the group will require for it to send messages to one or more group members. The default encoding for public keys is COSE Keys. Alternative specific encodings of this parameter MAY be defined in applications of this specification (OPT1 in <xref target="req" format="default"/>).</li>
              <li>'cnonce', with the same encoding as defined for the "cnonce" parameter of Ace, in Section 5.1.2 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, and including a dedicated nonce N_C generated by the Client. This parameter MUST be present if the 'client_cred' parameter is present.</li>
              <li>
                <t>'client_cred_verify', encoded as a CBOR byte string. This parameter MUST be present if the 'client_cred' parameter is present and no public key associated to the client's token can be retrieved for that group. This parameter contains a signature computed by the Client over the scope concatenated with N_S concatenated with N_C, where:
                </t>
                <ul spacing="normal">
                  <li>scope is the byte string specified in the 'scope parameter above'.</li>
                  <li>N_S is the challenge received from the KDC in the 'kdcchallenge' parameter of the 2.01 (Created) response to the token POST request (see <xref target="token-post" format="default"/>).</li>
                  <li>N_C is the nonce generated by the Client and specified in the 'cnonce' parameter above.</li>
                </ul>
                <t>
If the token was not posted (e.g. if it is used directly to validate TLS instead), it is REQUIRED of the specific profile to define how the challenge N_S is generated (REQ17). The Client computes the signature by using its own private key, whose corresponding public key is either directly specified in the 'client_cred' parameter or included in the certificate specified in the 'client_cred' parameter.</t>
              </li>
              <li>'pub_keys_repos', can be present if a certificate is present in the 'client_cred' field, with value the URI of the certificate of the Client. This parameter is encoded as a CBOR text string. Alternative specific encodings of this parameter MAY be defined in applications of this specification (OPT3).</li>
              <li>'control_path', with value a full URI, encoded as a CBOR text string. If 'control_path' is supported by the Client, the Client acts as a CoAP server and hosts a resource at this specific URI. The KDC MAY use this URI to send CoAP requests to the Client (acting as CoAP server in this exchange), for example for individual provisioning of new keying material when performing a group rekeying (see <xref target="update-keys" format="default"/>), or to inform the Client of its removal from the group <xref target="sec-node-removal" format="default"/>. If the KDC does not implement mechanisms using this resource, it can just ignore this parameter. Other additional functionalities of this resource MAY be defined in application profiles of this specifications (OPT9). In particular, this resource is intended for communications concerning exclusively the group or topic specified in the 'scope' parameter.</li>
            </ul>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client. If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message. The KDC MAY respond with an AS Request Creation Hints, as defined in Section 5.1.2 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. Note that in this case, the content format MUST be set to application/ace+cbor.</t>
            <t>If the request is not formatted correctly (i.e. required fields non received or received with incorrect format), the handler MUST respond with a 4.00 (Bad Request) error message. The response MAY contain a CBOR map in the payload with ace+cbor format, e.g. it could send back 'sign_info_res' with 'pub_key_enc' set to Null if the Client sent its own public key and the KDC is not set to store public keys of the group members. If the request contained unknown or non-expected fields present, the handler MUST silently drop them and continue processing. Application profiles MAY define optional or mandatory payload formats for specific error cases (OPT6).</t>
            <t>If the KDC stores the group members' public keys, the handler checks if one is included in the the 'client_cred' field, retrieves it and associates it to the access token received, after verifications succeeded. In particular, the KDC verifies:</t>
            <ul spacing="normal">
              <li>that such public key has an acceptable format for the group identified by "GROUPNAME", i.e. it is encoded as expected and is compatible with the signature algorithm and possible associated parameters. If that cannot be verified, it is RECOMMENDED that the handler stops the process and responds with a 4.00 (Bad Request) error message. Applications profiles MAY define alternatives (OPT5).</li>
              <li>that the signature contained in "client_cred_verify" passes verification. If that cannot be verified, the handler MUST respond with a 4.00 (Bad Request) error message, and if the token was posted (see REQ17) including the 'kdcchallenge' associated to this Client (see <xref target="token-post" format="default"/>) if it can be retrieved, or otherwise newly generated, in a CBOR map in the payload. This error response MUST also have Content-Format "application/ace+cbor".</li>
            </ul>
            <t>If one public key is already associated to the access token and to that group, but the 'client_cred' is populated with a different public key, the handler MUST delete the previous one and replace it with this one, after verifying the points above.</t>
            <t>If no public key is included in the 'client_cred' field, the handler checks if one public key is already associated to the access token received (see <xref target="ssec-key-distribution-exchange" format="default"/> for an example) and to the group identified by "GROUPNAME". If that is not the case, the handler responds with a 4.00 Bad Request error response.</t>
            <t>If the token was posted but the KDC cannot retrieve the 'kdcchallenge' associated to this Client (see <xref target="token-post" format="default"/>), the KDC MUST respond with a 4.00 Bad Request error response, including a newly generated 'kdcchallenge' in a CBOR map in the payload. This error response MUST also have Content-Format "application/ace+cbor".</t>
            <t>If all verifications succeed, the handler:</t>
            <ul spacing="normal">
              <li>Adds the node to the list of current members of the group.</li>
              <li>Assigns a name NODENAME to the node, and creates a sub-resource to /ace-group/GROUPNAME/ at the KDC (e.g. "/ace-group/GROUPNAME/nodes/NODENAME").</li>
              <li>Associates the identifier "NODENAME" with the access token and the secure session for that node.</li>
              <li>
                <t>If the KDC manages public keys for group members:
                </t>
                <ul spacing="normal">
                  <li>Adds the retrieved public key of the node to the list of public keys stored for the group identified by "GROUPNAME"</li>
                  <li>Associates the node's public key with its access token and the group identified by "GROUPNAME", if such association did not already exist.</li>
                </ul>
              </li>
              <li>Returns a 2.01 (Created) message containing the symmetric group keying material, the group policies and all the public keys of the current members of the group, if the KDC manages those and the Client requested them.</li>
            </ul>
            <t>The response message also contains the URI path to the sub-resource created for that node in a Location-Path CoAP option. The payload of the response is formatted as a CBOR map which MUST contain the following fields and values:</t>
            <ul spacing="normal">
              <li>'gkty', identifying the key type of the 'key' parameter. The set of values can be found in the "Key Type" column of the "ACE Groupcomm Key" Registry. Implementations MUST verify that the key type matches the application profile being used, if present, as registered in the "ACE Groupcomm Key" registry.</li>
              <li>'key', containing the keying material for the group communication, or information required to derive it.</li>
              <li>'num', containing the version number of the keying material for the group communication, formatted as an integer. This is a strictly monotonic increasing field. The application profile MUST define the initial version number (REQ19).</li>
            </ul>
            <t>The exact format of the 'key' value MUST be defined in applications of this specification (REQ7), as well as accepted values of 'gkty' by the application (REQ8). Additionally, documents specifying the key format MUST register it in the "ACE Groupcomm Key" registry defined in <xref target="iana-key" format="default"/>, including its name, type and application profile to be used with.</t>
            <figure anchor="gkty">
              <name>Key Type Values</name>
              <artwork align="center" name="" type="" alt=""><![CDATA[
+----------+----------------+---------+-------------------------+
| Name     | Key Type Value | Profile | Description             |
+----------+----------------+---------+-------------------------+
| Reserved | 0              |         | This value is reserved  |
+----------+----------------+---------+-------------------------+
]]></artwork>
            </figure>
            <!-- FP Im confused why do we say this "The response MAY contain which if included MUST..." twice -->

<t>The response SHOULD contain the following parameter:</t>
            <ul spacing="normal">
              <li>'exp', with value the expiration time of the keying material for the group communication, encoded as a CBOR unsigned integer. This field contains a numeric value representing the number of seconds from 1970-01-01T00:00:00Z UTC until the specified UTC date/time, ignoring leap seconds, analogous to what specified for NumericDate in Section 2 of <xref target="RFC7519" format="default"/>. Group members MUST stop using the keying material to protect outgoing messages and retrieve new keying material at the time indicated in this field.</li>
            </ul>
            <t>Optionally, the response MAY contain the following parameters, which, if included, MUST have the corresponding values:</t>
            <ul spacing="normal">
              <li>'ace-groupcomm-profile', with value a CBOR integer that MUST be used to uniquely identify the application profile for group communication. Applications of this specification MUST register an application profile identifier and the related value for this parameter in the "ACE Groupcomm Profile" Registry (REQ12).</li>
              <li>'pub_keys', may only be present if 'get_pub_keys' was present in the request. This parameter is a CBOR byte string, which encodes the public keys of all the group members paired with the respective member identifiers. The default encoding for public keys is COSE Keys, so the default encoding for 'pub_keys' is a CBOR byte string wrapping a COSE_KeySet (see <xref target="I-D.ietf-cose-rfc8152bis-struct" format="default"/>), which contains the public keys of all the members of the group. In particular, each COSE Key in the COSE_KeySet includes the identifier of the corresponding group member as value of its 'kid' key parameter. Alternative specific encodings of this parameter MAY be defined in applications of this specification (OPT1). The specific format of the identifiers of group members MUST be specified in the application profile (REQ9).</li>
              <li>'peer_roles', MUST be present if 'pub_keys' is present. This parameter is a CBOR array of n elements, with n the number of members in the group (and number of public keys included in the 'pub_keys' parameter). The i-th element of the array specifies the role (or CBOR array of roles) that the group member associated to the i-th public key in 'pub_keys' has in the group. In particular, each array element is encoded as the role element of a scope entry, as defined in <xref target="ssec-authorization-request" format="default"/>.</li>
              <li>'group_policies', with value a CBOR map, whose entries specify how the group handles specific management aspects. These include, for instance, approaches to achieve synchronization of sequence numbers among group members. The elements of this field are registered in the "ACE Groupcomm Policy" Registry. This specification defines the three elements "Sequence Number Synchronization Method", "Key Update Check Interval" and "Expiration Delta", which are summarized in <xref target="fig-ACE-Groupcomm-Policies" format="default"/>. Application profiles that build on this document MUST specify the exact content format and default value of included map entries (REQ14).</li>
            </ul>
            <figure anchor="fig-ACE-Groupcomm-Policies">
              <name>ACE Groupcomm Policies</name>
              <artwork align="center" name="" type="" alt=""><![CDATA[
+--------------+-------+----------|--------------------|------------+
|      Name    | CBOR  |   CBOR   |    Description     | Reference  |
|              | label |   type   |                    |            |
|--------------+-------+----------|--------------------|------------|
| Sequence     | TBD1  | tstr/int | Method for a re-   | [[this     |
| Number       |       |          | cipient node to    | document]] |
| Synchroniza- |       |          | synchronize with   |            |
| tion Method  |       |          | sequence numbers   |            |
|              |       |          | of a sender node.  |            |
|              |       |          | Its value is taken |            |
|              |       |          | from the 'Value'   |            |
|              |       |          | column of the      |            |
|              |       |          | Sequence Number    |            |
|              |       |          | Synchronization    |            |
|              |       |          | Method registry    |            |
|              |       |          |                    |            |
| Key Update   | TBD2  |   int    | Polling interval   | [[this     |
| Check        |       |          | in seconds, to     | document]] |
| Interval     |       |          | check for new      |            |
|              |       |          | keying material at |            |
|              |       |          | the KDC            |            |
|              |       |          |                    |            |
| Expiration   | TBD3  |   uint   | Number of seconds  | [[this     |
| Delta        |       |          | from 'exp' until   | document]] |
|              |       |          | the specified UTC  |            |
|              |       |          | date/time after    |            |
|              |       |          | which group members|            |
|              |       |          | MUST stop using the|            |
|              |       |          | keying material to |            |
|              |       |          | verify incoming    |            |
|              |       |          | messages.          |            |
+--------------+-------+----------|--------------------|------------+
]]></artwork>
            </figure>
            <ul spacing="normal">
              <li>'mgt_key_material', encoded as a CBOR byte string and containing the administrative keying material to participate in the group rekeying performed by the KDC. The application profile MUST define if this field is used, and if used then MUST specify the exact format and content which depend on the specific rekeying scheme used in the group. If the usage of 'mgt_key_material' is indicated and its format defined for a specific key management scheme, that format must explicitly indicate the key management scheme itself. If a new rekeying scheme is defined to be used for an existing 'mgt_key_material' in an existing profile, then that profile will have to be updated accordingly, especially with respect to the usage of 'mgt_key_material' related format and content (REQ18).</li>
            </ul>
            <t>Specific application profiles that build on this document MUST specify the communication protocol that members of the group use to communicate with each other (REQ10) and how exactly the keying material is used to protect the group communication (REQ11).</t>
            <t>CBOR labels for these fields are defined in <xref target="params" format="default"/>.</t>
          </section>
          <section anchor="gid-get" numbered="true" toc="default">
            <name>GET Handler</name>
            <t>The GET handler returns the symmetric group keying material for the group identified by "GROUPNAME".</t>
            <t>The handler expects a GET request.</t>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client. If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.  The KDC MAY respond with an AS Request Creation Hints, as defined in Section 5.1.2 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>. Note that in this case, the content format MUST be set to application/ace+cbor.</t>
            <t>Additionally, the handler verifies that the node is a current member of the group. If verification fails, the KDC MUST respond with a 4.00 (Bad Request) error message.</t>
            <t>If verification succeeds, the handler returns a 2.05 (Content) message containing the symmetric group keying material. The payload of the response is formatted as a CBOR map which MUST contain the parameters 'gkty','key' and 'num' specified in <xref target="gid-post" format="default"/>.</t>
            <t>The payload MAY also include the parameters 'ace-groupcomm-profile', 'exp', and 'mgt_key_material' parameters specified in <xref target="gid-post" format="default"/>.</t>
          </section>
        </section>
        <section anchor="ace-groupgroupnamepub-key" numbered="true" toc="default">
          <name>ace-group/GROUPNAME/pub-key</name>
          <t>If the KDC does not maintain public keys for the group, the handler for any request on this resource returns a 4.05 (Method Not Allowed) error message. If it does, the rest of this section applies.</t>
          <t>This resource implements GET and FETCH handlers.</t>
          <section anchor="pubkey-fetch" numbered="true" toc="default">
            <name>FETCH Handler</name>
            <t>The FETCH handler receives identifiers of group members for the group identified by "GROUPNAME" and returns the public keys of such group members.</t>
            <t>The handler expects a request with payload formatted as a CBOR map. The payload of this request is a CBOR Map that MUST contain the following fields:</t>
            <ul spacing="normal">
              <li>
                <t>'get_pub_keys', whose value is encoded as in <xref target="gid-post" format="default"/> with the following modification:  </t>
                <ul spacing="normal">
                  <li>The second array contains zero or more identifiers of group members for the group identified by "GROUPNAME". The Client indicates that it wishes to receive the public keys of all nodes having these identifiers.</li>
                </ul>
              </li>
            </ul>
            <t>The specific format of public keys as well as identifiers, roles and combination of roles of group members MUST be specified by the application profile (OPT1, REQ2, REQ9).</t>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client. If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>If verification succeeds, the handler identifies the public keys of the current group members for which either:</t>
            <ul spacing="normal">
              <li>the role identifier matches with one of those indicated in the request; note that the request can contain a "combination of roles", where the handler select all group members who have all roles included in the combination.</li>
              <li>the identifier matches with one of those indicated in the request.</li>
            </ul>
            <t>Then, the handler returns a 2.05 (Content) message response with payload formatted as a CBOR map, containing only the 'pub_keys' and 'peer_roles' parameters from <xref target="gid-post" format="default"/>. In particular, 'pub_keys' encodes the list of public keys of those group members including the respective member identifiers, while 'peer_roles' encodes their respective role (or CBOR array of roles) in the group. The specific format of public keys as well as of identifiers of group members is specified by the application profile (OPT1, REQ9).</t>
            <t>If the KDC does not store any public key associated with the specified member identifiers, the handler returns a response with payload formatted as a CBOR byte string of zero length.</t>
            <t>The handler MAY enforce one of the following policies, in order to handle possible identifiers that are included in the 'get_pub_keys' parameter of the request but are not associated to any current group member. Such a policy MUST be specified by the application profile (REQ13)</t>
            <ul spacing="normal">
              <li>The KDC silently ignores those identifiers.</li>
              <li>The KDC retains public keys of group members for a given amount of time after their leaving, before discarding them. As long as such public keys are retained, the KDC provides them to a requesting Client.</li>
            </ul>
            <t>Note that this resource handler only verifies that the node is authorized by the AS to access this resource. Nodes that are not members of the group but are authorized to do signature verifications on the group messages may be allowed to access this resource, if the application needs it.</t>
          </section>
          <section anchor="pubkey-get" numbered="true" toc="default">
            <name>GET Handler</name>
            <t>The handler expects a GET request.</t>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client. If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>If verification succeeds, the handler returns a 2.05 (Content) message containing the public keys of all the current group members, for the group identified by "GROUPNAME". The payload of the response is formatted as a CBOR map, containing only the 'pub_keys' and 'peer_roles' parameters from <xref target="gid-post" format="default"/>. In particular, 'pub_keys' encodes the list of public keys of those group members including the respective member identifiers, while 'peer_roles' encodes their respective role (or CBOR array of roles) in the group.</t>
            <t>If the KDC does not store any public key for the group, the handler returns a response with payload formatted as a CBOR byte string of zero length. The specific format of public keys as well as of identifiers of group members is specified by the application profile (OPT1, REQ9).</t>
            <t>Note that this resource handler only verifies that the node is authorized by the AS to access this resource. Nodes that are not members of the group but are authorized to do signature verifications on the group messages may be allowed to access this resource, if the application needs it.</t>
          </section>
        </section>
        <section anchor="ace-groupgroupnamepolicies" numbered="true" toc="default">
          <name>ace-group/GROUPNAME/policies</name>
          <t>This resource implements a GET handler.</t>
          <section anchor="policies-get" numbered="true" toc="default">
            <name>GET Handler</name>
            <t>The handler expects a GET request.</t>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client. If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>Additionally, the handler verifies that the node is a current member of the group. If verification fails, the KDC MUST respond with a 4.00 (Bad Request) error message.</t>
            <t>If verification succeeds, the handler returns a 2.05 (Content) message containing the list of policies for the group identified by "GROUPNAME". The payload of the response is formatted as a CBOR map including only the parameter 'group_policies' defined in <xref target="gid-post" format="default"/> and specifying the current policies in the group. If the KDC does not store any policy, the payload is formatted as a zero-length CBOR byte string.</t>
            <t>The specific format and meaning of group policies MUST be specified in the application profile (REQ14).</t>
          </section>
        </section>
        <section anchor="ace-groupgroupnamenum" numbered="true" toc="default">
          <name>ace-group/GROUPNAME/num</name>
          <t>This resource implements a GET handler.</t>
          <section anchor="num-get" numbered="true" toc="default">
            <name>GET Handler</name>
            <t>The handler expects a GET request.</t>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client. If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>Additionally, the handler verifies that the node is a current member of the group. If verification fails, the KDC MUST respond with a 4.00 (Bad Request) error message.</t>
            <t>If verification succeeds, the handler returns a 2.05 (Content) message containing an integer that represents the version number of the symmetric group keying material. This number is incremented on the KDC every time the KDC updates the symmetric group keying material, before the new keying material is distributed. This number is stored in persistent storage.</t>
            <t>The payload of the response is formatted as a CBOR integer.</t>
          </section>
        </section>
        <section anchor="ace-groupgroupnamenodesnodename" numbered="true" toc="default">
          <name>ace-group/GROUPNAME/nodes/NODENAME</name>
          <t>This resource implements GET, PUT and DELETE handlers.</t>
          <section anchor="node-put" numbered="true" toc="default">
            <name>PUT Handler</name>
            <t>The PUT handler is used to get the KDC to produce and return individual keying material to protect outgoing messages for the node (identified by "NODENAME") for the group identified by "GROUPNAME".</t>
            <t>The handler expects a request with empty payload.</t>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client, identified by "NODENAME". If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>Additionally, the handler verifies that the node is a current member of the group. If verification fails, the KDC MUST respond with a 4.00 (Bad Request) error message.</t>
            <t>If verification succeeds, the handler returns a 2.05 (Content) message containing newly-generated individual keying material for the Client, or information enabling the Client to derive it. The payload of the response is formatted as a CBOR map. The specific format of newly-generated individual keying material for group members, or of the information to derive it, and corresponding CBOR label, MUST be specified in the application profile (REQ15) and registered in <xref target="iana-reg" format="default"/>.</t>
          </section>
          <section anchor="node-get" numbered="true" toc="default">
            <name>GET Handler</name>
            <t>The handler expects a GET request.</t>
            <t>The handler verifies that the group name of the /ace-group/GROUPNAME path is a subset of the 'scope' stored in the access token associated to this client, identified by "NODENAME". If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>The handler also verifies that the node sending the request and the node name used in the Uri-Path match. If that is not the case, the handler responds with a 4.01 (Unauthorized) error response.</t>
            <t>Additionally, the handler verifies that the node is a current member of the group. If verification fails, the KDC MUST respond with a 4.00 (Bad Request) error message.</t>
            <t>If verification succeeds, the handler returns a 2.05 (Content) message containing both the group keying material and the individual keying material for the Client, or information enabling the Client to derive it. The payload of the response is formatted as a CBOR map. The format for the group keying material is the same as defined in the response of <xref target="gid-get" format="default"/>. The specific format of individual keying material for group members, or of the information to derive it, and corresponding CBOR label, MUST be specified in the application profile (REQ15) and registered in <xref target="iana-reg" format="default"/>.</t>
          </section>
          <section anchor="node-delete" numbered="true" toc="default">
            <name>DELETE Handler</name>
            <t>The DELETE handler removes the node identified by "NODENAME" from the group identified by "GROUPNAME".</t>
            <t>The handler expects a request with method DELETE (and empty payload).</t>
            <t>The handler only accepts a request from the node identified by "NODENAME" via the secure session, where NODENAME is used in Uri-Path, and that is part of the "GROUPNAME" group: the handler verifies that the group name "GROUPNAME" is a subset of the 'scope' stored in the access token associated to this client, and that this client is identified by "NODENAME". If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>The handler also verifies that the node sending the request and the node name used in the Uri-Path match. If that is not the case, the handler responds with a 4.01 (Unauthorized) error response.</t>
            <t>Additionally, the handler verifies that the node is a current member of the group. If verification fails, the KDC MUST respond with a 4.00 (Bad Request) error message.</t>
            <t>If verification succeeds, the handler removes the client from the group identified by "GROUPNAME", for specific roles if roles were specified in the 'scope' field, or for all roles. That includes removing the public key of the client if the KDC keep tracks of that. Then, the handler delete the sub-resource nodes/NODENAME and returns a 2.02 (Deleted) message with empty payload.</t>
          </section>
        </section>
        <section anchor="ace-groupgroupnamenodesnodenamepub-key" numbered="true" toc="default">
          <name>ace-group/GROUPNAME/nodes/NODENAME/pub-key</name>
          <t>This resource implements a POST handler, if the KDC stores the public key of group members. If the KDC does not store the public keys of group members, the handler does not implement any method, and every request returns a 4.05 Method Not Allowed error.</t>
          <section anchor="node-pub-key-post" numbered="true" toc="default">
            <name>POST Handler</name>
            <t>The POST handler is used to replace the stored public key of this client (identified by "NODENAME") with the one specified in the request at the KDC, for the group identified by "GROUPNAME".</t>
            <t>The handler expects a POST request with payload as specified in <xref target="gid-post" format="default"/>, with the difference that it includes only the parameters 'client_cred', 'cnonce' and 'client_cred_verify'. In particular, the signature included in 'client_cred_verify' is expected to be computed as defined in <xref target="gid-post" format="default"/>, with a newly generated N_C nonce and the previously received N_S. The specific format of public keys is specified by the application profile (OPT1).</t>
            <t>The handler verifies that the group name GROUPNAME is a subset of the 'scope' stored in the access token associated to this client. If verification fails, the KDC MUST respond with a 4.01 (Unauthorized) error message.</t>
            <t>If the request is not formatted correctly (i.e. required fields non received or received with incorrect format), the handler MUST respond with a 4.00 (Bad Request) error message. If the request contained unknown or non-expected fields present, the handler MUST silently drop them and continue processing. Application profiles MAY define optional or mandatory payload formats for specific error cases (OPT6).</t>
            <t>Otherwise, the handler checks that the public key specified in the 'client_cred' field has a valid format for the group identified by "GROUPNAME", i.e. it is encoded as expected and is compatible with the signature algorithm and possible associated parameters. If that cannot be verified, the handler MUST respond with a 4.00 (Bad Request) error message. Applications profiles MAY define alternatives (OPT5).</t>
            <t>Otherwise, the handler verifies the signature contained in the 'client_cred_verify' field of the request, using the public key specified in the 'client_cred' field. If the signature does not pass verification, the handler MUST respond with a 4.00 (Bad Request) error message. If the KDC cannot retrieve the 'kdcchallenge' associated to this Client (see <xref target="token-post" format="default"/>), the KDC MUST respond with a 4.00 Bad Request error respons, including a newly generated 'kdcchallenge' in a CBOR map in the payload the payload. This error response MUST also have Content-Format "application/ace+cbor".</t>
            <t>If verification succeeds, the handler replaces the old public key of the node NODENAME with the one specified in the 'client_cred' field of the request, and stores it as the new current public key of the node NODENAME, in the list of group members' public keys for the group identified by GROUPNAME. Then, the handler replies with a 2.04 (Changed) response, which does not include a payload.</t>
          </section>
        </section>
      </section>
      <section anchor="ssec-key-distribution-exchange" numbered="true" toc="default">
        <name>Joining Exchange</name>
        <t><xref target="fig-key-distr-join" format="default"/> gives an overview of the Joining exchange between Client and KDC, when the Client first joins a group.</t>
        <figure anchor="fig-key-distr-join">
          <name>Message Flow of First Exchange for Group Joining</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                     KDC
   |                                                        |
   |----- Joining Request: POST /ace-group/GROUPNAME ------>|
   |                                                        |
   |<--------- Joining Response: 2.01 (Created) ----------- |
   | Location-Path = "/ace-group/GROUPNAME/nodes/NODENAME"  |
]]></artwork>
        </figure>
        <t>If not previously established, the Client and the KDC MUST first establish a pairwise secure communication channel (REQ16). This can be achieved, for instance, by using a transport profile of ACE. The Joining exchange MUST occur over that secure channel. The Client and the KDC MAY use that same secure channel to protect further pairwise communications that must be secured.</t>
        <t>The secure communication protocol is REQUIRED to establish the secure channel between Client and KDC by using the proof-of-possession key bound to the access token. As a result, the proof-of-possession to bind the access token to the Client is performed by using the proof-of-possession key bound to the access token for establishing secure communication between the Client and the KDC.</t>
        <t>To join the group, the Client sends a CoAP POST request to the /ace-group/GROUPNAME endpoint at the KDC, where GROUPNAME is the group name of the group to join, formatted as specified in <xref target="gid-post" format="default"/>. This group name is the same as in the scope entry corresponding to that group, specified in the 'scope' parameter of the Authorization Request/Response, or it can be retrieved from it. Note that, in case of successful joining, the Client will receive the URI to retrieve individual or group keying material and to leave the group in the Location-Path option of the response.</t>
        <t>If the node is joining a group for the first time, and the KDC maintains the public keys of the group members, the Client is REQUIRED to send its own public key and proof of possession ("client_cred" and "client_cred_verify" in <xref target="gid-post" format="default"/>). The request is only accepted if both public key and proof of possession are provided. If a node re-joins a group with the same access token and the same public key, it can omit to send the public key and the proof of possession, or just omit the proof of possession, and the KDC will be able to retrieve its public key associated to its token for that group (if the key has been discarded, the KDC will reply with 4.00 Bad Request, as specified in <xref target="gid-post" format="default"/>). If a node re-joins a group but wants to update its own public key, it needs to send both public key and proof of possession.</t>
        <t>If the application requires backward security, the KDC MUST generate new group keying material and securely distribute it to all the current group members, upon a new node's joining the group. To this end, the KDC uses the message format of the response defined in <xref target="gid-get" format="default"/>. Application profiles may define alternative ways of retrieving the keying material, such as sending separate requests to different resources at the KDC (<xref target="gid-get" format="default"/>, <xref target="pubkey-get" format="default"/>, <xref target="policies-get" format="default"/>). After distributing the new group keying material, the KDC MUST increment the version number of the keying material.</t>
        <!-- Jim 13-07: Section X.X - Define a new cnf method to hold the OSCORE context parameters - should it be a normal COSE_Key or something new just to makes sure that it is different.

Marco: Isn't it ok as we are doing with the COSE Key here in Section 4.2? Then it works quite fine in ace-oscoap-joining when considering the particular joining of OSCORE groups. Also, OSCORE is ongly a particular case, while this document is general. Also, this phase where keying material is provisinoed is not even ACE anymore, so there is no need to really stick to a 'cnf' parameter.
-->

<!-- Jim 13-07: Question - does somebody talk about doing key derivation for a new kid showing up and by the way where is the gid

Marco: This seems very much related to Group OSCORE, rather than general message format. In fact, it's in oscore-groupcomm that we describe how a new Recipient Context is derived on demand when "a new kid shows up".

Similarly for the Gid, this document keeps a high livel perspective. It's in ace-oscoap-join that we say how the current Group ID is provided to a joining node in the 'serverID' parameter of the COSE Key in the Join Response.
-->

<!-- Jim 13-07: Seciton 4.2 - if you are using profile, then you should return it.

Marco:  Why? This part is not even strictly ACE anymore. Also, the Client knows what kind of response to expect, since it is contacted a specific resource on the KDC in the first place.
-->

</section>
      <section anchor="update-keys" numbered="true" toc="default">
        <name>Retrieval of Updated Keying Material</name>
        <t>When any of the following happens, a node MUST stop using the owned group keying material to protect outgoing messages, and SHOULD stop using it to decrypt and verify incoming messages.</t>
        <ul spacing="normal">
          <li>Upon expiration of the keying material, according to what indicated by the KDC with the 'exp' parameter in a Joining Response, or to a pre-configured value.</li>
          <li>Upon receiving a notification of revoked/renewed keying material from the KDC, possibly as part of an update of the keying material (rekeying) triggered by the KDC.</li>
          <li>Upon receiving messages from other group members without being able to retrieve the keying material to correctly decrypt them. This may be due to rekeying messages previously sent by the KDC, that the Client was not able to receive or decrypt.</li>
        </ul>
        <t>In either case, if it wants to continue participating in the group communication, the node has to request the latest keying material from the KDC. To this end, the Client sends a CoAP GET request to the /ace-group/GROUPNAME/nodes/NODENAME endpoint at the KDC, formatted as specified in <xref target="node-get" format="default"/>.</t>
        <!-- Jim 13-07: Comment somewhere about getting strike zones setup correctly for a newly seen sender of messages. Ptr to OSCORE?

Marco: Just expanded the second paragraph in Section 6.

If this is about details on deriving Recipient Contexts, that's OSCORE specific and should not be here.

If this is about retrieving the public key of a newly joined sender, that's actually a general requirement and is not strictly related to OSCORE.

Is there any other convenient OSCORE thing which is reusable here and we are missing?
-->

<t>Note that policies can be set up, so that the Client sends a Key Re-Distribution request to the KDC only after a given number of received messages could not be decrypted (because of failed decryption processing or inability to retrieve the necessary keying material).</t>
        <t>It is application dependent and pertaining to the particular message exchange (e.g. <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/>) to set up these policies, to instruct clients to retain incoming messages and for how long (OPT4). This allows clients to possibly decrypt such messages after getting updated keying material, rather than just consider them non valid messages to discard right away.</t>
        <t>The same Key Distribution Request could also be sent by the Client without being triggered by a failed decryption of a message, if the Client wants to be sure that it has the latest group keying material. If that is the case, the Client will receive from the KDC the same group keying material it already has in memory.</t>
        <t><xref target="fig-key-redistr-req-resp" format="default"/> gives an overview of the exchange described above.</t>
        <figure anchor="fig-key-redistr-req-resp">
          <name>Message Flow of Key Distribution Request-Response</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                          KDC
   |                                                             |
   |------------------ Key Distribution Request: --------------->|
   |           GET ace-group/GROUPNAME/nodes/NODENAME            |
   |                                                             |
   |<-------- Key Distribution Response: 2.05 (Content) ---------|
   |                                                             |
]]></artwork>
        </figure>
        <t>Alternatively, the re-distribution of keying material can be initiated by the KDC, which e.g.:</t>
        <ul spacing="normal">
          <li>Can make the ace-group/GROUPNAME/nodes/NODENAME resource Observable <xref target="RFC7641" format="default"/>, and send notifications to Clients when the keying material is updated.</li>
          <li>Can send the payload of the Key Distribution Response in one or multiple multicast POST requests to the members of the group, using secure rekeying schemes such as <xref target="RFC2093" format="default"/><xref target="RFC2094" format="default"/><xref target="RFC2627" format="default"/>.</li>
          <li>Can send unicast POST requests to each Client over a secure channel, with the same payload as the Key Distribution Response. When sending such requests, the KDC can target the URI path provided by the intended recipient upon joining the group, as specified in the 'control_path' parameter of the Joining Request (see <xref target="gid-post" format="default"/>).</li>
          <li>Can act as a publisher in a pub-sub scenario, and update the keying material by publishing on a specific topic on a broker, which all the members of the group are subscribed to.</li>
        </ul>
        <t>Note that these methods of KDC-initiated key distribution have different security properties and require different security associations.</t>
        <t>Congestion control mechanisms need to be implemented: see Section 4.7 of <xref target="RFC7252" format="default"/> and, where Observe is used, Section 4.5.1 of <xref target="RFC7641" format="default"/>.</t>
      </section>
      <section anchor="new-keys" numbered="true" toc="default">
        <name>Retrieval of New Individual Keying Material</name>
        <t>Beside possible expiration, the client may need to communicate to the KDC its need for part of the keying material to be renewed.
For example, if the Client uses an individual key to protect outgoing traffic and has to renew it, the node may request a new one, or new input material to derive it, without renewing the whole group keying material.</t>
        <t>To this end, the client performs a Key Renewal Request/Response exchange with the KDC, i.e. it sends a CoAP PUT request to the /ace-group/GROUPNAME/nodes/NODENAME endpoint at the KDC, where GROUPNAME is the group name and NODENAME is the node's name, and formatted as defined in <xref target="node-get" format="default"/>.</t>
        <t><xref target="fig-renewal-req-resp" format="default"/> gives an overview of the exchange described above.</t>
        <figure anchor="fig-renewal-req-resp">
          <name>Message Flow of Key Renewal Request-Response</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                    KDC
   |                                                       |
   |------------------ Key Renewal Request: -------------->|
   |           PUT ace-group/GROUPNAME/nodes/NODENAME      |
   |                                                       |
   |<-------- Key Renewal Response: 2.05 (Content) --------|
   |                                                       |
]]></artwork>
        </figure>
        <t>Note the difference between the Key Distribution Request and the Key Renewal Request: while the first one only triggers distribution (the renewal might have happened independently, e.g. because of expiration), the second one triggers the KDC to produce new individual keying material for the requesting node.</t>
        <t>Furthermore, policies can be set up so that, upon receiving a Key Renewal Request, the KDC performs a complete group rekeying before or after replying to the client (OPT8).</t>
      </section>
      <section anchor="sec-key-retrieval" numbered="true" toc="default">
        <name>Retrieval of Public Keys and Roles for Group Members</name>
        <t>In case the KDC maintains the public keys of group members, a node in the group can contact the KDC to request public keys and roles of either all group members or a specified subset, by sending a CoAP GET or FETCH request to the /ace-group/GROUPNAME/pub-key endpoint at the KDC, where GROUPNAME is the group name, and formatted as defined in <xref target="pubkey-get" format="default"/> and <xref target="pubkey-fetch" format="default"/>.</t>
        <t>When receiving a Public Key Response, the requesting group member stores (or updates) the public keys (in the 'pub_keys' parameter) and roles (in the 'peer_roles' parameter) of the group members.</t>
        <t><xref target="fig-public-key-1" format="default"/> and <xref target="fig-public-key-2" format="default"/> give an overview of the exchanges described above.</t>
        <figure anchor="fig-public-key-1">
          <name>Message Flow of Public Key Exchange to Request All Members Public Keys</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                     KDC
   |                                                        |
   |--Public Key Request: GET /ace-group/GROUPNAME/pub-key->|
   |                                                        |
   |<--------- Public Key Response: 2.05 (Content) ---------|
   |                                                        |
]]></artwork>
        </figure>
        <figure anchor="fig-public-key-2">
          <name>Message Flow of Public Key Exchange to Request Specific Members Public Keys</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                      KDC
   |                                                         |
   |-Public Key Request: FETCH /ace-group/GROUPNAME/pub-key->|
   |                                                         |
   |<--------- Public Key Response: 2.05 (Created) ----------|
   |                                                         |
]]></artwork>
        </figure>
      </section>
      <section anchor="update-pub-key" numbered="true" toc="default">
        <name>Update of Public Key</name>
        <t>In case the KDC maintains the public keys of group members, a node in the group can contact the KDC to upload a new public key to use in the group, and replace the currently stored one.</t>
        <t>To this end, the Client performs a Public Key Update Request/Response exchange with the KDC, i.e. it sends a CoAP POST request to the /ace-group/GROUPNAME/nodes/NODENAME/pub-key endpoint at the KDC, where GROUPNAME is the group name and NODENAME is the node's name.</t>
        <t>The request is formatted as specified in <xref target="node-pub-key-post" format="default"/>.</t>
        <t>Figure <xref target="fig-pub-key-update-req-resp" format="default"/> gives an overview of the exchange described above.</t>
        <figure anchor="fig-pub-key-update-req-resp">
          <name>Message Flow of Public Key Update Request-Response</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                           KDC
|                                                                 |
|-------------- Public Key Update Request: ---------------------->|
|      POST ace-group/GROUPNAME/nodes/NODENAME/pub-key            |
|                                                                 |
|<------- Public Key Update Response: 2.04 (Changed) -------------|
|                                                                 |
]]></artwork>
        </figure>
        <t>If the application requires backward security, the KDC MUST generate new group keying material and securely distribute it to all the current group members, upon a group member updating its own public key. To this end, the KDC uses the message format of the response defined in <xref target="gid-get" format="default"/>. Application profiles may define alternative ways of retrieving the keying material, such as sending separate requests to different resources at the KDC (<xref target="gid-get" format="default"/>, <xref target="pubkey-get" format="default"/>, <xref target="policies-get" format="default"/>).
The KDC MUST increment the version number of the current keying material, before distributing the newly generated keying material to the group. After that, the KDC SHOULD store the distributed keying material in persistent storage.</t>
        <t>Additionally, after updating its own public key, a group member MAY send a number of the later requests including an identifier of the updated public key, to signal nodes that they need to retrieve it. How that is done depends on the group communication protocol used, and therefore is application profile specific (OPT10).</t>
      </section>
      <section anchor="policies" numbered="true" toc="default">
        <name>Retrieval of Group Policies</name>
        <t>A node in the group can contact the KDC to retrieve the current group policies, by sending a CoAP GET request to the /ace-group/GROUPNAME/policies endpoint at the KDC, where GROUPNAME is the group name, and formatted as defined in <xref target="policies-get" format="default"/></t>
        <t><xref target="fig-policies" format="default"/> gives an overview of the exchange described above.</t>
        <figure anchor="fig-policies">
          <name>Message Flow of Policies Request-Response</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                   KDC
   |                                                      |
   |-Policies Request: GET ace-group/GROUPNAME/policies ->|
   |                                                      |
   |<--------- Policies Response: 2.05 (Content) ---------|
   |                                                      |
]]></artwork>
        </figure>
      </section>
      <section anchor="key-version" numbered="true" toc="default">
        <name>Retrieval of Keying Material Version</name>
        <t>A node in the group can contact the KDC to request information about the version number of the symmetric group keying material, by sending a CoAP GET request to the /ace-group/GROUPNAME/num endpoint at the KDC, where GROUPNAME is the group name, formatted as defined in <xref target="num-get" format="default"/>. In particular, the version is incremented by the KDC every time the group keying material is renewed, before it's distributed to the group members.</t>
        <t><xref target="fig-version" format="default"/> gives an overview of the exchange described above.</t>
        <figure anchor="fig-version">
          <name>Message Flow of Version Request-Response</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
Client                                                    KDC
   |                                                       |
   |---- Version Request: GET ace-group/GROUPNAME/num ---->|
   |                                                       |
   |<--------- Version Response: 2.05 (Content) -----------|
   |                                                       |
]]></artwork>
        </figure>
      </section>
      <section anchor="ssec-group-leaving" numbered="true" toc="default">
        <name>Group Leaving Request</name>
        <t>A node 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 the node's name, formatted as defined in <xref target="node-delete" format="default"/></t>
        <!-- Jim 13-07: Section 5.2 - What is the message to leave - can I leave one scope but not another?  Can I just give up a role?

Marco: We should define an actual message, like the ones for retrieving updating keying material in Section 6. It can be like the one in Section 6.1, only with the second part of 'scope' present and encoded as an empty CBOR array.

Marco: 'scope' encodes one group and some roles. So a node is supposed to leave that group altogether, with all its roles. If the node wants to stay in the group with less roles, it is just fine that is stops playing the roles it is not interested in anymore.
-->

<t>Alternatively, a node may be removed by the KDC, without having explicitly asked for it. This is further discussed in <xref target="sec-node-removal" format="default"/>.</t>
      </section>
    </section>
    <section anchor="sec-node-removal" numbered="true" toc="default">
      <name>Removal of a Node from the Group</name>
      <t>This section describes the different scenarios according to which a node ends up being removed from the group.</t>
      <t>If the application requires forward security, the KDC MUST generate new group keying material and securely distribute it to all the current group members but the leaving node, using the message format of the Key Distribution Response (see <xref target="update-keys" format="default"/>). Application profiles may define alternative message formats. Before distributing the new group keying material, the KDC MUST increment the version number of the keying material.</t>
      <t>Note that, after having left the group, a node may wish to join it again. Then, as long as the node is still authorized to join the group, i.e. it still has a valid access token, it can re-request to join the group directly to the KDC without needing to retrieve a new access token from the AS. This means that the KDC might decide to keep track of nodes with valid access tokens, before deleting all information about the leaving node.</t>
      <t>A node may be evicted from the group in the following cases.</t>
      <ol spacing="normal" type="1">
        <li>The node explicitly asks to leave the group, as defined in <xref target="ssec-group-leaving" format="default"/>.</li>
        <li>The node has been found compromised or is suspected so.</li>
        <li>The node's authorization to be a group member is not valid anymore, either because the access token has expired, or it has been revoked. If the AS provides Token introspection (see Section 5.7 of <xref target="I-D.ietf-ace-oauth-authz" format="default"/>), the KDC can optionally use it and check whether the node is still authorized for that group in that role.</li>
      </ol>
      <t>In either case, once aware that a node is not authorized anymore, the KDC has to remove the unauthorized node from the list of group members, if the KDC keeps track of that.</t>
      <t>In case of forced eviction, the KDC MAY explicitly inform the leaving node, if the Client implements the 'control_path' resource specified in <xref target="gid-post" format="default"/>. To this end, the KDC MAY send a DEL request, targeting the URI specified in the 'control_path' parameter of the Joining Request.</t>
    </section>
    <section anchor="params" numbered="true" toc="default">
      <name>ACE Groupcomm Parameters</name>
      <t>This specification defines a number of fields used during the second part of the message exchange, after the ACE Token POST exchange. The table below summarizes them, and specifies the CBOR key to use instead of the full descriptive name. Note that the media type ace-groupcomm+cbor MUST be used when these fields are transported.</t>
      <table align="center">
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">CBOR Key</th>
            <th align="left">CBOR Type</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">scope</td>
            <td align="left">TBD</td>
            <td align="left">byte string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">get_pub_keys</td>
            <td align="left">TBD</td>
            <td align="left">array</td>
            <td align="left">
              <xref target="gid-post" format="default"/>, <xref target="pubkey-fetch" format="default"/></td>
          </tr>
          <tr>
            <td align="left">client_cred</td>
            <td align="left">TBD</td>
            <td align="left">byte string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">cnonce</td>
            <td align="left">TBD</td>
            <td align="left">byte string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">client_cred_verify</td>
            <td align="left">TBD</td>
            <td align="left">byte string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">pub_keys_repos</td>
            <td align="left">TBD</td>
            <td align="left">text string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">control_path</td>
            <td align="left">TBD</td>
            <td align="left">text string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">gkty</td>
            <td align="left">TBD</td>
            <td align="left">int / text string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">key</td>
            <td align="left">TBD</td>
            <td align="left">see "ACE Groupcomm Key" Registry</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">num</td>
            <td align="left">TBD</td>
            <td align="left">int</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">ace-groupcomm-profile</td>
            <td align="left">TBD</td>
            <td align="left">int</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">exp</td>
            <td align="left">TBD</td>
            <td align="left">int</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">pub_keys</td>
            <td align="left">TBD</td>
            <td align="left">byte string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">peer_roles</td>
            <td align="left">TBD</td>
            <td align="left">array</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">group_policies</td>
            <td align="left">TBD</td>
            <td align="left">map</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
          <tr>
            <td align="left">mgt_key_material</td>
            <td align="left">TBD</td>
            <td align="left">byte string</td>
            <td align="left">
              <xref target="gid-post" format="default"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sec-cons" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>When a Client receives a message from a sender for the first time, it needs to have a mechanism in place to avoid replay, e.g. Appendix B.2 of <xref target="RFC8613" format="default"/>. In case the Client rebooted and lost the security state used to protect previous communication with that sender, such a mechanism is useful for the recipient to be on the safe side.
Besides, if the KDC has renewed the group keying material, and the time interval between the end of the rekeying process and the joining of the Client is sufficiently small, that Client is also on the safe side, since replayed older messages protected with the previous keying material will not be accepted.</t>
      <t>The KDC must renew the group keying material upon its expiration.</t>
      <t>The KDC should renew the keying material upon group membership change, and should provide it to the current group members through the rekeying scheme used in the group.</t>
      <t>The KDC should renew the group keying material after rebooting, even in the case where all keying material is stored in persistent storage. However, if the KDC relies on Observe responses to notify the group of renewed keying material, after rebooting the KDC will have lost all the current ongoing Observations with the group members, and the previous keying material will be used to protect messages in the group anyway. The KDC will rely on each node requesting updates of the group keying material to establish the new keying material in the nodes, or, if implemented, it can push the update to the nodes in the group using the 'control_path' resource.</t>
      <t>The KDC may enforce a rekeying policy that takes into account the overall time required to rekey the group, as well as the expected rate of changes in the group membership.</t>
      <t>That is, the KDC may not rekey the group at every membership change, for instance if members' joining and leaving occur frequently and performing a group rekeying takes too long.
The KDC may rekey the group after a minimum number of group members have joined or left within a given time interval, or after maximum amount of time since the last rekeying was completed, or yet during predictable network inactivity periods.</t>
      <t>However, this would result in the KDC not constantly preserving backward and forward security. Newly joining group members could be able to access the keying material used before their joining, and thus could access past group communications. Also, until the KDC performs a group rekeying, the newly leaving nodes would still be able to access upcoming group communications that are protected with the keying material that has not yet been updated.</t>
      <t>The KDC needs to have a mechanism in place to detect DoS attacks from nodes constantly initiating rekey events (for example by updating their public key), such as removing these nodes from the group.</t>
      <t>The KDC also needs to have a congestion control mechanism in place to avoid network congestion when the KDC renews the group keying material; CoAP and Observe give guidance on such mechanisms, see Section 4.7 of <xref target="RFC7252" format="default"/> and Section 4.5.1 of <xref target="RFC7641" format="default"/>.</t>
      <section anchor="update-of-keying-material" numbered="true" toc="default">
        <name>Update of Keying Material</name>
        <t>A group member can receive a message shortly after the group has been rekeyed, and new keying material has been distributed by the KDC. In the following two cases, this may result in misaligned keying material between the group members.</t>
        <t>In the first case, the sender protects a message using the old keying material. However, the recipient receives the message after having received the new keying material, hence not being able to correctly process it. A possible way to ameliorate this issue is to preserve the old, recent, keying material for a maximum amount of time defined by the application. By doing so, the recipient can still try to process the received message using the old retained keying material. Note that a former (compromised) group member can take advantage of this by sending messages protected with the old retained keying material. Therefore, a conservative application policy should not admit the storage of old keying material.</t>
        <t>In the second case, the sender protects a message using the new keying material, but the recipient receives that request before having received the new keying material. Therefore, the recipient would not be able to correctly process the request and hence discards it. If the recipient receives the new keying material shortly after that and the application at the sender endpoint performs retransmissions, the former will still be able to receive and correctly process the message. In any case, the recipient should actively ask the KDC for an updated keying material according to an application-defined policy, for instance after a given number of unsuccessfully decrypted incoming messages.</t>
        <t>A node that has left the group should not expect any of its outgoing messages to be successfully processed, if received after its leaving, due to a possible group rekeying occurred before the message reception.</t>
      </section>
      <section anchor="block-wise-considerations" numbered="true" toc="default">
        <name>Block-Wise Considerations</name>
        <t>If the block-wise options <xref target="RFC7959" format="default"/> are used, and the keying material is updated in the middle of a block-wise transfer, the sender of the blocks just changes the keying material to the updated one and continues the transfer. As long as both sides get the new keying material, updating the keying material in the middle of a transfer will not cause any issue. Otherwise, the sender will have to transmit the message again, when receiving an error message from the recipient.</t>
        <t>Compared to a scenario where the transfer does not use block-wise, depending on how fast the keying material is changed, the nodes might consume a larger amount of the network bandwidth resending the blocks again and again, which might be problematic.</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <!--
## OSCORE Security Context Parameters Registry

The following registrations are required for the OSCORE Security Context Parameters Registry specified in Section 9.2 of {{I-D.ietf-ace-oscore-profile}}:

*  Name: cs_alg
*  CBOR Label: TBD
*  CBOR Type: tstr / int
*  Registry: COSE Algorithm Values (ECDSA, EdDSSA)
*  Description: OSCORE Counter Signature Algorithm Value
*  Reference: \[\[this specification\]\]

*  Name: exp
*  CBOR Label: TBD
*  CBOR Type: int / float
*  Registry:
*  Description: OSCORE Counter Signature Algorithm Value
*  Reference: \[\[this specification\]\]
-->

<section anchor="media-type" numbered="true" toc="default">
        <name>Media Type Registrations</name>
        <t>This specification registers the 'application/ace-groupcomm+cbor' media type for messages of the protocols defined in this document following the ACE exchange and carrying parameters encoded in CBOR. This registration follows the procedures specified in <xref target="RFC6838" format="default"/>.</t>
        <t>Type name: application</t>
        <t>Subtype name: ace-groupcomm+cbor</t>
        <t>Required parameters: none</t>
        <t>Optional parameters: none</t>
        <t>Encoding considerations: Must be encoded as CBOR map containing the protocol parameters defined in [this document].</t>
        <t>Security considerations: See <xref target="sec-cons" format="default"/> of this document.</t>
        <t>Interoperability considerations: n/a</t>
        <t>Published specification: [this document]</t>
        <t>Applications that use this media type: The type is used by authorization servers, clients and resource servers that support the ACE groupcomm framework as specified in [this document].</t>
        <t>Additional information:</t>
        <t>Magic number(s): n/a</t>
        <t>File extension(s): .ace-groupcomm</t>
        <t>Macintosh file type code(s): n/a</t>
        <t>Person &amp; email address to contact for further information:
   <eref target="mailto:iesg@ietf.org">iesg@ietf.org</eref></t>
        <t>Intended usage: COMMON</t>
        <t>Restrictions on usage: None</t>
        <t>Author: Francesca Palombini <eref target="mailto:francesca.palombini@ericsson.com">francesca.palombini@ericsson.com</eref></t>
        <t>Change controller: IESG</t>
      </section>
      <section anchor="content-type" numbered="true" toc="default">
        <name>CoAP Content-Formats Registry</name>
        <t>This specification registers the following entry to the "CoAP Content-Formats" registry, within the "CoRE Parameters" registry:</t>
        <t>Media Type: application/ace-groupcomm+cbor</t>
        <t>Encoding: -</t>
        <t>ID: TBD</t>
        <t>Reference: [this document]</t>
      </section>
      <section anchor="iana-kinfo" numbered="true" toc="default">
        <name>OAuth Parameters Registry</name>
        <t>The following registrations are done for the OAuth ParametersRegistry following the procedure specified in section 11.2 of <xref target="RFC6749" format="default"/>:</t>
        <t>o  Parameter name: sign_info
   o  Parameter usage location: token request, token response
   o  Change Controller: IESG
   o  Specification Document(s): [[This specification]]</t>
        <t>o  Parameter name: kdcchallenge
   o  Parameter usage location: token response
   o  Change Controller: IESG
   o  Specification Document(s): [[This specification]]</t>
      </section>
      <section anchor="iana-kinfo-map" numbered="true" toc="default">
        <name>OAuth Parameters CBOR Mappings Registry</name>
        <t>The following registrations are done for the OAuth Parameters CBOR
   Mappings Registry following the procedure specified in section 8.9 of
   <xref target="I-D.ietf-ace-oauth-authz" format="default"/>:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
* Name: sign_info
* CBOR Key: TBD (range -256 to 255)
* Value Type: any
* Reference: \[\[This specification\]\]

* Name: kdcchallenge
* CBOR Key: TBD (range -256 to 255)
* Value Type: byte string
* Reference: \[\[This specification\]\]
]]></artwork>
      </section>
      <section anchor="iana-reg" numbered="true" toc="default">
        <name>ACE Groupcomm Parameters Registry</name>
        <t>This specification establishes the "ACE Groupcomm Parameters" IANA Registry. The
Registry has been created to use the "Expert Review Required" registration procedure <xref target="RFC8126" format="default"/>. Expert review guidelines are provided in <xref target="review" format="default"/>.</t>
        <t>The columns of this Registry are:</t>
        <ul spacing="normal">
          <li>Name: This is a descriptive name that enables easier reference to
the item. The name MUST be unique. It is not used in the encoding.</li>
          <li>CBOR Key: This is the value used as CBOR key of the item. These values MUST be unique. The value can be a positive integer, a negative integer, or a string.</li>
          <li>CBOR Type: This contains the CBOR type of the item, or a pointer to the registry that defines its type, when that depends on another item.</li>
          <li>Reference: This contains a pointer to the public specification for the item.</li>
        </ul>
        <t>This Registry has been initially populated by the values in <xref target="params" format="default"/>. The Reference column for all of these entries refers to sections of this document.</t>
      </section>
      <section anchor="iana-key" numbered="true" toc="default">
        <name>ACE Groupcomm Key Registry</name>
        <t>This specification establishes the "ACE Groupcomm Key" IANA Registry. The
Registry has been created to use the "Expert Review Required" registration procedure <xref target="RFC8126" format="default"/>. Expert review guidelines are provided in <xref target="review" format="default"/>.</t>
        <t>The columns of this Registry are:</t>
        <ul spacing="normal">
          <li>Name: This is a descriptive name that enables easier reference to
the item. The name MUST be unique. It is not used in the encoding.</li>
          <li>Key Type Value: This is the value used to identify the keying material. These values MUST be unique.  The value can be a positive integer, a negative integer, or a text string.</li>
          <li>Profile: This field may contain one or more descriptive strings of application profiles to be used with this item. The values should be taken from the Name column of the "ACE Groupcomm Profile" Registry.</li>
          <li>Description: This field contains a brief description of the keying material.</li>
          <li>References: This contains a pointer to the public specification for the format of the keying material, if one exists.</li>
        </ul>
        <t>This Registry has been initially populated by the values in <xref target="gkty" format="default"/>. The specification column for all of these entries will be this document.</t>
      </section>
      <section anchor="ace-groupcomm-profile-registry" numbered="true" toc="default">
        <name>ACE Groupcomm Profile Registry</name>
        <t>This specification establishes the "ACE Groupcomm Profile" IANA Registry. The Registry has been created to use the "Expert Review Required" registration procedure <xref target="RFC8126" format="default"/>. Expert review guidelines are provided in <xref target="review" format="default"/>. It should be noted that, in addition to the expert review, some portions of the Registry require a specification, potentially a Standards Track RFC, be supplied as well.</t>
        <t>The columns of this Registry are:</t>
        <ul spacing="normal">
          <li>Name: The name of the application profile, to be used as value of the profile attribute.</li>
          <li>Description: Text giving an overview of the application profile and the context it is developed for.</li>
          <li>CBOR Value: CBOR abbreviation for the name of this application profile. Different ranges of values use different registration policies <xref target="RFC8126" format="default"/>. Integer values from -256 to 255 are designated as Standards Action. Integer values from -65536 to -257 and from 256 to 65535 are designated as Specification Required. Integer values greater than 65535 are designated as Expert Review. Integer values less than -65536 are marked as Private Use.</li>
          <li>Reference: This contains a pointer to the public specification of the abbreviation for this application profile, if one exists.</li>
        </ul>
      </section>
      <section anchor="ace-groupcomm-policy-registry" numbered="true" toc="default">
        <name>ACE Groupcomm Policy Registry</name>
        <t>This specification establishes the "ACE Groupcomm Policy" IANA Registry. The Registry has been created to use the "Expert Review Required" registration procedure <xref target="RFC8126" format="default"/>. Expert review guidelines are provided in <xref target="review" format="default"/>. It should be noted that, in addition to the expert review, some portions of the Registry require a specification, potentially a Standards Track RFC, be supplied as well.</t>
        <t>The columns of this Registry are:</t>
        <ul spacing="normal">
          <li>Name: The name of the group communication policy.</li>
          <li>CBOR label: The value to be used to identify this group communication policy.  Key map labels MUST be unique. The label can be a positive integer, a negative integer or a string.  Integer values between 0 and 255 and strings of length 1 are designated as Standards Track Document required. Integer values from 256 to 65535 and strings of length 2 are designated as Specification Required.  Integer values of greater than 65535 and strings of length greater than 2 are designated as expert review.  Integer values less than -65536 are marked as private use.</li>
          <li>CBOR type: the CBOR type used to encode the value of this group communication policy.</li>
          <li>Description: This field contains a brief description for this group communication policy.</li>
          <li>Reference: This field contains a pointer to the public specification providing the format of the group communication policy, if one exists.</li>
        </ul>
        <t>This registry will be initially populated by the values in <xref target="fig-ACE-Groupcomm-Policies" format="default"/>.</t>
      </section>
      <section anchor="sequence-number-synchronization-method-registry" numbered="true" toc="default">
        <name>Sequence Number Synchronization Method Registry</name>
        <t>This specification establishes the "Sequence Number Synchronization Method" IANA Registry. The Registry has been created to use the "Expert Review Required" registration procedure <xref target="RFC8126" format="default"/>. Expert review guidelines are provided in <xref target="review" format="default"/>. It should be noted that, in addition to the expert review, some portions of the Registry require a specification, potentially a Standards Track RFC, be supplied as well.</t>
        <t>The columns of this Registry are:</t>
        <ul spacing="normal">
          <li>Name: The name of the sequence number synchronization method.</li>
          <li>Value: The value to be used to identify this sequence number synchronization method.</li>
          <li>Description: This field contains a brief description for this sequence number synchronization method.</li>
          <li>Reference: This field contains a pointer to the public specification describing the sequence number synchronization method.</li>
        </ul>
      </section>
      <section anchor="if-ace-group" numbered="true" toc="default">
        <name>Interface Description (if=) Link Target Attribute Values Registry</name>
        <t>This specification registers the following entry to the "Interface Description (if=) Link Target Attribute Values Registry" registry, within the "CoRE Parameters" registry:</t>
        <ul spacing="normal">
          <li>Attribute Value: ace.group</li>
          <li>Description: The 'ace group' interface is used to provision keying material and related informations and policies to members of a group using the Ace framework.</li>
          <li>Reference: [This Document]</li>
        </ul>
      </section>
      <section anchor="review" numbered="true" toc="default">
        <name>Expert Review Instructions</name>
        <t>The IANA Registries established in this document are defined as expert review.
This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason so they should be given substantial latitude.</t>
        <t>Expert reviewers should take into consideration the following points:</t>
        <ul spacing="normal">
          <li>Point squatting should be discouraged.
 Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered and that the point is likely to be used in deployments.
 The zones tagged as private use are intended for testing purposes and closed environments, code points in other ranges should not be assigned for testing.</li>
          <li>Specifications are required for the standards track range of point assignment.
 Specifications should exist for specification required ranges, but early assignment before a specification is available is considered to be permissible.
 Specifications are needed for the first-come, first-serve range if they are expected to be used outside of closed environments in an interoperable way.
 When specifications are not provided, the description provided needs to have sufficient information to identify what the point is being used for.</li>
          <li>Experts should take into account the expected usage of fields when approving point assignment.
 The fact that there is a range for standards track documents does not mean that a standards track document cannot have points assigned outside of that range.
 The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC7049" target="https://www.rfc-editor.org/info/rfc7049" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7049.xml">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7049"/>
            <seriesInfo name="RFC" value="7049"/>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="P." surname="Hoffman" fullname="P. Hoffman">
              <organization/>
            </author>
            <date year="2013" month="October"/>
            <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>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC6749" target="https://www.rfc-editor.org/info/rfc6749" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <seriesInfo name="DOI" value="10.17487/RFC6749"/>
            <seriesInfo name="RFC" value="6749"/>
            <author initials="D." surname="Hardt" fullname="D. Hardt" role="editor">
              <organization/>
            </author>
            <date year="2012" month="October"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.  This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC6838" target="https://www.rfc-editor.org/info/rfc6838" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <seriesInfo name="DOI" value="10.17487/RFC6838"/>
            <seriesInfo name="RFC" value="6838"/>
            <seriesInfo name="BCP" value="13"/>
            <author initials="N." surname="Freed" fullname="N. Freed">
              <organization/>
            </author>
            <author initials="J." surname="Klensin" fullname="J. Klensin">
              <organization/>
            </author>
            <author initials="T." surname="Hansen" fullname="T. Hansen">
              <organization/>
            </author>
            <date year="2013" month="January"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.  This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <seriesInfo name="DOI" value="10.17487/RFC8126"/>
            <seriesInfo name="RFC" value="8126"/>
            <seriesInfo name="BCP" value="26"/>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization/>
            </author>
            <date year="2017" month="June"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7252"/>
            <seriesInfo name="RFC" value="7252"/>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization/>
            </author>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8747" target="https://www.rfc-editor.org/info/rfc8747" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8747.xml">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8747"/>
            <seriesInfo name="RFC" value="8747"/>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="L." surname="Seitz" fullname="L. Seitz">
              <organization/>
            </author>
            <author initials="G." surname="Selander" fullname="G. Selander">
              <organization/>
            </author>
            <author initials="S." surname="Erdtman" fullname="S. Erdtman">
              <organization/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
              <organization/>
            </author>
            <date year="2020" month="March"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-cose-rfc8152bis-struct" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-rfc8152bis-struct.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-cose-rfc8152bis-struct-11.txt">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-cose-rfc8152bis-struct-11"/>
            <author initials="J" surname="Schaad" fullname="Jim Schaad">
              <organization/>
            </author>
            <date month="July" day="1" year="2020"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.  This document along with [I-D.ietf-cose-rfc8152bis-algs] obsoletes RFC8152.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-cose-rfc8152bis-algs" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-rfc8152bis-algs.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-cose-rfc8152bis-algs-11.txt">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-cose-rfc8152bis-algs-11"/>
            <author initials="J" surname="Schaad" fullname="Jim Schaad">
              <organization/>
            </author>
            <date month="July" day="1" year="2020"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. THis document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol RFC XXXX.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-oauth-authz" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oauth-authz.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-ace-oauth-authz-35.txt">
          <front>
            <title>Authentication and Authorization for Constrained Environments (ACE) using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oauth-authz-35"/>
            <author initials="L" surname="Seitz" fullname="Ludwig Seitz">
              <organization/>
            </author>
            <author initials="G" surname="Selander" fullname="Goeran Selander">
              <organization/>
            </author>
            <author initials="E" surname="Wahlstroem" fullname="Erik Wahlstroem">
              <organization/>
            </author>
            <author initials="S" surname="Erdtman" fullname="Samuel Erdtman">
              <organization/>
            </author>
            <author initials="H" surname="Tschofenig" fullname="Hannes Tschofenig">
              <organization/>
            </author>
            <date month="June" day="24" year="2020"/>
            <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-ace-oauth-params" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oauth-params.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-ace-oauth-params-13.txt">
          <front>
            <title>Additional OAuth Parameters for Authorization in Constrained Environments (ACE)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oauth-params-13"/>
            <author initials="L" surname="Seitz" fullname="Ludwig Seitz">
              <organization/>
            </author>
            <date month="April" day="28" year="2020"/>
            <abstract>
              <t>This specification defines new parameters and encodings for the OAuth 2.0 token and introspection endpoints when used with the framework for authentication and authorization for constrained environments (ACE).  These are used to express the proof-of-possession key the client wishes to use, the proof-of-possession key that the Authorization Server has selected, and the key the Resource Server uses to authenticate to the client.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-groupcomm.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-core-oscore-groupcomm-09.txt">
          <front>
            <title>Group OSCORE - Secure Group Communication for CoAP</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-09"/>
            <author initials="M" surname="Tiloca" fullname="Marco Tiloca">
              <organization/>
            </author>
            <author initials="G" surname="Selander" fullname="Goeran Selander">
              <organization/>
            </author>
            <author initials="F" surname="Palombini" fullname="Francesca Palombini">
              <organization/>
            </author>
            <author initials="J" surname="Park" fullname="Jiye Park">
              <organization/>
            </author>
            <date month="June" day="23" year="2020"/>
            <abstract>
              <t>This document defines Group Object Security for Constrained RESTful Environments (Group OSCORE), providing end-to-end security of CoAP messages exchanged between members of a group, e.g. sent over IP multicast.  In particular, the described approach defines how OSCORE is used in a group communication setting to provide source authentication for CoAP group requests, sent by a client to multiple servers, and for protection of the corresponding CoAP responses.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="COSE.Algorithms" target="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC7519" target="https://www.rfc-editor.org/info/rfc7519" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7519.xml">
          <front>
            <title>JSON Web Token (JWT)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7519"/>
            <seriesInfo name="RFC" value="7519"/>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="J. Bradley">
              <organization/>
            </author>
            <author initials="N." surname="Sakimura" fullname="N. Sakimura">
              <organization/>
            </author>
            <date year="2015" month="May"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC2093" target="https://www.rfc-editor.org/info/rfc2093" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2093.xml">
          <front>
            <title>Group Key Management Protocol (GKMP) Specification</title>
            <seriesInfo name="DOI" value="10.17487/RFC2093"/>
            <seriesInfo name="RFC" value="2093"/>
            <author initials="H." surname="Harney" fullname="H. Harney">
              <organization/>
            </author>
            <author initials="C." surname="Muckenhirn" fullname="C. Muckenhirn">
              <organization/>
            </author>
            <date year="1997" month="July"/>
            <abstract>
              <t>This specification proposes a protocol to create grouped symmetric keys and distribute them amongst communicating peers.  This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC2094" target="https://www.rfc-editor.org/info/rfc2094" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2094.xml">
          <front>
            <title>Group Key Management Protocol (GKMP) Architecture</title>
            <seriesInfo name="DOI" value="10.17487/RFC2094"/>
            <seriesInfo name="RFC" value="2094"/>
            <author initials="H." surname="Harney" fullname="H. Harney">
              <organization/>
            </author>
            <author initials="C." surname="Muckenhirn" fullname="C. Muckenhirn">
              <organization/>
            </author>
            <date year="1997" month="July"/>
            <abstract>
              <t>This specification proposes a protocol to create grouped symmetric keys and distribute them amongst communicating peers.  This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC2627" target="https://www.rfc-editor.org/info/rfc2627" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2627.xml">
          <front>
            <title>Key Management for Multicast: Issues and Architectures</title>
            <seriesInfo name="DOI" value="10.17487/RFC2627"/>
            <seriesInfo name="RFC" value="2627"/>
            <author initials="D." surname="Wallner" fullname="D. Wallner">
              <organization/>
            </author>
            <author initials="E." surname="Harder" fullname="E. Harder">
              <organization/>
            </author>
            <author initials="R." surname="Agee" fullname="R. Agee">
              <organization/>
            </author>
            <date year="1999" month="June"/>
            <abstract>
              <t>This report contains a discussion of the difficult problem of key management for multicast communication sessions.  It focuses on two main areas of concern with respect to key management, which are, initializing the multicast group with a common net key and rekeying the multicast group.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6347" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <seriesInfo name="DOI" value="10.17487/RFC6347"/>
            <seriesInfo name="RFC" value="6347"/>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <author initials="N." surname="Modadugu" fullname="N. Modadugu">
              <organization/>
            </author>
            <date year="2012" month="January"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7959" target="https://www.rfc-editor.org/info/rfc7959" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7959.xml">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7959"/>
            <seriesInfo name="RFC" value="7959"/>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby" role="editor">
              <organization/>
            </author>
            <date year="2016" month="August"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful transfer protocol for constrained nodes and networks.  Basic CoAP messages work well for small payloads from sensors and actuators; however, applications will need to transfer larger payloads occasionally -- for instance, for firmware updates.  In contrast to HTTP, where TCP does the grunt work of segmenting and resequencing, CoAP is based on datagram transports such as UDP or Datagram Transport Layer Security (DTLS).  These transports only offer fragmentation, which is even more problematic in constrained nodes and networks, limiting the maximum size of resource representations that can practically be transferred.</t>
              <t>Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of "Block" options for transferring multiple blocks of information from a resource representation in multiple request-response pairs.  In many important cases, the Block options enable a server to be truly stateless: the server can handle each block transfer separately, with no need for a connection setup or other server-side memory of previous block transfers.  Essentially, the Block options provide a minimal way to transfer larger representations in a block-wise fashion.</t>
              <t>A CoAP implementation that does not support these options generally is limited in the size of the representations that can be exchanged, so there is an expectation that the Block options will be widely used in CoAP implementations.  Therefore, this specification updates RFC 7252.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml">
          <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 initials="T." surname="Bray" fullname="T. Bray" role="editor">
              <organization/>
            </author>
            <date year="2017" month="December"/>
            <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="RFC8610" target="https://www.rfc-editor.org/info/rfc8610" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8610.xml">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <seriesInfo name="DOI" value="10.17487/RFC8610"/>
            <seriesInfo name="RFC" value="8610"/>
            <author initials="H." surname="Birkholz" fullname="H. Birkholz">
              <organization/>
            </author>
            <author initials="C." surname="Vigano" fullname="C. Vigano">
              <organization/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <date year="2019" month="June"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8613" target="https://www.rfc-editor.org/info/rfc8613" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8613"/>
            <seriesInfo name="RFC" value="8613"/>
            <author initials="G." surname="Selander" fullname="G. Selander">
              <organization/>
            </author>
            <author initials="J." surname="Mattsson" fullname="J. Mattsson">
              <organization/>
            </author>
            <author initials="F." surname="Palombini" fullname="F. Palombini">
              <organization/>
            </author>
            <author initials="L." surname="Seitz" fullname="L. Seitz">
              <organization/>
            </author>
            <date year="2019" month="July"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE).  OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration.  Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8392" target="https://www.rfc-editor.org/info/rfc8392" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8392.xml">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8392"/>
            <seriesInfo name="RFC" value="8392"/>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="E." surname="Wahlstroem" fullname="E. Wahlstroem">
              <organization/>
            </author>
            <author initials="S." surname="Erdtman" fullname="S. Erdtman">
              <organization/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
              <organization/>
            </author>
            <date year="2018" month="May"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7641" target="https://www.rfc-editor.org/info/rfc7641" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7641.xml">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7641"/>
            <seriesInfo name="RFC" value="7641"/>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization/>
            </author>
            <date year="2015" month="September"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks.  The state of a resource on a CoAP server can change over time.  This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time.  The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-groupcomm-bis.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-core-groupcomm-bis-00.txt">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-00"/>
            <author initials="E" surname="Dijk" fullname="Esko Dijk">
              <organization/>
            </author>
            <author initials="C" surname="Wang" fullname="Chonggang Wang">
              <organization/>
            </author>
            <author initials="M" surname="Tiloca" fullname="Marco Tiloca">
              <organization/>
            </author>
            <date month="March" day="30" year="2020"/>
            <abstract>
              <t>This document specifies the use of the Constrained Application Protocol (CoAP) for group communication, using UDP/IP multicast as the 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 networks.  The most common of such use cases are also discussed.  This document replaces [RFC7390] and updates [RFC7252] and [RFC7641].</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-core-coap-pubsub" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-coap-pubsub.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-core-coap-pubsub-09.txt">
          <front>
            <title>Publish-Subscribe Broker for the Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-core-coap-pubsub-09"/>
            <author initials="M" surname="Koster" fullname="Michael Koster">
              <organization/>
            </author>
            <author initials="A" surname="Keranen" fullname="Ari Keranen">
              <organization/>
            </author>
            <author initials="J" surname="Jimenez" fullname="Jaime Jimenez">
              <organization/>
            </author>
            <date month="September" day="30" year="2019"/>
            <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.  There is work in progress to resolve some of the transfer layer issues by using a more RESTful approach.  Please see https://github.com/core-wg/pubsub/blob/master/proposal.txt</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-profile" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oscore-profile.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-ace-oscore-profile-11.txt">
          <front>
            <title>OSCORE profile of the Authentication and Authorization for Constrained Environments Framework</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-profile-11"/>
            <author initials="F" surname="Palombini" fullname="Francesca Palombini">
              <organization/>
            </author>
            <author initials="L" surname="Seitz" fullname="Ludwig Seitz">
              <organization/>
            </author>
            <author initials="G" surname="Selander" fullname="Goeran Selander">
              <organization/>
            </author>
            <author initials="M" surname="Gunnarsson" fullname="Martin Gunnarsson">
              <organization/>
            </author>
            <date month="June" day="18" year="2020"/>
            <abstract>
              <t>This memo 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, 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>
        </reference>
        <reference anchor="I-D.ietf-ace-dtls-authorize" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-dtls-authorize.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-ace-dtls-authorize-12.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-12"/>
            <author initials="S" surname="Gerdes" fullname="Stefanie Gerdes">
              <organization/>
            </author>
            <author initials="O" surname="Bergmann" fullname="Olaf Bergmann">
              <organization/>
            </author>
            <author initials="C" surname="Bormann" fullname="Carsten Bormann">
              <organization/>
            </author>
            <author initials="G" surname="Selander" fullname="Goeran Selander">
              <organization/>
            </author>
            <author initials="L" surname="Seitz" fullname="Ludwig Seitz">
              <organization/>
            </author>
            <date month="July" day="6" year="2020"/>
            <abstract>
              <t>This specification defines a profile of the ACE framework that allows constrained servers to delegate client authentication and authorization.  The protocol relies on DTLS version 1.2 for communication security between entities in a constrained network using either raw public keys or pre-shared keys.  A resource- constrained server can use this protocol to delegate management of authorization information to a trusted host with less severe limitations regarding processing power and memory.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-ace-mqtt-tls-profile" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-mqtt-tls-profile.xml" target="http://www.ietf.org/internet-drafts/draft-ietf-ace-mqtt-tls-profile-05.txt">
          <front>
            <title>MQTT-TLS profile of ACE</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-ace-mqtt-tls-profile-05"/>
            <author initials="C" surname="Sengul" fullname="Cigdem Sengul">
              <organization/>
            </author>
            <author initials="A" surname="Kirby" fullname="Anthony Kirby">
              <organization/>
            </author>
            <author initials="P" surname="Fremantle" fullname="Paul Fremantle">
              <organization/>
            </author>
            <date month="May" day="28" year="2020"/>
            <abstract>
              <t>This document specifies a profile for the ACE (Authentication and Authorization for Constrained Environments) framework to enable authorization in an 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.bormann-core-ace-aif" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.bormann-core-ace-aif.xml" target="http://www.ietf.org/internet-drafts/draft-bormann-core-ace-aif-09.txt">
          <front>
            <title>An Authorization Information Format (AIF) for ACE</title>
            <seriesInfo name="Internet-Draft" value="draft-bormann-core-ace-aif-09"/>
            <author initials="C" surname="Bormann" fullname="Carsten Bormann">
              <organization/>
            </author>
            <date month="June" day="27" year="2020"/>
            <abstract>
              <t>Constrained Devices as they are used in the "Internet of Things" need security.  One important element of this security is that devices in the Internet of Things need to be able to decide which operations requested of them should be considered authorized, need to ascertain that the authorization to request the operation does apply to the actual requester, and need to ascertain that other devices they place requests on are the ones they intended.  To transfer detailed authorization information from an authorization manager (such as an ACE-OAuth Authorization Server) to a device, a representation format is needed.  This document provides a suggestion for such a format, the Authorization Information Format (AIF).  AIF is defined both as a general structure that can be used for many different applications and as a specific refinement that describes REST resources and the permissions on them.</t>
            </abstract>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="req" numbered="true" toc="default">
      <name>Requirements on Application Profiles</name>
      <t>This section lists the requirements on application profiles of this specification,for the convenience of application profile designers.</t>
      <ul spacing="normal">
        <li>REQ1: Specify the encoding and value of the identifier of group or topic, for scope entries of 'scope' (see <xref target="ssec-authorization-request" format="default"/>).</li>
        <li>REQ2: Specify the encoding and value of roles, for scope entries of 'scope' (see <xref target="ssec-authorization-request" format="default"/>).</li>
        <li>REQ3: If used, specify the acceptable values for 'sign_alg' (see <xref target="token-post" format="default"/>).</li>
        <li>REQ4: If used, specify the acceptable values for 'sign_parameters' (see <xref target="token-post" format="default"/>).</li>
        <li>REQ5: If used, specify the acceptable values for 'sign_key_parameters' (see <xref target="token-post" format="default"/>).</li>
        <li>REQ6: If used, specify the acceptable values for 'pub_key_enc' (see <xref target="token-post" format="default"/>).</li>
        <li>REQ7: Specify the exact format of the 'key' value (see <xref target="gid-post" format="default"/>).</li>
        <li>REQ8: Specify the acceptable values of 'gkty' (see <xref target="gid-post" format="default"/>).</li>
        <li>REQ9: Specify the format of the identifiers of group members (see <xref target="gid-post" format="default"/>).</li>
        <li>REQ10: Specify the communication protocol the members of the group must use (e.g., multicast CoAP).</li>
        <li>REQ11: Specify the security protocol the group members must use to protect their communication (e.g., group OSCORE). This must provide encryption, integrity and replay protection.</li>
        <li>REQ12: Specify and register the application profile identifier (see <xref target="gid-post" format="default"/>).</li>
        <li>REQ13: Specify policies at the KDC to handle ids that are not included in get_pub_keys (see <xref target="pubkey-fetch" format="default"/>).</li>
        <li>REQ14: If used, specify the format and content of 'group_policies' and its entries. Specify the policies default values (see <xref target="gid-post" format="default"/>).</li>
        <li>REQ15: Specify the format of newly-generated individual keying material for group members, or of the information to derive it, and corresponding CBOR label (see <xref target="node-get" format="default"/>).</li>
        <li>REQ16: Specify how the communication is secured between Client and KDC. Optionally, specify tranport profile of ACE <xref target="I-D.ietf-ace-oauth-authz" format="default"/> to use between Client and KDC (see <xref target="ssec-key-distribution-exchange" format="default"/>.</li>
        <li>REQ17: Specify how the nonce N_S is generated, if the token was not posted (e.g. if it is used directly to validate TLS instead).</li>
        <li>REQ18: Specify if 'mgt_key_material' used, and if yes specify its format and content (see <xref target="gid-post" format="default"/>). If the usage of 'mgt_key_material' is indicated and its format defined for a specific key management scheme, that format must explicitly indicate the key management scheme itself. If a new rekeying scheme is defined to be used for an existing 'mgt_key_material' in an existing profile, then that profile will have to be updated accordingly, especially with respect to the usage of 'mgt_key_material' related format and content.</li>
        <li>REQ19: Define the initial value of the 'num' parameter (sse <xref target="gid-post" format="default"/>).</li>
        <li>OPT1: Optionally, specify the encoding of public keys, of 'client_cred', and of 'pub_keys' if COSE_Keys are not used (see <xref target="gid-post" format="default"/>).</li>
        <li>OPT2: Optionally, specify the negotiation of parameter values for signature algorithm and signature keys, if 'sign_info' is not used (see <xref target="token-post" format="default"/>).</li>
        <li>OPT3: Optionally, specify the encoding of 'pub_keys_repos' if the default is not used (see <xref target="gid-post" format="default"/>).</li>
        <li>OPT4: Optionally, specify policies that instruct clients to retain messages and for how long, if they are unsuccessfully decrypted (see <xref target="update-keys" format="default"/>). This makes it possible to decrypt such messages after getting updated keying material.</li>
        <li>OPT5: Optionally, specify the behavior of the handler in case of failure to retrieve a public key for the specific node (see <xref target="gid-post" format="default"/>).</li>
        <li>OPT6: Optionally, specify possible or required payload formats for specific error cases.</li>
        <li>OPT7: Optionally, specify CBOR values to use for abbreviating identifiers of roles in the group or topic (see <xref target="ssec-authorization-request" format="default"/>).</li>
        <li>OPT8: Optionally, specify policies for the KDC to perform group rekeying after receiving a Key Renewal Request (see <xref target="new-keys" format="default"/>).</li>
        <li>OPT9: Optionally, specify the functionalities implemented at the 'control_path' resource hosted at the Client, including message exchange encoding and other details (see <xref target="gid-post" format="default"/>).</li>
        <li>OPT10: Optionally, specify how the identifier of the sender's public key is included in the group request (see <xref target="update-pub-key" format="default"/>).</li>
      </ul>
    </section>
    <section anchor="sec-document-updates" numbered="true" toc="default">
      <name>Document Updates</name>
      <t>RFC EDITOR: PLEASE REMOVE THIS SECTION.</t>
      <section anchor="sec-04-05" numbered="true" toc="default">
        <name>Version -04 to -05</name>
        <ul spacing="normal">
          <li>Updated uppercase/lowercase URI segments for KDC resources.</li>
          <li>Supporting single Access Token for multiple groups/topics.</li>
          <li>Added 'control_path' parameter in the Joining Request.</li>
          <li>Added 'peer_roles' parameter to support legal requesters/responders.</li>
          <li>Clarification on stopping using owned keying material.</li>
          <li>Clarification on different reasons for processing failures, related policies, and requirement OPT4.</li>
          <li>Added a KDC sub-resource for group members to upload a new public key.</li>
          <li>Possible group rekeying following an individual Key Renewal Request.</li>
          <li>Clarified meaning of requirement REQ3; added requirement OPT8.</li>
          <li>Editorial improvements.</li>
        </ul>
      </section>
      <section anchor="sec-03-04" numbered="true" toc="default">
        <name>Version -03 to -04</name>
        <ul spacing="normal">
          <li>Revised RESTful interface, as to methods and parameters.</li>
          <li>Extended processing of joining request, as to check/retrieval of public keys.</li>
          <li>Revised and extended profile requirements.</li>
          <li>Clarified specific usage of parameters related to signature algorithms/keys.</li>
          <li>Included general content previously in draft-ietf-ace-key-groupcomm-oscore</li>
          <li>Registration of media type and content format application/ace-group+cbor</li>
          <li>Editorial improvements.</li>
        </ul>
      </section>
      <section anchor="sec-02-03" numbered="true" toc="default">
        <name>Version -02 to -03</name>
        <ul spacing="normal">
          <li>Exchange of information on the countersignature algorithm and related parameters, during the Token POST (Section 3.3).</li>
          <li>Restructured KDC interface, with new possible operations (Section 4).</li>
          <li>Client PoP signature for the Joining Request upon joining (Section 4.1.2.1).</li>
          <li>Revised text on group member removal (Section 5).</li>
          <li>Added more profile requirements (Appendix A).</li>
        </ul>
      </section>
      <section anchor="sec-01-02" numbered="true" toc="default">
        <name>Version -01 to -02</name>
        <ul spacing="normal">
          <li>Editorial fixes.</li>
          <li>Distinction between transport profile and application profile (Section 1.1).</li>
          <li>New parameters 'sign_info' and 'pub_key_enc' to negotiate parameter values for signature algorithm and signature keys (Section 3.3).</li>
          <li>New parameter 'type' to distinguish different Key Distribution Request messages (Section 4.1).</li>
          <li>New parameter 'client_cred_verify' in the Key Distribution Request to convey a Client signature (Section 4.1).</li>
          <li>Encoding of 'pub_keys_repos' (Section 4.1).</li>
          <li>Encoding of 'mgt_key_material' (Section 4.1).</li>
          <li>Improved description on retrieval of new or updated keying material (Section 6).</li>
          <li>Encoding of 'get_pub_keys' in Public Key Request (Section 7.1).</li>
          <li>Extended security considerations (Sections 10.1 and 10.2).</li>
          <li>New "ACE Public Key Encoding" IANA Registry (Section 11.2).</li>
          <li>New "ACE Groupcomm Parameters" IANA Registry (Section 11.3), populated with the entries in Section 8.</li>
          <li>New "Ace Groupcomm Request Type" IANA Registry (Section 11.4), populated with the values in Section 9.</li>
          <li>New "ACE Groupcomm Policy" IANA Registry (Section 11.7) populated with two entries "Sequence Number Synchronization Method" and "Key Update Check Interval" (Section 4.2).</li>
          <li>Improved list of requirements for application profiles (Appendix A).</li>
        </ul>
      </section>
      <section anchor="sec-00-01" numbered="true" toc="default">
        <name>Version -00 to -01</name>
        <ul spacing="normal">
          <li>Changed name of 'req_aud' to 'audience' in the Authorization Request (Section 3.1).</li>
          <li>Defined error handling on the KDC (Sections 4.2 and 6.2).</li>
          <li>Updated format of the Key Distribution Response as a whole (Section 4.2).</li>
          <li>Generalized format of 'pub_keys' in the Key Distribution Response (Section 4.2).</li>
          <li>Defined format for the message to request leaving the group (Section 5.2).</li>
          <li>Renewal of individual keying material and methods for group rekeying initiated by the KDC (Section 6).</li>
          <li>CBOR type for node identifiers in 'get_pub_keys' (Section 7.1).</li>
          <li>Added section on parameter identifiers and their CBOR keys (Section 8).</li>
          <li>Added request types for requests to a Join Response (Section 9).</li>
          <li>Extended security considerations (Section 10).</li>
          <li>New IANA registries "ACE Groupcomm Key Registry", "ACE Groupcomm Profile Registry", "ACE Groupcomm Policy Registry" and "Sequence Number Synchronization Method Registry" (Section 11).</li>
          <li>Added appendix about requirements for application profiles of ACE on group communication (Appendix A).</li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments" toc="default">
      <name>Acknowledgments</name>
      <t>The following individuals were helpful in shaping this document: Carsten Bormann, Rikard Hoeglund, Ben Kaduk, John Mattsson, Daniel Migault, Jim Schaad, Ludwig Seitz, Goeran Selander and Peter van der Stok.</t>
      <t>The work on this document has been partly supported by VINNOVA and the Celtic-Next project CRITISEC; and by the EIT-Digital High Impact Initiative ACTIVE.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAK2SDF8AA+29+3Ybx5U3+j+fog+11qGYAJBIXc3Y8dCkbDOxLiPSyXwn
9tFqAg2yRwAa6W6IZmR9y48x31oz/54Hy5Ocfa3aVV0NkpKc8cxYK8sBge66
7tq1r789HA432rKdFXvZH4vL7EVdvSmbslqUi7NsWtXZV3W1WmYH1Xy+WpTj
vIWfslWDv+4fPNnIT0/r4s31X92YVONFPofOJnU+bYdl0U6H+bgYvi4uh2f4
/BgeH959vLFRLuu9rK1XTbt79+4nd3c3Ls72sM/sz1X9Grug5jeg3b2saScb
G+NqAl/vZSto8vHGstzbyLK2Gu9ll0UDH5uqbuti2ri/L+f2T3hyUizb871s
d2MjX7XnVY0N4L+h/H+WlQt4/stR9iKfVfPTclG6X3hSX9b5Ylw04zzxRFXD
2J7U5bhpYAn3v3A/NDCsAiZxUtXNeT5fNGd5my+y3XvuiXHZXsIal02b+++q
CXR4/GS48/D+/bvZMYz/9Xk1m5sHVou2hveOL4pJsXDfF/O8nO1lUx3qaKlD
/adCRjeCTUjP/ekoOyln1TiPJv40r8dV/BPN+OXR8ZPUbI+afPqvVT3R2e7+
rLOd4/hGLY3vn+py1BQbG4uqngNRvin2NuDxl18ePLp7/5M9/ri7s6MfHz5y
3z58fO+xfHy8s/vQfXx0Xz4+2n2wq98+uv8IPx4ND0dE5eOqKYb1dPx458Hu
adkMYSFW43btI/nsrAkewJNSIXEO8T9/6/ltmdf5vIlaruHXhv7PHTN84uD5
8ZPR/uysqsv2nF/KspD8aRuP9p/t09+TvIWdmOYzWEL8W3gHtpP5dvinvD7D
rT5v22Wzd+fOxcXFqMwX+QhavJM3TXm2mBeLtrmD86b/jH44b+ezW7lvZ6Nc
TDv79MBtzu7dT+75j7oNuw93H+mW3buvHx998kBfe7zrPz7cues/amOP732i
G/no4f2d7lp6XgUb1f15XOXL4XJ12qxOu5vE27Csq2kJSxf/PGlnzZB3oPxb
9+f5X9t2iI9E75/iKi0W3D0+mJdTWLCN4XCY5adAbPm43dg4OS+bDHjwChc+
mxTTclE02bxomvysyHilmyxfTDJoflxMVjX8jLy8Lv66KpoW+S7+OoHTWZen
K/qC1iIDDo5/QAPARvKZXBLteUFMG9jNvLgAzj0ATouNt8W4zcb2bmiy06K9
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
w9Uk6akkDrCCY4sto1Eebf4WdJztlLSlZxUJVJvU1SZn2cHvs5lMh6AEuOpF
A9MIAnBwK84WBlSSENNzjypAjQon8NCNLAvNsfyNYLyyfUASNCrWr2tyG1Gk
WePxqRTOIIDALRZvStifOSGB0eaQYStiJ+LjCCE4A+7omXxwg4RBK1wKKrLq
5px1tKeahGkQk2DoJpEqThFD4gQSRnDXyfnQRrhQ4KbGq6JZNVL5Z142cwTK
GWSTFd1AZH2vi9OqIoBGTGlVwDl3XoT8y6gaUIQxOkqM311hjPSKKghwW6yA
pa4u/nq5agMuO4FPdJR7u/ZQpql+dd2s9oLGsbaDWtbbgV5RDnNtfU/h/dzb
qj6wvjGtDOcNcqnbSIhidpkwz/b1jzOS1vt2zF3uEcqtb1O9OJKsE3jUIohX
dXhkzO3uD+8+3EO/hCT5UE5Qn6vijgv2llMvxwf6I5P7zAmaxFCAjzGiCcIo
LtyRTSAtggjHdxCfLTo+F3zosXwB8hbnsgWdDQl4gmeJbVEhQzdogkGltcYA
JiPHHWTjOm/OxcBOx40sDggDTQ5cwtYnFN7+HjDwCF0N0lPcB+W/njw/fL6H
Ub3IrEgLmAkRLJknL3SugWepOfOJD1wpdchikyI0N/Kl4hdX5j69LT5dVjcQ
nT982DmXL/G9M5j7bVqN7atvQ2hkvJjCf+NrS9PZSN9whlubs+ab2cWEbIm7
Dcws4ctKTi7Wd+s12pA7eh0ZHYFqr7jM/2X0L5iOJ85HWkicipR7RHGlmrFh
V9BFZRut8WzoEjlbimjIqMrvjIbw6o+csuuzHLELupglBrYxQbAcIOCMB6bo
SYPo3/Bz9Zp9/AwrVFHapJKeTtnqq7Cun/PtTNJZ/brJ/rrCcg5cthETAzi+
NV8ONRiISE/TBo2xUCKuXNAQrLQsChvgZakJ2MzEMYchIrmPyTg3ASog7I1f
20XQMAiNTw4UCrFYwcPCFQNPgCSCd2JaNCJSoiM4IBgJVTmMVITpGN04eiY5
EjVVSUv8hIv37B1dNHsJVUyHrt0nx9K3C68ubUtQhigiHI18lJBnfBQQF8dh
kTTptla0gyaOX6iRDa7q2XCZw0ubTpHZFIMZyecCckVpQji/Zo9qBpBKL357
fIQ1CKkuIboKS7D0ErtF8CLxNuCyzriuKFVsZRuIn+qhYZq3y+ln29k3mJh7
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

-->

</rfc>
