| rfc9848v1.txt | rfc9848.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) B. Schwartz | Internet Engineering Task Force (IETF) B. Schwartz | |||
| Request for Comments: 9848 Meta Platforms, Inc. | Request for Comments: 9848 Meta Platforms, Inc. | |||
| Category: Standards Track M. Bishop | Category: Standards Track M. Bishop | |||
| ISSN: 2070-1721 E. Nygren | ISSN: 2070-1721 E. Nygren | |||
| Akamai Technologies | Akamai Technologies | |||
| December 2025 | March 2026 | |||
| Bootstrapping TLS Encrypted ClientHello with DNS Service Bindings | Bootstrapping TLS Encrypted ClientHello with DNS Service Bindings | |||
| Abstract | Abstract | |||
| To use TLS Encrypted ClientHello (ECH), the client needs to learn the | To use TLS Encrypted ClientHello (ECH), the client needs to learn the | |||
| ECH configuration for a server before it attempts a connection to the | ECH configuration for a server before it attempts a connection to the | |||
| server. This specification provides a mechanism for conveying the | server. This specification provides a mechanism for conveying the | |||
| ECH configuration information via DNS, using a SVCB or HTTPS resource | ECH configuration information via DNS, using a SVCB or HTTPS resource | |||
| record (RR). | record (RR). | |||
| skipping to change at line 35 ¶ | skipping to change at line 35 ¶ | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
| https://www.rfc-editor.org/info/rfc9848. | https://www.rfc-editor.org/info/rfc9848. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 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 | 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 Revised BSD License text as described in Section 4.e of the | include Revised BSD License text as described in Section 4.e of the | |||
| Trust Legal Provisions and are provided without warranty as described | Trust Legal Provisions and are provided without warranty as described | |||
| skipping to change at line 105 ¶ | skipping to change at line 105 ¶ | |||
| protocols (including DTLS [RFC9147] and QUIC version 1 [RFC9001]) | protocols (including DTLS [RFC9147] and QUIC version 1 [RFC9001]) | |||
| unless otherwise specified. | unless otherwise specified. | |||
| In wire format, the value of the parameter is an ECHConfigList | In wire format, the value of the parameter is an ECHConfigList | |||
| (Section 4 of [ECH]), including the redundant length prefix. In | (Section 4 of [ECH]), including the redundant length prefix. In | |||
| presentation format, the value is the ECHConfigList in Base 64 | presentation format, the value is the ECHConfigList in Base 64 | |||
| encoding (Section 4 of [RFC4648]). Base 64 is used here to simplify | encoding (Section 4 of [RFC4648]). Base 64 is used here to simplify | |||
| integration with TLS server software. To enable simpler parsing, | integration with TLS server software. To enable simpler parsing, | |||
| this SvcParam MUST NOT contain escape sequences. | this SvcParam MUST NOT contain escape sequences. | |||
| ech="AEj+DQBEAQAgACAdd+scUi0IYFsXnUIU7ko2Nd9+F8M26pAGZVpz/KrWPgAEAAEAAWQ | This example uses line wrapping per [RFC8792]. | |||
| VZWNoLXNpdGVzLmV4YW1wbGUubmV0AAA=" | ||||
| ech="AEj+DQBEAQAgACAdd+scUi0IYFsXnUIU7ko2Nd9+F8M26pAGZVpz/KrWPgAEAAE\ | ||||
| AAWQVZWNoLXNpdGVzLmV4YW1wbGUubmV0AAA=" | ||||
| Figure 1: ECH SvcParam with a public_name of "ech-sites.example.net" | Figure 1: ECH SvcParam with a public_name of "ech-sites.example.net" | |||
| 4. Requirements for Server Deployments | 4. Requirements for Server Deployments | |||
| When publishing a record containing an "ech" parameter, the publisher | When publishing a record containing an "ech" parameter, the publisher | |||
| MUST ensure that all IP addresses of TargetName correspond to servers | MUST ensure that all IP addresses of TargetName correspond to servers | |||
| that have access to the corresponding private key or are | that have access to the corresponding private key or are | |||
| authoritative for the public name. (See Sections 6.1.7 and 8.1.1 of | authoritative for the public name. (See Sections 6.1.7 and 8.1.1 of | |||
| [ECH] for requirements related to the public name.) Otherwise, | [ECH] for requirements related to the public name.) Otherwise, | |||
| skipping to change at line 204 ¶ | skipping to change at line 206 ¶ | |||
| www 300 IN A 192.0.2.1 | www 300 IN A 192.0.2.1 | |||
| AAAA 2001:db8::1 | AAAA 2001:db8::1 | |||
| HTTPS 1 . ech=ABC... | HTTPS 1 . ech=ABC... | |||
| Figure 2: Simple Example Zone with the Same Configuration on the | Figure 2: Simple Example Zone with the Same Configuration on the | |||
| Apex and Web Domain | Apex and Web Domain | |||
| The example above is compatible with clients that do or do not | The example above is compatible with clients that do or do not | |||
| support HTTPS records. | support HTTPS records. | |||
| $ORIGIN heterogeneous.example. ; Example zone with two pools of servers | $ORIGIN heterogeneous.example. ; Example zone with 2 pools of servers | |||
| pool1 300 IN A 192.0.2.1 | pool1 300 IN A 192.0.2.1 | |||
| AAAA 2001:db8:1::a | AAAA 2001:db8:1::a | |||
| pool2 300 IN A 192.0.2.2 | pool2 300 IN A 192.0.2.2 | |||
| AAAA 2001:db8:2::a | AAAA 2001:db8:2::a | |||
| service 300 IN SVCB 1 pool1 ech=ABC... | service 300 IN SVCB 1 pool1 ech=ABC... | |||
| SVCB 1 pool2 ech=DEF... | SVCB 1 pool2 ech=DEF... | |||
| A 192.0.2.1 | A 192.0.2.1 | |||
| A 192.0.2.2 | A 192.0.2.2 | |||
| AAAA 2001:db8:1::a | AAAA 2001:db8:1::a | |||
| AAAA 2001:db8:2::a | AAAA 2001:db8:2::a | |||
| skipping to change at line 345 ¶ | skipping to change at line 347 ¶ | |||
| +--------+------+--------------------+------------+-----------+ | +--------+------+--------------------+------------+-----------+ | |||
| Table 1 | Table 1 | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [ECH] Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS | [ECH] Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS | |||
| Encrypted Client Hello", RFC 9849, DOI 10.17487/RFC9849, | Encrypted Client Hello", RFC 9849, DOI 10.17487/RFC9849, | |||
| December 2025, <https://www.rfc-editor.org/info/rfc9849>. | March 2026, <https://www.rfc-editor.org/info/rfc9849>. | |||
| [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
| STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | |||
| <https://www.rfc-editor.org/info/rfc1034>. | <https://www.rfc-editor.org/info/rfc1034>. | |||
| [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>. | |||
| skipping to change at line 393 ¶ | skipping to change at line 395 ¶ | |||
| [CLINIC] Miller, B., Huang, L., Joseph, A., and J. Tygar, "I Know | [CLINIC] Miller, B., Huang, L., Joseph, A., and J. Tygar, "I Know | |||
| Why You Went to the Clinic: Risks and Realization of HTTPS | Why You Went to the Clinic: Risks and Realization of HTTPS | |||
| Traffic Analysis", Lecture Notes in Computer Science, vol. | Traffic Analysis", Lecture Notes in Computer Science, vol. | |||
| 8555, pp. 143-163, DOI 10.1007/978-3-319-08506-7_8, 2014, | 8555, pp. 143-163, DOI 10.1007/978-3-319-08506-7_8, 2014, | |||
| <https://doi.org/10.1007/978-3-319-08506-7_8>. | <https://doi.org/10.1007/978-3-319-08506-7_8>. | |||
| [RFC7838] Nottingham, M., McManus, P., and J. Reschke, "HTTP | [RFC7838] Nottingham, M., McManus, P., and J. Reschke, "HTTP | |||
| Alternative Services", RFC 7838, DOI 10.17487/RFC7838, | Alternative Services", RFC 7838, DOI 10.17487/RFC7838, | |||
| April 2016, <https://www.rfc-editor.org/info/rfc7838>. | April 2016, <https://www.rfc-editor.org/info/rfc7838>. | |||
| [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, | ||||
| "Handling Long Lines in Content of Internet-Drafts and | ||||
| RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, | ||||
| <https://www.rfc-editor.org/info/rfc8792>. | ||||
| [RFC9001] Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | [RFC9001] Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | |||
| QUIC", RFC 9001, DOI 10.17487/RFC9001, May 2021, | QUIC", RFC 9001, DOI 10.17487/RFC9001, May 2021, | |||
| <https://www.rfc-editor.org/info/rfc9001>. | <https://www.rfc-editor.org/info/rfc9001>. | |||
| [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | |||
| Datagram Transport Layer Security (DTLS) Protocol Version | Datagram Transport Layer Security (DTLS) Protocol Version | |||
| 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, | 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, | |||
| <https://www.rfc-editor.org/info/rfc9147>. | <https://www.rfc-editor.org/info/rfc9147>. | |||
| Authors' Addresses | Authors' Addresses | |||
| End of changes. 6 change blocks. | ||||
| 6 lines changed or deleted | 13 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||