| rfc9918.original | rfc9918.txt | |||
|---|---|---|---|---|
| Network Configuration S. Turner | Internet Engineering Task Force (IETF) S. Turner | |||
| Internet-Draft sn3rd | Request for Comments: 9918 sn3rd | |||
| Updates: 7589 (if approved) R. Housley | Updates: 7589 R. Housley | |||
| Intended status: Standards Track Vigil Security | Category: Standards Track Vigil Security | |||
| Expires: 21 July 2024 18 January 2024 | ISSN: 2070-1721 January 2026 | |||
| Updates to Using the NETCONF Protocol over Transport Layer Security | Updates to Using the NETCONF Protocol over Transport Layer Security | |||
| (TLS) with Mutual X.509 Authentication | (TLS) with Mutual X.509 Authentication | |||
| draft-ietf-netconf-over-tls13-04 | ||||
| Abstract | Abstract | |||
| RFC 7589 defines how to protect NETCONF messages with TLS 1.2. This | RFC 7589 defines how to protect Network Configuration Protocol | |||
| document updates RFC 7589 to update support requirements for TLS 1.2 | (NETCONF) messages with TLS 1.2. This document updates RFC 7589 to | |||
| and add TLS 1.3 support requirements, including restrictions on the | update support requirements for TLS 1.2 and add TLS 1.3 support | |||
| use of TLS 1.3's early data. | requirements, including restrictions on the use of TLS 1.3's early | |||
| data. | ||||
| About This Document | ||||
| This note is to be removed before publishing as an RFC. | ||||
| The latest revision of this draft can be found at https://netconf- | ||||
| wg.github.io/netconf-over-tls13/draft-ietf-netconf-over-tls13.html. | ||||
| Status information for this document may be found at | ||||
| https://datatracker.ietf.org/doc/draft-ietf-netconf-over-tls13/. | ||||
| Discussion of this document takes place on the Network Configuration | ||||
| Working Group mailing list (mailto:netconf@ietf.org), which is | ||||
| archived at https://mailarchive.ietf.org/arch/browse/netconf/. | ||||
| Subscribe at https://www.ietf.org/mailman/listinfo/netconf/. | ||||
| Source for this draft and an issue tracker can be found at | ||||
| https://github.com/netconf-wg/netconf-over-tls13. | ||||
| 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 21 July 2024. | 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/rfc9918. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2026 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. Conventions and Definitions . . . . . . . . . . . . . . . . . 3 | 2. Conventions | |||
| 3. Early Data . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Early Data | |||
| 4. Cipher Suites . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Cipher Suites | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 5. Security Considerations | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 6. IANA Considerations | |||
| 7. Normative References . . . . . . . . . . . . . . . . . . . . 5 | 7. Normative References | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 6 | Acknowledgments | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| [RFC7589] defines how to protect NETCONF messages [RFC6241] with TLS | [RFC7589] defines how to protect NETCONF messages [RFC6241] with TLS | |||
| 1.2 [RFC5246]. This document updates [RFC7589] to update support | 1.2 [RFC5246]. This document updates [RFC7589] to update support | |||
| requirements for TLS 1.2 [RFC5246] and to add TLS 1.3 | requirements for TLS 1.2 [RFC5246] and add TLS 1.3 [RFC9846] support | |||
| [I-D.ietf-tls-rfc8446bis] support requirements, including | requirements, including restrictions on the use of TLS 1.3's early | |||
| restrictions on the use of TLS 1.3's early data which is also known | data, which is also known as 0-RTT data. It also updates "netconf- | |||
| as 0-RTT data. It also updates the "netconf-tls" IANA Registered | tls", the IANA-registered port number entry, to refer to this | |||
| Port Number entry to refer to this document. All other provisions | document. All other provisions set forth in [RFC7589] are unchanged, | |||
| set forth in [RFC7589] are unchanged, including connection | including connection initiation, message framing, connection closure, | |||
| initiation, message framing, connection closure, certificate | certificate validation, server identity, and client identity. | |||
| validation, server identity, and client identity. | ||||
| | NOTE: Implementations that support TLS 1.3 | | NOTE: Implementations that support TLS 1.3 [RFC9846] should | |||
| | [I-D.ietf-tls-rfc8446bis] should refer to TLS 1.3 | | refer to TLS 1.3 in Sections 4 and 5 of [RFC7589]. | |||
| | [I-D.ietf-tls-rfc8446bis] in Sections 4 and 5 of [RFC7589]. | ||||
| 2. Conventions and Definitions | 2. Conventions | |||
| 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. | |||
| 3. Early Data | 3. Early Data | |||
| Early data (aka 0-RTT data) is a mechanism defined in TLS 1.3 | Early data (aka 0-RTT data) is a mechanism defined in TLS 1.3 | |||
| [I-D.ietf-tls-rfc8446bis] that allows a client to send data ("early | [RFC9846] that allows a client to send data ("early data") as part of | |||
| data") as part of the first flight of messages to a server. Note | the first flight of messages to a server. Note that TLS 1.3 can be | |||
| that TLS 1.3 can be used without early data as per Appendix F.5 of | used without early data as per Appendix F.5 of [RFC9846]. In fact, | |||
| [I-D.ietf-tls-rfc8446bis]. In fact, early data is permitted by TLS | early data is permitted by TLS 1.3 only when the client and server | |||
| 1.3 only when the client and server share a Pre-Shared Key (PSK), | share a Pre-Shared Key (PSK), either obtained externally or via a | |||
| either obtained externally or via a previous handshake. The client | previous handshake. The client uses the PSK to authenticate the | |||
| uses the PSK to authenticate the server and to encrypt the early | server and to encrypt the early data. | |||
| data. | ||||
| As noted in Section 2.3 of [I-D.ietf-tls-rfc8446bis], the security | As noted in Section 2.3 of [RFC9846], the security properties for | |||
| properties for early data are weaker than those for subsequent TLS- | early data are weaker than those for subsequent TLS-protected data. | |||
| protected data. In particular, early data is not forward secret, and | In particular, early data is not forward secret, and there is no | |||
| there is no protection against the replay of early data between | protection against the replay of early data between connections. | |||
| connections. Appendix E.5 of [I-D.ietf-tls-rfc8446bis] requires | Appendix F.5 of [RFC9846] requires applications not use early data | |||
| applications not use early data without a profile that defines its | without a profile that defines its use. This document specifies that | |||
| use. This document specifies that NETCONF implementations that | NETCONF implementations that support TLS 1.3 MUST NOT use early data. | |||
| support TLS 1.3 MUST NOT use early data. | ||||
| 4. Cipher Suites | 4. Cipher Suites | |||
| Implementations MUST support mutually authenticated TLS 1.2 [RFC5246] | Implementations MUST support mutually authenticated TLS 1.2 | |||
| and they are, as specified in [RFC9325], recommended to support the | [RFC5246], and they are, as specified in [RFC9325], recommended to | |||
| cipher suites found in Section 4.2 of [RFC9325]. | support the cipher suites found in Section 4.2 of [RFC9325]. | |||
| Implementations MAY implement additional TLS 1.2 cipher suites that | Implementations MAY implement additional TLS 1.2 cipher suites that | |||
| provide mutual authentication [RFC5246] and confidentiality as | provide mutual authentication [RFC5246] and confidentiality, as | |||
| required by NETCONF [RFC6241]. | required by NETCONF [RFC6241]. | |||
| Implementations SHOULD support mutually authenticated TLS 1.3 | Implementations SHOULD support mutually authenticated TLS 1.3 | |||
| [I-D.ietf-tls-rfc8446bis] and, if implemented, MUST prefer to | [RFC9846] and, if implemented, MUST prefer to negotiate TLS 1.3 over | |||
| negotiate TLS 1.3 over earlier versions of TLS. | earlier versions of TLS. | |||
| Implementations that support TLS 1.3 [I-D.ietf-tls-rfc8446bis] are | Implementations that support TLS 1.3 [RFC9846] are REQUIRED to | |||
| REQUIRED to support the mandatory-to-implement cipher suites listed | support the mandatory-to-implement cipher suites listed in | |||
| in Section 9.1 of [I-D.ietf-tls-rfc8446bis]. | Section 9.1 of [RFC9846]. | |||
| Implementations that support TLS 1.3 MAY implement additional TLS | Implementations that support TLS 1.3 MAY implement additional TLS | |||
| cipher suites that provide mutual authentication and confidentiality, | cipher suites that provide mutual authentication and confidentiality, | |||
| which are required for NETCONF [RFC6241]. | which are required for NETCONF [RFC6241]. | |||
| 5. Security Considerations | 5. Security Considerations | |||
| The Security Considerations of [RFC6241], [RFC7589], and [RFC9325] | The security considerations of [RFC6241], [RFC7589], and [RFC9325] | |||
| apply here as well. | apply here as well. | |||
| NETCONF implementations SHOULD follow the TLS recommendations given | NETCONF implementations SHOULD follow the TLS recommendations given | |||
| in [RFC9325]. | in [RFC9325]. | |||
| For implementations that support TLS 1.3, the Security Considerations | For implementations that support TLS 1.3, the security considerations | |||
| of TLS 1.3 [I-D.ietf-tls-rfc8446bis] apply. | of TLS 1.3 [RFC9846] apply. | |||
| As specified in [RFC7589], NETCONF over TLS requires mutual | As specified in [RFC7589], NETCONF over TLS requires mutual | |||
| authentication. | authentication. | |||
| For implementations that support TLS 1.3 [I-D.ietf-tls-rfc8446bis]: | For implementations that support TLS 1.3 [RFC9846]: | |||
| TLS 1.3 mutual authentication is used to ensure that only | TLS 1.3 mutual authentication is used to ensure that only | |||
| authorized users and systems are able to view the NETCONF server's | authorized users and systems are able to view the NETCONF server's | |||
| configuration and state or to modify the NETCONF server's | configuration and state or to modify the NETCONF server's | |||
| configuration. To this end, neither the client nor the server | configuration. To this end, neither the client nor the server | |||
| should establish a NETCONF over TLS 1.3 connection with an | should establish a NETCONF over TLS 1.3 connection with an | |||
| unknown, unexpected, or incorrectly identified peer; see Section 7 | unknown, unexpected, or incorrectly identified peer; see Section 7 | |||
| of [RFC7589]. If deployments make use of a trusted list of | of [RFC7589]. If deployments make use of a trusted list of | |||
| Certification Authority (CA) certificates [RFC5280], then the | Certification Authority (CA) certificates [RFC5280], then the | |||
| listed CAs should only issue certificates to parties that are | listed CAs should only issue certificates to parties that are | |||
| authorized to access the NETCONF servers. Doing otherwise will | authorized to access the NETCONF servers. Doing otherwise will | |||
| allow certificates that were issued for other purposes to be | allow certificates that were issued for other purposes to be | |||
| inappropriately accepted by a NETCONF server. | inappropriately accepted by a NETCONF server. | |||
| The Security Considerations of [RFC9525] apply to all implementations | The security considerations of [RFC9525] apply to all implementations | |||
| when the client checks the identity of the server, as is required in | when the client checks the identity of the server, as is required in | |||
| Section 6 of [RFC7589]. | Section 6 of [RFC7589]. | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| IANA is requested to add a reference to this document in the | IANA has added a reference to this document in the "netconf-tls" | |||
| "netconf-tls" entry in the "Service Name and Transport Protocol Port | entry in the "Service Name and Transport Protocol Port Number | |||
| Number Registry". The updated registry entry would appear as | Registry". The updated registry entry appears as follows: | |||
| follows: | ||||
| Service Name: netconf-tls | Service Name: netconf-tls | |||
| Transport Protocol(s): TCP | Port Number: 6513 | |||
| Assignee: IESG <iesg@ietf.org> | Transport Protocol: tcp | |||
| Contact: IETF Chair <chair@ietf.org> | Description: NETCONF over TLS | |||
| Description: NETCONF over TLS | Assignee: IESG <iesg@ietf.org> | |||
| Reference: RFC 7589, [THIS RFC] | Contact: IETF Chair <chair@ietf.org> | |||
| Port Number: 6513 | Reference: RFC 7589, RFC 9918 | |||
| 7. Normative References | 7. Normative References | |||
| [I-D.ietf-tls-rfc8446bis] | ||||
| Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", Work in Progress, Internet-Draft, draft- | ||||
| ietf-tls-rfc8446bis-09, 7 July 2023, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-tls- | ||||
| rfc8446bis-09>. | ||||
| [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/rfc/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, | (TLS) Protocol Version 1.2", RFC 5246, | |||
| DOI 10.17487/RFC5246, August 2008, | DOI 10.17487/RFC5246, August 2008, | |||
| <https://www.rfc-editor.org/rfc/rfc5246>. | <https://www.rfc-editor.org/info/rfc5246>. | |||
| [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
| Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
| (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | |||
| <https://www.rfc-editor.org/rfc/rfc5280>. | <https://www.rfc-editor.org/info/rfc5280>. | |||
| [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
| and A. Bierman, Ed., "Network Configuration Protocol | and A. Bierman, Ed., "Network Configuration Protocol | |||
| (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, | |||
| <https://www.rfc-editor.org/rfc/rfc6241>. | <https://www.rfc-editor.org/info/rfc6241>. | |||
| [RFC7589] Badra, M., Luchuk, A., and J. Schoenwaelder, "Using the | [RFC7589] Badra, M., Luchuk, A., and J. Schoenwaelder, "Using the | |||
| NETCONF Protocol over Transport Layer Security (TLS) with | NETCONF Protocol over Transport Layer Security (TLS) with | |||
| Mutual X.509 Authentication", RFC 7589, | Mutual X.509 Authentication", RFC 7589, | |||
| DOI 10.17487/RFC7589, June 2015, | DOI 10.17487/RFC7589, June 2015, | |||
| <https://www.rfc-editor.org/rfc/rfc7589>. | <https://www.rfc-editor.org/info/rfc7589>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC9325] Sheffer, Y., Saint-Andre, P., and T. Fossati, | [RFC9325] Sheffer, Y., Saint-Andre, P., and T. Fossati, | |||
| "Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
| Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
| (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November | |||
| 2022, <https://www.rfc-editor.org/rfc/rfc9325>. | 2022, <https://www.rfc-editor.org/info/rfc9325>. | |||
| [RFC9525] Saint-Andre, P. and R. Salz, "Service Identity in TLS", | [RFC9525] Saint-Andre, P. and R. Salz, "Service Identity in TLS", | |||
| RFC 9525, DOI 10.17487/RFC9525, November 2023, | RFC 9525, DOI 10.17487/RFC9525, November 2023, | |||
| <https://www.rfc-editor.org/rfc/rfc9525>. | <https://www.rfc-editor.org/info/rfc9525>. | |||
| [RFC9846] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 9846, DOI 10.17487/RFC9846, January | ||||
| 2026, <https://www.rfc-editor.org/info/rfc9846>. | ||||
| Acknowledgments | Acknowledgments | |||
| We would like to thank Per Andersson, Jürgen Schönwälder, Jeff | We would like to thank Per Andersson, Jürgen Schönwälder, Jeff | |||
| Hartley, Rob Wilton, and Qin Wu for their reviews. | Hartley, Rob Wilton, and Qin Wu for their reviews. | |||
| Authors' Addresses | Authors' Addresses | |||
| Sean Turner | Sean Turner | |||
| sn3rd | sn3rd | |||
| Email: sean@sn3rd.com | Email: sean@sn3rd.com | |||
| Russ Housley | Russ Housley | |||
| Vigil Security, LLC | Vigil Security, LLC | |||
| 516 Dranesville Road | 516 Dranesville Road | |||
| Herndon, VA, 20170 | Herndon, VA 20170 | |||
| United States of America | United States of America | |||
| Email: housley@vigilsec.com | Email: housley@vigilsec.com | |||
| End of changes. 34 change blocks. | ||||
| 125 lines changed or deleted | 98 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||