| rfc9463.original | rfc9463.txt | |||
|---|---|---|---|---|
| ADD M. Boucadair, Ed. | Internet Engineering Task Force (IETF) M. Boucadair, Ed. | |||
| Internet-Draft Orange | Request for Comments: 9463 Orange | |||
| Intended status: Standards Track T. Reddy, Ed. | Category: Standards Track T. Reddy.K, Ed. | |||
| Expires: 29 October 2023 Nokia | ISSN: 2070-1721 Nokia | |||
| D. Wing | D. Wing | |||
| Citrix | Cloud Software Group | |||
| N. Cook | N. Cook | |||
| Open-Xchange | Open-Xchange | |||
| T. Jensen | T. Jensen | |||
| Microsoft | Microsoft | |||
| 27 April 2023 | November 2023 | |||
| DHCP and Router Advertisement Options for the Discovery of Network- | DHCP and Router Advertisement Options for the Discovery of Network- | |||
| designated Resolvers (DNR) | designated Resolvers (DNR) | |||
| draft-ietf-add-dnr-16 | ||||
| Abstract | Abstract | |||
| The document specifies new DHCP and IPv6 Router Advertisement options | This document specifies new DHCP and IPv6 Router Advertisement | |||
| to discover encrypted DNS resolvers (e.g., DNS-over-HTTPS, DNS-over- | options to discover encrypted DNS resolvers (e.g., DNS over HTTPS, | |||
| TLS, DNS-over-QUIC). Particularly, it allows a host to learn an | DNS over TLS, and DNS over QUIC). Particularly, it allows a host to | |||
| authentication domain name together with a list of IP addresses and a | learn an Authentication Domain Name together with a list of IP | |||
| set of service parameters to reach such encrypted DNS resolvers. | addresses and a set of service parameters to reach such encrypted DNS | |||
| resolvers. | ||||
| 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 29 October 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/rfc9463. | ||||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
| 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Overview | |||
| 3.1. Configuration Data for Encrypted DNS . . . . . . . . . . 4 | 3.1. Configuration Data for Encrypted DNS | |||
| 3.1.1. ADN as the Reference Identifier for DNS | 3.1.1. ADN as Reference Identifier for DNS Authentication | |||
| Authentication . . . . . . . . . . . . . . . . . . . 4 | 3.1.2. Avoiding Dependency on External Resolvers | |||
| 3.1.2. Avoiding Dependency on External Resolvers . . . . . . 5 | 3.1.3. Single vs. Multiple IP Addresses | |||
| 3.1.3. Single vs. Multiple IP Addresses . . . . . . . . . . 5 | 3.1.4. Why Not Separate Options for the ADN and IP Addresses? | |||
| 3.1.4. Why Not Separate Options for ADN and IP Addresses? . 5 | 3.1.5. Service Parameters | |||
| 3.1.5. Service Parameters . . . . . . . . . . . . . . . . . 6 | 3.1.6. ADN-Only Mode | |||
| 3.1.6. ADN Only Mode . . . . . . . . . . . . . . . . . . . . 6 | 3.1.7. Ordering of Encrypted DNS Options | |||
| 3.1.7. Encrypted DNS Options Ordering . . . . . . . . . . . 7 | 3.1.8. DNR Validation Checks | |||
| 3.1.8. DNR Validation Checks . . . . . . . . . . . . . . . . 7 | 3.1.9. DNR Information Using Other Provisioning Mechanisms | |||
| 3.1.9. DNR Information Using Other Provisioning | 3.2. Handling Configuration Data Conflicts | |||
| Mechanisms . . . . . . . . . . . . . . . . . . . . . 7 | 3.3. Validating Discovered Resolvers | |||
| 3.2. Handling Configuration Data Conflicts . . . . . . . . . . 8 | 3.4. Multihoming Considerations | |||
| 3.3. Validating Discovered Resolvers . . . . . . . . . . . . . 8 | 4. DHCPv6 Encrypted DNS Option | |||
| 3.4. Multihoming Considerations . . . . . . . . . . . . . . . 9 | 4.1. Option Format | |||
| 4. DHCPv6 Encrypted DNS Option . . . . . . . . . . . . . . . . . 9 | 4.2. DHCPv6 Client Behavior | |||
| 4.1. Option Format . . . . . . . . . . . . . . . . . . . . . . 9 | 5. DHCPv4 Encrypted DNS Option | |||
| 4.2. DHCPv6 Client Behavior . . . . . . . . . . . . . . . . . 12 | 5.1. Option Format | |||
| 5. DHCPv4 Encrypted DNS Option . . . . . . . . . . . . . . . . . 12 | 5.2. DHCPv4 Client Behavior | |||
| 5.1. Option Format . . . . . . . . . . . . . . . . . . . . . . 12 | 6. IPv6 RA Encrypted DNS Option | |||
| 5.2. DHCPv4 Client Behavior . . . . . . . . . . . . . . . . . 14 | 6.1. Option Format | |||
| 6. IPv6 RA Encrypted DNS Option . . . . . . . . . . . . . . . . 15 | 6.2. IPv6 Host Behavior | |||
| 6.1. Option Format . . . . . . . . . . . . . . . . . . . . . . 15 | 7. Security Considerations | |||
| 6.2. IPv6 Host Behavior . . . . . . . . . . . . . . . . . . . 17 | 7.1. Spoofing Attacks | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 7.2. Deletion Attacks | |||
| 7.1. Spoofing Attacks . . . . . . . . . . . . . . . . . . . . 18 | 7.3. Passive Attacks | |||
| 7.2. Deletion Attacks . . . . . . . . . . . . . . . . . . . . 18 | 7.4. Wireless Security - Authentication Attacks | |||
| 7.3. Passive Attacks . . . . . . . . . . . . . . . . . . . . . 19 | 8. Privacy Considerations | |||
| 7.4. Wireless Security - Authentication Attacks . . . . . . . 19 | 9. IANA Considerations | |||
| 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 19 | 9.1. DHCPv6 Option | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | 9.2. DHCPv4 Option | |||
| 9.1. DHCPv6 Option . . . . . . . . . . . . . . . . . . . . . . 20 | 9.3. Neighbor Discovery Option | |||
| 9.2. DHCPv4 Option . . . . . . . . . . . . . . . . . . . . . . 20 | 10. References | |||
| 9.3. Neighbor Discovery Option . . . . . . . . . . . . . . . . 20 | 10.1. Normative References | |||
| 10.2. Informative References | ||||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 | Acknowledgments | |||
| 11. Contributing Authors . . . . . . . . . . . . . . . . . . . . 21 | Contributors | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | Authors' Addresses | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 22 | ||||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 23 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
| 1. Introduction | 1. Introduction | |||
| This document focuses on the discovery of encrypted DNS such as DNS- | This document focuses on the discovery of encrypted DNS resolvers | |||
| over-HTTPS (DoH) [RFC8484], DNS-over-TLS (DoT) [RFC7858], or DNS- | that are using protocols such as DNS over HTTPS (DoH) [RFC8484], DNS | |||
| over-QUIC (DoQ) [RFC9250] in local networks. | over TLS (DoT) [RFC7858], or DNS over QUIC (DoQ) [RFC9250] in local | |||
| networks. | ||||
| In particular, the document specifies how a local encrypted DNS | In particular, this document specifies how a local encrypted DNS | |||
| resolver can be discovered by connected hosts by means of DHCPv4 | resolver can be discovered by connected hosts by means of DHCPv4 | |||
| [RFC2132], DHCPv6 [RFC8415], and IPv6 Router Advertisement (RA) | [RFC2132], DHCPv6 [RFC8415], and IPv6 Router Advertisement (RA) | |||
| [RFC4861] options. These options are designed to convey the | options [RFC4861]. These options are designed to convey the | |||
| following information: the DNS Authentication Domain Name (ADN), a | following information: the DNS Authentication Domain Name (ADN), a | |||
| list of IP addresses, and a set of service parameters. This | list of IP addresses, and a set of service parameters. This | |||
| procedure is called Discovery of Network-designated Resolvers (DNR). | procedure is called Discovery of Network-designated Resolvers (DNR). | |||
| The options defined in this document can be deployed in a variety of | The options defined in this document can be deployed in a variety of | |||
| deployments (e.g., local networks with Customer Premises Equipment | deployments (e.g., local networks with Customer Premises Equipment | |||
| (CPEs) that may or may not be managed by an Internet Service Provider | (CPEs) that may or may not be managed by an Internet Service Provider | |||
| (ISP), or local networks with or without DNS forwarders). It is out | (ISP), or local networks with or without DNS forwarders). Providing | |||
| of the scope of this document to provide an inventory of such | an inventory of such deployments is beyond the scope of this | |||
| deployments. | document. | |||
| Resolver selection considerations are out of scope. Likewise, | Resolver selection considerations are out of scope. Likewise, | |||
| policies (including any interactions with users) are out of scope. | policies (including any interactions with users) are out of scope. | |||
| 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 BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 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. | |||
| This document makes use of the terms defined in [RFC8499]. The | This document makes use of the terms defined in [RFC8499]. The | |||
| following additional terms are used: | following additional terms are used: | |||
| Authentication Domain Name (ADN): refers to a domain name that is | Authentication Domain Name (ADN): Refers to a domain name that is | |||
| used by a DNS client to authenticate a DNS resolver. | used by a DNS client to authenticate a DNS resolver. | |||
| ADN-only mode: refers to a DNS discovery mode where only the ADN of | ADN-only mode: Refers to a DNS discovery mode where only the ADN of | |||
| the DNS resolver is retrieved. See Section 3.1.6. | the DNS resolver is retrieved. See Section 3.1.6. | |||
| Do53: refers to unencrypted DNS. | Do53: Refers to unencrypted DNS. | |||
| DNR: refers to the Discovery of Network-designated Resolvers | DNR: Refers to the procedure called Discovery of Network-designated | |||
| procedure. | Resolvers. | |||
| Encrypted DNS: refers to a scheme where DNS exchanges are | Encrypted DNS: Refers to a scheme where DNS exchanges are | |||
| transported over an encrypted channel. Examples of encrypted DNS | transported over an encrypted channel. Examples include DoT, DoH, | |||
| are DoT, DoH, or DoQ. | and DoQ. | |||
| Encrypted DNS resolver: refers to a DNS resolver that supports any | Encrypted DNS resolver: Refers to a DNS resolver that supports any | |||
| encrypted DNS scheme. | encrypted DNS scheme. | |||
| Encrypted DNS options: refers to the options defined in Sections 4, | Encrypted DNS options: Refers to the options defined in Sections 4, | |||
| 5, and 6. | 5, and 6. | |||
| DHCP: refers to both DHCPv4 and DHCPv6. | DHCP: Refers to both DHCPv4 and DHCPv6. | |||
| 3. Overview | 3. Overview | |||
| This document describes how a DNS client can discover local encrypted | This document describes how a DNS client can discover local encrypted | |||
| DNS resolvers using DHCP (Sections 4 and 5) and Neighbor Discovery | DNS resolvers using DHCP (Sections 4 and 5) and Neighbor Discovery | |||
| protocol (Section 6): Encrypted DNS options. | protocol (Section 6) Encrypted DNS options. | |||
| These options configure an authentication domain name, a list of IP | These options configure an ADN, a list of IP addresses, and a set of | |||
| addresses, and a set of service parameters of the encrypted DNS | service parameters of the encrypted DNS resolver. More information | |||
| resolver. More information about the design of these options is | about the design of these options is provided in the following | |||
| provided in the following subsections. | subsections. | |||
| 3.1. Configuration Data for Encrypted DNS | 3.1. Configuration Data for Encrypted DNS | |||
| 3.1.1. ADN as the Reference Identifier for DNS Authentication | 3.1.1. ADN as Reference Identifier for DNS Authentication | |||
| In order to allow for a PKIX-based authentication of the encrypted | In order to allow for a PKIX-based authentication of the encrypted | |||
| DNS resolver to the DNS client, the Encrypted DNS options are | DNS resolver to the DNS client, the Encrypted DNS options are | |||
| designed to always include an authentication domain name. This ADN | designed to always include an ADN. This ADN is presented as a | |||
| is presented as a reference identifier for DNS authentication | reference identifier for DNS authentication purposes. This design | |||
| purposes. This design accommodates the current best practices for | accommodates the current best practices for issuing certificates as | |||
| issuing certificates as per Section 1.7.2 of [RFC6125]: | per Section 1.7.2 of [RFC6125]: | |||
| | Some certification authorities issue server certificates based | | Some certification authorities issue server certificates based | |||
| | on IP addresses, but preliminary evidence indicates that such | | on IP addresses, but preliminary evidence indicates that such | |||
| | certificates are a very small percentage (less than 1%) of | | certificates are a very small percentage (less than 1%) of | |||
| | issued certificates. | | issued certificates. | |||
| 3.1.2. Avoiding Dependency on External Resolvers | 3.1.2. Avoiding Dependency on External Resolvers | |||
| To avoid adding a dependency on another server to resolve the ADN, | To avoid adding a dependency on another server to resolve the ADN, | |||
| the Encrypted DNS options return the IP address(es) to locate an | the Encrypted DNS options return the IP address(es) to locate an | |||
| encrypted DNS resolver. These encrypted DNS resolvers may be hosted | encrypted DNS resolver. These encrypted DNS resolvers may be hosted | |||
| on the same or distinct IP addresses. Such a decision is deployment | on the same IP address or distinct IP addresses. Such a decision is | |||
| specific. | deployment specific. | |||
| In order to optimize the size of discovery messages when all DNS | In order to optimize the size of discovery messages when all DNS | |||
| resolvers terminate on the same IP address, early versions of this | resolvers terminate on the same IP address, early draft versions of | |||
| document considered relying upon the discovery mechanisms specified | this document considered relying upon the discovery mechanisms | |||
| in [RFC2132][RFC3646][RFC8106] to retrieve a list of IP addresses to | specified in [RFC2132], [RFC3646], and [RFC8106] to retrieve a list | |||
| reach their DNS resolvers. Nevertheless, this approach requires a | of IP addresses to reach their DNS resolvers. Nevertheless, this | |||
| client that supports more than one encrypted DNS protocol (e.g., DoH | approach requires a client that supports more than one encrypted DNS | |||
| and DoT) to probe that list of IP addresses. To avoid such a | protocol (e.g., DoH and DoT) to probe that list of IP addresses. To | |||
| probing, the options defined in Sections 4, 5, and 6 associate an | avoid such probing, the options defined in Sections 4, 5, and 6 | |||
| encrypted DNS protocol with an IP address. No probing is required in | associate an encrypted DNS protocol with an IP address. No probing | |||
| such a design. | is required in such a design. | |||
| 3.1.3. Single vs. Multiple IP Addresses | 3.1.3. Single vs. Multiple IP Addresses | |||
| A list of IP addresses to reach an encrypted DNS resolver may be | A list of IP addresses to reach an encrypted DNS resolver may be | |||
| returned in an Encrypted DNS option to accommodate current | returned in an Encrypted DNS option to accommodate current | |||
| deployments relying upon primary and backup resolvers. Also, DNR can | deployments relying upon primary and backup resolvers. Also, DNR can | |||
| be used in contexts where other DNS redundancy schemes (e.g., anycast | be used in contexts where other DNS redundancy schemes (e.g., anycast | |||
| as in BCP 126 [RFC4786]) are used. | as discussed in BCP 126 [RFC4786]) are used. | |||
| Whether one or more IP addresses are returned in an Encrypted DNS | Whether one or more IP addresses are returned in an Encrypted DNS | |||
| option is deployment specific. For example, a router embedding a | option is deployment specific. For example, a router embedding a | |||
| recursive server or a forwarder has to include one single IP address | recursive server or a forwarder has to include one single IP address | |||
| pointing to one of its LAN-facing interfaces. Typically, this IP | pointing to one of its LAN-facing interfaces. Typically, this IP | |||
| address can be a private IPv4 address, a link-local address, a Unique | address can be a private IPv4 address, a Link-Local address, an IPv6 | |||
| Local IPv6 unicast Address (ULA), or a Global Unicast Address (GUA). | Unique Local Address (ULA), or a Global Unicast Address (GUA). | |||
| If multiple IP addresses are to be returned in an Encrypted DNS | If multiple IP addresses are to be returned in an Encrypted DNS | |||
| option, these addresses are ordered in the preference for use by the | option, these addresses are returned, ordered by preference, for use | |||
| client. | by the client. | |||
| 3.1.4. Why Not Separate Options for ADN and IP Addresses? | 3.1.4. Why Not Separate Options for the ADN and IP Addresses? | |||
| A single option is used to convey both the ADN and IP addresses. | A single option is used to convey both the ADN and IP addresses. | |||
| Otherwise, a means to correlate an IP address conveyed in an option | Otherwise, a means to correlate an IP address conveyed in an option | |||
| with an ADN conveyed in another option will be required if, for | with an ADN conveyed in another option will be required if, for | |||
| example, more than one ADN is supported by the network. | example, more than one ADN is supported by the network. | |||
| 3.1.5. Service Parameters | 3.1.5. Service Parameters | |||
| Because distinct encrypted DNS protocols (e.g., DoT, DoH, and DoQ) | Because distinct encrypted DNS protocols (e.g., DoT, DoH, and DoQ) | |||
| may be provisioned by a network and that some of these protocols may | may be provisioned by a network and some of these protocols may make | |||
| make use of customized port numbers instead of default ones, the | use of customized port numbers instead of default port numbers, the | |||
| Encrypted DNS options are designed to return a set of service | Encrypted DNS options are designed to return a set of service | |||
| parameters. These parameters are encoded following the same rules | parameters. These parameters are encoded following the same rules | |||
| for encoding SvcParams in Section 2.1 of [I-D.ietf-dnsop-svcb-https]. | for encoding SvcParams using the wire format specified in Section 2.2 | |||
| This encoding approach may increase the size of the options but it | of [RFC9460]. This encoding approach may increase the size of the | |||
| has the merit of relying upon an existing IANA registry and, thus, | options, but it has the merit of relying upon an existing IANA | |||
| accommodating new encrypted DNS protocols and service parameters that | registry and, thus, accommodating new encrypted DNS protocols and | |||
| may be defined in the future. | service parameters that may be defined in the future. | |||
| The following service parameters MUST be supported by a DNR | The following service parameters MUST be supported by a DNR | |||
| implementation: | implementation: | |||
| alpn: Used to indicate the set of supported protocols (Section 7.1 | alpn: Used to indicate the set of supported protocols (Section 7.1 | |||
| of [I-D.ietf-dnsop-svcb-https]). | of [RFC9460]). | |||
| port: Used to indicate the target port number for the encrypted DNS | port: Used to indicate the target port number for the encrypted DNS | |||
| connection (Section 7.2 of [I-D.ietf-dnsop-svcb-https]). | connection (Section 7.2 of [RFC9460]). | |||
| In addition, the following service parameter is RECOMMENDED to be | In addition, the following service parameter is RECOMMENDED to be | |||
| supported by a DNR implementation: | supported by a DNR implementation: | |||
| dohpath: Used to supply a relative DoH URI Template (Section 5.1 of | dohpath: Used to supply a relative DoH URI Template (Section 5.1 of | |||
| [I-D.ietf-add-svcb-dns]). | [RFC9461]). | |||
| 3.1.6. ADN Only Mode | 3.1.6. ADN-Only Mode | |||
| The provisioning mode in which an ADN, a list of IP addresses, and a | The provisioning mode in which an ADN, a list of IP addresses, and a | |||
| set of service parameters of the encrypted DNS resolver are supplied | set of service parameters of the encrypted DNS resolver are supplied | |||
| to a host SHOULD be used because the Encrypted DNS options are self- | to a host SHOULD be used because the Encrypted DNS options are self- | |||
| contained and do not require any additional DNS queries. The reader | contained and do not require any additional DNS queries. The reader | |||
| may refer to [RFC7969] for an overview of advanced capabilities that | may refer to [RFC7969] for an overview of advanced capabilities that | |||
| are supported by DHCP servers to populate configuration data (e.g., | are supported by DHCP servers to populate configuration data (e.g., | |||
| issue DNS queries). | issue DNS queries). | |||
| In contexts where putting additional complexity on requesting hosts | In contexts where putting additional complexity on requesting hosts | |||
| is acceptable, returning an ADN only can be considered. The supplied | is acceptable, returning an ADN only can be considered. The supplied | |||
| ADN will be passed to a local resolution library (a DNS client, | ADN will be passed to a local resolution library (a DNS client, | |||
| typically) which will then issue Service Binding (SVCB) queries | typically), which will then issue Service Binding (SVCB) queries | |||
| [I-D.ietf-add-svcb-dns]. These SVCB queries can be sent to the | [RFC9461]. These SVCB queries can be sent to the discovered | |||
| discovered encrypted DNS resolver itself or to the network-designated | encrypted DNS resolver itself or to the network-designated Do53 | |||
| Do53 resolver. Note that this mode may be subject to active attacks, | resolver. Note that this mode may be subject to active attacks, | |||
| which can be mitigated by DNSSEC. | which can be mitigated by DNSSEC. | |||
| | How an ADN is passed to a local resolution library is | | How an ADN is passed to a local resolution library is | |||
| | implementation specific. | | implementation specific. | |||
| 3.1.7. Encrypted DNS Options Ordering | 3.1.7. Ordering of Encrypted DNS Options | |||
| The DHCP options defined in Sections 4 and 5 follow the option | The DHCP options defined in Sections 4 and 5 follow the option | |||
| ordering guidelines in Section 17 of [RFC7227]. | ordering guidelines in Section 17 of [RFC7227]. | |||
| Likewise, the RA option (Section 6) adheres to the recommendations in | Likewise, the RA option (Section 6) adheres to the recommendations in | |||
| Section 9 of [RFC4861]. | Section 9 of [RFC4861]. | |||
| 3.1.8. DNR Validation Checks | 3.1.8. DNR Validation Checks | |||
| On receipt of an Encrypted DNS option, the DHCP client (or IPv6 host) | On receipt of an Encrypted DNS option, the DHCP client (or IPv6 host) | |||
| makes the following validation checks: | makes the following validation checks: | |||
| * The ADN is present and encoded as per Section 10 of [RFC8415]. | * The ADN is present and encoded as per Section 10 of [RFC8415]. | |||
| * If additional data is supplied: | * If additional data is supplied: | |||
| - the service parameters are encoded following the rules | - The service parameters are encoded following the rules | |||
| specified in Section 2.1 of [I-D.ietf-dnsop-svcb-https]. | specified in Section 2.2 of [RFC9460]. | |||
| - the option includes at least one valid IP address. | - The option includes at least one valid IP address. | |||
| - the service parameters do not include "ipv4hint" or "ipv6hint" | - The service parameters do not include "ipv4hint" or "ipv6hint" | |||
| service parameters. | parameters. | |||
| If any of the checks fail, the receiver discards the received | If any of the checks fail, the receiver discards the received | |||
| Encrypted DNS option. | Encrypted DNS option. | |||
| 3.1.9. DNR Information Using Other Provisioning Mechanisms | 3.1.9. DNR Information Using Other Provisioning Mechanisms | |||
| The provisioning mechanisms specified in this document may not be | The provisioning mechanisms specified in this document may not be | |||
| available in specific networks (e.g., some cellular networks | available in specific networks (e.g., some cellular networks | |||
| exclusively use Protocol Configuration Options (PCOs) [TS.24008]) or | exclusively use Protocol Configuration Options (PCOs) [TS.24008]) or | |||
| may not be suitable in some contexts (e.g., need for a secure | may not be suitable in some contexts (e.g., where secure discovery is | |||
| discovery). Other mechanisms may be considered in these contexts for | needed). Other mechanisms may be considered in these contexts for | |||
| the provisioning of encrypted DNS resolvers. It is RECOMMENDED that | the provisioning of encrypted DNS resolvers. It is RECOMMENDED that | |||
| at least the following DNR information is made available to a | at least the following DNR information be made available to a | |||
| requesting host: | requesting host: | |||
| * A service priority whenever the discovery mechanism does not rely | * A service priority whenever the discovery mechanism does not rely | |||
| on implicit ordering if multiple instances of the encrypted DNS | on implicit ordering if multiple instances of the encrypted DNS | |||
| are used. | are used. | |||
| * An authentication domain name. This parameter is mandatory. | * An ADN. This parameter is mandatory. | |||
| * A list of IP addresses to locate the encrypted DNS resolver. | * A list of IP addresses to locate the encrypted DNS resolver. | |||
| * A set of service parameters. | * A set of service parameters. | |||
| 3.2. Handling Configuration Data Conflicts | 3.2. Handling Configuration Data Conflicts | |||
| If the encrypted DNS is discovered by a host using both RA and DHCP, | If encrypted DNS resolvers are discovered by a host using both RA and | |||
| the rules discussed in Section 5.3.1 of [RFC8106] MUST be followed. | DHCP, the rules discussed in Section 5.3.1 of [RFC8106] MUST be | |||
| followed. | ||||
| DHCP/RA options to discover encrypted DNS resolvers (including, DoH | DHCP/RA options to discover encrypted DNS resolvers (including DoH | |||
| URI Templates) takes precedence over Discovery of Designated | URI Templates) takes precedence over Discovery of Designated | |||
| Resolvers (DDR) [I-D.ietf-add-ddr] since DDR uses Do53 to an external | Resolvers (DDR) [RFC9462], since DDR uses Do53 to an external DNS | |||
| DNS resolver, which is susceptible to both internal and external | resolver, which is susceptible to both internal and external attacks | |||
| attacks whereas DHCP/RA is typically protected using the mechanisms | whereas DHCP/RA is typically protected using the mechanisms discussed | |||
| discussed in Section 7.1. | in Section 7.1. | |||
| If a client learns both Do53 and encrypted DNS resolvers from the | If a client learns both Do53 and encrypted DNS resolvers from the | |||
| same network, and absent explicit configuration otherwise, it is | same network, and absent explicit configuration otherwise, it is | |||
| RECOMMENDED that the client uses the encrypted DNS resolvers for that | RECOMMENDED that the client use the encrypted DNS resolvers for that | |||
| network. If the client cannot establish an authenticated and | network. If the client cannot establish an authenticated and | |||
| encrypted connection with the encrypted DNS resolver, it may fall | encrypted connection with the encrypted DNS resolver, it may fall | |||
| back to using the Do53 resolver. | back to using the Do53 resolver. | |||
| 3.3. Validating Discovered Resolvers | 3.3. Validating Discovered Resolvers | |||
| This section describes a set of validation checks to confirm that an | This section describes a set of validation checks to confirm that an | |||
| encrypted DNS resolver matches what is provided using DNR (e.g., DHCP | encrypted DNS resolver matches what is provided using DNR (e.g., DHCP | |||
| or RA). Such validation checks do not intend to validate the | or RA). Such validation checks do not intend to validate the | |||
| security of the DNR provisioning mechanisms or the user's trust | security of the DNR provisioning mechanisms or the user's trust | |||
| relationship to the network. | relationship to the network. | |||
| If the local DNS client supports one of the discovered encrypted DNS | If the local DNS client supports one of the discovered encrypted DNS | |||
| protocols identified by Application Layer Protocol Negotiation (ALPN) | protocols identified by Application-Layer Protocol Negotiation (ALPN) | |||
| protocol identifiers (or other service parameter that indicates some | protocol identifiers (or another service parameter that indicates | |||
| other protocol disambiguation mechanism), the DNS client establishes | some other protocol disambiguation mechanism), the DNS client | |||
| an encrypted DNS session following the service priority of the | establishes an encrypted DNS session following the service priority | |||
| discovered encrypted resolvers. | of the discovered encrypted resolvers. | |||
| The DNS client verifies the connection based on PKIX validation | The DNS client verifies the connection based on PKIX validation | |||
| [RFC5280] of the DNS resolver certificate and uses the validation | [RFC5280] of the DNS resolver certificate and uses the validation | |||
| techniques as described in [RFC6125] to compare the authentication | techniques as described in [RFC6125] to compare the ADN conveyed in | |||
| domain name conveyed in the Encrypted DNS options to the certificate | the Encrypted DNS options to the certificate provided (see | |||
| provided (see Section 8.1 of [RFC8310] for more details). The DNS | Section 8.1 of [RFC8310] for more details). The DNS client uses the | |||
| client uses the default system or application PKI trust anchors | default system or application PKI trust anchors unless configured | |||
| unless configured otherwise to use explicit trust anchors. ALPN- | otherwise to use explicit trust anchors. ALPN-related considerations | |||
| related considerations can be found in Section 6.1 of | can be found in Section 7.1 of [RFC9460]. Operational considerations | |||
| [I-D.ietf-dnsop-svcb-https]. Operation considerations to check the | related to checking the revocation status of the certificate of an | |||
| revocation status of the certificate of an encrypted DNS resolver are | encrypted DNS resolver are discussed in Section 10 of [RFC8484]. | |||
| discussed in Section 10 of [RFC8484]. | ||||
| 3.4. Multihoming Considerations | 3.4. Multihoming Considerations | |||
| Devices may be connected to multiple networks; each providing their | Devices may be connected to multiple networks, each providing their | |||
| own DNS configuration using the discovery mechanisms specified in | own DNS configuration using the discovery mechanisms specified in | |||
| this document. Nevertheless, it is out of the scope of this | this document. Nevertheless, discussing DNS selection of multi- | |||
| specification to discuss DNS selection of multi-interface devices. | interfaced devices is beyond the scope of this specification. Such | |||
| Such considerations fall under the generic issue of handling multiple | considerations fall under the generic issue of handling multiple | |||
| provisioning sources and which should not be dealt within each option | provisioning sources and should not be processed in each option | |||
| separately as per the recommendation in Section 12 of [RFC7227]. | separately, as per the recommendation in Section 12 of [RFC7227]. | |||
| The reader may refer to [RFC6731] for a discussion of DNS selection | The reader may refer to [RFC6731] for a discussion of DNS selection | |||
| issues and an example of DNS resolver selection for multi-interfaced | issues and an example of DNS resolver selection for multi-interfaced | |||
| devices. Also, the reader may refer to | devices. Also, the reader may refer to [Local-DNS-Authority] for a | |||
| [I-D.ietf-add-split-horizon-authority] for a discussion on how DNR | discussion on how DNR and Provisioning Domain (PvD) key "dnsZones" | |||
| and Provisioning Domains (PvDs) Key "dnsZones" (Section 4.3 of | (Section 4.3 of [RFC8801]) can be used in "split DNS" environments | |||
| [RFC8801]) can be used in Split DNS environments (Section 6 of | (Section 6 of [RFC8499]). | |||
| [RFC8499]). | ||||
| 4. DHCPv6 Encrypted DNS Option | 4. DHCPv6 Encrypted DNS Option | |||
| 4.1. Option Format | 4.1. Option Format | |||
| The format of the DHCPv6 Encrypted DNS option is shown in Figure 1. | The format of the DHCPv6 Encrypted DNS option is shown in Figure 1. | |||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | OPTION_V6_DNR | Option-length | | | OPTION_V6_DNR | Option-length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Service Priority | ADN Length | | | Service Priority | ADN Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ authentication-domain-name ~ | ~ authentication-domain-name ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Addr Length | | | | Addr Length | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| skipping to change at page 10, line 26 ¶ | skipping to change at line 420 ¶ | |||
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| ~ Service Parameters (SvcParams) ~ | ~ Service Parameters (SvcParams) ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: DHCPv6 Encrypted DNS Option | Figure 1: DHCPv6 Encrypted DNS Option | |||
| The fields of the option shown in Figure 1 are as follows: | The fields of the option shown in Figure 1 are as follows: | |||
| Option-code: OPTION_V6_DNR (TBA1, see Section 9.1) | Option-code: OPTION_V6_DNR (144; see Section 9.1). | |||
| Option-length: Length of the enclosed data in octets. The option | Option-length: Length of the enclosed data in octets. The option | |||
| length is ('ADN Length' + 4) when only an ADN is included in the | length is ('ADN Length' + 4) when only an ADN is included in the | |||
| option. | option. | |||
| Service Priority: The priority of this OPTION_V6_DNR instance | Service Priority: The priority of this OPTION_V6_DNR instance | |||
| compared to other instances. This 16-bit unsigned integer is | compared to other instances. This 16-bit unsigned integer is | |||
| interpreted following the rules specified in Section 2.4.1 of | interpreted following the rules specified in Section 2.4.1 of | |||
| [I-D.ietf-dnsop-svcb-https]. | [RFC9460]. | |||
| ADN Length: Length of the authentication-domain-name field in | ADN Length: Length of the authentication-domain-name field in | |||
| octets. | octets. | |||
| authentication-domain-name (variable length): A fully qualified | authentication-domain-name (variable length): A Fully Qualified | |||
| domain name of the encrypted DNS resolver. This field is | Domain Name (FQDN) of the encrypted DNS resolver. This field is | |||
| formatted as specified in Section 10 of [RFC8415]. | formatted as specified in Section 10 of [RFC8415]. | |||
| An example of the authentication-domain-name encoding is shown in | An example of the authentication-domain-name encoding is shown in | |||
| Figure 2. This example conveys the FQDN "doh1.example.com.", and | Figure 2. This example conveys the FQDN "doh1.example.com.", and | |||
| the resulting Option-length field is 18. | the resulting ADN Length field is 18. | |||
| +------+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+------+ | |||
| | 0x04 | d | o | h | 1 | 0x07 | e | x | a | | | 0x04 | d | o | h | 1 | 0x07 | e | x | a | | |||
| +------+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+------+ | |||
| | m | p | l | e | 0x03 | c | o | m | 0x00 | | | m | p | l | e | 0x03 | c | o | m | 0x00 | | |||
| +------+------+------+------+------+------+------+------+------+ | +------+------+------+------+------+------+------+------+------+ | |||
| Figure 2: An Example of the DNS authentication-domain-name | Figure 2: An Example of the DNS authentication-domain-name | |||
| Encoding | Encoding | |||
| Addr Length: Length of enclosed IPv6 addresses in octets. When | Addr Length: Length of enclosed IPv6 addresses in octets. When | |||
| present, it MUST be a multiple of 16. | present, it MUST be a multiple of 16. | |||
| ipv6-address(es) (variable length): Indicates one or more IPv6 | ipv6-address(es) (variable length): Indicates one or more IPv6 | |||
| addresses to reach the encrypted DNS resolver. An address can be | addresses to reach the encrypted DNS resolver. An address can be | |||
| link-local, ULA, or GUA. The format of this field is shown in | a Link-Local address, a ULA, or a GUA. The format of this field | |||
| Figure 3. | is shown in Figure 3. | |||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | ipv6-address | | | ipv6-address | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | ... | | | ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: Format of the IPv6 Addresses Field | Figure 3: Format of the ipv6-address(es) Field | |||
| Service Parameters (SvcParams) (variable length): Specifies a set of | Service Parameters (SvcParams) (variable length): Specifies a set of | |||
| service parameters that are encoded following the rules in | service parameters that are encoded following the rules in | |||
| Section 2.1 of [I-D.ietf-dnsop-svcb-https]. Service parameters | Section 2.2 of [RFC9460]. Service parameters may include, for | |||
| may include, for example, a list of ALPN protocol identifiers or | example, a list of ALPN protocol identifiers or alternate port | |||
| alternate port numbers. This field SHOULD include at least "alpn" | numbers. This field SHOULD include at least the "alpn" SvcParam. | |||
| SvcParam. The "alpn" SvcParam may not be required in contexts | The "alpn" SvcParam may not be required in contexts such as a | |||
| such as a variant of DNS over CoAP where messages are encrypted | variant of DNS over the Constrained Application Protocol (CoAP) | |||
| using Object Security for Constrained RESTful Environments | where messages are encrypted using Object Security for Constrained | |||
| (OSCORE) [RFC8613]. The service parameters MUST NOT include | RESTful Environments (OSCORE) [RFC8613]. The service parameters | |||
| "ipv4hint" or "ipv6hint" SvcParams as they are superseded by the | MUST NOT include "ipv4hint" or "ipv6hint" SvcParams, as they are | |||
| included IP addresses. | superseded by the included IP addresses. | |||
| If no port service parameter is included, this indicates that | If no port service parameter is included, this indicates that | |||
| default port numbers should be used. As a reminder, the default | default port numbers should be used. As a reminder, the default | |||
| port number is 853 for DoT, 443 for DoH, and 853 for DoQ. | port number is 853 for DoT, 443 for DoH, and 853 for DoQ. | |||
| The length of this field is ('Option-length' - 6 - 'ADN Length' - | The length of this field is ('Option-length' - 6 - 'ADN Length' - | |||
| 'Addr Length'). | 'Addr Length'). | |||
| Note that "Addr Length", "ipv6-address(es)", and "Service Parameters | Note that the "Addr Length", "ipv6-address(es)", and "Service | |||
| (SvcParams)" fields are not present if the ADN-only mode is used | Parameters (SvcParams)" fields are not present if the ADN-only mode | |||
| (Section 3.1.6). | is used (Section 3.1.6). | |||
| 4.2. DHCPv6 Client Behavior | 4.2. DHCPv6 Client Behavior | |||
| To discover an encrypted DNS resolver, the DHCPv6 client MUST include | To discover an encrypted DNS resolver, the DHCPv6 client MUST include | |||
| OPTION_V6_DNR in an Option Request Option (ORO), as in Sections | OPTION_V6_DNR in an Option Request Option (ORO), per Sections 18.2.1, | |||
| 18.2.1, 18.2.2, 18.2.4, 18.2.5, 18.2.6, and 21.7 of [RFC8415]. | 18.2.2, 18.2.4, 18.2.5, 18.2.6, and 21.7 of [RFC8415]. | |||
| The DHCPv6 client MUST be prepared to receive multiple instances of | The DHCPv6 client MUST be prepared to receive multiple instances of | |||
| the OPTION_V6_DNR option; each option is to be treated as a separate | the OPTION_V6_DNR option; each option is to be treated as a separate | |||
| encrypted DNS resolver. These instances MUST be processed following | encrypted DNS resolver. These instances MUST be processed following | |||
| their service priority (i.e., smaller service priority indicates a | their service priority (i.e., a smaller service priority value | |||
| higher preference). | indicates a higher preference). | |||
| The DHCPv6 client MUST silently discard any OPTION_V6_DNR that fails | The DHCPv6 client MUST silently discard any OPTION_V6_DNR that fails | |||
| to pass the validation steps defined in Section 3.1.8. | to pass the validation steps defined in Section 3.1.8. | |||
| The DHCPv6 client MUST silently discard multicast and host loopback | The DHCPv6 client MUST silently discard multicast and host loopback | |||
| addresses conveyed in OPTION_V6_DNR. | addresses conveyed in OPTION_V6_DNR. | |||
| 5. DHCPv4 Encrypted DNS Option | 5. DHCPv4 Encrypted DNS Option | |||
| 5.1. Option Format | 5.1. Option Format | |||
| The format of the DHCPv4 Encrypted DNS option is illustrated in | The format of the DHCPv4 Encrypted DNS option is illustrated in | |||
| Figure 4. | Figure 4. | |||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | OPTION_V4_DNR | Length | | | OPTION_V4_DNR | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ DNR Instance Data #1 ~ | ~ DNR Instance Data #1 ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- | |||
| . ... . | | . ... . | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ optional | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ optional | |||
| ~ DNR Instance Data #n ~ | | ~ DNR Instance Data #n ~ | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- | |||
| Figure 4: DHCPv4 Encrypted DNS Option | Figure 4: DHCPv4 Encrypted DNS Option | |||
| The fields of the option shown in Figure 4 are as follows: | The fields of the option shown in Figure 4 are as follows: | |||
| Code: OPTION_V4_DNR (TBA2, see Section 9.2). | Code: OPTION_V4_DNR (162; see Section 9.2). | |||
| Length: Indicates the length of the enclosed data in octets. | Length: Indicates the length of the enclosed data in octets. | |||
| DNR Instance Data: Includes the configuration data of an encrypted | DNR Instance Data: Includes the configuration data of an encrypted | |||
| DNS resolver. The format of this field is shown in Figure 5. | DNS resolver. The format of this field is shown in Figure 5. | |||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | DNR Instance Data Length | | | DNR Instance Data Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Service Priority | | | Service Priority | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | ADN Length | | | | ADN Length | | | |||
| +-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ | | |||
| ~ authentication-domain-name ~ | ~ authentication-domain-name ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 13, line 38 ¶ | skipping to change at line 577 ¶ | |||
| Instance Data" field is repeated. | Instance Data" field is repeated. | |||
| The fields shown in Figure 5 are as follows: | The fields shown in Figure 5 are as follows: | |||
| DNR Instance Data Length: Length of all following data in octets. | DNR Instance Data Length: Length of all following data in octets. | |||
| This field is set to ('ADN Length' + 3) when only an ADN is | This field is set to ('ADN Length' + 3) when only an ADN is | |||
| provided for a DNR instance. | provided for a DNR instance. | |||
| Service Priority: The priority of this instance compared to other | Service Priority: The priority of this instance compared to other | |||
| DNR instances. This 16-bit unsigned integer is interpreted | DNR instances. This 16-bit unsigned integer is interpreted | |||
| following the rules specified in Section 2.4.1 of | following the rules specified in Section 2.4.1 of [RFC9460]. | |||
| [I-D.ietf-dnsop-svcb-https]. | ||||
| ADN Length: Length of the authentication-domain-name in octets. | ADN Length: Length of the authentication-domain-name field in | |||
| octets. | ||||
| authentication-domain-name (variable length): The authentication | authentication-domain-name (variable length): The ADN of the | |||
| domain name of the encrypted DNS resolver. This field is | encrypted DNS resolver. This field is formatted as specified in | |||
| formatted as specified in Section 10 of [RFC8415]. An example is | Section 10 of [RFC8415]. An example is provided in Figure 2. | |||
| provided in Figure 2. | ||||
| Addr Length: Length of included IPv4 addresses in octets. When | Addr Length: Length of included IPv4 addresses in octets. When | |||
| present, it MUST be a multiple of 4. | present, it MUST be a multiple of 4. | |||
| IPv4 Address(es) (variable length): Indicates one or more IPv4 | IPv4 Address(es) (variable length): Indicates one or more IPv4 | |||
| addresses to reach the encrypted DNS resolver. Both private and | addresses to reach the encrypted DNS resolver. Both private and | |||
| public IPv4 addresses can be included in this field. The format | public IPv4 addresses can be included in this field. The format | |||
| of this field is shown in Figure 6. This format assumes that an | of this field is shown in Figure 6. This format assumes that an | |||
| IPv4 address is encoded as a1.a2.a3.a4. | IPv4 address is encoded as a1.a2.a3.a4. | |||
| 0 8 16 24 32 40 48 | 0 8 16 24 32 40 48 | |||
| +-----+-----+-----+-----+-----+-----+-- | +-----+-----+-----+-----+-----+-----+-- | |||
| | a1 | a2 | a3 | a4 | a1 | a2 | ... | | a1 | a2 | a3 | a4 | a1 | a2 | ... | |||
| +-----+-----+-----+-----+-----+-----+-- | +-----+-----+-----+-----+-----+-----+-- | |||
| IPv4 Address 1 IPv4 Address 2 ... | IPv4 Address 1 IPv4 Address 2 ... | |||
| Figure 6: Format of the IPv4 Addresses Field | Figure 6: Format of the IPv4 Address(es) Field | |||
| Service Parameters (SvcParams) (variable length): Specifies a set of | Service Parameters (SvcParams) (variable length): Specifies a set of | |||
| service parameters that are encoded following the rules in | service parameters that are encoded following the rules in | |||
| Section 2.1 of [I-D.ietf-dnsop-svcb-https]. Service parameters | Section 2.2 of [RFC9460]. Service parameters may include, for | |||
| may include, for example, a list of ALPN protocol identifiers or | example, a list of ALPN protocol identifiers or alternate port | |||
| alternate port numbers. This field SHOULD include at least "alpn" | numbers. This field SHOULD include at least the "alpn" SvcParam. | |||
| SvcParam. The "alpn" SvcParam may not be required in contexts | The "alpn" SvcParam may not be required in contexts such as a | |||
| such as a variant of DNS over CoAP where messages are encrypted | variant of DNS over CoAP where messages are encrypted using | |||
| using OSCORE. The service parameters MUST NOT include "ipv4hint" | OSCORE. The service parameters MUST NOT include "ipv4hint" or | |||
| or "ipv6hint" SvcParams as they are superseded by the included IP | "ipv6hint" SvcParams, as they are superseded by the included IP | |||
| addresses. | addresses. | |||
| If no port service parameter is included, this indicates that | If no port service parameter is included, this indicates that | |||
| default port numbers should be used. | default port numbers should be used. | |||
| The length of this field is ('DNR Instance Data Length' - 4 - 'ADN | The length of this field is ('DNR Instance Data Length' - 4 - 'ADN | |||
| Length' - 'Addr Length'). | Length' - 'Addr Length'). | |||
| Note that "Addr Length", "IPv4 Address(es)", and "Service Parameters | Note that the "Addr Length", "IPv4 Address(es)", and "Service | |||
| (SvcParams)" fields are not present if the ADN-only mode is used | Parameters (SvcParams)" fields are not present if the ADN-only mode | |||
| (Section 3.1.6). | is used (Section 3.1.6). | |||
| OPTION_V4_DNR is a concatenation-requiring option. As such, the | OPTION_V4_DNR is a concatenation-requiring option. As such, the | |||
| mechanism specified in [RFC3396] MUST be used if OPTION_V4_DNR | mechanism specified in [RFC3396] MUST be used if OPTION_V4_DNR | |||
| exceeds the maximum DHCPv4 option size of 255 octets. | exceeds the maximum DHCPv4 option size of 255 octets. | |||
| 5.2. DHCPv4 Client Behavior | 5.2. DHCPv4 Client Behavior | |||
| To discover an encrypted DNS resolver, the DHCPv4 client requests the | To discover an encrypted DNS resolver, the DHCPv4 client requests the | |||
| encrypted DNS resolver by including OPTION_V4_DNR in a Parameter | encrypted DNS resolver by including OPTION_V4_DNR in a Parameter | |||
| Request List option [RFC2132]. | Request List option [RFC2132]. | |||
| The DHCPv4 client MUST be prepared to receive multiple DNR instance | The DHCPv4 client MUST be prepared to receive multiple "DNR Instance | |||
| data in the OPTION_V4_DNR option; each instance is to be treated as a | Data" field entries in the OPTION_V4_DNR option; each instance is to | |||
| separate encrypted DNS resolver. These instances MUST be processed | be treated as a separate encrypted DNS resolver. These instances | |||
| following their service priority (i.e., smaller service priority | MUST be processed following their service priority (i.e., a smaller | |||
| indicates a higher preference). | service priority value indicates a higher preference). | |||
| The DHCPv4 client MUST silently discard any OPTION_V4_DNR that fails | The DHCPv4 client MUST silently discard any OPTION_V4_DNR that fails | |||
| to pass the validation steps defined in Section 3.1.8. | to pass the validation steps defined in Section 3.1.8. | |||
| The DHCPv4 client MUST silently discard multicast and host loopback | The DHCPv4 client MUST silently discard multicast and host loopback | |||
| addresses conveyed in OPTION_V4_DNR. | addresses conveyed in OPTION_V4_DNR. | |||
| 6. IPv6 RA Encrypted DNS Option | 6. IPv6 RA Encrypted DNS Option | |||
| 6.1. Option Format | 6.1. Option Format | |||
| This section defines a new Neighbor Discovery option [RFC4861]: IPv6 | This section defines a new Neighbor Discovery option [RFC4861]: the | |||
| RA Encrypted DNS option. This option is useful in contexts similar | IPv6 RA Encrypted DNS option. This option is useful in contexts | |||
| to those discussed in Section 1.1 of [RFC8106]. | similar to those discussed in Section 1.1 of [RFC8106]. | |||
| The format of the IPv6 RA Encrypted DNS option is illustrated in | The format of the IPv6 RA Encrypted DNS option is illustrated in | |||
| Figure 7. | Figure 7. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | TBA3 | Length | Service Priority | | | Type | Length | Service Priority | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Lifetime | | | Lifetime | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | ADN Length | | | | ADN Length | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| ~ authentication-domain-name ~ | ~ authentication-domain-name ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Addr Length | | | | Addr Length | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| ~ ipv6-address(es) ~ | ~ ipv6-address(es) ~ | |||
| skipping to change at page 16, line 6 ¶ | skipping to change at line 682 ¶ | |||
| | | SvcParams Length | | | | SvcParams Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ Service Parameters (SvcParams) ~ | ~ Service Parameters (SvcParams) ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 7: RA Encrypted DNS Option | Figure 7: RA Encrypted DNS Option | |||
| The fields of the option shown in Figure 7 are as follows: | The fields of the option shown in Figure 7 are as follows: | |||
| Type: 8-bit identifier of the Encrypted DNS option as assigned by | Type: 8-bit identifier of the Encrypted DNS option as assigned by | |||
| IANA (TBA3, see Section 9.3). | IANA (144; see Section 9.3). | |||
| Length: 8-bit unsigned integer. The length of the option (including | Length: 8-bit unsigned integer. The length of the option (including | |||
| the Type and Length fields) is in units of 8 octets. | the Type and Length fields) is in units of 8 octets. | |||
| Service Priority: 16-bit unsigned integer. The priority of this | Service Priority: 16-bit unsigned integer. The priority of this | |||
| Encrypted DNS option instance compared to other instances. This | Encrypted DNS option instance compared to other instances. This | |||
| field is interpreted following the rules specified in | field is interpreted following the rules specified in | |||
| Section 2.4.1 of [I-D.ietf-dnsop-svcb-https]. | Section 2.4.1 of [RFC9460]. | |||
| Lifetime: 32-bit unsigned integer. The maximum time in seconds | Lifetime: 32-bit unsigned integer. This represents the maximum time | |||
| (relative to the time the packet is received) over which the | in seconds (relative to the time the packet is received) over | |||
| discovered Authentication Domain Name is valid. | which the discovered ADN is valid. | |||
| The value of Lifetime SHOULD by default be at least 3 * | The value of Lifetime SHOULD by default be at least 3 * | |||
| MaxRtrAdvInterval, where MaxRtrAdvInterval is the maximum RA | MaxRtrAdvInterval, where MaxRtrAdvInterval is the maximum RA | |||
| interval as defined in [RFC4861]. | interval as defined in [RFC4861]. | |||
| A value of all one bits (0xffffffff) represents infinity. | A value of all one bits (0xffffffff) represents infinity. | |||
| A value of zero means that this Authentication Domain Name MUST no | A value of zero means that this ADN MUST no longer be used. | |||
| longer be used. | ||||
| ADN Length: 16-bit unsigned integer. This field indicates the | ADN Length: 16-bit unsigned integer. This field indicates the | |||
| length of the authentication-domain-name field in octets. | length of the authentication-domain-name field in octets. | |||
| authentication-domain-name (variable length): The authentication | authentication-domain-name (variable length): The ADN of the | |||
| domain name of the encrypted DNS resolver. This field is | encrypted DNS resolver. This field is formatted as specified in | |||
| formatted as specified in Section 10 of [RFC8415]. | Section 10 of [RFC8415]. | |||
| Addr Length: 16-bit unsigned integer. This field indicates the | Addr Length: 16-bit unsigned integer. This field indicates the | |||
| length of enclosed IPv6 addresses in octets. When present, it | length of enclosed IPv6 addresses in octets. When present, it | |||
| MUST be a multiple of 16. | MUST be a multiple of 16. | |||
| ipv6-address(es) (variable length): One or more IPv6 addresses of | ipv6-address(es) (variable length): One or more IPv6 addresses of | |||
| the encrypted DNS resolver. An address can be link-local, ULA, or | the encrypted DNS resolver. An address can be a Link-Local | |||
| GUA. | address, a ULA, or a GUA. | |||
| All of the addresses share the same Lifetime value. Similar to | All of the addresses share the same Lifetime value. As also | |||
| [RFC8106], if it is desirable to have different Lifetime values | discussed in [RFC8106], if it is desirable to have different | |||
| per IP address, multiple Encrypted DNS options may be used. | Lifetime values per IP address, multiple Encrypted DNS options may | |||
| be used. | ||||
| The format of this field is shown in Figure 3. | The format of this field is shown in Figure 3. | |||
| SvcParams Length: 16-bit unsigned integer. This field indicates the | SvcParams Length: 16-bit unsigned integer. This field indicates the | |||
| length of the Service Parameters field in octets. | length of the "Service Parameters (SvcParams)" field in octets. | |||
| Service Parameters (SvcParams) (variable length): Specifies a set of | Service Parameters (SvcParams) (variable length): Specifies a set of | |||
| service parameters that are encoded following the rules in | service parameters that are encoded following the rules in | |||
| Section 2.1 of [I-D.ietf-dnsop-svcb-https]. Service parameters | Section 2.2 of [RFC9460]. Service parameters may include, for | |||
| may include, for example, a list of ALPN protocol identifiers or | example, a list of ALPN protocol identifiers or alternate port | |||
| alternate port numbers. This field SHOULD include at least "alpn" | numbers. This field SHOULD include at least the "alpn" SvcParam. | |||
| SvcParam. The "alpn" SvcParam may not be required in contexts | The "alpn" SvcParam may not be required in contexts such as a | |||
| such as a variant of DNS over CoAP where messages are encrypted | variant of DNS over CoAP where messages are encrypted using | |||
| using OSCORE. The service parameters MUST NOT include "ipv4hint" | OSCORE. The service parameters MUST NOT include "ipv4hint" or | |||
| or "ipv6hint" SvcParams as they are superseded by the included IP | "ipv6hint" SvcParams, as they are superseded by the included IP | |||
| addresses. | addresses. | |||
| If no port service parameter is included, this indicates that | If no port service parameter is included, this indicates that | |||
| default port numbers should be used. | default port numbers should be used. | |||
| Note that "Addr Length", "ipv6-address(es)", and "Service Parameters | Note that the "Addr Length", "ipv6-address(es)", and "Service | |||
| (SvcParams)" fields are not present if the ADN-only mode is used | Parameters (SvcParams)" fields are not present if the ADN-only mode | |||
| (Section 3.1.6). | is used (Section 3.1.6). | |||
| The option MUST be padded with zeros so that the full enclosed data | The option MUST be padded with zeros so that the full enclosed data | |||
| is a multiple of 8 octets (Section 4.6 of [RFC4861]). | is a multiple of 8 octets (Section 4.6 of [RFC4861]). | |||
| 6.2. IPv6 Host Behavior | 6.2. IPv6 Host Behavior | |||
| The procedure for DNS configuration is the same as it is with any | The procedure for DNS configuration is the same as it is with any | |||
| other Neighbor Discovery option [RFC4861]. In addition, the host | other Neighbor Discovery option [RFC4861]. In addition, the host | |||
| follows the same procedure as the one described in Section 5.3.1 of | follows the same procedure as the procedure described in | |||
| [RFC8106] for processing received Encrypted DNS options with the | Section 5.3.1 of [RFC8106] for processing received Encrypted DNS | |||
| formatting requirements in Section 6.1 and validation checks in | options, with the formatting requirements listed in Section 6.1 and | |||
| Section 3.1.8 substituted for the length and fields validation. | the validation checks listed in Section 3.1.8 substituted for length | |||
| and field validations. | ||||
| The host MUST be prepared to receive multiple Encrypted DNS options | The host MUST be prepared to receive multiple Encrypted DNS options | |||
| in RAs. These instances MUST be processed following their service | in RAs. These instances MUST be processed following their service | |||
| priority (i.e., smaller service priority indicates a higher | priority (i.e., a smaller service priority value indicates a higher | |||
| preference). | preference). | |||
| The host MUST silently discard multicast and host loopback addresses | The host MUST silently discard multicast and host loopback addresses | |||
| conveyed in the Encrypted DNS options. | conveyed in the Encrypted DNS options. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| 7.1. Spoofing Attacks | 7.1. Spoofing Attacks | |||
| DHCP/RA messages are not encrypted or protected against modification | DHCP/RA messages are not encrypted or protected against modification | |||
| within the LAN. Unless mitigated (described below), the content of | within the LAN. Unless spoofing attacks are mitigated as described | |||
| DHCP and RA messages can be spoofed or modified by active attackers, | below, the content of DHCP and RA messages can be spoofed or modified | |||
| such as compromised devices within the local network. An active | by active attackers, such as compromised devices within the local | |||
| attacker (Section 3.3 of [RFC3552]) can spoof the DHCP/RA response to | network. An active attacker (Section 3.3 of [RFC3552]) can spoof the | |||
| provide the attacker's encrypted DNS resolver. Note that such an | DHCP/RA response to provide the attacker's encrypted DNS resolver. | |||
| attacker can launch other attacks as discussed in Section 22 of | Note that such an attacker can launch other attacks as discussed in | |||
| [RFC8415]. The attacker can get a domain name with a domain- | Section 22 of [RFC8415]. The attacker can get a domain name with a | |||
| validated public certificate from a CA and host an encrypted DNS | domain-validated public certificate from a Certificate Authority (CA) | |||
| resolver. | and host an encrypted DNS resolver. | |||
| Attacks of spoofed or modified DHCP responses and RA messages by | Attacks of spoofed or modified DHCP responses and RA messages by | |||
| attackers within the local network may be mitigated by making use of | attackers within the local network may be mitigated by making use of | |||
| the following mechanisms: | the following mechanisms: | |||
| * DHCPv6-Shield [RFC7610]: the network access node (e.g., a border | DHCPv6-Shield [RFC7610]: The network access node (e.g., a border | |||
| router, a CPE, an Access Point (AP)) discards DHCP response | router, a CPE, an Access Point (AP)) discards DHCP response | |||
| messages received from any local endpoint. | messages received from any local endpoint. | |||
| * RA-Guard [RFC7113]: the network access node discards RAs messages | RA-Guard [RFC7113]: The network access node discards RA messages | |||
| received from any local endpoint. | received from any local endpoint. | |||
| * Source Address Validation Improvement (SAVI) solution for DHCP | Source Address Validation Improvement (SAVI) solution for DHCP | |||
| [RFC7513]: the network access node filters packets with forged | [RFC7513]: The network access node filters packets with forged | |||
| source IP addresses. | source IP addresses. | |||
| The above mechanisms would ensure that the endpoint receives the | The above mechanisms would ensure that the endpoint receives the | |||
| correct configuration information of the encrypted DNS resolvers | correct configuration information of the encrypted DNS resolvers | |||
| selected by the DHCP server (or RA sender), but cannot provide any | selected by the DHCP server (or RA sender), but these mechanisms | |||
| information about the DHCP server or the entity hosting the DHCP | cannot provide any information about the DHCP server or the entity | |||
| server (or RA sender). | hosting the DHCP server (or RA sender). | |||
| Encrypted DNS sessions with rogue resolvers that spoof the IP address | Encrypted DNS sessions with rogue resolvers that spoof the IP address | |||
| of a DNS resolver will fail because the DNS client will fail to | of a DNS resolver will fail because the DNS client will fail to | |||
| authenticate that rogue resolver based upon PKIX authentication | authenticate that rogue resolver based upon PKIX authentication | |||
| [RFC6125], particularly the authentication domain name in the | [RFC6125], particularly the ADN in the Encrypted DNS option. DNS | |||
| Encrypted DNS Option. DNS clients that ignore authentication | clients that ignore authentication failures and accept spoofed | |||
| failures and accept spoofed certificates will be subject to attacks | certificates will be subject to attacks (e.g., attacks that redirect | |||
| (e.g., redirect to malicious resolvers, intercept sensitive data). | to malicious resolvers or intercept sensitive data). | |||
| 7.2. Deletion Attacks | 7.2. Deletion Attacks | |||
| If the DHCP responses or RAs are dropped by the attacker, the client | If the DHCP responses or RAs are dropped by the attacker, the client | |||
| can fall back to use a preconfigured encrypted DNS resolver. | can fall back to using a preconfigured encrypted DNS resolver. | |||
| However, the use of policies to select resolvers is out of the scope | However, the use of policies to select resolvers is beyond the scope | |||
| of this document. | of this document. | |||
| Note that deletion attack is not specific to DHCP/RA. | Note that deletion attacks are not specific to DHCP/RA. | |||
| 7.3. Passive Attacks | 7.3. Passive Attacks | |||
| A passive attacker (Section 3.2 of [RFC3552]) can identify a host is | A passive attacker (Section 3.2 of [RFC3552]) can determine that a | |||
| using DHCP/RA to discover an encrypted DNS resolver and can infer | host is using DHCP/RA to discover an encrypted DNS resolver and can | |||
| that host is capable of using DoH/DoT/DoQ to encrypt DNS messages. | infer that the host is capable of using DoH/DoT/DoQ to encrypt DNS | |||
| However, a passive attacker cannot spoof or modify DHCP/RA messages. | messages. However, a passive attacker cannot spoof or modify DHCP/RA | |||
| messages. | ||||
| 7.4. Wireless Security - Authentication Attacks | 7.4. Wireless Security - Authentication Attacks | |||
| Wireless LAN (WLAN) as frequently deployed in local networks (e.g., | Wireless LANs (WLANs), frequently deployed in local networks (e.g., | |||
| home networks) is vulnerable to various attacks (e.g., [Evil-Twin], | home networks), are vulnerable to various attacks (e.g., [Evil-Twin], | |||
| [Krack], [Dragonblood]). Because of these attacks, only | [Krack], [Dragonblood]). Because of these attacks, only | |||
| cryptographically authenticated communications are trusted on WLANs. | cryptographically authenticated communications are trusted on WLANs. | |||
| This means that any information (e.g., NTP server, DNS resolver, | This means that any information (e.g., regarding NTP servers, DNS | |||
| domain search list) provided by such networks via DHCP, DHCPv6, or RA | resolvers, or domain search lists) provided by such networks via | |||
| is untrusted because DHCP and RA messages are not authenticated. | DHCP, DHCPv6, or RA is untrusted because DHCP and RA messages are not | |||
| authenticated. | ||||
| If the pre-shared key (PSK) is the same for all clients that connect | If the pre-shared key (PSK) is the same for all clients that connect | |||
| to the same WLAN (e.g., WPA-PSK), the shared key will be available to | to the same WLAN (e.g., Wi-Fi Protected Access Pre-Shared Key (WPA- | |||
| all nodes, including attackers. As such, it is possible to mount an | PSK)), the shared key will be available to all nodes, including | |||
| active on-path attack. On-path attacks are possible within local | attackers. As such, it is possible to mount an active on-path | |||
| networks because such a WLAN authentication lacks peer entity | attack. On-path attacks are possible within local networks because | |||
| authentication. | this form of WLAN authentication lacks peer entity authentication. | |||
| This leads to the need for provisioning unique credentials for | This leads to the need for provisioning unique credentials for | |||
| different clients. Endpoints can be provisioned with unique | different clients. Endpoints can be provisioned with unique | |||
| credentials (username and password, typically) provided by the local | credentials (username and password, typically) provided by the local | |||
| network administrator to mutually authenticate to the local WLAN AP | network administrator to mutually authenticate to the local WLAN AP | |||
| (e.g., 802.1x Wireless User Authentication on OpenWRT [dot1x], EAP- | (e.g., 802.1x Wireless User Authentication on OpenWrt [dot1x], EAP- | |||
| pwd [RFC8146]). Not all endpoint devices (e.g., IoT devices) support | pwd [RFC8146] ("EAP" stands for "Extensible Authentication | |||
| 802.1x supplicant and need an alternate mechanism to connect to the | Protocol")). Not all endpoint devices (e.g., Internet of Things | |||
| local network. To address this limitation, unique pre-shared keys | (IoT) devices) support 802.1x supplicants and need an alternate | |||
| can be created for each such devices and WPA-PSK is used (e.g., | mechanism to connect to the local network. To address this | |||
| [IPSK]). | limitation, unique PSKs can be created for each such device and WPA- | |||
| PSK is used (e.g., [IPSK]). | ||||
| 8. Privacy Considerations | 8. Privacy Considerations | |||
| Privacy considerations that are specific to DNR provisioning | Privacy considerations that are also specific to DNR provisioning | |||
| mechanisms are discussed in Section 23 of [RFC8415] or [RFC7824]. | mechanisms are discussed in Section 23 of [RFC8415] and in [RFC7824]. | |||
| Anonymity profiles for DHCP clients are discussed in [RFC7844]. The | Anonymity profiles for DHCP clients are discussed in [RFC7844]. The | |||
| mechanism defined in this document can be used to infer that a DHCP | mechanisms defined in this document can be used to infer that a DHCP | |||
| client or IPv6 host support encrypted DNS options, but does not | client or IPv6 host supports Encrypted DNS options, but these | |||
| explicitly reveal whether local DNS clients are able to consume these | mechanisms do not explicitly reveal whether local DNS clients are | |||
| options or infer their encryption capabilities. Other than that, | able to consume these options or infer their encryption capabilities. | |||
| this document does not expose more privacy information compared to | Other than that, this document does not expose more privacy | |||
| Do53 discovery options. | information compared to Do53 discovery options. | |||
| As discussed in [RFC9076], the use of encrypted DNS does not reduce | As discussed in [RFC9076], the use of encrypted DNS does not reduce | |||
| the data available in the DNS resolver. For example, the reader may | the data available in the DNS resolver. For example, the reader may | |||
| refer to Section 8 of [RFC8484] or Section 7 of [RFC9250] for a | refer to Section 8 of [RFC8484] or Section 7 of [RFC9250] for a | |||
| discussion on specific privacy considerations to encrypted DNS. | discussion on specific privacy considerations for encrypted DNS. | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| 9.1. DHCPv6 Option | 9.1. DHCPv6 Option | |||
| IANA is requested to assign the following new DHCPv6 Option Code in | IANA has assigned the following new DHCPv6 Option Code in the "Option | |||
| the registry maintained in [DHCPV6]. | Codes" registry maintained at [DHCPV6]. | |||
| +=======+===============+============+===========+================+ | +=======+===============+============+==================+===========+ | |||
| | Value | Description | Client ORO | Singleton | Reference | | | Value | Description | Client ORO | Singleton | Reference | | |||
| | | | | Option | | | | | | | Option | | | |||
| +=======+===============+============+===========+================+ | +=======+===============+============+==================+===========+ | |||
| | TBA1 | OPTION_V6_DNR | Yes | No | [ThisDocument] | | | 144 | OPTION_V6_DNR | Yes | No | RFC 9463 | | |||
| +-------+---------------+------------+-----------+----------------+ | +-------+---------------+------------+------------------+-----------+ | |||
| Table 1: DHCPv6 Encrypted DNS Option | Table 1: DHCPv6 Encrypted DNS Option | |||
| 9.2. DHCPv4 Option | 9.2. DHCPv4 Option | |||
| IANA is requested to assign the following new DHCP Option Code in the | IANA has assigned the following new DHCP Option Code in the "BOOTP | |||
| registry maintained in [BOOTP]. | Vendor Extensions and DHCP Options" registry maintained at [BOOTP]. | |||
| +======+===============+=============+============+================+ | +=====+===============+=============+============+===========+ | |||
| | Tag | Name | Data Length | Meaning | Reference | | | Tag | Name | Data Length | Meaning | Reference | | |||
| +======+===============+=============+============+================+ | +=====+===============+=============+============+===========+ | |||
| | TBA2 | OPTION_V4_DNR | N | Encrypted | [ThisDocument] | | | 162 | OPTION_V4_DNR | N | Encrypted | RFC 9463 | | |||
| | | | | DNS Server | | | | | | | DNS Server | | | |||
| +------+---------------+-------------+------------+----------------+ | +-----+---------------+-------------+------------+-----------+ | |||
| Table 2: DHCPv4 Encrypted DNS Option | Table 2: DHCPv4 Encrypted DNS Option | |||
| 9.3. Neighbor Discovery Option | 9.3. Neighbor Discovery Option | |||
| IANA is requested to assign the following new IPv6 Neighbor Discovery | IANA has assigned the following new IPv6 Neighbor Discovery Option | |||
| Option type in the "IPv6 Neighbor Discovery Option Formats" sub- | type in the "IPv6 Neighbor Discovery Option Formats" subregistry | |||
| registry under the "Internet Control Message Protocol version 6 | under the "Internet Control Message Protocol version 6 (ICMPv6) | |||
| (ICMPv6) Parameters" registry maintained in [ND]. | Parameters" registry maintained at [ND]. | |||
| +======+======================+================+ | ||||
| | Type | Description | Reference | | ||||
| +======+======================+================+ | ||||
| | TBA3 | Encrypted DNS Option | [ThisDocument] | | ||||
| +------+----------------------+----------------+ | ||||
| Table 3: Neighbor Discovery Encrypted DNS Option | ||||
| 10. Acknowledgements | ||||
| Many thanks to Christian Jacquenet and Michael Richardson for the | ||||
| review. | ||||
| Thanks to Stephen Farrell, Martin Thomson, Vittorio Bertola, Stephane | ||||
| Bortzmeyer, Ben Schwartz, Iain Sharp, and Chris Box for the comments. | ||||
| Thanks to Mark Nottingham for the feedback on HTTP redirection that | ||||
| was discussed in previous versions of this specification. | ||||
| The use of DHCP to retrieve an authentication domain name was | ||||
| discussed in Section 7.3.1 of [RFC8310] and in an Internet-Draft | ||||
| authored by Tom Pusateri and Willem Toorop | ||||
| [I-D.pusateri-dhc-dns-driu]. | ||||
| Thanks to Bernie Volz for the review of the DHCP part. | ||||
| Christian Amsuess reported a case where ALPN service parameter cannot | ||||
| be used. | ||||
| Thanks to Andrew Campling for the Shepherd review and Eric Vyncke for | ||||
| the AD review. | ||||
| Thanks to Rich Salz for the secdir reviews, Joe Clarke for the ops- | ||||
| dir review, Robert Sparks for the artart review, and David Blacka for | ||||
| the dnsdir review. | ||||
| Thanks to Lars Eggert, Roman Danyliw, Erik Kline, Martin Duke, Robert | ||||
| Wilton, Paul Wouters, and Zaheduzzaman Sarker for the IESG review. | ||||
| 11. Contributing Authors | ||||
| Nicolai Leymann | ||||
| Deutsche Telekom | ||||
| Germany | ||||
| Email: n.leymann@telekom.de | ||||
| Zhiwei Yan | ||||
| CNNIC | ||||
| No.4 South 4th Street, Zhongguancun | ||||
| Beijing | ||||
| 100190 | ||||
| China | ||||
| Email: yan@cnnic.cn | ||||
| 12. References | +======+======================+===========+ | |||
| | Type | Description | Reference | | ||||
| +======+======================+===========+ | ||||
| | 144 | Encrypted DNS Option | RFC 9463 | | ||||
| +------+----------------------+-----------+ | ||||
| 12.1. Normative References | Table 3: Neighbor Discovery Encrypted | |||
| DNS Option | ||||
| [I-D.ietf-add-svcb-dns] | 10. References | |||
| Schwartz, B. M., "Service Binding Mapping for DNS | ||||
| Servers", Work in Progress, Internet-Draft, draft-ietf- | ||||
| add-svcb-dns-08, 14 March 2023, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-add- | ||||
| svcb-dns-08>. | ||||
| [I-D.ietf-dnsop-svcb-https] | 10.1. Normative References | |||
| Schwartz, B. M., Bishop, M., and E. Nygren, "Service | ||||
| binding and parameter specification via the DNS (DNS SVCB | ||||
| and HTTPS RRs)", Work in Progress, Internet-Draft, draft- | ||||
| ietf-dnsop-svcb-https-12, 11 March 2023, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop- | ||||
| svcb-https-12>. | ||||
| [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>. | |||
| [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor | [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor | |||
| Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997, | Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2132>. | <https://www.rfc-editor.org/info/rfc2132>. | |||
| skipping to change at page 23, line 20 ¶ | skipping to change at line 960 ¶ | |||
| [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/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8415] Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., | [RFC8415] Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., | |||
| Richardson, M., Jiang, S., Lemon, T., and T. Winters, | Richardson, M., Jiang, S., Lemon, T., and T. Winters, | |||
| "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", | "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", | |||
| RFC 8415, DOI 10.17487/RFC8415, November 2018, | RFC 8415, DOI 10.17487/RFC8415, November 2018, | |||
| <https://www.rfc-editor.org/info/rfc8415>. | <https://www.rfc-editor.org/info/rfc8415>. | |||
| 12.2. Informative References | [RFC9460] Schwartz, B., Bishop, M., and E. Nygren, "Service Binding | |||
| and Parameter Specification via the DNS (DNS SVCB and | ||||
| HTTPS Resource Records)", RFC 9460, DOI 10.17487/RFC9460, | ||||
| November 2023, <https://www.rfc-editor.org/info/rfc9460>. | ||||
| [BOOTP] "BOOTP Vendor Extensions and DHCP Options", | [RFC9461] Schwartz, B., "Service Binding Mapping for DNS Servers", | |||
| <https://www.iana.org/assignments/bootp-dhcp-parameters/ | RFC 9461, DOI 10.17487/RFC9461, November 2023, | |||
| bootp-dhcp-parameters.xhtml#options>. | <https://www.rfc-editor.org/info/rfc9461>. | |||
| [DHCPV6] "DHCPv6 Option Codes", <https://www.iana.org/assignments/ | 10.2. Informative References | |||
| dhcpv6-parameters/dhcpv6-parameters.xhtml#dhcpv6- | ||||
| parameters-2>. | ||||
| [dot1x] Cisco, "Basic 802.1x Wireless User Authentication", | [BOOTP] IANA, "BOOTP Vendor Extensions and DHCP Options", | |||
| <https://www.iana.org/assignments/bootp-dhcp-parameters/>. | ||||
| [DHCPV6] IANA, "Option Codes", | ||||
| <https://www.iana.org/assignments/dhcpv6-parameters/>. | ||||
| [DNS-TLS-DHCPv6-Options] | ||||
| Pusateri, T. and W. Toorop, "DHCPv6 Options for private | ||||
| DNS Discovery", Work in Progress, Internet-Draft, draft- | ||||
| pusateri-dhc-dns-driu-00, 2 July 2018, | ||||
| <https://datatracker.ietf.org/doc/html/draft-pusateri-dhc- | ||||
| dns-driu-00>. | ||||
| [dot1x] OpenWrt, "Introduction to 802.1X", December 2021, | ||||
| <https://openwrt.org/docs/guide-user/network/wifi/ | <https://openwrt.org/docs/guide-user/network/wifi/ | |||
| wireless.security.8021x>. | wireless.security.8021x>. | |||
| [Dragonblood] | [Dragonblood] | |||
| The Unicode Consortium, "Dragonblood: Analyzing the | Vanhoef, M. and E. Ronen, "Dragonblood: Analyzing the | |||
| Dragonfly Handshake of WPA3 and EAP-pwd", | Dragonfly Handshake of WPA3 and EAP-pwd", 2020 IEEE | |||
| <https://papers.mathyvanhoef.com/dragonblood.pdf>. | Symposium on Security and Privacy (SP), San Francisco, pp. | |||
| 517-533, DOI 10.1109/SP40000.2020.00031, May 2020, | ||||
| <https://ieeexplore.ieee.org/document/9152782>. | ||||
| [Evil-Twin] | [Evil-Twin] | |||
| The Unicode Consortium, "Evil twin (wireless networks)", | Wikipedia, "Evil twin (wireless networks)", November 2022, | |||
| <https://en.wikipedia.org/wiki/ | <https://en.wikipedia.org/wiki/ | |||
| Evil_twin_(wireless_networks)>. | Evil_twin_(wireless_networks)>. | |||
| [I-D.ietf-add-ddr] | [IPSK] Cisco, "8.5 Identity PSK Feature Deployment Guide", | |||
| Pauly, T., Kinnear, E., Wood, C. A., McManus, P., and T. | December 2021, | |||
| Jensen, "Discovery of Designated Resolvers", Work in | <https://www.cisco.com/c/en/us/td/docs/wireless/ | |||
| Progress, Internet-Draft, draft-ietf-add-ddr-10, 5 August | controller/technotes/8-5/ | |||
| 2022, <https://datatracker.ietf.org/doc/html/draft-ietf- | b_Identity_PSK_Feature_Deployment_Guide.html>. | |||
| add-ddr-10>. | ||||
| [I-D.ietf-add-split-horizon-authority] | [Krack] Vanhoef, M. and F. Piessens, "Key Reinstallation Attacks: | |||
| Reddy.K, T., Wing, D., Smith, K., and B. M. Schwartz, | Forcing Nonce Reuse in WPA2", CCS '17: Proceedings of the | |||
| 2017 ACM SIGSAC Conference on Computer and Communications | ||||
| Security, pp. 1313-1328, DOI 10.1145/3133956.3134027, | ||||
| October 2017, | ||||
| <https://dl.acm.org/doi/10.1145/3133956.3134027>. | ||||
| [Local-DNS-Authority] | ||||
| Reddy, T., Wing, D., Smith, K., and B. Schwartz, | ||||
| "Establishing Local DNS Authority in Validated Split- | "Establishing Local DNS Authority in Validated Split- | |||
| Horizon Environments", Work in Progress, Internet-Draft, | Horizon Environments", Work in Progress, Internet-Draft, | |||
| draft-ietf-add-split-horizon-authority-04, 8 March 2023, | draft-ietf-add-split-horizon-authority-04, 8 March 2023, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-add- | <https://datatracker.ietf.org/doc/html/draft-ietf-add- | |||
| split-horizon-authority-04>. | split-horizon-authority-04>. | |||
| [I-D.pusateri-dhc-dns-driu] | [ND] IANA, "IPv6 Neighbor Discovery Option Formats", | |||
| Pusateri, T. and W. Toorop, "DHCPv6 Options for private | <https://www.iana.org/assignments/icmpv6-parameters/>. | |||
| DNS Discovery", Work in Progress, Internet-Draft, draft- | ||||
| pusateri-dhc-dns-driu-00, 2 July 2018, | ||||
| <https://datatracker.ietf.org/doc/html/draft-pusateri-dhc- | ||||
| dns-driu-00>. | ||||
| [IPSK] Cisco, "Identity PSK Feature Deployment Guide", | ||||
| <https://www.cisco.com/c/en/us/td/docs/wireless/ | ||||
| controller/technotes/8-5/ | ||||
| b_Identity_PSK_Feature_Deployment_Guide.html>. | ||||
| [Krack] The Unicode Consortium, "Key Reinstallation Attacks", | ||||
| 2017, <https://www.krackattacks.com/>. | ||||
| [ND] "IPv6 Neighbor Discovery Option Formats", | ||||
| <https://www.iana.org/assignments/icmpv6-parameters/ | ||||
| icmpv6-parameters.xhtml#icmpv6-parameters-5>. | ||||
| [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC | [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC | |||
| Text on Security Considerations", BCP 72, RFC 3552, | Text on Security Considerations", BCP 72, RFC 3552, | |||
| DOI 10.17487/RFC3552, July 2003, | DOI 10.17487/RFC3552, July 2003, | |||
| <https://www.rfc-editor.org/info/rfc3552>. | <https://www.rfc-editor.org/info/rfc3552>. | |||
| [RFC3646] Droms, R., Ed., "DNS Configuration options for Dynamic | [RFC3646] Droms, R., Ed., "DNS Configuration options for Dynamic | |||
| Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3646, | Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3646, | |||
| DOI 10.17487/RFC3646, December 2003, | DOI 10.17487/RFC3646, December 2003, | |||
| <https://www.rfc-editor.org/info/rfc3646>. | <https://www.rfc-editor.org/info/rfc3646>. | |||
| skipping to change at page 26, line 46 ¶ | skipping to change at line 1132 ¶ | |||
| [RFC9076] Wicinski, T., Ed., "DNS Privacy Considerations", RFC 9076, | [RFC9076] Wicinski, T., Ed., "DNS Privacy Considerations", RFC 9076, | |||
| DOI 10.17487/RFC9076, July 2021, | DOI 10.17487/RFC9076, July 2021, | |||
| <https://www.rfc-editor.org/info/rfc9076>. | <https://www.rfc-editor.org/info/rfc9076>. | |||
| [RFC9250] Huitema, C., Dickinson, S., and A. Mankin, "DNS over | [RFC9250] Huitema, C., Dickinson, S., and A. Mankin, "DNS over | |||
| Dedicated QUIC Connections", RFC 9250, | Dedicated QUIC Connections", RFC 9250, | |||
| DOI 10.17487/RFC9250, May 2022, | DOI 10.17487/RFC9250, May 2022, | |||
| <https://www.rfc-editor.org/info/rfc9250>. | <https://www.rfc-editor.org/info/rfc9250>. | |||
| [TS.24008] 3GPP, "Mobile radio interface Layer 3 specification; Core | [RFC9462] Pauly, T., Kinnear, E., Wood, C. A., McManus, P., and T. | |||
| network protocols; Stage 3 (Release 16)", December 2019, | Jensen, "Discovery of Designated Resolvers", RFC 9462, | |||
| DOI 10.17487/RFC9462, November 2023, | ||||
| <https://www.rfc-editor.org/info/rfc9462>. | ||||
| [TS.24008] 3GPP, "Technical Specification Group Core Network and | ||||
| Terminals; Mobile radio interface Layer 3 specification; | ||||
| Core network protocols; Stage 3 (Release 18)", version | ||||
| 18.4.0, September 2023, | ||||
| <https://www.3gpp.org/DynaReport/24008.htm>. | <https://www.3gpp.org/DynaReport/24008.htm>. | |||
| Acknowledgments | ||||
| Many thanks to Christian Jacquenet and Michael Richardson for their | ||||
| reviews. | ||||
| Thanks to Stephen Farrell, Martin Thomson, Vittorio Bertola, Stéphane | ||||
| Bortzmeyer, Ben Schwartz, Iain Sharp, and Chris Box for their | ||||
| comments. | ||||
| Thanks to Mark Nottingham for the feedback on HTTP redirection that | ||||
| was discussed in previous draft versions of this specification. | ||||
| The use of DHCP as a candidate protocol to retrieve an ADN was | ||||
| mentioned in Section 7.3.1 of [RFC8310] and in an Internet-Draft | ||||
| authored by Tom Pusateri and Willem Toorop [DNS-TLS-DHCPv6-Options]. | ||||
| Thanks to Bernie Volz for the review of the DHCP part. | ||||
| Christian Amsüss reported a case where the ALPN service parameter | ||||
| cannot be used. | ||||
| Thanks to Andrew Campling for the Shepherd review and Éric Vyncke for | ||||
| the AD review. | ||||
| Thanks to Rich Salz for the secdir reviews, Joe Clarke for the opsdir | ||||
| review, Robert Sparks for the artart review, and David Blacka for the | ||||
| dnsdir review. | ||||
| Thanks to Lars Eggert, Roman Danyliw, Erik Kline, Martin Duke, Robert | ||||
| Wilton, Paul Wouters, and Zaheduzzaman Sarker for the IESG review. | ||||
| Contributors | ||||
| Nicolai Leymann | ||||
| Deutsche Telekom | ||||
| Germany | ||||
| Email: n.leymann@telekom.de | ||||
| Zhiwei Yan | ||||
| CNNIC | ||||
| No.4 South 4th Street, Zhongguancun | ||||
| Beijing | ||||
| 100190 | ||||
| China | ||||
| Email: yan@cnnic.cn | ||||
| Authors' Addresses | Authors' Addresses | |||
| Mohamed Boucadair (editor) | Mohamed Boucadair (editor) | |||
| Orange | Orange | |||
| 35000 Rennes | 35000 Rennes | |||
| France | France | |||
| Email: mohamed.boucadair@orange.com | Email: mohamed.boucadair@orange.com | |||
| Tirumaleswar Reddy (editor) | Tirumaleswar Reddy.K (editor) | |||
| Nokia | Nokia | |||
| India | India | |||
| Email: kondtir@gmail.com | Email: kondtir@gmail.com | |||
| Dan Wing | Dan Wing | |||
| Citrix Systems, Inc. | Cloud Software Group Holdings, Inc. | |||
| United States of America | United States of America | |||
| Email: dwing-ietf@fuggles.com | Email: dwing-ietf@fuggles.com | |||
| Neil Cook | Neil Cook | |||
| Open-Xchange | Open-Xchange | |||
| United Kingdom | United Kingdom | |||
| Email: neil.cook@noware.co.uk | Email: neil.cook@noware.co.uk | |||
| Tommy Jensen | Tommy Jensen | |||
| Microsoft | Microsoft | |||
| End of changes. 133 change blocks. | ||||
| 446 lines changed or deleted | 451 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||