rfc9594v6.txt   rfc9594.txt 
Internet Engineering Task Force (IETF) F. Palombini Internet Engineering Task Force (IETF) F. Palombini
Request for Comments: 9594 Ericsson AB Request for Comments: 9594 Ericsson AB
Category: Standards Track M. Tiloca Category: Standards Track M. Tiloca
ISSN: 2070-1721 RISE AB ISSN: 2070-1721 RISE AB
August 2024 September 2024
Key Provisioning for Group Communication Using Authentication and Key Provisioning for Group Communication Using Authentication and
Authorization for Constrained Environments (ACE) Authorization for Constrained Environments (ACE)
Abstract Abstract
This document defines how to use the Authentication and Authorization This document defines how to use the Authentication and Authorization
for Constrained Environments (ACE) framework to distribute keying for Constrained Environments (ACE) framework to distribute keying
material and configuration parameters for secure group communication. material and configuration parameters for secure group communication.
Candidate group members that act as Clients and are authorized to Candidate group members that act as Clients and are authorized to
skipping to change at line 646 skipping to change at line 646
scope_entries = AIF-Generic<gname, permissions> scope_entries = AIF-Generic<gname, permissions>
scope = bstr .cbor scope_entries scope = bstr .cbor scope_entries
Figure 4: Example of scope Using AIF Figure 4: Example of scope Using AIF
gname = tstr gname = tstr
role = tstr role = tstr
scope_entry = [gname , ? ( role / [2* role] )] scope_entry = [gname, ? ( role / [2* role] )]
scope_entries = [* scope_entry] scope_entries = [* scope_entry]
scope = bstr .cbor scope_entries scope = bstr .cbor scope_entries
Figure 5: Example of scope Using the Textual Format, with the Figure 5: Example of scope Using the Textual Format, with the
Role Identifiers Encoded as Text Strings Role Identifiers Encoded as Text Strings
3.2. Authorization Response 3.2. Authorization Response
skipping to change at line 3867 skipping to change at line 3867
* A Base IV is also included with the same size of the AEAD nonce * A Base IV is also included with the same size of the AEAD nonce
considered by the encryption algorithm to use. considered by the encryption algorithm to use.
First, the KDC computes a COSE_Encrypt0 object as follows. First, the KDC computes a COSE_Encrypt0 object as follows.
* The encryption key to use is selected from the administrative * The encryption key to use is selected from the administrative
keying material, as defined by the rekeying scheme used in the keying material, as defined by the rekeying scheme used in the
group. group.
* The plaintext is the actual data content of the present rekeying * The plaintext is the actual data content of the current rekeying
message. message.
* The Additional Authenticated Data (AAD) is empty unless otherwise * The Additional Authenticated Data (AAD) is empty unless otherwise
specified by separate documents profiling the use of the group specified by separate documents profiling the use of the group
rekeying scheme. rekeying scheme.
* Since the KDC is the only sender of rekeying messages, the AEAD * Since the KDC is the only sender of rekeying messages, the AEAD
nonce can be computed as follows, where NONCE_SIZE is the size in nonce can be computed as follows, where NONCE_SIZE is the size in
bytes of the AEAD nonce. Separate documents profiling the use of bytes of the AEAD nonce. Separate documents profiling the use of
the group rekeying scheme may define alternative ways to compute the group rekeying scheme may define alternative ways to compute
skipping to change at line 3908 skipping to change at line 3908
encryption key, AEAD nonce). For example, this includes not using encryption key, AEAD nonce). For example, this includes not using
the same encryption key from the administrative keying material the same encryption key from the administrative keying material
more than 2^16 times during the same rekeying instance. more than 2^16 times during the same rekeying instance.
* The protected header of the COSE_Encrypt0 object MUST include the * The protected header of the COSE_Encrypt0 object MUST include the
following parameters. following parameters.
- 'alg': specifying the used encryption algorithm. - 'alg': specifying the used encryption algorithm.
- 'kid': specifying the identifier of the encryption key from the - 'kid': specifying the identifier of the encryption key from the
administrative keying material used to protect the present administrative keying material used to protect the current
rekeying message. rekeying message.
* The unprotected header of the COSE_Encrypt0 object MUST include * The unprotected header of the COSE_Encrypt0 object MUST include
the 'Partial IV' parameter with the value of the Partial IV the 'Partial IV' parameter with the value of the Partial IV
computed above. computed above.
In order to ensure source authentication, each rekeying message In order to ensure source authentication, each rekeying message
protected with the administrative keying material MUST be signed by protected with the administrative keying material MUST be signed by
the KDC. To this end, the KDC computes a countersignature of the the KDC. To this end, the KDC computes a countersignature of the
COSE_Encrypt0 object, as described in Sections 3.2 and 3.3 of COSE_Encrypt0 object, as described in Sections 3.2 and 3.3 of
skipping to change at line 4615 skipping to change at line 4615
Content Coding: - Content Coding: -
ID: 261 ID: 261
Reference: RFC 9594 Reference: RFC 9594
11.3. OAuth Parameters 11.3. OAuth Parameters
IANA has registered the following entries in the "OAuth Parameters" IANA has registered the following entries in the "OAuth Parameters"
registry, following the procedure specified in Section 11.2 of registry, following the procedure specified in Section 11.2 of
[RFC6749]. [RFC6749].
Parameter name: sign_info Name: sign_info
Parameter usage location: client-rs request, rs-client response Parameter Usage Location: client-rs request, rs-client response
Change controller: IETF Change Controller: IETF
Specification document(s): RFC 9594 Reference: RFC 9594
Parameter name: kdcchallenge Name: kdcchallenge
Parameter usage location: rs-client response Parameter Usage Location: rs-client response
Change controller: IETF Change Controller: IETF
Specification document(s): RFC 9594 Reference: RFC 9594
11.4. OAuth Parameters CBOR Mappings 11.4. OAuth Parameters CBOR Mappings
IANA has registered the following entries in the "OAuth Parameters IANA has registered the following entries in the "OAuth Parameters
CBOR Mappings" registry, following the procedure specified in CBOR Mappings" registry, following the procedure specified in
Section 8.10 of [RFC9200]. Section 8.10 of [RFC9200].
Name: sign_info Name: sign_info
CBOR Key: 45 CBOR Key: 45
Value Type: Null or array Value Type: Null or array
Reference: RFC 9594 Reference: RFC 9594
Name: kdcchallenge Name: kdcchallenge
CBOR Key: 46 CBOR Key: 46
Value Type: byte string Value Type: byte string
Reference: RFC 9594 Reference: RFC 9594
11.5. Interface Description (if=) Link Target Attribute Values 11.5. Interface Description (if=) Link Target Attribute Values
IANA has registered the following entry in the "Interface Description IANA has registered the following entry in the "Interface Description
(if=) Link Target Attribute Values" registry within the "CoRE (if=) Link Target Attribute Values" registry within the "Constrained
Parameters" registry group. RESTful Environments (CoRE) Parameters" registry group.
Value: ace.groups Value: ace.groups
Description: The KDC interface at the parent resource of group- Description: The KDC interface at the parent resource of group-
membership resources is used to retrieve names of security groups membership resources is used to retrieve names of security groups
using the ACE framework. using the ACE framework.
Reference: Section 4.1 of RFC 9594 Reference: Section 4.1 of RFC 9594
Value: ace.group Value: ace.group
Description: The KDC interface at a group-membership resource is Description: The KDC interface at a group-membership resource is
used to provision keying material and related information and used to provision keying material and related information and
policies to members of the corresponding security group using the policies to members of the corresponding security group using the
ACE framework. ACE framework.
Reference: Section 4.1 of RFC 9594 Reference: Section 4.1 of RFC 9594
11.6. Custom Problem Detail Keys Registry 11.6. Custom Problem Detail Keys Registry
IANA has registered the following entry in the "Custom Problem Detail IANA has registered the following entry in the "Custom Problem Detail
Keys" registry within the "CoRE Parameters" registry group. Keys" registry within the "Constrained RESTful Environments (CoRE)
Parameters" registry group.
Key Value: 0 Key Value: 0
Name: ace-groupcomm-error Name: ace-groupcomm-error
Brief Description: Carry RFC 9594 problem details in a Concise Brief Description: Carry RFC 9594 problem details in a Concise
Problem Details data item. Problem Details data item.
Change Controller: IETF Change Controller: IETF
Reference: RFC 9594, Section 4.1.2 Reference: RFC 9594, Section 4.1.2
11.7. ACE Groupcomm Parameters 11.7. ACE Groupcomm Parameters
skipping to change at line 5093 skipping to change at line 5094
Dijk, E., Wang, C., and M. Tiloca, "Group Communication Dijk, E., Wang, C., and M. Tiloca, "Group Communication
for the Constrained Application Protocol (CoAP)", Work in for the Constrained Application Protocol (CoAP)", Work in
Progress, Internet-Draft, draft-ietf-core-groupcomm-bis- Progress, Internet-Draft, draft-ietf-core-groupcomm-bis-
11, 24 April 2024, <https://datatracker.ietf.org/doc/html/ 11, 24 April 2024, <https://datatracker.ietf.org/doc/html/
draft-ietf-core-groupcomm-bis-11>. draft-ietf-core-groupcomm-bis-11>.
[GROUP-OSCORE] [GROUP-OSCORE]
Tiloca, M., Selander, G., Palombini, F., Preuß Mattsson, Tiloca, M., Selander, G., Palombini, F., Preuß Mattsson,
J., and R. Höglund, "Group Object Security for Constrained J., and R. Höglund, "Group Object Security for Constrained
RESTful Environments (Group OSCORE)", Work in Progress, RESTful Environments (Group OSCORE)", Work in Progress,
Internet-Draft, draft-ietf-core-oscore-groupcomm-21, 4 Internet-Draft, draft-ietf-core-oscore-groupcomm-22, 28
March 2024, <https://datatracker.ietf.org/doc/html/draft- August 2024, <https://datatracker.ietf.org/doc/html/draft-
ietf-core-oscore-groupcomm-21>. ietf-core-oscore-groupcomm-21>.
[OSCORE-DISCOVERY] [OSCORE-DISCOVERY]
Tiloca, M., Amsüss, C., and P. Van der Stok, "Discovery of Tiloca, M., Amsüss, C., and P. Van der Stok, "Discovery of
OSCORE Groups with the CoRE Resource Directory", Work in OSCORE Groups with the CoRE Resource Directory", Work in
Progress, Internet-Draft, draft-tiloca-core-oscore- Progress, Internet-Draft, draft-tiloca-core-oscore-
discovery-15, 4 March 2024, discovery-16, 4 September 2024,
<https://datatracker.ietf.org/doc/html/draft-tiloca-core- <https://datatracker.ietf.org/doc/html/draft-tiloca-core-
oscore-discovery-15>. oscore-discovery-16>.
[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,
<https://www.rfc-editor.org/info/rfc2093>. <https://www.rfc-editor.org/info/rfc2093>.
[RFC2094] Harney, H. and C. Muckenhirn, "Group Key Management [RFC2094] Harney, H. and C. Muckenhirn, "Group Key Management
Protocol (GKMP) Architecture", RFC 2094, Protocol (GKMP) Architecture", RFC 2094,
DOI 10.17487/RFC2094, July 1997, DOI 10.17487/RFC2094, July 1997,
<https://www.rfc-editor.org/info/rfc2094>. <https://www.rfc-editor.org/info/rfc2094>.
skipping to change at line 5202 skipping to change at line 5203
REQ1: Specify the format and encoding of scope. This includes REQ1: Specify the format and encoding of scope. This includes
defining the set of possible roles and their identifiers, as defining the set of possible roles and their identifiers, as
well as the corresponding encoding to use in the scope well as the corresponding encoding to use in the scope
entries according to the used scope format (see Section 3.1). entries according to the used scope format (see Section 3.1).
REQ2: If scope uses AIF, register its specific instance of "Toid" REQ2: If scope uses AIF, register its specific instance of "Toid"
and "Tperm" as media type parameters and a corresponding and "Tperm" as media type parameters and a corresponding
Content-Format, as per the guidelines in [RFC9237]. Content-Format, as per the guidelines in [RFC9237].
REQ3: If used, specify the acceptable values for the 'sign_alg' REQ3: If used, specify the acceptable values for the 'sign_alg'
parameter (see Section 3.3). parameter (see Section 3.3.1).
REQ4: If used, specify the acceptable values and structure for the REQ4: If used, specify the acceptable values and structure for the
'sign_parameters' parameter (see Section 3.3). 'sign_parameters' parameter (see Section 3.3.1).
REQ5: If used, specify the acceptable values and structure for the REQ5: If used, specify the acceptable values and structure for the
'sign_key_parameters' parameter (see Section 3.3). 'sign_key_parameters' parameter (see Section 3.3.1).
REQ6: Specify the acceptable formats for authentication credentials REQ6: Specify the acceptable formats for authentication credentials
and, if applicable, the acceptable values for the 'cred_fmt' and, if applicable, the acceptable values for the 'cred_fmt'
parameter (see Section 3.3). parameter (see Section 3.3.1).
REQ7: If the value of the GROUPNAME URI path and the group name in REQ7: If the value of the GROUPNAME URI path and the group name in
the access token scope ('gname' in Section 3.1) are not the access token scope ('gname' in Section 3.1) are not
required to coincide, specify the mechanism to map the required to coincide, specify the mechanism to map the
GROUPNAME value in the URI to the group name (see GROUPNAME value in the URI to the group name (see
Section 4.1). Section 4.1).
REQ8: Define whether the KDC has an authentication credential as REQ8: Define whether the KDC has an authentication credential as
required for the correct group operation and if this has to required for the correct group operation and if this has to
be provided through the 'kdc_cred' parameter (see be provided through the 'kdc_cred' parameter (see Sections
Section 4.3.1). 4.1 and 4.3.1).
REQ9: Specify if any part of the KDC interface as defined in this REQ9: Specify if any part of the KDC interface as defined in this
document is not supported by the KDC (see Section 4.1). document is not supported by the KDC (see Section 4.1).
REQ10: Register a Resource Type for the group-membership resources, REQ10: Register a Resource Type for the group-membership resources,
which is used to discover the correct URL for sending a Join which is used to discover the correct URL for sending a Join
Request to the KDC (see Section 4.1). Request to the KDC (see Section 4.1).
REQ11: Define what specific actions (e.g., CoAP methods) are allowed REQ11: Define what specific actions (e.g., CoAP methods) are allowed
on each resource that are accessible through the KDC on each resource that are accessible through the KDC
skipping to change at line 5431 skipping to change at line 5432
In particular, each 'sign_capab' array has the same format and In particular, each 'sign_capab' array has the same format and
value of the COSE capabilities array for the algorithm capability value of the COSE capabilities array for the algorithm capability
specified in 'sign_parameters'[i]. specified in 'sign_parameters'[i].
Such a COSE capabilities array is currently defined for the Such a COSE capabilities array is currently defined for the
algorithm capability COSE key type in the "Capabilities" column of algorithm capability COSE key type in the "Capabilities" column of
the "COSE Key Types" registry [COSE.Key.Types]. the "COSE Key Types" registry [COSE.Key.Types].
sign_info_entry = sign_info_entry =
[ [
id : gname / [ + gname ], id : gname / [+ gname],
sign_alg : int / tstr, sign_alg : int / tstr,
sign_parameters : [ * alg_capab : any ], sign_parameters : [* alg_capab : any],
* sign_capab : [ * capab : any ], * sign_capab : [* capab : any],
cred_fmt : int / null cred_fmt : int / null
] ]
gname = tstr gname = tstr
Figure 38: 'sign_info_entry' with a General Format Figure 38: 'sign_info_entry' with a General Format
Acknowledgments Acknowledgments
The following individuals were helpful in shaping this document: The following individuals were helpful in shaping this document:
 End of changes. 18 change blocks. 
28 lines changed or deleted 29 lines changed or added

This html diff was produced by rfcdiff 1.48.