< draft-ietf-ace-key-groupcomm-01.txt   draft-ietf-ace-key-groupcomm-02.txt >
ACE Working Group F. Palombini ACE Working Group F. Palombini
Internet-Draft Ericsson AB Internet-Draft Ericsson AB
Intended status: Standards Track M. Tiloca Intended status: Standards Track M. Tiloca
Expires: September 9, 2019 RISE AB Expires: January 6, 2020 RISE AB
March 08, 2019 July 05, 2019
Key Provisioning for Group Communication using ACE Key Provisioning for Group Communication using ACE
draft-ietf-ace-key-groupcomm-01 draft-ietf-ace-key-groupcomm-02
Abstract Abstract
This document defines message formats and procedures for requesting This document defines message formats and procedures for requesting
and distributing group keying material using the ACE framework, to and distributing group keying material using the ACE framework, to
protect communications between group members. protect communications between group members.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 33 skipping to change at page 1, line 33
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 9, 2019. This Internet-Draft will expire on January 6, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Authorization to Join a Group . . . . . . . . . . . . . . . . 5 3. Authorization to Join a Group . . . . . . . . . . . . . . . . 6
3.1. Authorization Request . . . . . . . . . . . . . . . . . . 6 3.1. Authorization Request . . . . . . . . . . . . . . . . . . 7
3.2. Authorization Response . . . . . . . . . . . . . . . . . 7 3.2. Authorization Response . . . . . . . . . . . . . . . . . 7
3.3. Token Post . . . . . . . . . . . . . . . . . . . . . . . 8 3.3. Token Post . . . . . . . . . . . . . . . . . . . . . . . 8
4. Key Distribution . . . . . . . . . . . . . . . . . . . . . . 8 4. Key Distribution . . . . . . . . . . . . . . . . . . . . . . 11
4.1. Key Distribution Request . . . . . . . . . . . . . . . . 9 4.1. Key Distribution Request . . . . . . . . . . . . . . . . 12
4.2. Key Distribution Response . . . . . . . . . . . . . . . . 10 4.2. Key Distribution Response . . . . . . . . . . . . . . . . 13
5. Removal of a Node from the Group . . . . . . . . . . . . . . 12 5. Removal of a Node from the Group . . . . . . . . . . . . . . 16
5.1. Expired Authorization . . . . . . . . . . . . . . . . . . 12 5.1. Expired Authorization . . . . . . . . . . . . . . . . . . 16
5.2. Request to Leave the Group . . . . . . . . . . . . . . . 12 5.2. Request to Leave the Group . . . . . . . . . . . . . . . 16
6. Retrieval of Updated Keying Material . . . . . . . . . . . . 13 6. Retrieval of New or Updated Keying Material . . . . . . . . . 17
6.1. Key Re-Distribution Request . . . . . . . . . . . . . . . 14 6.1. Key Re-Distribution Request . . . . . . . . . . . . . . . 18
6.2. Key Re-Distribution Response . . . . . . . . . . . . . . 14 6.2. Key Re-Distribution Response . . . . . . . . . . . . . . 19
7. Retrieval of Public Keys for Group Members . . . . . . . . . 15 7. Retrieval of Public Keys for Group Members . . . . . . . . . 19
7.1. Public Key Request . . . . . . . . . . . . . . . . . . . 15 7.1. Public Key Request . . . . . . . . . . . . . . . . . . . 20
7.2. Public Key Response . . . . . . . . . . . . . . . . . . . 16 7.2. Public Key Response . . . . . . . . . . . . . . . . . . . 20
8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 8. ACE Groupcomm Parameters . . . . . . . . . . . . . . . . . . 21
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 9. ACE Groupcomm Request Type . . . . . . . . . . . . . . . . . 22
9.1. ACE Groupcomm Key Registry . . . . . . . . . . . . . . . 16 10. Security Considerations . . . . . . . . . . . . . . . . . . . 23
9.2. ACE Groupcomm Profile Registry . . . . . . . . . . . . . 17 10.1. Update of Keying Material . . . . . . . . . . . . . . . 24
9.3. Expert Review Instructions . . . . . . . . . . . . . . . 18 10.2. Block-Wise Considerations . . . . . . . . . . . . . . . 24
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
10.1. Normative References . . . . . . . . . . . . . . . . . . 18 11.1. ACE Authorization Server Request Creation Hints Registry 25
10.2. Informative References . . . . . . . . . . . . . . . . . 19 11.2. ACE Public Key Encoding Registry . . . . . . . . . . . . 25
Appendix A. Document Updates . . . . . . . . . . . . . . . . . . 20 11.3. ACE Groupcomm Parameters Registry . . . . . . . . . . . 26
A.1. Version -00 to -01 . . . . . . . . . . . . . . . . . . . 20 11.4. Ace Groupcomm Request Type Registry . . . . . . . . . . 26
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 20 11.5. ACE Groupcomm Key Registry . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 11.6. ACE Groupcomm Profile Registry . . . . . . . . . . . . . 28
11.7. ACE Groupcomm Policy Registry . . . . . . . . . . . . . 28
11.8. Sequence Number Synchronization Method Registry . . . . 29
11.9. Expert Review Instructions . . . . . . . . . . . . . . . 29
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 30
12.1. Normative References . . . . . . . . . . . . . . . . . . 30
12.2. Informative References . . . . . . . . . . . . . . . . . 31
Appendix A. Requirements on Application Profiles . . . . . . . . 33
Appendix B. Document Updates . . . . . . . . . . . . . . . . . . 33
B.1. Version -01 to -02 . . . . . . . . . . . . . . . . . . . 34
B.2. Version -00 to -01 . . . . . . . . . . . . . . . . . . . 34
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35
1. Introduction 1. Introduction
This document expands the ACE framework [I-D.ietf-ace-oauth-authz] to This document expands the ACE framework [I-D.ietf-ace-oauth-authz] to
define the format of messages used to request, distribute and renew define the format of messages used to request, distribute and renew
the keying material in a group communication scenario, e.g. based on the keying material in a group communication scenario, e.g. based on
multicast [RFC7390] or on publishing-subscribing multicast [RFC7390][I-D.dijk-core-groupcomm-bis] or on publishing-
[I-D.ietf-core-coap-pubsub]. subscribing [I-D.ietf-core-coap-pubsub]. The ACE framework is based
on CBOR [RFC7049], so CBOR is the format used in this specification.
However, using JSON [RFC8259] instead of CBOR is possible, using the
conversion method specified in Sections 4.1 and 4.2 of [RFC7049].
Profiles that use group communication can build on this document to Profiles that use group communication can build on this document to
specify the selection of the message parameters defined in this specify the selection of the message parameters defined in this
document to use and their values. Known applications that can document to use and their values. Known applications that can
benefit from this document would be, for example, profiles addressing benefit from this document would be, for example, those addressing
group communication based on multicast [RFC7390] or publishing/ group communication based on multicast
subscribing [I-D.ietf-core-coap-pubsub] in ACE. [RFC7390][I-D.dijk-core-groupcomm-bis] or publishing/subscribing
[I-D.ietf-core-coap-pubsub] in ACE.
If the application requires backward and forward security, updated If the application requires backward and forward security, updated
keying material is generated and distributed to the group members keying material is generated and distributed to the group members
(rekeying), when membership changes. A key management scheme (rekeying), when membership changes. A key management scheme
performs the actual distribution of the updated keying material to performs the actual distribution of the updated keying material to
the group. In particular, the key management scheme rekeys the the group. In particular, the key management scheme rekeys the
current group members when a new node joins the group, and the current group members when a new node joins the group, and the
remaining group members when a node leaves the group. This document remaining group members when a node leaves the group. This document
provides a message format for group rekeying that allows to fulfill provides a message format for group rekeying that allows to fulfill
these requirements. Rekeying mechanisms can be based on [RFC2093], these requirements. Rekeying mechanisms can be based on [RFC2093],
skipping to change at page 3, line 28 skipping to change at page 3, line 47
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. These document are to be interpreted as described in [RFC2119]. These
words may also appear in this document in lowercase, absent their words may also appear in this document in lowercase, absent their
normative meanings. normative meanings.
Readers are expected to be familiar with the terms and concepts Readers are expected to be familiar with the terms and concepts
described in [I-D.ietf-ace-oauth-authz] and [RFC8152], such as described in [I-D.ietf-ace-oauth-authz] and [RFC8152], such as
Authorization Server (AS) and Resource Server (RS). Authorization Server (AS) and Resource Server (RS).
This document additionally uses the following terminology:
o Transport profile, to indicate a profile of ACE as per
Section 5.6.4.3 of [I-D.ietf-ace-oauth-authz]. That is, 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. Tranport profiles of ACE
include, for instance, [I-D.ietf-ace-oscore-profile],
[I-D.ietf-ace-dtls-authorize] and [I-D.ietf-ace-mqtt-tls-profile].
o Application profile, to indicate a profile of ACE that defines how
applications enforce and use supporting security services they
require. These services include, for instance, provisioning,
revocation and (re-)distribution of keying material. An
application profile may define specific procedures and message
formats.
2. Overview 2. Overview
+------------+ +-----------+ +------------+ +-----------+
| AS | | KDC | | AS | | KDC |
| | .-------->| | | | .-------->| |
+------------+ / +-----------+ +------------+ / +-----------+
^ / ^ /
| / | /
v / +-----------+ v / +-----------+
+------------+ / +------------+ |+-----------+ +------------+ / +------------+ |+-----------+
skipping to change at page 5, line 26 skipping to change at page 6, line 6
|---- Key Distribution Request ------->| | | |---- Key Distribution Request ------->| | |
| | | | | | | |
|<--- Key Distribution Response ------ | --- Group Rekeying ----->| |<--- Key Distribution Response ------ | --- Group Rekeying ----->|
| | | | | |
|<================== Protected communication ===|================>| |<================== Protected communication ===|================>|
| | | | | |
Figure 2: Message Flow Upon New Node's Joining Figure 2: Message Flow Upon New Node's Joining
The exchange of Authorization Request and Authorization Response The exchange of Authorization Request and Authorization Response
between Client and AS MUST be secured, as specified by the ACE between Client and AS MUST be secured, as specified by the transport
profile used between Client and KDC. profile of ACE used between Client and KDC.
The exchange of Key Distribution Request and Key Distribution The exchange of Key Distribution Request and Key Distribution
Response between Client and KDC MUST be secured, as a result of the Response between Client and KDC MUST be secured, as a result of the
ACE profile used between Client and KDC. transport profile of ACE used between Client and KDC.
All further communications between the Client and the KDC MUST be All further communications between the Client and the KDC MUST be
secured, for instance with the same security mechanism used for the secured, for instance with the same security mechanism used for the
Key Distribution exchange. Key Distribution exchange.
All further communications between a Client and the other group All communications between a Client and the other group members MUST
members MUST be secured using the keying material provided in be secured using the keying material provided in Section 4.
Section 4.
3. Authorization to Join a Group 3. Authorization to Join a Group
This section describes in detail the format of messages exchanged by This section describes in detail the format of messages exchanged by
the participants when a node requests access to a group. The first the participants when a node requests access to a group. The first
part of the exchange is based on ACE [I-D.ietf-ace-oauth-authz]. part of the exchange is based on ACE [I-D.ietf-ace-oauth-authz].
As defined in [I-D.ietf-ace-oauth-authz], the Client requests from As defined in [I-D.ietf-ace-oauth-authz], the Client requests from
the AS an authorization to join the group through the KDC (see the AS an authorization to join the group through the KDC (see
Section 3.1). If the request is approved and authorization is Section 3.1). If the request is approved and authorization is
granted, the AS provides the Client with a proof-of-possession access granted, the AS provides the Client with a proof-of-possession access
token and parameters to securely communicate with the KDC (see token and parameters to securely communicate with the KDC (see
Section 3.2). Communications between the Client and the AS MUST be Section 3.2). Communications between the Client and the AS MUST be
secured, and depends on the profile of ACE used. secured, according to the transport profile of ACE used. The
Content-Format used in the messages is the one specified by the used
transport profile of ACE (e.g. application/ace+cbor for the first two
messages and application/cwt for the third message, depending on the
format of the access token).
Figure 3 gives an overview of the exchange described above. Figure 3 gives an overview of the exchange described above.
Client AS KDC Client AS KDC
| | | | | |
|---- Authorization Request: POST /token ------>| | |---- Authorization Request: POST /token ------>| |
| | | | | |
|<--- Authorization Response: 2.01 (Created) ---| | |<--- Authorization Response: 2.01 (Created) ---| |
| | | | | |
|----- POST Token: POST /authz-info --------------->| |----- POST Token: POST /authz-info --------------->|
skipping to change at page 8, line 5 skipping to change at page 8, line 37
The encoding of the group or topic identifier and of the role The encoding of the group or topic identifier and of the role
identifiers is application specific. identifiers is application specific.
o Other additional parameters as defined in o Other additional parameters as defined in
[I-D.ietf-ace-oauth-authz], if necessary. [I-D.ietf-ace-oauth-authz], if necessary.
The access token MUST contain all the parameters defined above The access token MUST contain all the parameters defined above
(including the same 'scope' as in this message, if present, or the (including the same 'scope' as in this message, if present, or the
'scope' of the Authorization Request otherwise), and additionally 'scope' of the Authorization Request otherwise), and additionally
other optional parameters the profile requires. other optional parameters that the transport profile of ACE requires.
When receiving an Authorization Request from a Client that was When receiving an Authorization Request from a Client that was
previously authorized, and which still owns a valid non expired previously authorized, and which still owns a valid non expired
access token, the AS can simply reply with an Authorization Response access token, the AS replies with an Authorization Response with a
including a new access token. new access token.
3.3. Token Post 3.3. Token Post
The Client sends a CoAP POST request including the access token to The Client sends a CoAP POST request including the access token to
the KDC, as specified in section 5.8.1 of [I-D.ietf-ace-oauth-authz]. the KDC, as specified in Section 5.8.1 of [I-D.ietf-ace-oauth-authz].
If the specific ACE profile defines it, the Client MAY use a If the specific transport profile of ACE defines it, the Client MAY
different endpoint than /authz-info at the KDC to post the access use a different endpoint than /authz-info at the KDC to post the
token to. After successful verification, the Client is authorized to access token to.
receive the group keying material from the KDC and join the group.
Optionally, the Client might need to request necessary 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" defined in Section 8.14 of
[I-D.ietf-ace-oauth-authz], and includes also the following
parameters:
o 'sign_info' defined in Section 3.3.1, encoding the CBOR simple
value Null, to require information and parameters on the signature
algorithm and on the public keys used in the group.
o 'pub_key_enc' defined in Section 3.3.2, encoding the CBOR simple
value Null, to require information on the exact encoding of public
keys used in the group.
The CDDL notation of the 'sign_info' and 'pub_key_enc' parameters
formatted as in the request is given below.
sign_info_req = nil
pub_key_enc_req = nil
Alternatively, the joining node may retrieve this information by
other means.
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 [I-D.ietf-ace-oauth-authz].
The payload of the 2.01 response is a CBOR map, which MUST include a
nonce N generated by the KDC. The Client may use this nonce for
proving the possession of its own private key (see the
'client_cred_verify' parameter in Section 4).
Optionally, if they were included in the request, the AS MAY include
the 'sign_info' parameter as well as the 'pub_key_enc' parameter
defined in Section 3.3.1 and Section 3.3.2 of this specification,
respectively.
The 'sign_info' parameter MUST be present if the POST request
included the 'sign_info' parameter with value Null. If present, the
'sign_info' parameter of the 2.01 (Created) response is a CBOR array
formatted as follows.
o The first element 'sign_alg' is an integer or a text string,
indicating the signature algorithm used in the group. It is
required of the application profiles to define specific values for
this parameter.
o The second element 'sign_parameters' indicates the parameters of
the signature algorithm. Its structure depends on the value of
'sign_alg'. It is required of the application profiles to define
specific values for this parameter. If no parameters of the
signature algorithm are specified, 'sign_parameters' MUST be
encoding the CBOR simple value Null.
o The third element 'sign_key_parameters' indicates the parameters
of the key used with the signature algorithm. Its structure
depends on the value of 'sign_alg'. It is required of the
application profiles to define specific values for this parameter.
If no parameters of the key used with the signature algorithm are
specified, 'sign_key_parameters' MUST be encoding the CBOR simple
value Null.
The 'pub_key_enc' parameter MUST be present if the POST request
included the 'pub_key_enc' parameter with value Null. If present,
the 'pub_key_enc' parameter of the 2.01 (Created) response is a CBOR
integer, indicating the encoding of public keys used in the group.
The values of this field are registered in the "ACE Public Key
Encoding" Registry, defined in Section 11.2. It is required of the
application profiles to define specific values to use for this
parameter.
The CDDL notation of the 'sign_info' and 'pub_key_enc' parameters
formatted as in the response is given below.
sign_info_res = [
sign_alg : int / tstr,
sign_parameters : any / nil,
sign_key_parameters : any / nil
]
pub_key_enc_res = int
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.
Note that this step could be merged with the following message from Note that this step could be merged with the following message from
the Client to the KDC, namely Key Distribution Request. the Client to the KDC, namely Key Distribution Request.
3.3.1. 'sign_info' Parameter
The 'sign_info' parameter is an OPTIONAL parameter of the AS Request
Creation Hints message defined in Section 5.1.2. of
[I-D.ietf-ace-oauth-authz]. 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.
3.3.2. 'pub_key_enc' Parameter
The 'pub_key_enc' parameter is an OPTIONAL parameter of the AS
Request Creation Hints message defined in Section 5.1.2. of
[I-D.ietf-ace-oauth-authz]. This parameter contains information
about the exact encoding of public keys to be used between the Client
and the RS. Its exact content is application specific.
4. Key Distribution 4. Key Distribution
This section defines how the keying material used for group This section defines how the keying material used for group
communication is distributed from the KDC to the Client, when joining communication is distributed from the KDC to the Client, when joining
the group as a new member. the group as a new member.
If not previously established, the Client and the KDC MUST first If not previously established, the Client and the KDC MUST first
establish a pairwise secure communication channel using ACE. The establish a pairwise secure communication channel using ACE. The
exchange of Key Distribution Request-Response MUST occur over that exchange of Key Distribution Request-Response MUST occur over that
secure channel. The Client and the KDC MAY use that same secure secure channel. The Client and the KDC MAY use that same secure
channel to protect further pairwise communications, that MUST be channel to protect further pairwise communications, that MUST be
secured. secured.
During this exchange, the Client sends a request to the AS, During this exchange, the Client sends a request to the AS,
specifying the group it wishes to join (see Section 4.1). Then, the specifying the group it wishes to join (see Section 4.1). Then, the
KDC verifies the access token and that the Client is authorized to KDC verifies the access token and that the Client is authorized to
join that group; if so, it provides the Client with the keying join that group; if so, it provides the Client with the keying
material to securely communicate with the member of the group (see material to securely communicate with the member of the group (see
Section 4.2). Section 4.2). The Content-Format used in the messages is set to
application/cbor.
Figure 4 gives an overview of the exchange described above. Figure 4 gives an overview of the exchange described above.
Client KDC Client KDC
| | | |
|---- Key Distribution Request: POST /group-id --->| |---- Key Distribution Request: POST /group-id --->|
| | | |
|<--- Key Distribution Response: 2.01 (Created) ---| |<--- Key Distribution Response: 2.01 (Created) ---|
| | | |
skipping to change at page 9, line 39 skipping to change at page 12, line 30
joining the group or of a current member leaving the group. The key joining the group or of a current member leaving the group. The key
management scheme used to send such messages could rely on, e.g., management scheme used to send such messages could rely on, e.g.,
multicast in case of a new node joining or unicast in case of a node multicast in case of a new node joining or unicast in case of a node
leaving the group. leaving the group.
Note that proof-of-possession to bind the access token to the Client Note that proof-of-possession to bind the access token to the Client
is performed by using the proof-of-possession key bound to the access is performed by using the proof-of-possession key bound to the access
token for establishing secure communication between the Client and token for establishing secure communication between the Client and
the KDC. the KDC.
If the application requires backward security, the KDC SHALL generate
new group keying material and securely distribute it to all the
current group members, using the message format defined in this
section. Application profiles may define alternative message
formats.
4.1. Key Distribution Request 4.1. Key Distribution Request
The Client sends a Key Distribution Request to the KDC. This The Client sends a Key Distribution Request to the KDC. This
corresponds to a CoAP POST request to the endpoint in the KDC corresponds to a CoAP POST request to the endpoint in the KDC
associated to the group to join. The endpoint in the KDC is associated to the group to join. The endpoint in the KDC is
associated to the 'scope' value of the Authorization Request/ associated to the 'scope' value of the Authorization Request/
Response. The payload of this request is a CBOR Map which MAY Response. The payload of this request is a CBOR map which MUST
contain the following fields, which, if included, MUST have the contain the following fields:
corresponding values:
o 'type', encoded as a CBOR int, with value 1 ("key distribution").
Additionally, the CBOR map in the payload MAY contain the following
fields, which, if included, MUST have the corresponding values:
o 'scope', with value the specific resource that the Client is o 'scope', with value the specific resource that the Client is
authorized to access (i.e. group or topic identifier) and role(s), authorized to access (i.e. group or topic identifier) and role(s),
encoded as in Section 3.1. encoded as in Section 3.1.
o 'get_pub_keys', if the Client wishes to receive the public keys of o 'get_pub_keys', if the Client wishes to receive the public keys of
the other nodes in the group from the KDC. The value is an empty the other nodes in the group from the KDC. The value is an empty
CBOR Array. This parameter may be present if the KDC stores the CBOR array. This parameter may be present if the KDC stores the
public keys of the nodes in the group and distributes them to 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 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 the members of the group is known in another way, e.g. it was
provided by the AS. provided by the AS.
o 'client_cred', with value the public key or certificate of the o 'client_cred', with value the public key or certificate of the
Client. If the KDC is managing (collecting from/distributing to Client, encoded as a CBOR byte string. If the KDC is managing
the Client) the public keys of the group members, this field (collecting from/distributing to the Client) the public keys of
contains the public key of the Client. the group members, this field contains the public key of the
Client. The default encoding for public keys is COSE Keys.
Alternative specific encodings of this parameter MAY be defined in
applications of this specification.
o 'client_cred_verify', encoded as a CBOR byte string. This
parameter contains a signature computed by the Client over the
nonce N received from the KDC in the 2.01 (Created) response to
the token POST request (see Section 3.3). 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. This parameter MUST be present if the 'client_cred'
parameter is present.
o 'pub_keys_repos', can be present if a certificate is present in o 'pub_keys_repos', can be present if a certificate is present in
the 'client_cred' field, with value a list of public key the 'client_cred' field, with value a list of public key
repositories storing the certificate of the Client. repositories storing the certificate of the Client. This
parameter is encoded as a CBOR array of CBOR text strings, each of
which specifies the URI of a key repository.
4.2. Key Distribution Response 4.2. Key Distribution Response
The KDC verifies the 'scope' received in the Key Distribution The KDC verifies that the 'scope' received in the Key Distribution
Request, if present, against the 'scope' stored in the access token Request, if present, is a subset of the 'scope' stored in the access
associated to this client. If verification fails, the KDC MUST token associated to this client. If verification fails, the KDC MUST
respond with a 4.01 (Unauthorized) error message. If the Key respond with a 4.01 (Unauthorized) error message.
Distribution Request is not formatted correctly (e.g. no 'scope'
field present while expected, or unknown fields present), the KDC If the Key Distribution Request is not formatted correctly (e.g. no
MUST respond with 4.00 (Bad Request) error message. 'scope' field present while expected, or unknown fields present), the
KDC MUST respond with 4.00 (Bad Request) error message.
If verification succeeds, the KDC sends a Key Distribution success If verification succeeds, the KDC sends a Key Distribution success
Response to the Client. The Key Distribution success Response Response to the Client. The Key Distribution success Response
corresponds to a 2.01 Created message. The payload of this response corresponds to a 2.01 Created message. The payload of this response
is a CBOR map, which MUST contain: is a CBOR map, which MUST contain:
o 'kty', identifying the key type of the 'key' parameter. The set o 'kty', identifying the key type of the 'key' parameter. The set
of values can be found in the "Key Type" column of the "ACE of values can be found in the "Key Type" column of the "ACE
Groupcomm Key" Registry. Implementations MUST verify that the key Groupcomm Key" Registry. Implementations MUST verify that the key
type matches the profile being used, if present, as registered in type matches the application profile being used, if present, as
the "ACE Groupcomm Key" registry. registered in the "ACE Groupcomm Key" registry.
o 'key', containing the keying material for the group communication, o 'key', containing the keying material for the group communication,
or information required to derive it. or information required to derive it.
The exact format of the 'key' value MUST be defined in applications The exact format of the 'key' value MUST be defined in applications
of this specification. Additionally, documents specifying the key of this specification. Additionally, documents specifying the key
format MUST register it in the "ACE Groupcomm Key" registry, format MUST register it in the "ACE Groupcomm Key" registry,
including its name, type and profile to be used with, as defined in including its name, type and application profile to be used with, as
the "ACE Groupcomm Key" registry, defined in Section 9.1. defined in the "ACE Groupcomm Key" registry, defined in Section 11.5.
+----------+----------------+---------+-------------------------+ +----------+----------------+---------+-------------------------+
| Name | Key Type Value | Profile | Description | | Name | Key Type Value | Profile | Description |
+----------+----------------+---------+-------------------------+ +----------+----------------+---------+-------------------------+
| Reserved | 0 | | This value is reserved | | Reserved | 0 | | This value is reserved |
+----------+----------------+---------+-------------------------+ +----------+----------------+---------+-------------------------+
Figure 5: Key Type Values Figure 5: Key Type Values
Optionally, the Key Distribution Response MAY contain the following Optionally, the Key Distribution Response MAY contain the following
parameters, which, if included, MUST have the corresponding values: parameters, which, if included, MUST have the corresponding values:
o 'profile', with value an identifier that MUST be used to uniquely o 'profile', with value a CBOR integer that MUST be used to uniquely
identify itself. The identifier MUST be registered in the "ACE identify the application profile for group communication. The
Groupcomm Profile" Registry. value MUST be registered in the "ACE Groupcomm Profile" Registry.
o 'exp', with value the expiration time of the keying material for o 'exp', with value the expiration time of the keying material for
the group communication, encoded as a CBOR unsigned integer or the group communication, encoded as a CBOR unsigned integer or
floating-point number. floating-point number. 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 in Section 2 of [RFC7519].
o 'pub_keys', may only be present if 'get_pub_keys' was present in o 'pub_keys', may only be present if 'get_pub_keys' was present in
the Key Distribution Request. This parameter is a CBOR Byte the Key Distribution Request. This parameter is a CBOR byte
String, which encodes the public keys of all the group members string, which encodes the public keys of all the group members
paired with the respective member identifiers. In case public paired with the respective member identifiers. The default
keys in the group are represented as COSE Keys, the CBOR Byte encoding for public keys is COSE Keys, so the default encoding for
String encodes a COSE_KeySet (see [RFC8152]), which contains the 'pub_keys' is a CBOR byte string wrapping a COSE_KeySet (see
public keys of all the members of the group. In particular, each [RFC8152]), which contains the public keys of all the members of
COSE Key in the COSE_KeySet includes the identifier of the the group. In particular, each COSE Key in the COSE_KeySet
corresponding group member as value of its 'kid' key parameter. includes the identifier of the corresponding group member as value
Alternative specific encodings of this parameter MUST be defined of its 'kid' key parameter. Alternative specific encodings of
in applications of this specification. this parameter MAY be defined in applications of this
specification.
o 'group_policies', with value a list of parameters indicating how o 'group_policies', with value a CBOR map, whose entries specify how
the group handles specific management aspects. This includes, for the group handles specific management aspects. These include, for
instance, approaches to achieve synchronization of sequence instance, approaches to achieve synchronization of sequence
numbers among group members. The exact format of this parameter numbers among group members. The elements of this field are
is specific to the profile. registered in the "ACE Groupcomm Policy" Registry. This
specification defines the two elements "Sequence Number
Synchronization Method" and "Key Update Check Interval", which are
summarized in Figure 6. Application profiles that build on this
document MUST specify the exact content format of included map
entries.
o 'mgt_key_material', with value the administrative keying material +-----------------+-------+----------|--------------------|------------+
to participate in the group rekeying performed by the KDC. The | Name | CBOR | CBOR | Description | Reference |
exact format and content depend on the specific rekeying scheme | | label | type | | |
used in the group, which may be specified in the profile. |-----------------+-------+----------|--------------------|------------|
| Sequence Number | TBD1 | tstr/int | Method for a re- | [[this |
| Synchronization | | | cipient node to | document]] |
| Method | | | synchronize with | |
| | | | 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 Interval | | | in seconds, to | document]] |
| | | | check for new | |
| | | | keying material at | |
| | | | the KDC | |
+-----------------+-------+----------|--------------------|------------+
Specific profiles need to specify how exactly the keying material is Figure 6: ACE Groupcomm Policies
used to protect the group communication.
If the application requires backward security, the KDC SHALL generate o 'mgt_key_material', encoded as a CBOR byte string and containing
new group keying material and securely distribute it to all the the administrative keying material to participate in the group
current group members, using the message format defined in this rekeying performed by the KDC. The exact format and content
section. Application profiles may define alternative message depend on the specific rekeying scheme used in the group, which
formats. may be specified in the application profile.
Specific application profiles that build on this document need to
specify how exactly the keying material is used to protect the group
communication.
5. Removal of a Node from the Group 5. Removal of a Node from the Group
This section describes at a high level how a node can be removed from This section describes at a high level how a node can be removed from
the group. the group.
If the application requires forward security, the KDC SHALL generate If the application requires forward security, the KDC SHALL generate
new group keying material and securely distribute it to all the new group keying material and securely distribute it to all the
current group members but the leaving node, using the message format current group members but the leaving node, using the message format
defined in Section 4.2. Application profiles may define alternative defined in Section 4.2. Application profiles may define alternative
message formats. message formats.
5.1. Expired Authorization 5.1. Expired Authorization
If the node is not authorized anymore, the AS can directly If the AS provides Token introspection (see Section 5.7 of
communicate that to the KDC. Alternatively, the access token might [I-D.ietf-ace-oauth-authz]), the KDC can optionally use and check
have expired. If Token introspection is provided by the AS, the KDC whether:
can use it as per Section 5.7 of [I-D.ietf-ace-oauth-authz], in order
to verify that the access token is still valid. o the node is not authorized anymore;
o the access token is still valid, upon its expiration.
Either case, once aware that a node is not authorized anymore, the Either case, once aware that a node is not authorized anymore, the
KDC has to remove the unauthorized node from the list of group KDC has to remove the unauthorized node from the list of group
members, if the KDC keeps track of that. members, if the KDC keeps track of that.
5.2. Request to Leave the Group 5.2. Request to Leave the Group
A node can actively request to leave the group. In this case, the A node can actively request to leave the group. In this case, the
Client can send a request formatted as follows to the KDC, to abandon Client can send a request formatted as follows to the KDC, to abandon
the group. The client MUST use the protected channel established the group. The client MUST use the protected channel established
with ACE, mentioned in Section 4. with ACE, mentioned in Section 4.
To request to leave a group, the client MUST send a CoAP POST request To request to leave a group, the client MUST send a CoAP POST request
to the endpoint in the KDC associated to the group to leave (same to the endpoint in the KDC associated to the group to leave (same
endpoint used in Section 4.1 for Key Distribution requests). The endpoint used in Section 4.1 for Key Distribution requests). The
payload of this Leave Request is a CBOR Map which MUST contain: payload of this Leave Request is a CBOR map which MUST contain:
o 'leave', with value an empty CBOR array. o 'type', encoded as a CBOR int, with value 2 ("leave").
o 'scope', with value the specific resource that the Client is o 'scope', with value the specific resource that the Client is
authorized to access (i.e. group or topic identifier) and wants to authorized to access (i.e. group or topic identifier) and wants to
leave, encoded as in Section 3.1. The 'role' field is omitted. leave, encoded as in Section 3.1. The 'role' field is omitted.
Additionally, the Leave request MAY contain the following parameters,
which, if included, MUST have the corresponding values:
o 'client_cred', with value the identifier of the public key or
certificate 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.
Note that the 'role' field is omitted since such a request should Note that the 'role' field is omitted since such a request should
only be used to leave a group altogether. If the leaving node wants only be used to leave a group altogether. If the leaving node wants
to be part of a group with fewer roles, it does not need to to be part of a group with fewer roles, it does not need to
communicate that to the KDC, and can simply stop acting according to communicate that to the KDC, and can simply stop acting according to
such roles. such roles.
If the Leave Request is not formatted correctly (e.g. no 'scope' If the Leave Request is such that the KDC cannot extract all the
field present, or unknown fields present), the KDC MUST respond with necessary information to understand and process it correctly (e.g. no
a 4.00 (Bad Request) error message. Otherwise, the KDC MUST remove 'scope' field present), the KDC MUST respond with a 4.00 (Bad
the leaving node from the list of group members, if the KDC keeps Request) error message. Otherwise, the KDC MUST remove the leaving
track of that. node from the list of group members, if the KDC keeps track of that.
Note that, after having left the group, a node may wish to join it 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 again. Then, as long as the node is still authorized to join the
group, i.e. it has a still valid access token, it can re-request to group, i.e. it has a still valid access token, it can re-request to
join the group directly to the KDC without needing to retrieve a new join the group directly to the KDC without needing to retrieve a new
access token from the AS. This means that the KDC needs to keep access token from the AS. This means that the KDC needs to keep
track of nodes with valid access tokens, before deleting all track of nodes with valid access tokens, before deleting all
information about the leaving node. information about the leaving node.
6. Retrieval of Updated Keying Material 6. Retrieval of New or Updated Keying Material
A node stops using the group keying material upon its expiration, A node stops using the group keying material upon its expiration,
according to the 'exp' parameter specified in the retained COSE Key. according to the 'exp' parameter specified in the retained COSE Key.
Then, if it wants to continue participating in the group Then, if it wants to continue participating in the group
communication, the node has to request new updated keying material to communication, the node has to request new updated keying material to
the KDC. the KDC. In this case, and depending on what part of the keying
material is expired, the client may need to communicate to the KDC
its need for that part 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.
The Client may perform the same request to the KDC also upon The Client may perform the same request to the KDC also upon
receiving messages from other group members without being able to receiving messages from other group members without being able to
correctly decrypt them. This may be due to a previous update of the retrieve the material to correctly decrypt them. This may be due to
group keying material (rekeying) triggered by the KDC, that the a previous update of the group keying material (rekeying) triggered
Client was not able to receive or decrypt. by the KDC, that the Client was not able to receive or decrypt.
Note that policies can be set up so that the Client sends a request Note that policies can be set up so that the Client sends a request
to the KDC only after a given number of unsuccessfully decrypted to the KDC only after a given number of unsuccessfully decrypted
incoming messages. incoming messages. It is application dependent and pertaining to the
particular message exchange (e.g. [I-D.ietf-core-oscore-groupcomm])
to set up policies that instruct clients to retain unsuccessfully
decrypted messages and for how long, so that they can be decrypted
after getting updated keying material, rather than just considered
non valid messages to discard right away.
The same request could also be sent by the client without being
triggered by a failed decryption of a message, if the client wants to
confirm 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 has in memory.
Note that the difference between the keying material renewal request
and the keying material update request is that the first one triggers
the KDC to produce new keying material for that node, while the
second one only triggers distribution (the renewal might have
happened independently, because of expiration). Once a node receives
new individual keying material, other group members may need to use
the update keying material request to retrieve it.
Alternatively, the re-distribution of keying material can be Alternatively, the re-distribution of keying material can be
initiated by the KDC, which e.g.: initiated by the KDC, which e.g.:
o Can maintain an Observable resource to send notifications to o Can maintain an Observable resource to send notifications to
Clients when the keying material is updated. Such a notification Clients when the keying material is updated. Such a notification
would have the same payload as the Key Re-Distribution Response would have the same payload as the Key Re-Distribution Response
defined in Section 6.2. defined in Section 6.2.
o Can send the payload of the Key Re-Distribution Response in a o Can send the payload of the Key Re-Distribution Response as one or
multicast request to the members of the group. multiple multicast requests to the members of the group, using
secure rekeying schemes such as [RFC2093][RFC2094][RFC2627].
o Can send unicast requests to each Client over a secure channel, o Can send unicast requests to each Client over a secure channel,
with the Key Re-Distribution Response as payload. with the Key Re-Distribution Response as payload.
o Can act as a publisher in a pub-sub scenario, and update the o Can act as a publisher in a pub-sub scenario, and update the
keying material by publishing on a specific topic on a broker, keying material by publishing on a specific topic on a broker,
which all the members of the group are subscribed to. which all the members of the group are subscribed to.
Note that these methods of KDC-initiated key re-distribution have Note that these methods of KDC-initiated key re-distribution have
different security properties and require different security different security properties and require different security
associations. associations.
6.1. Key Re-Distribution Request 6.1. Key Re-Distribution Request
To request a re-distribution of keying material, the Client sends a To request a re-distribution of keying material, the Client sends a
shortened Key Distribution Request to the KDC (Section 4.1), shortened Key Distribution Request to the KDC (Section 4.1),
formatted as follows. The payload MUST contain only the following formatted as follows. The payload MUST contain the following fields:
field:
o 'type', encoded as a CBOR int, with value 3 ("update key") if the
request is intended to retrieve updated group keying material, and
4 ("new") if the request is intended for the KDC to produce and
provide new individual keying material for the Client.
o 'scope', which contains only the identifier of the specific group o 'scope', which contains only the identifier of the specific group
or topic, encoded as in Section 3.1. That is, the role field is or topic, encoded as in Section 3.1. That is, the role field is
not present. not present.
6.2. Key Re-Distribution Response 6.2. Key Re-Distribution Response
The KDC receiving a Key Re-Distribution Request MUST check that it is The KDC receiving a Key Re-Distribution Request MUST check that it is
storing a valid access token from that client for that scope. storing a valid access token from that client for that scope.
If that is not the case, i.e. it does not store the token or the If that is not the case, i.e. it does not store the token or the
token is not valid for that client for the scope requested, the KDC token is not valid for that client for the scope requested, the KDC
MUST respond with a 4.01 (Unauthorized) error message. Analogously MUST respond with a 4.01 (Unauthorized) error message. Analogously
to Section 4.2, if the Key Re-Distribution Request is not formatted to Section 4.2, if the Key Re-Distribution Request is not formatted
correctly (e.g. no 'scope' field present, or unknown fields present), correctly (e.g. no 'scope' field present, or unknown fields present),
the KDC MUST respond with a 4.00 (Bad Request) error message. the KDC MUST respond with a 4.00 (Bad Request) error message.
Otherwise, the KDC replies to the Client with a Key Distribution Otherwise, the KDC replies to the Client with a Key Distribution
Response, which MUST include the 'kty' and 'key' parameters specified Response, which MUST include the 'kty', 'key' and 'exp' parameters
in Section 4.2. The Key Distribution Response MAY also include the specified in Section 4.2. The Key Distribution Response MAY also
'profile', 'exp', 'group_policies' and 'mgt_key_material' parameters include the 'profile', 'group_policies' and 'mgt_key_material'
specified in Section 4.2. parameters specified in Section 4.2.
Note that this response might simply re-provide the same keying Note that this response might simply re-provide the same keying
material currently owned by the Client, if it has not been renewed. material currently owned by the Client, if it has not been renewed.
7. Retrieval of Public Keys for Group Members 7. Retrieval of Public Keys for Group Members
In case the KDC maintains the public keys of group members, a node in In case the KDC maintains the public keys of group members, a node in
the group can contact the KDC to request public keys of either all the group can contact the KDC to request public keys of either all
group members or a specified subset, using the messages defined group members or a specified subset, using the messages defined
below. below.
Figure 6 gives an overview of the exchange described above. Figure 7 gives an overview of the exchange described above.
Client KDC Client KDC
| | | |
|---- Public Key Request: POST /group-id --->| |---- Public Key Request: POST /group-id --->|
| | | |
|<--- Public Key Response: 2.01 (Created) ---| |<--- Public Key Response: 2.01 (Created) ---|
| | | |
Figure 6: Message Flow of Public Key Request-Response Figure 7: Message Flow of Public Key Request-Response
Note that these messages can be combined with the Key Re-Distribution Note that these messages can be combined with the Key Re-Distribution
messages in Section 6, to request at the same time the keying messages in Section 6, to request at the same time the keying
material and the public keys. In this case, either a new endpoint at material and the public keys. In this case, either a new endpoint at
the KDC may be used, or additional information needs to be sent in the KDC may be used, or additional information needs to be sent in
the request payload, to distinguish these combined messages from the the request payload, to distinguish these combined messages from the
Public Key messages described below, since they would be identical Public Key messages described below, since they would be identical
otherwise. otherwise.
7.1. Public Key Request 7.1. Public Key Request
To request public keys, the Client sends a shortened Key Distribution To request public keys, the Client sends a shortened Key Distribution
Request to the KDC (Section 4.1), formatted as follows. The payload Request to the KDC (Section 4.1), formatted as follows. The payload
of this request MUST contain the following fields: of this request MUST contain the following fields:
o 'type', encoded as a CBOR int, with value 5 ("pub keys").
o 'get_pub_keys', which has as value a CBOR array including either: o 'get_pub_keys', which has as value a CBOR array including either:
* no elements, i.e. an empty array, in order to request the * no elements, i.e. an empty array, in order to request the
public key of all current group members; or public key of all current group members; or
* N elements, each of which is the identifier of a group member, * N elements, each of which is the identifier of a group member
in order to request the public key of the specified nodes. encoded as a CBOR byte string, in order to request the public
key of the specified nodes.
o 'scope', which contains only the identifier of the specific group o 'scope', which contains only the identifier of the specific group
or topic, encoded as in Section 3.1. That is, the role field is or topic, encoded as in Section 3.1. That is, the role field is
not present. not present.
7.2. Public Key Response 7.2. Public Key Response
The KDC replies to the Client with a Key Distribution Response The KDC replies to the Client with a Key Distribution Response
containing only the 'pub_keys' parameter, as specified in containing only the 'pub_keys' parameter, as specified in
Section 4.2. The payload of this response contains the following Section 4.2. The payload of this response contains the following
skipping to change at page 16, line 22 skipping to change at page 20, line 43
o 'pub_keys', which contains either: o 'pub_keys', which contains either:
* the public keys of all the members of the group, if the * the public keys of all the members of the group, if the
'get_pub_keys' parameter of the Public Key request was an empty 'get_pub_keys' parameter of the Public Key request was an empty
array; or array; or
* the public keys of the group members with the identifiers * the public keys of the group members with the identifiers
specified in the 'get_pub_keys' parameter of the Public Key specified in the 'get_pub_keys' parameter of the Public Key
request. request.
The KDC ignores possible identifiers included in the 'get_pub_keys' The KDC may enforce one of the following policies, in order to handle
parameter of the Public Key request if they are not associated to any possible identifiers that are included in the 'get_pub_keys'
parameter of the Public Key request but are not associated to any
current group member. current group member.
8. Security Considerations o The KDC silently ignores those identifiers.
o 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.
Either case, 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.
8. ACE Groupcomm Parameters
This specification defines a number of fields used during the message
exchange. The table below summarizes them, and specifies the CBOR
key to use instead of the full descriptive name.
+--------------+----------+---------------+
| Name | CBOR Key | CBOR Type |
+--------------+----------+---------------+
| scope | TBD | array |
+--------------+----------+---------------+
| get_pub_keys | TBD | array |
+--------------+----------+---------------+
| client_cred | TBD | byte string |
+--------------+----------+---------------+
| client_cred_ | TBD | byte string |
| verify | | |
+--------------+----------+---------------+
| pub_keys_ | TBD | array |
| repos | | |
+--------------+----------+---------------+
| kty | TBD | int / byte |
| | | string |
+--------------+----------+---------------+
| key | TBD | see "ACE |
| | | Groupcomm |
| | | Key" Registry |
+--------------+----------+---------------+
| profile | TBD | int |
+--------------+----------+---------------+
| exp | TBD | int / float |
+--------------+----------+---------------+
| pub_keys | TBD | byte string |
+--------------+----------+---------------+
| group_ | TBD | map |
| policies | | |
+--------------+----------+---------------+
| mgt_key_ | TBD | byte string |
| material | | |
+--------------+----------+---------------+
| type | TBD | int |
+--------------+----------+---------------+
9. ACE Groupcomm Request Type
This specification defines a number of types of requests. The table
below summarizes them.
+------------------+----------+
| Name | Value |
+------------------+----------+
| key distribution | 1 |
+------------------+----------+
| leave | 2 |
+------------------+----------+
| update key | 3 |
+------------------+----------+
| new | 4 |
+------------------+----------+
| pub keys | 5 |
+------------------+----------+
10. Security Considerations
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 [I-D.ietf-core-object-security].
The KDC must renew the group keying material upon its expiration. The KDC must renew the group keying material upon its expiration.
The KDC should renew the keying material upon group membership The KDC should renew the keying material upon group membership
change, and should provide it to the current group members through change, and should provide it to the current group members through
the rekeying scheme used in the group. the rekeying scheme used in the group.
When a Client receives a message from a sender for the first time, it The KDC may enforce a rekeying policy that takes into account the
needs to have a mechanism in place to avoid replay, e.g. overall time required to rekey the group, as well as the expected
Appendix B.2 of [I-D.ietf-core-object-security]. rate of changes in the group membership.
9. IANA Considerations 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. Instead, the KDC may
rekey the group after a minum number of group members have joined or
left within a given time interval, or during predictable network
inactivity periods.
However, this would result in the KDC not constantly preserving
backward and forward security. In fact, 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.
10.1. Update of Keying Material
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.
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
as second attempt. 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.
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 sender endpoint uses CoAP 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.
10.2. Block-Wise Considerations
If the block-wise options [RFC7959] 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.
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 resending the blocks again and
again, which might be problematic.
11. IANA Considerations
This document has the following actions for IANA. This document has the following actions for IANA.
9.1. ACE Groupcomm Key Registry 11.1. ACE Authorization Server Request Creation Hints Registry
This specification establishes the IANA "ACE Groupcomm Key" Registry. IANA is asked to register the following entries in the "ACE
Authorization Server Request Creation Hints" Registry defined in
Section 8.1 of [I-D.ietf-ace-oauth-authz].
o Name: sign_info
o CBOR Key: TBD (range -256 to 255)
o Value Type: any
o Reference: [[This specification]]
o Name: pub_key_enc
o CBOR Key: TBD (range -256 to 255)
o Value Type: integer
o Reference: [[This specification]]
11.2. ACE Public Key Encoding Registry
This specification establishes the "ACE Public Key Encoding" IANA
Registry. The Registry has been created to use the "Expert Review
Required" registration procedure [RFC8126]. Expert review guidelines
are provided in Section 11.9. 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.
The columns of this Registry are:
o 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.
o Value: The value to be used to identify this public key encoding.
This value MUST be unique. The value can be a positive or a
negative integer. Integer values between 0 and 255 are designated
as Standards Track Document required. Integer values from 256 to
65535 are designated as Specification Required. Integer values of
greater than 65535 are designated as expert review. Integer
values less than -65536 are marked as private use.
o Description: This field contains a brief description for this
public key encoding.
o Reference: This field contains a pointer to the public
specification providing the public key encoding, if one exists.
The value 0 is to be marked as "Reserved".
11.3. ACE Groupcomm Parameters Registry
This specification establishes the "ACE Groupcomm Parameters" IANA
Registry. The Registry has been created to use the "Expert Review
Required" registration procedure [RFC8126]. Expert review guidelines
are provided in Section 11.9.
The columns of this Registry are:
o 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.
o 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.
o 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.
o Reference: This contains a pointer to the public specification for
the format of the item, if one exists.
This Registry has been initially populated by the values in
Section 8. The specification column for all of these entries will be
this document.
11.4. Ace Groupcomm Request Type Registry
This specification establishes the "ACE Groupcomm Request Type" IANA
Registry. The Registry has been created to use the "Expert Review
Required" registration procedure [RFC8126]. Expert review guidelines
are provided in Section 11.9.
The columns of this Registry are:
o 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.
o Value: This is the value used to identify the request. These
values MUST be unique. The value must be a positive integer.
o Reference: This contains a pointer to the public specification for
the format of the item, if one exists.
This Registry has been initially populated by the values in
Section 9. The reference column for all of these entries will be
this document. The value 0 is to be marked as "Reserved".
11.5. ACE Groupcomm Key Registry
This specification establishes the "ACE Groupcomm Key" IANA Registry.
The Registry has been created to use the "Expert Review Required" The Registry has been created to use the "Expert Review Required"
registration procedure [RFC8126]. Expert review guidelines are registration procedure [RFC8126]. Expert review guidelines are
provided in Section 9.3. provided in Section 11.9.
The columns of this Registry are: The columns of this Registry are:
o Name: This is a descriptive name that enables easier reference to o Name: This is a descriptive name that enables easier reference to
the item. The name MUST be unique. It is not used in the the item. The name MUST be unique. It is not used in the
encoding. encoding.
o Key Type Value: This is the value used to identify the keying o Key Type Value: This is the value used to identify the keying
material. These values MUST be unique. The value can be a material. These values MUST be unique. The value can be a
positive integer, a negative integer, or a string. positive integer, a negative integer, or a string.
o Profile: This field may contain a descriptive string of a profile o Profile: This field may contain one or more descriptive strings of
to be used with this item. This should be a value that is in the application profiles to be used with this item. The values should
Name column of the "ACE Groupcomm Profile" Registry. be taken from the Name column of the "ACE Groupcomm Profile"
Registry.
o Description: This field contains a brief description of the keying o Description: This field contains a brief description of the keying
material. material.
o References: This contains a pointer to the public specification o References: This contains a pointer to the public specification
for the format of the keying material, if one exists. for the format of the keying material, if one exists.
This Registry has been initially populated by the values in Figure 5. This Registry has been initially populated by the values in Figure 5.
The specification column for all of these entries will be this The specification column for all of these entries will be this
document. document.
9.2. ACE Groupcomm Profile Registry 11.6. ACE Groupcomm Profile Registry
This specification establishes the IANA "ACE Groupcomm Profile" This specification establishes the "ACE Groupcomm Profile" IANA
Registry. The Registry has been created to use the "Expert Review Registry. The Registry has been created to use the "Expert Review
Required" registration procedure [RFC8126]. Expert review guidelines Required" registration procedure [RFC8126]. Expert review guidelines
are provided in Section 9.3. It should be noted that, in addition to are provided in Section 11.9. It should be noted that, in addition
the expert review, some portions of the Registry require a to the expert review, some portions of the Registry require a
specification, potentially a Standards Track RFC, be supplied as specification, potentially a Standards Track RFC, be supplied as
well. well.
The columns of this Registry are: The columns of this Registry are:
o Name: The name of the profile, to be used as value of the profile o Name: The name of the application profile, to be used as value of
attribute. the profile attribute.
o Description: Text giving an overview of the profile and the o Description: Text giving an overview of the application profile
context it is developed for. and the context it is developed for.
o CBOR Value: CBOR abbreviation for this profile name. Different o CBOR Value: CBOR abbreviation for the name of this application
ranges of values use different registration policies [RFC8126]. profile. Different ranges of values use different registration
Integer values from -256 to 255 are designated as Standards policies [RFC8126]. Integer values from -256 to 255 are
Action. Integer values from -65536 to -257 and from 256 to 65535 designated as Standards Action. Integer values from -65536 to
are designated as Specification Required. Integer values greater -257 and from 256 to 65535 are designated as Specification
than 65535 are designated as Expert Review. Integer values less Required. Integer values greater than 65535 are designated as
than -65536 are marked as Private Use. Expert Review. Integer values less than -65536 are marked as
Private Use.
o Reference: This contains a pointer to the public specification of o Reference: This contains a pointer to the public specification of
the profile abbreviation, if one exists. the abbreviation for this application profile, if one exists.
9.3. Expert Review Instructions 11.7. ACE Groupcomm Policy Registry
This specification establishes the "ACE Groupcomm Policy" IANA
Registry. The Registry has been created to use the "Expert Review
Required" registration procedure [RFC8126]. Expert review guidelines
are provided in Section 11.9. 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.
The columns of this Registry are:
o Name: The name of the group communication policy.
o 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.
o CBOR type: the CBOR type used to encode the value of this group
communication policy.
o Description: This field contains a brief description for this
group communication policy.
o Reference: This field contains a pointer to the public
specification providing the format of the group communication
policy, if one exists.
This registry will be initially populated by the values in Figure 6.
11.8. Sequence Number Synchronization Method Registry
This specification establishes the "Sequence Number Synchronization
Method" IANA Registry. The Registry has been created to use the
"Expert Review Required" registration procedure [RFC8126]. Expert
review guidelines are provided in Section 11.9. 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.
The columns of this Registry are:
o Name: The name of the sequence number synchronization method.
o Value: The value to be used to identify this sequence number
synchronization method.
o Description: This field contains a brief description for this
sequence number synchronization method.
o Reference: This field contains a pointer to the public
specification describing the sequence number synchronization
method.
11.9. Expert Review Instructions
The IANA Registries established in this document are defined as The IANA Registries established in this document are defined as
expert review. This section gives some general guidelines for what expert review. This section gives some general guidelines for what
the experts should be looking for, but they are being designated as the experts should be looking for, but they are being designated as
experts for a reason so they should be given substantial latitude. experts for a reason so they should be given substantial latitude.
Expert reviewers should take into consideration the following points: Expert reviewers should take into consideration the following points:
o Point squatting should be discouraged. Reviewers are encouraged o Point squatting should be discouraged. Reviewers are encouraged
to get sufficient information for registration requests to ensure to get sufficient information for registration requests to ensure
skipping to change at page 18, line 44 skipping to change at page 30, line 34
o Experts should take into account the expected usage of fields when o Experts should take into account the expected usage of fields when
approving point assignment. The fact that there is a range for approving point assignment. The fact that there is a range for
standards track documents does not mean that a standards track standards track documents does not mean that a standards track
document cannot have points assigned outside of that range. The document cannot have points assigned outside of that range. The
length of the encoded value should be weighed against how many 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 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 used on, and the number of code points left that encode to that
size. size.
10. References 12. References
10.1. Normative References 12.1. Normative References
[I-D.ietf-ace-oauth-authz] [I-D.ietf-ace-oauth-authz]
Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and
H. Tschofenig, "Authentication and Authorization for H. Tschofenig, "Authentication and Authorization for
Constrained Environments (ACE) using the OAuth 2.0 Constrained Environments (ACE) using the OAuth 2.0
Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-22 Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-24
(work in progress), March 2019. (work in progress), March 2019.
[I-D.ietf-ace-oauth-params] [I-D.ietf-ace-oauth-params]
Seitz, L., "Additional OAuth Parameters for Authorization Seitz, L., "Additional OAuth Parameters for Authorization
in Constrained Environments (ACE)", draft-ietf-ace-oauth- in Constrained Environments (ACE)", draft-ietf-ace-oauth-
params-04 (work in progress), February 2019. params-05 (work in progress), March 2019.
[I-D.ietf-core-oscore-groupcomm]
Tiloca, M., Selander, G., Palombini, F., and J. Park,
"Group OSCORE - Secure Group Communication for CoAP",
draft-ietf-core-oscore-groupcomm-05 (work in progress),
July 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object
Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049,
October 2013, <https://www.rfc-editor.org/info/rfc7049>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", [RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)",
RFC 8152, DOI 10.17487/RFC8152, July 2017, RFC 8152, DOI 10.17487/RFC8152, July 2017,
<https://www.rfc-editor.org/info/rfc8152>. <https://www.rfc-editor.org/info/rfc8152>.
10.2. Informative References 12.2. Informative References
[I-D.dijk-core-groupcomm-bis]
Dijk, E., Wang, C., and M. Tiloca, "Group Communication
for the Constrained Application Protocol (CoAP)", draft-
dijk-core-groupcomm-bis-00 (work in progress), March 2019.
[I-D.ietf-ace-dtls-authorize]
Gerdes, S., Bergmann, O., Bormann, C., Selander, G., and
L. Seitz, "Datagram Transport Layer Security (DTLS)
Profile for Authentication and Authorization for
Constrained Environments (ACE)", draft-ietf-ace-dtls-
authorize-08 (work in progress), April 2019.
[I-D.ietf-ace-mqtt-tls-profile]
Sengul, C., Kirby, A., and P. Fremantle, "MQTT-TLS profile
of ACE", draft-ietf-ace-mqtt-tls-profile-00 (work in
progress), May 2019.
[I-D.ietf-ace-oscore-profile]
Palombini, F., Seitz, L., Selander, G., and M. Gunnarsson,
"OSCORE profile of the Authentication and Authorization
for Constrained Environments Framework", draft-ietf-ace-
oscore-profile-07 (work in progress), February 2019.
[I-D.ietf-core-coap-pubsub] [I-D.ietf-core-coap-pubsub]
Koster, M., Keranen, A., and J. Jimenez, "Publish- Koster, M., Keranen, A., and J. Jimenez, "Publish-
Subscribe Broker for the Constrained Application Protocol Subscribe Broker for the Constrained Application Protocol
(CoAP)", draft-ietf-core-coap-pubsub-06 (work in (CoAP)", draft-ietf-core-coap-pubsub-08 (work in
progress), January 2019. progress), March 2019.
[I-D.ietf-core-object-security] [I-D.ietf-core-object-security]
Selander, G., Mattsson, J., Palombini, F., and L. Seitz, Selander, G., Mattsson, J., Palombini, F., and L. Seitz,
"Object Security for Constrained RESTful Environments "Object Security for Constrained RESTful Environments
(OSCORE)", draft-ietf-core-object-security-16 (work in (OSCORE)", draft-ietf-core-object-security-16 (work in
progress), March 2019. progress), March 2019.
[RFC2093] Harney, H. and C. Muckenhirn, "Group Key Management [RFC2093] Harney, H. and C. Muckenhirn, "Group Key Management
Protocol (GKMP) Specification", RFC 2093, Protocol (GKMP) Specification", RFC 2093,
DOI 10.17487/RFC2093, July 1997, DOI 10.17487/RFC2093, July 1997,
skipping to change at page 20, line 20 skipping to change at page 32, line 37
[RFC2627] Wallner, D., Harder, E., and R. Agee, "Key Management for [RFC2627] Wallner, D., Harder, E., and R. Agee, "Key Management for
Multicast: Issues and Architectures", RFC 2627, Multicast: Issues and Architectures", RFC 2627,
DOI 10.17487/RFC2627, June 1999, DOI 10.17487/RFC2627, June 1999,
<https://www.rfc-editor.org/info/rfc2627>. <https://www.rfc-editor.org/info/rfc2627>.
[RFC7390] Rahman, A., Ed. and E. Dijk, Ed., "Group Communication for [RFC7390] Rahman, A., Ed. and E. Dijk, Ed., "Group Communication for
the Constrained Application Protocol (CoAP)", RFC 7390, the Constrained Application Protocol (CoAP)", RFC 7390,
DOI 10.17487/RFC7390, October 2014, DOI 10.17487/RFC7390, October 2014,
<https://www.rfc-editor.org/info/rfc7390>. <https://www.rfc-editor.org/info/rfc7390>.
Appendix A. Document Updates [RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token
(JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015,
<https://www.rfc-editor.org/info/rfc7519>.
[RFC7959] Bormann, C. and Z. Shelby, Ed., "Block-Wise Transfers in
the Constrained Application Protocol (CoAP)", RFC 7959,
DOI 10.17487/RFC7959, August 2016,
<https://www.rfc-editor.org/info/rfc7959>.
[RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", STD 90, RFC 8259,
DOI 10.17487/RFC8259, December 2017,
<https://www.rfc-editor.org/info/rfc8259>.
Appendix A. Requirements on Application Profiles
This section lists the requirements on application profiles of this
specification,for the convenience of application profile designers.
o Specify the communication protocol the members of the group must
use (e.g., multicast CoAP).
o 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.
o Specify the encoding and value of the identifier of group or topic
and role of 'scope' (see Section 3.1).
o Specify and register the application profile identifier (see
Section 4.1).
o Specify the acceptable values of 'kty' (see Section 4.2).
o Specify the format and content of 'group_policies' entries (see
Section 4.2).
o Optionally, specify the format and content of 'mgt_key_material'
(see Section 4.2).
o Optionally, specify tranport profile of ACE
[I-D.ietf-ace-oauth-authz] to use between Client and KDC.
o Optionally, specify the encoding of public keys, of 'client_cred',
and of 'pub_keys' if COSE_Keys are not used (see Section 4.2).
o Optionally, specify the acceptable values for parameters related
to signature algorithm and signature keys: 'sign_alg',
'sign_parameters', 'sign_key_parameters', 'pub_key_enc' (see
Section 3.3).
o Optionally, specify the negotiation of parameter values for
signature algorithm and signature keys, if 'sign_info' and
'pub_key_enc' are not used (see Section 3.3).
Appendix B. Document Updates
RFC EDITOR: PLEASE REMOVE THIS SECTION. RFC EDITOR: PLEASE REMOVE THIS SECTION.
A.1. Version -00 to -01 B.1. Version -01 to -02
o Editorial fixes.
o Distinction between transport profile and application profile
(Section 1.1).
o New parameters 'sign_info' and 'pub_key_enc' to negotiate
parameter values for signature algorithm and signature keys
(Section 3.3).
o New parameter 'type' to distinguish different Key Distribution
Request messages (Section 4.1).
o New parameter 'client_cred_verify' in the Key Distribution Request
to convey a Client signature (Section 4.1).
o Encoding of 'pub_keys_repos' (Section 4.1).
o Encoding of 'mgt_key_material' (Section 4.1).
o Improved description on retrieval of new or updated keying
material (Section 6).
o Encoding of 'get_pub_keys' in Public Key Request (Section 7.1).
o Extended security considerations (Sections 10.1 and 10.2).
o New "ACE Public Key Encoding" IANA Registry (Section 11.2).
o New "ACE Groupcomm Parameters" IANA Registry (Section 11.3),
populated with the entries in Section 8.
o New "Ace Groupcomm Request Type" IANA Registry (Section 11.4),
populated with the values in Section 9.
o 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).
o Improved list of requirements for application profiles
(Appendix A).
B.2. Version -00 to -01
o Changed name of 'req_aud' to 'audience' in the Authorization o Changed name of 'req_aud' to 'audience' in the Authorization
Request (Section 3.1). Request (Section 3.1).
o Defined error handling on the KDC (Sections 4.2 and 6.2). o Defined error handling on the KDC (Sections 4.2 and 6.2).
o Updated format of the Key Distribution Response as a whole o Updated format of the Key Distribution Response as a whole
(Section 4.2). (Section 4.2).
o Generalized format of 'pub_keys' in the Key Distribution Response o Generalized format of 'pub_keys' in the Key Distribution Response
(Section 4.2). (Section 4.2).
o Defined format for the message to request leaving the group o Defined format for the message to request leaving the group
(Section 5.2). (Section 5.2).
o Mentioned methods for group rekeying initiated by the KDC o Renewal of individual keying material and methods for group
(Section 6). rekeying initiated by the KDC (Section 6).
o Added security consideration on replay protection (Section 8). o CBOR type for node identifiers in 'get_pub_keys' (Section 7.1).
o New IANA registries "ACE Groupcomm Key Registry" and "ACE o Added section on parameter identifiers and their CBOR keys
Groupcomm Profile Registry" (Section 9). (Section 8).
o Added request types for requests to a Join Response (Section 9).
o Extended security considerations (Section 10).
o New IANA registries "ACE Groupcomm Key Registry", "ACE Groupcomm
Profile Registry", "ACE Groupcomm Policy Registry" and "Sequence
Number Synchronization Method Registry" (Section 11).
o Added appendix about requirements for application profiles of ACE
on group communication (Appendix A).
Acknowledgments Acknowledgments
The following individuals were helpful in shaping this document: Ben The following individuals were helpful in shaping this document: Ben
Kaduk, John Mattsson, Jim Schaad, Ludwig Seitz, Goeran Selander and Kaduk, John Mattsson, Jim Schaad, Ludwig Seitz, Goeran Selander and
Peter van der Stok. Peter van der Stok.
The work on this document has been partly supported by VINNOVA and The work on this document has been partly supported by VINNOVA and
the Celtic-Next project CRITISEC; and by the EIT-Digital High Impact the Celtic-Next project CRITISEC; and by the EIT-Digital High Impact
Initiative ACTIVE. Initiative ACTIVE.
 End of changes. 78 change blocks. 
183 lines changed or deleted 862 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/