| rfc9430.original | rfc9430.txt | |||
|---|---|---|---|---|
| ACE Working Group O. Bergmann | Internet Engineering Task Force (IETF) O. Bergmann | |||
| Internet-Draft TZI | Request for Comments: 9430 TZI | |||
| Updates: 9202 (if approved) J. Preuß Mattsson | Updates: 9202 J. Preuß Mattsson | |||
| Intended status: Standards Track G. Selander | Category: Standards Track G. Selander | |||
| Expires: 10 September 2023 Ericsson | ISSN: 2070-1721 Ericsson | |||
| 9 March 2023 | July 2023 | |||
| Extension of the Datagram Transport Layer Security (DTLS) Profile for | Extension of the Datagram Transport Layer Security (DTLS) Profile for | |||
| Authentication and Authorization for Constrained Environments (ACE) to | Authentication and Authorization for Constrained Environments (ACE) to | |||
| Transport Layer Security (TLS) | Transport Layer Security (TLS) | |||
| draft-ietf-ace-extend-dtls-authorize-07 | ||||
| Abstract | Abstract | |||
| This document updates the Datagram Transport Layer Security (DTLS) | This document updates "Datagram Transport Layer Security (DTLS) | |||
| Profile for Authentication and Authorization for Constrained | Profile for Authentication and Authorization for Constrained | |||
| Environments (ACE) specified in RFC 9202 by specifying that the | Environments (ACE)" (RFC 9202) by specifying that the profile applies | |||
| profile applies to Transport Layer Security (TLS) as well as Datagram | to TLS as well as DTLS. | |||
| TLS (DTLS). | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 10 September 2023. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9430. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
| 3. Specific Changes to RFC 9202 . . . . . . . . . . . . . . . . 3 | 3. Specific Changes to RFC 9202 | |||
| 4. Connection Establishment . . . . . . . . . . . . . . . . . . 3 | 4. Connection Establishment | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 5. IANA Considerations | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 6. Security Considerations | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 7. References | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 5 | 7.1. Normative References | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 5 | 7.2. Informative References | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 6 | Acknowledgments | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| The Authentication and Authorization for Constrained Environments | The Authentication and Authorization for Constrained Environments | |||
| (ACE) framework [RFC9200] defines an architecture for lightweight | (ACE) framework [RFC9200] defines an architecture for lightweight | |||
| authentication between Client, Resource Server (RS), and | authentication between the Client, Resource Server (RS), and | |||
| Authorization Server (AS) where the Client and RS may be constrained. | Authorization Server (AS), where the Client and RS may be | |||
| The Datagram Transport Layer Security (DTLS) Profile for | constrained. "Datagram Transport Layer Security (DTLS) Profile for | |||
| Authentication and Authorization for Constrained Environments (ACE) | Authentication and Authorization for Constrained Environments (ACE)" | |||
| [RFC9202] only specifies the use of Datagram Transport Layer Security | [RFC9202] only specifies the use of DTLS [RFC9147] for transport | |||
| (DTLS) [RFC9147] for transport-layer security between the nodes in | layer security between the nodes in the ACE architecture but works | |||
| the ACE architecture but works equally well for Transport Layer | equally well for Transport Layer Security (TLS) [RFC8446]. For many | |||
| Security (TLS) [RFC8446]. For many constrained implementations, | constrained implementations, the Constrained Application Protocol | |||
| Constrained Application Protocol (CoAP) over UDP [RFC7252] is the | (CoAP) over UDP [RFC7252] is the first choice, but when deploying ACE | |||
| first choice, but when deploying ACE in networks controlled by other | in networks controlled by other entities (such as the Internet), UDP | |||
| entities (such as the Internet), UDP might be blocked on the path | might be blocked on the path between the Client and the Resource | |||
| between the Client and the Resource Server, and the Client might have | Server, and the Client might have to fall back to CoAP over TCP | |||
| to fall back to CoAP over TCP [RFC8323] for NAT or firewall | [RFC8323] for NAT or firewall traversal. This dual support for | |||
| traversal. This dual support for security over TCP as well as UDP is | security over TCP as well as UDP is already supported by the Object | |||
| already supported by the Object Security for Constrained RESTful | Security for Constrained RESTful Environments (OSCORE) profile | |||
| Environments (OSCORE) profile [RFC9203]. | [RFC9203]. | |||
| This document updates [RFC9202] by specifying that the profile | This document updates [RFC9202] by specifying that the profile | |||
| applies to TLS as well as DTLS. It only impacts the transport layer | applies to TLS as well as DTLS. It only impacts the transport layer | |||
| security channel between Client and Resource Server. The same access | security channel between the Client and Resource Server. The same | |||
| rights are valid in case transport layer security is provided by | access rights are valid in case transport layer security is provided | |||
| either DTLS or TLS. The same access token can be used by either DTLS | by either DTLS or TLS. The same access token can be used by either | |||
| or TLS between a given (Client, RS) pair. Therefore, the value | DTLS or TLS between a given (Client, RS) pair. Therefore, the value | |||
| coap_dtls in the ace_profile parameter of an Authorization Server to | coap_dtls in the ace_profile parameter of an Authorization Server to | |||
| Client (AS-to-Client) response or in the ace_profile claim of an | Client (AS-to-Client) response or in the ace_profile claim of an | |||
| access token indicates that either DTLS or TLS can be used for | access token indicates that either DTLS or TLS can be used for | |||
| transport layer security. | transport layer security. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| Readers are expected to be familiar with the terms and concepts | Readers are expected to be familiar with the terms and concepts | |||
| described in [RFC9200] and [RFC9202]. | described in [RFC9200] and [RFC9202]. | |||
| 3. Specific Changes to RFC 9202 | 3. Specific Changes to RFC 9202 | |||
| The main changes to [RFC9202] specified in this document are limited | The main changes to [RFC9202] specified in this document are limited | |||
| to replacing "DTLS" with "DTLS/TLS" throughout the document. This | to replacing "DTLS" with "DTLS/TLS" throughout the document. This | |||
| essentially impacts the use of secure transport as described in the | essentially impacts the use of secure transport, as described in | |||
| sections 3.2.2, 3.3.2, 4, and 5. | Sections 3.2.2, 3.3.2, 4, and 5. | |||
| In addition to this, the Client and Resource Server behavior is | In addition to this, the Client and Resource Server behavior is | |||
| updated to describe the case where either or both DTLS and TLS may be | updated to describe the case where either or both DTLS and TLS may be | |||
| available, as described in the following section. | available, as described in the following section. | |||
| 4. Connection Establishment | 4. Connection Establishment | |||
| Following the procedures defined in [RFC9202], a Client can retrieve | Following the procedures defined in [RFC9202], a Client can retrieve | |||
| an Access Token from an Authorization Server in order to establish a | an access token from an Authorization Server in order to establish a | |||
| security association with a specific Resource Server. The | security association with a specific Resource Server. The | |||
| ace_profile parameter in the Client-to-AS request and AS-to-client | ace_profile parameter in the Client-to-AS request and AS-to-Client | |||
| response is used to determine the ACE profile that the Client uses | response is used to determine the ACE profile that the Client uses | |||
| towards the Resource Server. | towards the Resource Server. | |||
| The ace_profile parameter indicates the use of the DTLS profile for | The ace_profile parameter indicates the use of the DTLS profile for | |||
| ACE as defined in [RFC9202]. Therefore, the Client typically first | ACE, as defined in [RFC9202]. Therefore, the Client typically first | |||
| tries using DTLS to connect to the Resource Server. If this fails | tries using DTLS to connect to the Resource Server. If this fails, | |||
| the Client MAY try to connect to the Resource Server via TLS. | the Client MAY try to connect to the Resource Server via TLS. | |||
| As resource-constrained devices are not expected to support both | As resource-constrained devices are not expected to support both | |||
| transport layer security mechanisms, Clients and Resource Servers | transport layer security mechanisms, Clients and Resource Servers | |||
| SHOULD support DTLS and MAY support TLS. A Client that implements | SHOULD support DTLS and MAY support TLS. A Client that implements | |||
| either TLS or DTLS but not both might fail in establishing a secure | either TLS or DTLS but not both might fail in establishing a secure | |||
| communication channel with the Resource Server altogether. Non- | communication channel with the Resource Server altogether. | |||
| constrained Clients and Resource Servers SHOULD support both TLS and | Nonconstrained Clients and Resource Servers SHOULD support both TLS | |||
| DTLS. | and DTLS. | |||
| Note that a communication setup with an a priori unknown Resource | Note that a communication setup with an a priori unknown Resource | |||
| Server typically employs an initial unauthorized resource request as | Server typically employs an initial unauthorized resource request, as | |||
| illustrated in Section 2 of [RFC9202]. If this message exchange | illustrated in Section 2 of [RFC9202]. If this message exchange | |||
| succeeds, the Client SHOULD first use the same underlying transport | succeeds, the Client SHOULD first use the same underlying transport | |||
| protocol also for the establishment of the security association to | protocol for the establishment of the security association to the | |||
| the Resource Server (i.e., DTLS for UDP, and TLS for TCP). | Resource Server (i.e., DTLS for UDP, and TLS for TCP). | |||
| As a consequence, the selection of the transport protocol used for | As a consequence, the selection of the transport protocol used for | |||
| the initial unauthorized resource request also depends on the | the initial unauthorized resource request also depends on the | |||
| transport layer security mechanism supported by the Client. Clients | transport layer security mechanism supported by the Client. Clients | |||
| that support either DTLS or TLS but not both SHOULD use the transport | that support either DTLS or TLS but not both SHOULD use the transport | |||
| protocol underlying the supported transport layer security mechanism | protocol underlying the supported transport layer security mechanism | |||
| also for an initial unauthorized resource request to the Resource | for an initial unauthorized resource request to the Resource Server, | |||
| Server as in Section 2 of [RFC9202]. | as in Section 2 of [RFC9202]. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| The following updates have been done to the "ACE Profiles" registry | In the "ACE Profiles" registry, the Description and Reference fields | |||
| for the profile with a "CBOR Value" field value of 1 and "Name" of | have been updated as follows for coap_dtls: | |||
| "coap_dtls": | ||||
| Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" | Name: coap_dtls | |||
| with the RFC number of this specification and delete this paragraph. | ||||
| Description: Profile for delegating client Authentication and | Description: Profile for delegating client Authentication and | |||
| Authorization for Constrained Environments by establishing a Datagram | Authorization for Constrained Environments by establishing a | |||
| Transport Layer Security (DTLS) or Transport Layer Security (TLS) | Datagram Transport Layer Security (DTLS) or Transport Layer | |||
| channel between resource-constrained nodes. | Security (TLS) channel between resource-constrained nodes. | |||
| Change Controller: IESG | CBOR Value: 1 | |||
| Reference: [RFC9202] [RFC-XXXX] | Reference: [RFC9202], RFC 9430 | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The security consideration and requirements in [RFC9202], TLS 1.3 | The security consideration and requirements in [RFC9202], TLS 1.3 | |||
| [RFC8446], and BCP 195 [RFC8996] [RFC9325] also apply to this | [RFC8446], and BCP 195 [RFC8996] [RFC9325] also apply to this | |||
| document. | document. | |||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [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>. | |||
| [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | |||
| Application Protocol (CoAP)", RFC 7252, | Application Protocol (CoAP)", RFC 7252, | |||
| DOI 10.17487/RFC7252, June 2014, | DOI 10.17487/RFC7252, June 2014, | |||
| skipping to change at page 6, line 31 ¶ | skipping to change at line 250 ¶ | |||
| Acknowledgments | Acknowledgments | |||
| The authors would like to thank Marco Tiloca for reviewing this | The authors would like to thank Marco Tiloca for reviewing this | |||
| specification. | specification. | |||
| Authors' Addresses | Authors' Addresses | |||
| Olaf Bergmann | Olaf Bergmann | |||
| Universität Bremen TZI | Universität Bremen TZI | |||
| Bremen, D-28359 | D-28359 Bremen | |||
| Germany | Germany | |||
| Email: bergmann@tzi.org | Email: bergmann@tzi.org | |||
| John Preuß Mattsson | John Preuß Mattsson | |||
| Ericsson AB | Ericsson AB | |||
| SE-164 80 Stockholm | SE-164 80 Stockholm | |||
| Sweden | Sweden | |||
| Email: john.mattsson@ericsson.com | Email: john.mattsson@ericsson.com | |||
| Göran Selander | Göran Selander | |||
| End of changes. 26 change blocks. | ||||
| 87 lines changed or deleted | 82 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||