| < draft-ietf-add-ddr-03.txt | draft-ietf-add-ddr-04.txt > | |||
|---|---|---|---|---|
| ADD T. Pauly | ADD T. Pauly | |||
| Internet-Draft E. Kinnear | Internet-Draft E. Kinnear | |||
| Intended status: Standards Track Apple Inc. | Intended status: Standards Track Apple Inc. | |||
| Expires: 4 April 2022 C.A. Wood | Expires: 19 May 2022 C.A. Wood | |||
| Cloudflare | Cloudflare | |||
| P. McManus | P. McManus | |||
| Fastly | Fastly | |||
| T. Jensen | T. Jensen | |||
| Microsoft | Microsoft | |||
| 1 October 2021 | 15 November 2021 | |||
| Discovery of Designated Resolvers | Discovery of Designated Resolvers | |||
| draft-ietf-add-ddr-03 | draft-ietf-add-ddr-04 | |||
| Abstract | Abstract | |||
| This document defines Discovery of Designated Resolvers (DDR), a | This document defines Discovery of Designated Resolvers (DDR), a | |||
| mechanism for DNS clients to use DNS records to discover a resolver's | mechanism for DNS clients to use DNS records to discover a resolver's | |||
| encrypted DNS configuration. This mechanism can be used to move from | encrypted DNS configuration. This mechanism can be used to move from | |||
| unencrypted DNS to encrypted DNS when only the IP address of a | unencrypted DNS to encrypted DNS when only the IP address of a | |||
| resolver is known. This mechanism is designed to be limited to cases | resolver is known. This mechanism is designed to be limited to cases | |||
| where unencrypted resolvers and their designated resolvers are | where unencrypted resolvers and their designated resolvers are | |||
| operated by the same entity or cooperating entities. It can also be | operated by the same entity or cooperating entities. It can also be | |||
| skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 4 April 2022. | This Internet-Draft will expire on 19 May 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| skipping to change at page 2, line 34 ¶ | skipping to change at page 2, line 34 ¶ | |||
| provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Specification of Requirements . . . . . . . . . . . . . . 3 | 1.1. Specification of Requirements . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. DNS Service Binding Records . . . . . . . . . . . . . . . . . 4 | 3. DNS Service Binding Records . . . . . . . . . . . . . . . . . 4 | |||
| 4. Discovery Using Resolver IP Addresses . . . . . . . . . . . . 5 | 4. Discovery Using Resolver IP Addresses . . . . . . . . . . . . 5 | |||
| 4.1. Use of Designated Resolvers . . . . . . . . . . . . . . . 6 | 4.1. Use of Designated Resolvers . . . . . . . . . . . . . . . 6 | |||
| 4.2. Authenticated Discovery . . . . . . . . . . . . . . . . . 6 | 4.2. Verified Discovery . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.3. Opportunistic Discovery . . . . . . . . . . . . . . . . . 7 | 4.3. Opportunistic Discovery . . . . . . . . . . . . . . . . . 7 | |||
| 5. Discovery Using Resolver Names . . . . . . . . . . . . . . . 7 | 5. Discovery Using Resolver Names . . . . . . . . . . . . . . . 7 | |||
| 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 8 | 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 8 | |||
| 6.1. Caching Forwarders . . . . . . . . . . . . . . . . . . . 8 | 6.1. Caching Forwarders . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.2. Certificate Management . . . . . . . . . . . . . . . . . 9 | 6.2. Certificate Management . . . . . . . . . . . . . . . . . 9 | |||
| 6.3. Server Name Handling . . . . . . . . . . . . . . . . . . 9 | ||||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 8.1. Special Use Domain Name "resolver.arpa" . . . . . . . . . 10 | 8.1. Special Use Domain Name "resolver.arpa" . . . . . . . . . 10 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 11 | 9.2. Informative References . . . . . . . . . . . . . . . . . 11 | |||
| Appendix A. Rationale for using SVCB records . . . . . . . . . . 12 | Appendix A. Rationale for using SVCB records . . . . . . . . . . 12 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| skipping to change at page 3, line 22 ¶ | skipping to change at page 3, line 22 ¶ | |||
| resolver's IP address during configuration. Such mechanisms include | resolver's IP address during configuration. Such mechanisms include | |||
| network provisioning protocols like DHCP [RFC2132] and IPv6 Router | network provisioning protocols like DHCP [RFC2132] and IPv6 Router | |||
| Advertisement (RA) options [RFC8106], as well as manual | Advertisement (RA) options [RFC8106], as well as manual | |||
| configuration. | configuration. | |||
| This document defines two mechanisms for clients to discover | This document defines two mechanisms for clients to discover | |||
| designated resolvers using DNS server Service Binding (SVCB, | designated resolvers using DNS server Service Binding (SVCB, | |||
| [I-D.ietf-dnsop-svcb-https]) records: | [I-D.ietf-dnsop-svcb-https]) records: | |||
| 1. When only an IP address of an Unencrypted Resolver is known, the | 1. When only an IP address of an Unencrypted Resolver is known, the | |||
| client queries a special use domain name to discover DNS SVCB | client queries a special use domain name (SUDN) [RFC6761] to | |||
| records associated with one or more Encrypted Resolvers the | discover DNS SVCB records associated with one or more Encrypted | |||
| Unencrypted Resolver has designated for use when support for DNS | Resolvers the Unencrypted Resolver has designated for use when | |||
| encryption is requested (Section 4). | support for DNS encryption is requested (Section 4). | |||
| 2. When the hostname of an Encrypted Resolver is known, the client | 2. When the hostname of an Encrypted Resolver is known, the client | |||
| requests details by sending a query for a DNS SVCB record. This | requests details by sending a query for a DNS SVCB record. This | |||
| can be used to discover alternate encrypted DNS protocols | can be used to discover alternate encrypted DNS protocols | |||
| supported by a known server, or to provide details if a resolver | supported by a known server, or to provide details if a resolver | |||
| name is provisioned by a network (Section 5). | name is provisioned by a network (Section 5). | |||
| Both of these approaches allow clients to confirm that a discovered | Both of these approaches allow clients to confirm that a discovered | |||
| Encrypted Resolver is designated by the originally provisioned | Encrypted Resolver is designated by the originally provisioned | |||
| resolver. "Designated" in this context means that the resolvers are | resolver. "Designated" in this context means that the resolvers are | |||
| skipping to change at page 4, line 8 ¶ | skipping to change at page 4, line 8 ¶ | |||
| 2. Terminology | 2. Terminology | |||
| This document defines the following terms: | This document defines the following terms: | |||
| DDR: Discovery of Designated Resolvers. Refers to the mechanisms | DDR: Discovery of Designated Resolvers. Refers to the mechanisms | |||
| defined in this document. | defined in this document. | |||
| Designated Resolver: A resolver, presumably an Encrypted Resolver, | Designated Resolver: A resolver, presumably an Encrypted Resolver, | |||
| designated by another resolver for use in its own place. This | designated by another resolver for use in its own place. This | |||
| designation can be authenticated with TLS certificates. | designation can be verified with TLS certificates. | |||
| Encrypted Resolver: A DNS resolver using any encrypted DNS | Encrypted Resolver: A DNS resolver using any encrypted DNS | |||
| transport. This includes current mechanisms such as DoH and DoT | transport. This includes current mechanisms such as DoH and DoT | |||
| as well as future mechanisms. | as well as future mechanisms. | |||
| Unencrypted Resolver: A DNS resolver using TCP or UDP port 53. | Unencrypted Resolver: A DNS resolver using TCP or UDP port 53. | |||
| 3. DNS Service Binding Records | 3. DNS Service Binding Records | |||
| DNS resolvers can advertise one or more Designated Resolvers that may | DNS resolvers can advertise one or more Designated Resolvers that may | |||
| offer support over encrypted channels and are controlled by the same | offer support over encrypted channels and are controlled by the same | |||
| entity. | entity. | |||
| When a client discovers Designated Resolvers, it learns information | When a client discovers Designated Resolvers, it learns information | |||
| such as the supported protocols, ports, and server name to use in | such as the supported protocols and ports. This information is | |||
| certificate validation. This information is provided in Service | provided in Service Binding (SVCB) records for DNS Servers. The | |||
| Binding (SVCB) records for DNS Servers. The formatting of these | formatting of these records, including the DNS-unique parameters such | |||
| records, including the DNS-unique parameters such as "dohpath", are | as "dohpath", are defined by [I-D.ietf-add-svcb-dns]. | |||
| defined by [I-D.ietf-add-svcb-dns]. | ||||
| The following is an example of an SVCB record describing a DoH server | The following is an example of an SVCB record describing a DoH server | |||
| discovered by querying for _dns.example.net: | discovered by querying for _dns.example.net: | |||
| _dns.example.net 7200 IN SVCB 1 . ( | _dns.example.net. 7200 IN SVCB 1 example.net. ( | |||
| alpn=h2 dohpath=/dns-query{?dns} ) | alpn=h2 dohpath=/dns-query{?dns} ) | |||
| The following is an example of an SVCB record describing a DoT server | The following is an example of an SVCB record describing a DoT server | |||
| discovered by querying for _dns.example.net: | discovered by querying for _dns.example.net: | |||
| _dns.example.net 7200 IN SVCB 1 dot.example.net ( | _dns.example.net 7200 IN SVCB 1 dot.example.net ( | |||
| alpn=dot port=8530 ) | alpn=dot port=8530 ) | |||
| If multiple Designated Resolvers are available, using one or more | If multiple Designated Resolvers are available, using one or more | |||
| encrypted DNS protocols, the resolver deployment can indicate a | encrypted DNS protocols, the resolver deployment can indicate a | |||
| skipping to change at page 6, line 15 ¶ | skipping to change at page 6, line 15 ¶ | |||
| 4.1. Use of Designated Resolvers | 4.1. Use of Designated Resolvers | |||
| When a client discovers Designated Resolvers from an Unencrypted | When a client discovers Designated Resolvers from an Unencrypted | |||
| Resolver IP address, it can choose to use these Designated Resolvers | Resolver IP address, it can choose to use these Designated Resolvers | |||
| either automatically, or based on some other policy, heuristic, or | either automatically, or based on some other policy, heuristic, or | |||
| user choice. | user choice. | |||
| This document defines two preferred methods to automatically use | This document defines two preferred methods to automatically use | |||
| Designated Resolvers: | Designated Resolvers: | |||
| * Authenticated Discovery Section 4.2, for when a TLS certificate | * Verified Discovery Section 4.2, for when a TLS certificate can be | |||
| can be used to validate the resolver's identity. | used to validate the resolver's identity. | |||
| * Opportunistic Discovery Section 4.3, for when a resolver is | * Opportunistic Discovery Section 4.3, for when a resolver is | |||
| accessed using a non-public IP address. | accessed using a non-public IP address. | |||
| A client MAY additionally use a discovered Designated Resolver | A client MAY additionally use a discovered Designated Resolver | |||
| without either of these methods, based on implementation-specific | without either of these methods, based on implementation-specific | |||
| policy or user input. Details of such policy are out of scope of | policy or user input. Details of such policy are out of scope of | |||
| this document. Clients SHOULD NOT automatically use a Designated | this document. Clients SHOULD NOT automatically use a Designated | |||
| Resolver without some sort of validation, such as the two methods | Resolver without some sort of validation, such as the two methods | |||
| defined in this document or a future mechanism. | defined in this document or a future mechanism. | |||
| 4.2. Authenticated Discovery | 4.2. Verified Discovery | |||
| Authenticated Discovery is a mechanism that allows automatic use of a | Verified Discovery is a mechanism that allows automatic use of a | |||
| Designated Resolver that supports DNS encryption that performs a TLS | Designated Resolver that supports DNS encryption that performs a TLS | |||
| handshake. | handshake. | |||
| In order to be considered an authenticated Designated Resolver, the | In order to be considered a verified Designated Resolver, the TLS | |||
| TLS certificate presented by the Designated Resolver MUST contain | certificate presented by the Designated Resolver MUST contain the IP | |||
| both the domain name (from the SVCB answer) and the IP address of the | address of the designating Unencrypted Resolver in a subjectAltName | |||
| designating Unencrypted Resolver within the SubjectAlternativeName | extension. If the certificate can be validated, the client SHOULD | |||
| certificate field. The client MUST check the SubjectAlternativeName | use the discovered Designated Resolver for any cases in which it | |||
| field for both the Unencrypted Resolver's IP address and the | would have otherwise used the Unencrypted Resolver. If the | |||
| advertised name of the Designated Resolver. If the certificate can | Designated Resolver has a different IP address than the Unencrypted | |||
| be validated, the client SHOULD use the discovered Designated | Resolver and the TLS certificate does not cover the Unencrypted | |||
| Resolver for any cases in which it would have otherwise used the | Resolver address, the client MUST NOT automatically use the | |||
| Unencrypted Resolver. If the Designated Resolver has a different IP | discovered Designated Resolver. Additionally, the client SHOULD | |||
| address than the Unencrypted Resolver and the TLS certificate does | suppress any further queries for Designated Resolvers using this | |||
| not cover the Unencrypted Resolver address, the client MUST NOT | Unencrypted Resolver for the length of time indicated by the SVCB | |||
| automatically use the discovered Designated Resolver. Additionally, | record's Time to Live (TTL). | |||
| the client SHOULD suppress any further queries for Designated | ||||
| Resolvers using this Unencrypted Resolver for the length of time | ||||
| indicated by the SVCB record's Time to Live (TTL). | ||||
| If the Designated Resolver and the Unencrypted Resolver share an IP | If the Designated Resolver and the Unencrypted Resolver share an IP | |||
| address, clients MAY choose to opportunistically use the Designated | address, clients MAY choose to opportunistically use the Designated | |||
| Resolver even without this certificate check (Section 4.3). | Resolver even without this certificate check (Section 4.3). | |||
| If resolving the name of a Designated Resolver from an SVCB record | If resolving the name of a Designated Resolver from an SVCB record | |||
| yields an IP address that was not presented in the Additional Answers | yields an IP address that was not presented in the Additional Answers | |||
| section or ipv4hint or ipv6hint fields of the original SVCB query, | section or ipv4hint or ipv6hint fields of the original SVCB query, | |||
| the connection made to that IP address MUST pass the same TLS | the connection made to that IP address MUST pass the same TLS | |||
| certificate checks before being allowed to replace a previously known | certificate checks before being allowed to replace a previously known | |||
| and validated IP address for the same Designated Resolver name. | and validated IP address for the same Designated Resolver name. | |||
| 4.3. Opportunistic Discovery | 4.3. Opportunistic Discovery | |||
| There are situations where authenticated discovery of encrypted DNS | There are situations where Verified Discovery of encrypted DNS | |||
| configuration over unencrypted DNS is not possible. This includes | configuration over unencrypted DNS is not possible. This includes | |||
| Unencrypted Resolvers on non-public IP addresses such as those | Unencrypted Resolvers on non-public IP addresses such as those | |||
| defined in [RFC1918] whose identity cannot be confirmed using TLS | defined in [RFC1918] whose identity cannot be confirmed using TLS | |||
| certificates. | certificates. | |||
| Opportunistic Privacy is defined for DoT in Section 4.1 of [RFC7858] | Opportunistic Privacy is defined for DoT in Section 4.1 of [RFC7858] | |||
| as a mode in which clients do not validate the name of the resolver | as a mode in which clients do not validate the name of the resolver | |||
| presented in the certificate. A client MAY use information from the | presented in the certificate. A client MAY use information from the | |||
| SVCB record for "dns://resolver.arpa" with this "opportunistic" | SVCB record for "dns://resolver.arpa" with this "opportunistic" | |||
| approach (not validating the names presented in the | approach (not validating the names presented in the | |||
| SubjectAlternativeName field of the certificate) as long as the IP | SubjectAlternativeName field of the certificate) as long as the IP | |||
| address of the Encrypted Resolver does not differ from the IP address | address of the Encrypted Resolver does not differ from the IP address | |||
| of the Unencrypted Resolver. This approach can be used for any | of the Unencrypted Resolver. Clients SHOULD use this mode only for | |||
| encrypted DNS protocol that uses TLS. | resolvers using non-public IP addresses. This approach can be used | |||
| for any encrypted DNS protocol that uses TLS. | ||||
| 5. Discovery Using Resolver Names | 5. Discovery Using Resolver Names | |||
| A DNS client that already knows the name of an Encrypted Resolver can | A DNS client that already knows the name of an Encrypted Resolver can | |||
| use DDR to discover details about all supported encrypted DNS | use DDR to discover details about all supported encrypted DNS | |||
| protocols. This situation can arise if a client has been configured | protocols. This situation can arise if a client has been configured | |||
| to use a given Encrypted Resolver, or if a network provisioning | to use a given Encrypted Resolver, or if a network provisioning | |||
| protocol (such as DHCP or IPv6 Router Advertisements) provides a name | protocol (such as DHCP or IPv6 Router Advertisements) provides a name | |||
| for an Encrypted Resolver alongside the resolver IP address. | for an Encrypted Resolver alongside the resolver IP address. | |||
| skipping to change at page 8, line 12 ¶ | skipping to change at page 8, line 5 ¶ | |||
| of bootstrapping from an Unencrypted Resolver (Section 4), these | of bootstrapping from an Unencrypted Resolver (Section 4), these | |||
| records SHOULD be available in the public DNS. | records SHOULD be available in the public DNS. | |||
| For example, if the client already knows about a DoT server | For example, if the client already knows about a DoT server | |||
| resolver.example.com, it can issue an SVCB query for | resolver.example.com, it can issue an SVCB query for | |||
| _dns.resolver.example.com to discover if there are other encrypted | _dns.resolver.example.com to discover if there are other encrypted | |||
| DNS protocols available. In the following example, the SVCB answers | DNS protocols available. In the following example, the SVCB answers | |||
| indicate that resolver.example.com supports both DoH and DoT, and | indicate that resolver.example.com supports both DoH and DoT, and | |||
| that the DoH server indicates a higher priority than the DoT server. | that the DoH server indicates a higher priority than the DoT server. | |||
| _dns.resolver.example.com 7200 IN SVCB 1 . ( | _dns.resolver.example.com. 7200 IN SVCB 1 resolver.example.com. ( | |||
| alpn=h2 dohpath=/dns-query{?dns} ) | alpn=h2 dohpath=/dns-query{?dns} ) | |||
| _dns.resolver.example.com 7200 IN SVCB 2 . ( | _dns.resolver.example.com. 7200 IN SVCB 1 resolver.example.com. ( | |||
| alpn=dot ) | alpn=dot ) | |||
| Often, the various supported encrypted DNS protocols will be | Clients MUST validate that for any Encrypted Resolver discovered | |||
| accessible using the same hostname. In the example above, both DoH | using a known resolver name, the TLS certificate of the resolver | |||
| and DoT use the name resolver.example.com for their TLS certificates. | contains the known name in a subjectAltName extension. In the | |||
| If a deployment uses a different hostname for one protocol, but still | example above, this means that both servers need to have certificates | |||
| wants clients to treat both DNS servers as designated, the TLS | that cover the name resolver.example.com. Often, the various | |||
| certificates MUST include both names in the SubjectAlternativeName | supported encrypted DNS protocols will be specified such that the | |||
| fields. Note that this name verification is not related to the DNS | SVCB TargetName matches the known name, as is true in the example | |||
| resolver that provided the SVCB answer. | above. However, even when the TargetName is different (for example, | |||
| if the DoH server had a TargetName of doh.example.com), the clients | ||||
| still check for the original known resolver name in the certificate. | ||||
| For example, being able to discover a Designated Resolver for a known | Note that this resolver validation is not related to the DNS resolver | |||
| Encrypted Resolver is useful when a client has a DoT configuration | that provided the SVCB answer. | |||
| for foo.resolver.example.com but is on a network that blocks DoT | ||||
| traffic. The client can still send a query to any other accessible | As another example, being able to discover a Designated Resolver for | |||
| resolver (either the local network resolver or an accessible DoH | a known Encrypted Resolver is useful when a client has a DoT | |||
| server) to discover if there is a designated DoH server for | configuration for foo.resolver.example.com but is on a network that | |||
| foo.resolver.example.com. | blocks DoT traffic. The client can still send a query to any other | |||
| accessible resolver (either the local network resolver or an | ||||
| accessible DoH server) to discover if there is a designated DoH | ||||
| server for foo.resolver.example.com. | ||||
| 6. Deployment Considerations | 6. Deployment Considerations | |||
| Resolver deployments that support DDR are advised to consider the | Resolver deployments that support DDR are advised to consider the | |||
| following points. | following points. | |||
| 6.1. Caching Forwarders | 6.1. Caching Forwarders | |||
| A DNS forwarder SHOULD NOT forward queries for "resolver.arpa" | A DNS forwarder SHOULD NOT forward queries for "resolver.arpa" | |||
| upstream. This prevents a client from receiving an SVCB record that | upstream. This prevents a client from receiving an SVCB record that | |||
| skipping to change at page 9, line 8 ¶ | skipping to change at page 9, line 8 ¶ | |||
| field. A DNS forwarder which already acts as a completely blind | field. A DNS forwarder which already acts as a completely blind | |||
| forwarder MAY choose to forward these queries when the operator | forwarder MAY choose to forward these queries when the operator | |||
| expects that this does not apply, either because the operator knows | expects that this does not apply, either because the operator knows | |||
| the upstream resolver does have the forwarder's IP address in its TLS | the upstream resolver does have the forwarder's IP address in its TLS | |||
| certificate's SAN field or that the operator expects clients of the | certificate's SAN field or that the operator expects clients of the | |||
| unencrypted resolver to use the SVCB information opportunistically. | unencrypted resolver to use the SVCB information opportunistically. | |||
| Operators who choose to forward queries for "resolver.arpa" upstream | Operators who choose to forward queries for "resolver.arpa" upstream | |||
| should note that client behavior is never guaranteed and use of DDR | should note that client behavior is never guaranteed and use of DDR | |||
| by a resolver does not communicate a requirement for clients to use | by a resolver does not communicate a requirement for clients to use | |||
| the SVCB record when it cannot be authenticated. | the SVCB record when it cannot be verified. | |||
| 6.2. Certificate Management | 6.2. Certificate Management | |||
| Resolver owners that support authenticated discovery will need to | Resolver owners that support Verified Discovery will need to list | |||
| list valid referring IP addresses in their TLS certificates. This | valid referring IP addresses in their TLS certificates. This may | |||
| may pose challenges for resolvers with a large number of referring IP | pose challenges for resolvers with a large number of referring IP | |||
| addresses. | addresses. | |||
| 6.3. Server Name Handling | ||||
| Clients MUST NOT use "resolver.arpa" as the server name either in the | ||||
| TLS Server Name Indication (SNI) ([RFC8446]) for DoT or DoH | ||||
| connections, or in the URI host for DoH requests. | ||||
| When performing discovery using resolver IP addresses, clients MUST | ||||
| use the IP address as the URI host for DoH requests. | ||||
| Note that since IP addresses are not supported by default in the TLS | ||||
| SNI, resolvers that support discovery using IP addresses will need to | ||||
| be configured to present the appropriate TLS certificate when no SNI | ||||
| is present for both DoT and DoH. | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| Since clients can receive DNS SVCB answers over unencrypted DNS, on- | Since clients can receive DNS SVCB answers over unencrypted DNS, on- | |||
| path attackers can prevent successful discovery by dropping SVCB | path attackers can prevent successful discovery by dropping SVCB | |||
| packets. Clients should be aware that it might not be possible to | packets. Clients should be aware that it might not be possible to | |||
| distinguish between resolvers that do not have any Designated | distinguish between resolvers that do not have any Designated | |||
| Resolver and such an active attack. To limit the impact of discovery | Resolver and such an active attack. To limit the impact of discovery | |||
| queries being dropped either maliciously or unintentionally, clients | queries being dropped either maliciously or unintentionally, clients | |||
| can re-send their SVCB queries periodically. | can re-send their SVCB queries periodically. | |||
| DoH resolvers that allow discovery using DNS SVCB answers over | ||||
| unencrypted DNS MUST NOT provide differentiated behavior based on the | ||||
| HTTP path alone, since an attacker could modify the "dohpath" | ||||
| parameter. | ||||
| While the IP address of the Unencrypted Resolver is often provisioned | While the IP address of the Unencrypted Resolver is often provisioned | |||
| over insecure mechanisms, it can also be provisioned securely, such | over insecure mechanisms, it can also be provisioned securely, such | |||
| as via manual configuration, a VPN, or on a network with protections | as via manual configuration, a VPN, or on a network with protections | |||
| like RA guard [RFC6105]. An attacker might try to direct Encrypted | like RA guard [RFC6105]. An attacker might try to direct Encrypted | |||
| DNS traffic to itself by causing the client to think that a | DNS traffic to itself by causing the client to think that a | |||
| discovered Designated Resolver uses a different IP address from the | discovered Designated Resolver uses a different IP address from the | |||
| Unencrypted Resolver. Such a Designated Resolver might have a valid | Unencrypted Resolver. Such a Designated Resolver might have a valid | |||
| certificate, but be operated by an attacker that is trying to observe | certificate, but be operated by an attacker that is trying to observe | |||
| or modify user queries without the knowledge of the client or | or modify user queries without the knowledge of the client or | |||
| network. | network. | |||
| If the IP address of a Designated Resolver differs from that of an | If the IP address of a Designated Resolver differs from that of an | |||
| Unencrypted Resolver, clients applying Authenicated Discovery | Unencrypted Resolver, clients applying Verified Discovery | |||
| (Section 4.2) MUST validate that the IP address of the Unencrypted | (Section 4.2) MUST validate that the IP address of the Unencrypted | |||
| Resolver is covered by the SubjectAlternativeName of the Designated | Resolver is covered by the SubjectAlternativeName of the Designated | |||
| Resolver's TLS certificate. | Resolver's TLS certificate. | |||
| Clients using Opportunistic Discovery (Section 4.3) MUST be limited | Clients using Opportunistic Discovery (Section 4.3) MUST be limited | |||
| to cases where the Unencrypted Resolver and Designated Resolver have | to cases where the Unencrypted Resolver and Designated Resolver have | |||
| the same IP address. | the same IP address. | |||
| The constraints on validation of Designated Resolvers specified here | The constraints on the use of Designated Resolvers specified here | |||
| apply specifically to the automatic discovery mechanisms defined in | apply specifically to the automatic discovery mechanisms defined in | |||
| this document, which are referred to as Authenticated Discovery and | this document, which are referred to as Verified Discovery and | |||
| Opportunistic Discovery. Clients MAY use some other mechanism to | Opportunistic Discovery. Clients MAY use some other mechanism to | |||
| validate and use Designated Resolvers discovered using the DNS SVCB | verify and use Designated Resolvers discovered using the DNS SVCB | |||
| record. However, use of such an alternate mechanism needs to take | record. However, use of such an alternate mechanism needs to take | |||
| into account the attack scenarios detailed here. | into account the attack scenarios detailed here. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| 8.1. Special Use Domain Name "resolver.arpa" | 8.1. Special Use Domain Name "resolver.arpa" | |||
| This document calls for the creation of the "resolver.arpa" SUDN. | This document calls for the addition of "resolver.arpa" to the | |||
| Special-Use Domain Names (SUDN) registry established by [RFC6761]. | ||||
| This will allow resolvers to respond to queries directed at | This will allow resolvers to respond to queries directed at | |||
| themselves rather than a specific domain name. While this document | themselves rather than a specific domain name. While this document | |||
| uses "resolver.arpa" to return SVCB records indicating designated | uses "resolver.arpa" to return SVCB records indicating designated | |||
| encrypted capability, the name is generic enough to allow future | encrypted capability, the name is generic enough to allow future | |||
| reuse for other purposes where the resolver wishes to provide | reuse for other purposes where the resolver wishes to provide | |||
| information about itself to the client. | information about itself to the client. | |||
| The "resolver.arpa" SUDN is similar to "ipv4only.arpa" in that the | The "resolver.arpa" SUDN is similar to "ipv4only.arpa" in that the | |||
| querying client is not interested in an answer from the authoritative | querying client is not interested in an answer from the authoritative | |||
| "arpa" name servers. The intent of the SUDN is to allow clients to | "arpa" name servers. The intent of the SUDN is to allow clients to | |||
| skipping to change at page 10, line 39 ¶ | skipping to change at page 11, line 8 ¶ | |||
| allows for client-to-middlebox communication. For more context, see | allows for client-to-middlebox communication. For more context, see | |||
| the rationale behind "ipv4only.arpa" in [RFC8880]. | the rationale behind "ipv4only.arpa" in [RFC8880]. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [I-D.ietf-add-svcb-dns] | [I-D.ietf-add-svcb-dns] | |||
| Schwartz, B., "Service Binding Mapping for DNS Servers", | Schwartz, B., "Service Binding Mapping for DNS Servers", | |||
| Work in Progress, Internet-Draft, draft-ietf-add-svcb-dns- | Work in Progress, Internet-Draft, draft-ietf-add-svcb-dns- | |||
| 00, 1 October 2021, | 01, 21 October 2021, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-add- | <https://datatracker.ietf.org/doc/html/draft-ietf-add- | |||
| svcb-dns-00>. | svcb-dns-01>. | |||
| [I-D.ietf-dnsop-svcb-https] | [I-D.ietf-dnsop-svcb-https] | |||
| Schwartz, B., Bishop, M., and E. Nygren, "Service binding | Schwartz, B., Bishop, M., and E. Nygren, "Service binding | |||
| and parameter specification via the DNS (DNS SVCB and | and parameter specification via the DNS (DNS SVCB and | |||
| HTTPS RRs)", Work in Progress, Internet-Draft, draft-ietf- | HTTPS RRs)", Work in Progress, Internet-Draft, draft-ietf- | |||
| dnsop-svcb-https-07, 5 August 2021, | dnsop-svcb-https-08, 12 October 2021, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop- | <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop- | |||
| svcb-https-07>. | svcb-https-08>. | |||
| [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. | [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. | |||
| J., and E. Lear, "Address Allocation for Private | J., and E. Lear, "Address Allocation for Private | |||
| Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | |||
| February 1996, <https://www.rfc-editor.org/rfc/rfc1918>. | February 1996, <https://www.rfc-editor.org/rfc/rfc1918>. | |||
| [RFC6761] Cheshire, S. and M. Krochmal, "Special-Use Domain Names", | ||||
| RFC 6761, DOI 10.17487/RFC6761, February 2013, | ||||
| <https://www.rfc-editor.org/rfc/rfc6761>. | ||||
| [RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., | [RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., | |||
| and P. Hoffman, "Specification for DNS over Transport | and P. Hoffman, "Specification for DNS over Transport | |||
| Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May | Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May | |||
| 2016, <https://www.rfc-editor.org/rfc/rfc7858>. | 2016, <https://www.rfc-editor.org/rfc/rfc7858>. | |||
| [RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS | [RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS | |||
| (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | |||
| <https://www.rfc-editor.org/rfc/rfc8484>. | <https://www.rfc-editor.org/rfc/rfc8484>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| skipping to change at page 12, line 14 ¶ | skipping to change at page 12, line 33 ¶ | |||
| [RFC8106] Jeong, J., Park, S., Beloeil, L., and S. Madanapalli, | [RFC8106] Jeong, J., Park, S., Beloeil, L., and S. Madanapalli, | |||
| "IPv6 Router Advertisement Options for DNS Configuration", | "IPv6 Router Advertisement Options for DNS Configuration", | |||
| RFC 8106, DOI 10.17487/RFC8106, March 2017, | RFC 8106, DOI 10.17487/RFC8106, March 2017, | |||
| <https://www.rfc-editor.org/rfc/rfc8106>. | <https://www.rfc-editor.org/rfc/rfc8106>. | |||
| [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/rfc/rfc8174>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
| <https://www.rfc-editor.org/rfc/rfc8446>. | ||||
| [RFC8880] Cheshire, S. and D. Schinazi, "Special Use Domain Name | [RFC8880] Cheshire, S. and D. Schinazi, "Special Use Domain Name | |||
| 'ipv4only.arpa'", RFC 8880, DOI 10.17487/RFC8880, August | 'ipv4only.arpa'", RFC 8880, DOI 10.17487/RFC8880, August | |||
| 2020, <https://www.rfc-editor.org/rfc/rfc8880>. | 2020, <https://www.rfc-editor.org/rfc/rfc8880>. | |||
| Appendix A. Rationale for using SVCB records | Appendix A. Rationale for using SVCB records | |||
| This mechanism uses SVCB/HTTPS resource records | This mechanism uses SVCB/HTTPS resource records | |||
| [I-D.ietf-dnsop-svcb-https] to communicate that a given domain | [I-D.ietf-dnsop-svcb-https] to communicate that a given domain | |||
| designates a particular Designated Resolver for clients to use in | designates a particular Designated Resolver for clients to use in | |||
| place of an Unencrypted Resolver (using a SUDN) or another Encrypted | place of an Unencrypted Resolver (using a SUDN) or another Encrypted | |||
| End of changes. 35 change blocks. | ||||
| 69 lines changed or deleted | 100 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||