--- 1/draft-ietf-ace-pubsub-profile-00.txt 2020-07-03 05:13:15.450563471 -0700 +++ 2/draft-ietf-ace-pubsub-profile-01.txt 2020-07-03 05:13:15.494564588 -0700 @@ -1,19 +1,19 @@ ACE Working Group F. Palombini Internet-Draft Ericsson -Intended status: Standards Track January 04, 2020 -Expires: July 7, 2020 +Intended status: Standards Track July 03, 2020 +Expires: January 4, 2021 Pub-Sub Profile for Authentication and Authorization for Constrained Environments (ACE) - draft-ietf-ace-pubsub-profile-00 + draft-ietf-ace-pubsub-profile-01 Abstract This specification defines an application profile for authentication and authorization for publishers and subscribers in a pub-sub setting scenario in a constrained environment, using the ACE framework. This profile relies on transport layer or application layer security to authorize the publisher to the broker. Moreover, it relies on application layer security for publisher-broker and subscriber-broker communication. @@ -26,113 +26,130 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on July 7, 2020. + This Internet-Draft will expire on January 4, 2021. Copyright Notice Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 - 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 + 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 2. Application Profile Overview . . . . . . . . . . . . . . . . 3 - 3. coap_pubsub_app Application Profile . . . . . . . . . . . . . 5 - 3.1. Retrieval of COSE Key for protection of content . . . . . 5 - 4. Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . 8 - 5. Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . 10 - 6. Pub-Sub Protected Communication . . . . . . . . . . . . . . . 12 - 6.1. Using COSE Objects To Protect The Resource Representation 13 - 7. Security Considerations . . . . . . . . . . . . . . . . . . . 14 - 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 - 8.1. ACE Groupcomm Profile Registry . . . . . . . . . . . . . 15 - 8.2. ACE Groupcomm Key Registry . . . . . . . . . . . . . . . 16 - 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 - 9.1. Normative References . . . . . . . . . . . . . . . . . . 16 - 9.2. Informative References . . . . . . . . . . . . . . . . . 17 - Appendix A. Requirements on Application Profiles . . . . . . . . 17 - Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 19 - Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 + 3. PubSub Application Profiles . . . . . . . . . . . . . . . . . 5 + 3.1. Retrieval of COSE Key for protection of content . . . . . 6 + 3.2. coap_pubsub_app Application Profile . . . . . . . . . . . 9 + 3.3. mqtt_pubsub_app Application Profile . . . . . . . . . . . 9 + 4. Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . 9 + 4.1. CoAP Publisher . . . . . . . . . . . . . . . . . . . . . 11 + 4.2. MQTT Publisher . . . . . . . . . . . . . . . . . . . . . 12 + 5. Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . 12 + 5.1. CoAP Subscriber . . . . . . . . . . . . . . . . . . . . . 13 + 5.2. MQTT Subscriber . . . . . . . . . . . . . . . . . . . . . 13 + 6. Pub-Sub Protected Communication . . . . . . . . . . . . . . . 13 + 6.1. Using COSE Objects To Protect The Resource Representation 14 + 7. Security Considerations . . . . . . . . . . . . . . . . . . . 16 + 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 + 8.1. ACE Groupcomm Profile Registry . . . . . . . . . . . . . 17 + 8.1.1. CoAP Profile Registration . . . . . . . . . . . . . . 17 + 8.1.2. CoAP Profile Registration . . . . . . . . . . . . . . 17 + 8.2. ACE Groupcomm Key Registry . . . . . . . . . . . . . . . 18 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 + 9.1. Normative References . . . . . . . . . . . . . . . . . . 18 + 9.2. Informative References . . . . . . . . . . . . . . . . . 19 + Appendix A. Requirements on Application Profiles . . . . . . . . 19 + Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 21 + Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 21 1. Introduction The publisher-subscriber setting allows for devices with limited reachability to communicate via a broker that enables store-and- forward messaging between the devices. The pub-sub scenario using the Constrained Application Protocol (CoAP) is specified in - [I-D.ietf-core-coap-pubsub]. This document defines a way to - authorize nodes in a CoAP pub-sub type of setting, using the ACE - framework [I-D.ietf-ace-oauth-authz], and to provide the keys for - protecting the communication between these nodes. + [I-D.ietf-core-coap-pubsub], while the one using MQTT is specified in + REF MQTT. This document defines a way to authorize nodes in a CoAP + pub-sub type of setting, using the ACE framework + [I-D.ietf-ace-oauth-authz], and to provide the keys for protecting + the communication between these nodes. This document gives detailed + specifications for MQTT and CoAP pub-sub, but can easily be adapted + for other transport protocol as well. 1.1. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. Readers are expected to be familiar with the terms and concepts - described in [I-D.ietf-ace-oauth-authz], [I-D.ietf-ace-key-groupcomm] - and [I-D.ietf-core-coap-pubsub]. In particular, analogously to + described in [I-D.ietf-ace-oauth-authz], + [I-D.ietf-ace-key-groupcomm]. In particular, analogously to [I-D.ietf-ace-oauth-authz], terminology for entities in the architecture such as Client (C), Resource Server (RS), and Authorization Server (AS) is defined in OAuth 2.0 [RFC6749] and [I-D.ietf-ace-actors], and terminology for entities such as the Key Distribution Center (KDC) and Dispatcher in [I-D.ietf-ace-key-groupcomm]. + Readers are expected to be familiar with terms and concepts of pub- + sub group communication, as described in [I-D.ietf-core-coap-pubsub], + or MQTT (REF MQTT pubsub). + 2. Application Profile Overview The objective of this document is to specify how to authorize nodes, - provide keys, and protect a CoAP pub-sub communication, as described - in [I-D.ietf-core-coap-pubsub], using [I-D.ietf-ace-key-groupcomm], - which itself expands the Ace framework ([I-D.ietf-ace-oauth-authz]), - and transport profiles ([I-D.ietf-ace-dtls-authorize], - [I-D.ietf-ace-oscore-profile]). + provide keys, and protect a pub-sub communication, using + [I-D.ietf-ace-key-groupcomm], which itself expands the Ace framework + ([I-D.ietf-ace-oauth-authz]), and transport profiles + ([I-D.ietf-ace-dtls-authorize], [I-D.ietf-ace-oscore-profile], REF + MQTT profile). The pub-sub communication protocol can be based on + CoAP, as described in [I-D.ietf-core-coap-pubsub], MQTT (see REF MQTT + comm), or other transport. The architecture of the scenario is shown in Figure 1. +----------------+ +----------------+ | | | | | Authorization | | Authorization | | Server 1 | | Server 2 | | | | | +----------------+ +----------------+ ^ ^ ^ | | | +---------(A)----+ | +-----(D)------+ | +--------------------(B)--------+ | v v v +------------+ +------------+ +------------+ - | CoAP | ----(C)---> | CoAP | | CoAP | - | Client - | ----(E)---> | Server - | | Client - | + | | | | | | + | Publisher | ----(E)---> | Broker | | Subscriber | | | | | <----(F)---- | | - | Publisher | | Broker | -----(G)---> | Subscriber | + | | | | -----(G)---> | | +------------+ +------------+ +------------+ Figure 1: Architecture CoAP pubsub with Authorization Servers The RS is the broker, which contains the topic. This node corresponds to the Dispatcher, in [I-D.ietf-ace-key-groupcomm]. The AS1 hosts the policies about the Broker: what endpoints are allowed to Publish on the Broker. The Clients access this node to get write access to the Broker. The AS2 hosts the policies about the topic: what endpoints are allowed to access what topic. This node @@ -163,50 +180,57 @@ Note that, analogously to the Publisher, the Subscriber can also set up an additional security association with the Broker, using an AS, in the same way the Publisher does with AS1. In this case, only authorized Subscribers would be able to get notifications from the Broker. The overhead would be that each Subscriber should access the AS and get all the information to start a secure exchange with the Broker. +------------+ +------------+ +------------+ - | CoAP | | CoAP | | CoAP | - | Client - | | Server - | | Client - | | | | | | | | Publisher | | Broker | | Subscriber | + | | | | | | + | | | | | | +------------+ +------------+ +------------+ : : : : : '------ Security -------' : : Association 1 : '------------------------------- Security --------------' Association 2 Note that AS1 and AS2 might either be co-resident or be 2 separate physical entities, in which case access control policies must be exchanged between AS1 and AS2, so that they agree on rights for joining nodes about specific topics. How the policies are exchanged is out of scope for this specification. -3. coap_pubsub_app Application Profile +3. PubSub Application Profiles - This profile uses [I-D.ietf-ace-key-groupcomm], which expands the ACE - framework. This document specifies which exact parameters from + Each profile defined in this document uses + [I-D.ietf-ace-key-groupcomm], which expands the ACE framework. This + section defines which exact parameters from [I-D.ietf-ace-key-groupcomm] have to be used, and the values for each - parameter. + parameter. Since [I-D.ietf-ace-oauth-authz] recommends the use of + CoAP anc CBOR, this document describes the exchanges assuming CoAP + and CBOR are used. However, using HTTP instead of CoAP is possible, + using the corresponding parameters and methods. Analogously, JSON + [RFC8259] can be used instead of CBOR, using the conversion method + specified in Sections 4.1 and 4.2 of [RFC7049]. In case JSON is + used, the Content Format or Media Type of the message has to be + changed accordingly. The Publisher and the Subscriber map to the Client in [I-D.ietf-ace-key-groupcomm], the AS2 maps to the AS and to the KDC, the Broker maps to the Dispatcher. - Note that both publishers and subscribers use the same profile, - called "coap_pubsub_app". + Note that both publishers and subscribers use the same profile. 3.1. Retrieval of COSE Key for protection of content This phase is common to both Publisher and Subscriber. To maintain the generality, the Publisher or Subscriber is referred as Client in this section. Client Broker AS2 | [----- Resource Request ---->] | | | | | @@ -223,21 +247,21 @@ Figure 2: B: Access request - response Complementary to what is defined in [I-D.ietf-ace-oauth-authz] (Section 5.1.1), to determine the AS2 in charge of a topic hosted at the Broker, the Broker MAY send the address of both the AS in charge of the topic back to the Client in the 'AS' parameter in the AS Information, as a response to an Unauthorized Resource Request (Section 5.1.2). The uri of AS2 is concatenated to the uri of AS1, and separated by a comma. An example using CBOR diagnostic notation - is given below: + and CoAP is given below: 4.01 Unauthorized Content-Format: application/ace+cbor {"AS": "coaps://as1.example.com/token, coaps://as2.example.com/pubsubkey"} Figure 3: AS1, AS2 Information example After retrieving the AS2 address, the Client MAY send a request to the AS, in order to retrieve necessary information concerning the @@ -292,37 +316,40 @@ rsnonce concatenated with cnonce, if 'client_cred' is present, * OPTIONALLY, if needed, the 'pub_keys_repos' parameter o the following fields from the Authorization Request (Section 3.1 of [I-D.ietf-ace-key-groupcomm]): * OPTIONALLY, if needed, additional parameters such as 'client_id' + TODO: 'cnonce' might change name. TODO: register media type ace+json + for HTTP? + Note that the alg parameter in the 'client_cred' COSE_Key MUST be a signing algorithm, as defined in section 8 of [RFC8152], and that it is the same algorithm used to compute the signature sent in 'client_cred_verify'. Examples of the payload of a Authorization + Joining Request are specified in Figure 5 and Figure 8. The AS2 verifies that the Client is authorized to access the topic and, if the 'client_cred' parameter is present, stores the public key of the Client. The AS2 response is an Authorization + Joining Response, with Content-Format = "application/ace+cbor". The payload (formatted as a CBOR map) MUST contain: - o the following fields from the Joining Response (Section 4.1 of + o the following fields from the Joining Response (Section 4.2 of [I-D.ietf-ace-key-groupcomm]): * 'kty' identifies a key type "COSE_Key", as defined in Section 8.2. * 'key', which contains a "COSE_Key" object (defined in [RFC8152], containing: + 'kty' with value 4 (symmetric) @@ -338,95 +365,116 @@ * OPTIONALLY, 'exp' with the expiration time of the key * 'pub_keys', containing the public keys of all authorized signing members formatted as COSE_Keys, if the 'get_pub_keys' parameter was present and set to the empty array in the Authorization + Key Distribution Request o the following fields from the Authorization Response (Section 3.2 of [I-D.ietf-ace-key-groupcomm]): - * 'profile' set to "coap_pubsub_app", as specified in Section 8.1 + * 'profile' set to the corresponding value, see Section 3.2 or + Section 3.3 * OPTIONALLY 'scope', set to a CBOR array containing: + the broker's topic as first element, and + the string "publisher" if the client is an authorized publisher, "subscriber" if the client is an authorized subscriber, or a CBOR array containing both, if the client is authorized to be both. Examples for the response payload are detailed in Figure 6 and Figure 9. +3.2. coap_pubsub_app Application Profile + + In case CoAP PubSub is used as communication protocol: + + o 'profile' set to "coap_pubsub_app", as specified in Section 8.1.1. + +3.3. mqtt_pubsub_app Application Profile + + In case mQTT PubSub is used as communication protocol: + + o 'profile' set to "mqtt_pubsub_app", as specified in Section 8.1.2. + 4. Publisher In this section, it is specified how the Publisher requests, obtains and communicates to the Broker the access token, as well as the retrieval of the keying material to protect the publication. +----------------+ +----------------+ | | | | | Authorization | | Authorization | | Server 1 | | Server 2 | | | | | +----------------+ +----------------+ ^ ^ | | +---------(A)----+ | | +--------------------(B)--------+ v v +------------+ +------------+ - | CoAP | ----(C)---> | CoAP | - | Client - | | Server - | - | | | | + | | ----(C)---> | | | Publisher | | Broker | + | | | | + | | | | +------------+ +------------+ Figure 4: Phase 1: Publisher side This is a combination of two independent phases: o one is the establishment of a secure connection between Publisher and Broker, using an ACE transport profile such as DTLS - [I-D.ietf-ace-dtls-authorize] or OSCORE - [I-D.ietf-ace-oscore-profile]. (A)(C) + [I-D.ietf-ace-dtls-authorize], OSCORE + [I-D.ietf-ace-oscore-profile] or REF MQTT Profile. (A)(C) o the other is the Publisher's retrieval of keying material to protect the publication. (B) In detail: (A) corresponds to the Access Token Request and Response between Publisher and Authorization Server to retrieve the Access Token and RS (Broker) Information. As specified, the Publisher has the role of a CoAP client, the Broker has the role of the CoAP server. (C) corresponds to the exchange between Publisher and Broker, where the Publisher sends its access token to the Broker and establishes a secure connection with the Broker. Depending on the Information received in (A), this can be for example DTLS handshake, or other protocols. Depending on the application, there may not be the need - for this set up phase: for example, if OSCORE is used directly. + for this set up phase: for example, if OSCORE is used directly. Note + that, in line with what defined in the ACE transport profile used, + the access token includes the scope (i.e. pubsub topics on the + Broker) the Publisher is allowed to publish to. For implementation + semplicity, it is RECOMMENDED that the ACE transport profile used and + this specification use the same format of "scope". (A) and (C) details are specified in the profile used. (B) corresponds to the retrieval of the keying material to protect the publication end-to-end with the subscribers (see Section 6.1), and uses [I-D.ietf-ace-key-groupcomm]. The details are defined in Section 3.1. +4.1. CoAP Publisher + An example of the payload of an Authorization + Joining Request and - corresponding Response for a Publisher is specified in Figure 5 and - Figure 6, where SIG is a signature computed using the private key - associated to the public key and the algorithm in "client_cred". + corresponding Response for a CoAP Publisher using CoAP and CBOR is + specified in Figure 5 and Figure 6, where SIG is a signature computed + using the private key associated to the public key and the algorithm + in "client_cred". { "scope" : ["Broker1/Temp", "publisher"], "client_id" : "publisher1", "client_cred" : { / COSE_Key / / type / 1 : 2, / EC2 / / kid / 2 : h'11', / alg / 3 : -7, / ECDSA with SHA-256 / / crv / -1 : 1 , / P-256 / @@ -443,42 +491,45 @@ { "profile" : "coap_pubsub_app", "kty" : "COSE_Key", "key" : {1: 4, 2: h'1234', 3: 12, 5: h'1f389d14d17dc7', -1: h'02e2cc3a9b92855220f255fff1c615bc'} } Figure 6: Authorization + Joining Response payload for a Publisher +4.2. MQTT Publisher + + TODO + 5. Subscriber In this section, it is specified how the Subscriber retrieves the keying material to protect the publication. +----------------+ | | | Authorization | | Server 2 | | | +----------------+ ^ | +-----(D)------+ | v +------------+ - | CoAP | - | Client - | | | | Subscriber | | | + | | +------------+ Figure 7: Phase 2: Subscriber side Step (D) between Subscriber and AS2 corresponds to the retrieval of the keying material to verify the publication end-to-end with the publishers (see Section 6.1). The details are defined in Section 3.1 This step is the same as (B) between Publisher and AS2 (Section 3.1), with the following differences: @@ -486,23 +537,25 @@ o The Authorization + Joining Request MUST NOT contain the 'client_cred parameter', the role element in the 'scope' parameter MUST be set to "subscriber". The Subscriber MUST have access to the public keys of all the Publishers; this MAY be achieved in the Authorization + Joining Request by using the parameter 'get_pub_keys' set to empty array. o The Authorization + Key Distribution Response MUST contain the 'pub_keys' parameter. +5.1. CoAP Subscriber + An example of the payload of an Authorization + Joining Request and - corresponding Response for a Subscriber is specified in Figure 8 and - Figure 9. + corresponding Response for a CoAP Subscriber using CoAP and CBOR is + specified in Figure 8 and Figure 9. { "scope" : ["Broker1/Temp", "subscriber"], "get_pub_keys" : [ ] } Figure 8: Authorization + Joining Request payload for a Subscriber { "profile" : "coap_pubsub_app", @@ -519,32 +572,35 @@ -2 : h'65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de43 9c08551d', / x / -3 : h'1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd 0084d19c' / y / } ] } Figure 9: Authorization + Joining Response payload for a Subscriber +5.2. MQTT Subscriber + + TODO + 6. Pub-Sub Protected Communication This section specifies the communication Publisher-Broker and Subscriber-Broker, after the previous phases have taken place. The operations of publishing and subscribing are defined in [I-D.ietf-core-coap-pubsub]. +------------+ +------------+ +------------+ - | CoAP | | CoAP | | CoAP | - | Client - | | Server - | | Client - | - | | ----(E)---> | | | | - | Publisher | | Broker | <----(F)---- | Subscriber | + | | | | | | + | Publisher | ----(E)---> | Broker | | Subscriber | + | | | | <----(F)---- | | | | | | -----(G)---> | | +------------+ +------------+ +------------+ Figure 10: Phase 3: Secure communication between Publisher and Subscriber The (E) message corresponds to the publication of a topic on the Broker. The publication (the resource representation) is protected with COSE ([RFC8152]). The (F) message is the subscription of the Subscriber, which is unprotected, unless a profile of ACE @@ -561,21 +617,21 @@ | | | | | ---- response ------> | | | protected with COSE | Figure 11: (E), (F), (G): Example of protected communication 6.1. Using COSE Objects To Protect The Resource Representation The Publisher uses the symmetric COSE Key received from AS2 in exchange B (Section 3.1) to protect the payload of the PUBLISH - operation (Section 4.3 of [I-D.ietf-core-coap-pubsub]). + operation (Section 4.3 of [I-D.ietf-core-coap-pubsub] and REF MQTT). Specifically, the COSE Key is used to create a COSE_Encrypt0 with algorithm specified by AS2. The Publisher uses the private key corresponding to the public key sent to the AS2 in exchange B (Section 3.1) to countersign the COSE Object as specified in Section 4.5 of [RFC8152]. The CoAP payload is replaced by the COSE object before the publication is sent to the Broker. The Subscriber uses the kid in the countersignature field in the COSE object to retrieve the right public key to verify the countersignature. It then uses the symmetric key received from AS2 @@ -675,25 +730,39 @@ 8.1. ACE Groupcomm Profile Registry The following registrations are done for the "ACE Groupcomm Profile" Registry following the procedure specified in [I-D.ietf-ace-key-groupcomm]. Note to RFC Editor: Please replace all occurrences of "[[This document]]" with the RFC number of this specification and delete this paragraph. +8.1.1. CoAP Profile Registration + Name: coap_pubsub_app Description: Profile for delegating client authentication and - authorization for publishers and subscribers in a pub-sub setting - scenario in a constrained environment. + authorization for publishers and subscribers in a CoAP pub-sub + setting scenario in a constrained environment. + + CBOR Key: TBD + + Reference: [[This document]] + +8.1.2. CoAP Profile Registration + + Name: mqtt_pubsub_app + + Description: Profile for delegating client authentication and + authorization for publishers and subscribers in a MQTT pub-sub + setting scenario in a constrained environment. CBOR Key: TBD Reference: [[This document]] 8.2. ACE Groupcomm Key Registry The following registrations are done for the ACE Groupcomm Key Registry following the procedure specified in [I-D.ietf-ace-key-groupcomm]. @@ -711,69 +780,78 @@ Description: COSE_Key object References: [RFC8152], [[This document]] 9. References 9.1. Normative References [I-D.ietf-ace-key-groupcomm] Palombini, F. and M. Tiloca, "Key Provisioning for Group - Communication using ACE", draft-ietf-ace-key-groupcomm-03 - (work in progress), November 2019. + Communication using ACE", draft-ietf-ace-key-groupcomm-07 + (work in progress), June 2020. [I-D.ietf-ace-oauth-authz] Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and H. Tschofenig, "Authentication and Authorization for Constrained Environments (ACE) using the OAuth 2.0 - Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-29 - (work in progress), December 2019. + Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-35 + (work in progress), June 2020. [I-D.ietf-core-coap-pubsub] Koster, M., Keranen, A., and J. Jimenez, "Publish- Subscribe Broker for the Constrained Application Protocol (CoAP)", draft-ietf-core-coap-pubsub-09 (work in progress), September 2019. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012, . + [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object + Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, + October 2013, . + [RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", RFC 8152, DOI 10.17487/RFC8152, July 2017, . 9.2. Informative References [I-D.ietf-ace-actors] Gerdes, S., Seitz, L., Selander, G., and C. Bormann, "An architecture for authorization in constrained environments", draft-ietf-ace-actors-07 (work in progress), October 2018. [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-09 (work in progress), December 2019. + authorize-11 (work in progress), June 2020. [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-08 (work in progress), July 2019. + oscore-profile-11 (work in progress), June 2020. + + [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data + Interchange Format", STD 90, RFC 8259, + DOI 10.17487/RFC8259, December 2017, + . Appendix A. Requirements on Application Profiles This section lists the specifications on this profile based on the requirements defined in Appendix A of [I-D.ietf-ace-key-groupcomm] o REQ1: Specify the encoding and value of the identifier of group or topic of 'scope': see Section 3.1). o REQ2: Specify the encoding and value of roles of 'scope': see @@ -841,19 +920,19 @@ 'mgt_key_material': not defined o OPT4: Optionally, specify policies that instruct clients to retain unsuccessfully decrypted messages and for how long, so that they can be decrypted after getting updated keying material: not defined Acknowledgments The author wishes to thank Ari Keraenen, John Mattsson, Ludwig Seitz, - Goeran Selander, Jim Schaad and Marco Tiloca for the useful - discussion and reviews that helped shape this document. + Goeran Selander, Cigdem Sengul, Jim Schaad and Marco Tiloca for the + useful discussion and reviews that helped shape this document. Author's Address Francesca Palombini Ericsson Email: francesca.palombini@ericsson.com