draft-ietf-dprive-unauth-to-authoritative-03.txt | draft-ietf-dprive-unauth-to-authoritative-04.txt | |||
---|---|---|---|---|
Network Working Group P. Hoffman | Network Working Group P. Hoffman | |||
Internet-Draft ICANN | Internet-Draft ICANN | |||
Intended status: Experimental P. van Dijk | Intended status: Experimental P. van Dijk | |||
Expires: January 13, 2022 PowerDNS | Expires: 1 April 2022 PowerDNS | |||
July 12, 2021 | 28 September 2021 | |||
Recursive to Authoritative DNS with Unauthenticated Encryption | Recursive to Authoritative DNS with Unauthenticated Encryption | |||
draft-ietf-dprive-unauth-to-authoritative-03 | draft-ietf-dprive-unauth-to-authoritative-04 | |||
Abstract | Abstract | |||
This document describes a use case and a method for a DNS recursive | This document describes a use case and a method for a DNS recursive | |||
resolver to use unauthenticated encryption when communicating with | resolver to use unauthenticated encryption when communicating with | |||
authoritative servers. The motivating use case for this method is | authoritative servers. The motivating use case for this method is | |||
that more encryption on the Internet is better, and some resolver | that more encryption on the Internet is better, and some resolver | |||
operators believe that unauthenticated encryption is better than no | operators believe that unauthenticated encryption is better than no | |||
encryption at all. The method described here is optional for both | encryption at all. The method described here is optional for both | |||
the recursive resolver and the authoritative server. This method | the recursive resolver and the authoritative server. | |||
supports unauthenticated encryption using the same mechanism for | ||||
discovery of encryption support for the server as [FULL-AUTH]. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on January 13, 2022. | This Internet-Draft will expire on 1 April 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Use Case for Unauthenticated Encryption . . . . . . . . . 3 | 1.1. Use Case for Unauthenticated Encryption . . . . . . . . . 3 | |||
1.2. Summary of Protocol . . . . . . . . . . . . . . . . . . . 3 | 1.2. Summary of Protocol . . . . . . . . . . . . . . . . . . . 3 | |||
1.3. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.3. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Discovery of Authoritative Server Encryption . . . . . . . . 4 | 2. Discovery of Authoritative Server Encryption . . . . . . . . 4 | |||
3. Processing Discovery Responses . . . . . . . . . . . . . . . 5 | 3. Processing Discovery Responses . . . . . . . . . . . . . . . 5 | |||
3.1. Resolver Process as Pseudocode . . . . . . . . . . . . . 6 | 3.1. Resolver Process as Pseudocode . . . . . . . . . . . . . 6 | |||
3.2. Resolver Session Failures . . . . . . . . . . . . . . . . 7 | 3.2. Resolver Session Failures . . . . . . . . . . . . . . . . 7 | |||
4. Serving with Encryption . . . . . . . . . . . . . . . . . . . 7 | 4. Serving with Encryption . . . . . . . . . . . . . . . . . . . 8 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 8 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 9 | 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
1. Introduction | 1. Introduction | |||
A recursive resolver using traditional DNS over port 53 may wish | A recursive resolver using traditional DNS over port 53 may wish | |||
instead to use encrypted communication with authoritative servers in | instead to use encrypted communication with authoritative servers in | |||
order to limit snooping of its DNS traffic by passive or on-path | order to limit snooping of its DNS traffic by passive or on-path | |||
attackers. The recursive resolver can use unauthenticated encryption | attackers. The recursive resolver can use unauthenticated encryption | |||
(defined in [OPPORTUN]) to achieve this goal. | (defined in [OPPORTUN]) to achieve this goal. | |||
This document describes the use case for unauthenticated encryption | This document describes the use case for unauthenticated encryption | |||
in recursive resolvers in Section 1.1. The encryption method with | in recursive resolvers in Section 1.1. The encryption method with | |||
authoritative servers can be DNS-over-TLS [DNSOTLS] (DoT), DNS-over- | authoritative servers can be DNS-over-TLS [DNS-OVER-TLS] (DoT), DNS- | |||
HTTPS [DNSOHTTPS] (DoH), and/or DNS-over-QUIC [DNSOQUIC] (DoQ). | over-HTTPS [DNS-OVER-HTTPS] (DoH), and/or DNS-over-QUIC | |||
[DNS-OVER-QUIC] (DoQ). | ||||
The document also describes a discovery method that shows if an | The document also describes a discovery method that shows if an | |||
authoritative server supports encryption in Section 2. | authoritative server supports encryption in Section 2. | |||
See [FULL-AUTH] for a description of the use case and a proposed | See [FULL-AUTH] for a description of the use case and a proposed | |||
mechanism for fully-authenticated encryption. | mechanism for fully-authenticated encryption. | |||
NOTE: The draft uses the SVCB record as a discovery mechanism for | NOTE: The draft uses the SVCB record as a discovery mechanism for | |||
encryption by a particular authoritative server. Any record type | encryption by a particular authoritative server. Any record type | |||
that can show multiple types of encryption (currently DoT, DoH, and | that can show multiple types of encryption (currently DoT, DoH, and | |||
skipping to change at page 3, line 16 ¶ | skipping to change at page 3, line 20 ¶ | |||
1.1. Use Case for Unauthenticated Encryption | 1.1. Use Case for Unauthenticated Encryption | |||
The use case in this document for unauthenticated encryption is | The use case in this document for unauthenticated encryption is | |||
recursive resolver operators who are happy to use encryption with | recursive resolver operators who are happy to use encryption with | |||
authoritative servers if doing so doesn't significantly slow down | authoritative servers if doing so doesn't significantly slow down | |||
getting answers, and authoritative server operators that are happy to | getting answers, and authoritative server operators that are happy to | |||
use encryption with recursive resolvers if it doesn't cost much. In | use encryption with recursive resolvers if it doesn't cost much. In | |||
this use case, resolvers do not want to return an error for requests | this use case, resolvers do not want to return an error for requests | |||
that were sent over an encrypted channel if they would have been able | that were sent over an encrypted channel if they would have been able | |||
to give a correct answer using unencrypted transport. | to give a correct answer using unencrypted transport. Ultimately, | |||
this effort has two two goals: to protect queries from failing in | ||||
case authenticated encryption is not available, and to enable | ||||
recursive resolver operators to encrypt without server | ||||
authentication. | ||||
Resolvers and authoritative servers understand that using encryption | Resolvers and authoritative servers understand that using encryption | |||
costs something, but are willing to absorb the costs for the benefit | costs something, but are willing to absorb the costs for the benefit | |||
of more Internet traffic being encrypted. The extra costs (compared | of more Internet traffic being encrypted. The extra costs (compared | |||
to using traditional DNS on port 53) include: | to using traditional DNS on port 53) include: | |||
o Extra round trips to establish TCP for every session (but not | * Extra round trips to establish TCP for every session (but not | |||
necessarily for every query) | necessarily for every query) | |||
o Extra round trips for TLS establishment | * Extra round trips for TLS establishment | |||
o Greater CPU use for TLS establishment | * Greater CPU use for TLS establishment | |||
o Greater CPU use for encryption after TLS establishment | * Greater CPU use for encryption after TLS establishment | |||
o Greater memory use for holding TLS state | * Greater memory use for holding TLS state | |||
This use case is not expected to apply to all resolvers or | This use case is not expected to apply to all resolvers or | |||
authoritative servers. For example, according to [RSO_STATEMENT], | authoritative servers. For example, according to [RSO_STATEMENT], | |||
some root server operators do not want to be the early adopters for | some root server operators do not want to be the early adopters for | |||
DNS with encryption. The protocol in this document explicitly allows | DNS with encryption. The protocol in this document explicitly allows | |||
authoritative servers to signal when they are ready to begin offering | authoritative servers to signal when they are ready to begin offering | |||
DNS with encryption. | DNS with encryption. | |||
1.2. Summary of Protocol | 1.2. Summary of Protocol | |||
This summary gives an overview of how the parts of the protocol work | This summary gives an overview of how the parts of the protocol work | |||
together. | together. | |||
o The resolver discovers whether any authoritative server of | * The resolver discovers whether any authoritative server of | |||
interest supports DNS with encryption by querying for the SVCB | interest supports DNS with encryption by querying for the SVCB | |||
records [SVCB]. As described in [DNS-SVCB], SVCB records can | records [SVCB]. As described in [DNS-SVCB], SVCB records can | |||
indicate that a server supports encrypted transport of DNS | indicate that a server supports encrypted transport of DNS | |||
queries. | queries. | |||
NOTE: In this document, the term "SVCB record" is used _only_ for | NOTE: In this document, the term "SVCB record" is used _only_ for | |||
SVCB records that indicate encryption as described in [DNS-SVCB]. | SVCB records that indicate encryption as described in [DNS-SVCB]. | |||
SVCB records that do not have these indicators in the RDATA are | SVCB records that do not have these indicators in the RDATA are | |||
not included in the term "SVCB record" in this document. | not included in the term "SVCB record" in this document. | |||
o The resolver uses any authoritative server with a SVCB record that | * The resolver uses any authoritative server with a SVCB record that | |||
indicates encryption to perform unauthenticated encryption. | indicates encryption to perform unauthenticated encryption. | |||
o The resolver does not fail to set up encryption if the | * The resolver does not fail to set up encryption if server | |||
authentication in the TLS session fails. | authentication in the TLS session fails. | |||
1.3. Definitions | 1.3. Definitions | |||
The terms "recursive resolver", "authoritative server", and "classic | The terms "recursive resolver", "authoritative server", and "classic | |||
DNS" are defined in [DNS-TERM]. | DNS" are defined in [DNS-TERM]. | |||
"DNS with encryption" means transport of DNS over any of DoT, DoH, or | "DNS with encryption" means transport of DNS over any of DoT, DoH, or | |||
DoQ. A server that supports DNS with encryption supports transport | DoQ. A server that supports DNS with encryption supports transport | |||
over one or more of DoT, DoH, or DoQ. | over one or more of DoT, DoH, or DoQ. | |||
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 BCP | |||
14 [MUSTSHOULD1] [MUSTSHOULD2] when, and only when, they appear in | 14 [MUST-SHOULD-1] [MUST-SHOULD-2] when, and only when, they appear | |||
all capitals, as shown here. | in all capitals, as shown here. | |||
2. Discovery of Authoritative Server Encryption | 2. Discovery of Authoritative Server Encryption | |||
An authoritative server that supports DNS with encryption makes | An authoritative server that supports DNS with encryption makes | |||
itself discoverable by publishing one or more DNS SVCB records that | itself discoverable by publishing one or more DNS SVCB records that | |||
contain "alpn" parameter keys. SVCB records are defined in [SVCB], | contain "alpn" parameter keys. SVCB records are defined in [SVCB], | |||
and the DNS extension to those records is defined in [DNS-SVCB]. | and the DNS extension to those records is defined in [DNS-SVCB]. | |||
A recursive resolver discovers whether an authoritative server | A recursive resolver discovers whether an authoritative server | |||
supports DNS with encryption by looking for cached SVCB records for | supports DNS with encryption by looking for cached SVCB records for | |||
skipping to change at page 5, line 35 ¶ | skipping to change at page 5, line 42 ¶ | |||
those authoritative servers in the cache are negative responses, the | those authoritative servers in the cache are negative responses, the | |||
resolver MUST use classic (unencrypted) DNS instead of encryption. | resolver MUST use classic (unencrypted) DNS instead of encryption. | |||
Similarly, if none of the DNS SVCB records for the authoritative | Similarly, if none of the DNS SVCB records for the authoritative | |||
servers in the cache have supported "alpn" parameters, the resolver | servers in the cache have supported "alpn" parameters, the resolver | |||
MUST use classic (unencrypted) DNS instead of encryption. | MUST use classic (unencrypted) DNS instead of encryption. | |||
If there are any DNS SVCB records in the cache for the authoritative | If there are any DNS SVCB records in the cache for the authoritative | |||
servers for a zone with supported "alpn" parameters, the resolver | servers for a zone with supported "alpn" parameters, the resolver | |||
MUST try each indicated authoritative server using DNS with | MUST try each indicated authoritative server using DNS with | |||
encryption until it successfully sets up a connection. The resolver | encryption until it successfully sets up a connection. The resolver | |||
only attempts to use the encrypted transports that are in the | attempts to use the encrypted transports that are in the associated | |||
associated SVCB record for the authoritative server. (( Note that | SVCB record for the authoritative server. | |||
this completely prohibits "simple port 853 probing" even though that | ||||
is what some operators are currently doing. Does the WG want to be | ||||
this strict? )) | ||||
A resolver SHOULD keep a DNS with encryption session to a particular | A resolver SHOULD keep a DNS with encryption session to a particular | |||
server open if it expects to send additional queries to that server | server open if it expects to send additional queries to that server | |||
in a short period of time. [DNS-OVER-TCP] says "both clients and | in a short period of time. [DNS-OVER-TCP] says "both clients and | |||
servers SHOULD support connection reuse" for TCP connections, and | servers SHOULD support connection reuse" for TCP connections, and | |||
that advice could apply as well for DNS with encryption, especially | that advice could apply as well for DNS with encryption, especially | |||
as DNS with encryption has far greater overhead for re-establishing a | as DNS with encryption has far greater overhead for re-establishing a | |||
connection. If the server closes the DNS with encryption session, | connection. If the server closes the DNS with encryption session, | |||
the resolver can possibly re-establish a DNS with encryption session | the resolver can possibly re-establish a DNS with encryption session | |||
using encrypted session resumption. | using encrypted session resumption. Configuration for the maximum | |||
timeout, minimum timeout, and duration of encrypted sessions should | ||||
take into consideration the recommendations given in [TCP-TIMEOUT], | ||||
[EDNS-TCP], and (for DoH) [HTTP-1.1]. | ||||
For any DNS with encryption protocols, TLS version 1.3 [TLS-13] or | For any DNS with encryption protocols, TLS version 1.3 [TLS-13] or | |||
later MUST be used. | later MUST be used. | |||
A resolver following this protocol does not need to authenticate TLS | A resolver following this protocol does not need to authenticate TLS | |||
servers. Thus, when setting up a TLS connection, if the server's | servers. Thus, when setting up a TLS connection, if the server's | |||
authentication credentials do not match those expected by the | authentication credentials do not match those expected by the | |||
resolver, the resolver continues with the TLS connection. Privacy- | resolver, the resolver continues with the TLS connection. Privacy- | |||
oriented resolvers (defined in [PRIVACY-REC]) following this protocol | oriented resolvers (defined in [PRIVACY-REC]) following this protocol | |||
MUST NOT indicate that they are using encryption because this | MUST NOT indicate that they are using encryption because this | |||
protocol is susceptible to on-path attacks. | protocol is susceptible to on-path attacks. | |||
If the resolver gets a TLS failure (such as those listed in | ||||
Section 3.2, the resolver instead uses classic DNS on any of the | ||||
authoritative servers. | ||||
3.1. Resolver Process as Pseudocode | 3.1. Resolver Process as Pseudocode | |||
This section is meant as an informal clarification of the protocol, | This section is meant as an informal clarification of the protocol, | |||
and is not normative. The pseudocode here is designed to show the | and is not normative. The pseudocode here is designed to show the | |||
intent of the protocol, so it is not optimized for things like | intent of the protocol, so it is not optimized for things like | |||
intersection of sets and other shortcuts. | intersection of sets and other shortcuts. | |||
In this code, "signal_rrset(this_name)" means an "SVCB" query for the | In this code, signal_rrset(this_name) means an SVCB query for the | |||
"'_dns'" prefix of "this_name". The "Query over secure transport | '_dns' prefix of this_name. The Query over secure transport until | |||
until successful" section ignores differences in name server | successful section ignores differences in name server selection and | |||
selection and retry behaviour in different resolvers. | retry behaviour in different resolvers. | |||
# Inputs | # Inputs | |||
ns_names = List of NS Rdatas from the NS RRset for the queried name | ns_names = List of NS Rdatas from the NS RRset for the queried name | |||
can_do_secure = List of secure transports supported by resolver | can_do_secure = List of secure transports supported by resolver | |||
secure_names_and_transports = Empty list, filled in below | secure_names_and_transports = Empty list, filled in below | |||
# Fill secure_names_and_transports with (name, transport) tuples | # Fill secure_names_and_transports with (name, transport) tuples | |||
for this_name in ns_names: | for this_name in ns_names: | |||
if signal_rrset(this_name) is in the resolver cache: | if signal_rrset(this_name) is in the resolver cache: | |||
if signal_rrset(this_name) positively does not exist: | if signal_rrset(this_name) positively does not exist: | |||
skipping to change at page 6, line 52 ¶ | skipping to change at page 7, line 29 ¶ | |||
queue a query for signal_rrset(this_name) for later caching | queue a query for signal_rrset(this_name) for later caching | |||
# Query over secure transport until successful | # Query over secure transport until successful | |||
for (this_name, this_transport) tuple in secure_names_and_transports: | for (this_name, this_transport) tuple in secure_names_and_transports: | |||
query using this_transport on this_name | query using this_transport on this_name | |||
if successful: | if successful: | |||
finished | finished | |||
# Got here if no this_name/this_transport query was successful | # Got here if no this_name/this_transport query was successful | |||
# or if secure_names_and_transports was empty | # or if secure_names_and_transports was empty | |||
query using classic DNS on any/all ns_names; finished | query using classic DNS; finished | |||
3.2. Resolver Session Failures | 3.2. Resolver Session Failures | |||
The following are some of the reasons that a DNS with encryption | The following are some of the reasons that a DNS with encryption | |||
session might fail to be set up: | session might fail to be set up: | |||
o The resolver receives a TCP RST response | * The resolver receives a TCP RST response | |||
o The resolver does not receive replies to TCP or TLS setup (such as | * The resolver does not receive replies to TCP or TLS setup (such as | |||
getting the TCP SYN message, the first TLS message, or completing | getting the TCP SYN message, the first TLS message, or completing | |||
TLS handshakes) | TLS handshakes) | |||
o The TLS handshake gets a definitive failure | * The TLS handshake gets a definitive failure | |||
o The encrypted session fails for reasons other than for | * The encrypted session fails for reasons other than for | |||
authentication, such as incorrect algorithm choices or TLS record | authentication, such as incorrect algorithm choices or TLS record | |||
failures | failures | |||
4. Serving with Encryption | 4. Serving with Encryption | |||
An operator of an authoritative server following this protocol SHOULD | An operator of an authoritative server following this protocol SHOULD | |||
publish SVCB records as described in Section 2. If they cannot | publish SVCB records as described in Section 2. If they cannot | |||
publish such records, the security properties of their authoritative | publish such records, the security properties of their authoritative | |||
servers will not be found. If an operator wants to test serving | servers will not be found. If an operator wants to test serving | |||
using encryption, they can publish SVCB records with short TTLs and | using encryption, they can publish SVCB records with short TTLs and | |||
skipping to change at page 8, line 23 ¶ | skipping to change at page 9, line 5 ¶ | |||
The method described in this document explicitly allows a resolver to | The method described in this document explicitly allows a resolver to | |||
perform DNS communications over traditional unencrypted, | perform DNS communications over traditional unencrypted, | |||
unauthenticated DNS on port 53, if it cannot find an authoritative | unauthenticated DNS on port 53, if it cannot find an authoritative | |||
server that advertises that it supports encryption. The method | server that advertises that it supports encryption. The method | |||
described in this document explicitly allows a resolver using | described in this document explicitly allows a resolver using | |||
encryption to choose to allow unauthenticated encryption. In either | encryption to choose to allow unauthenticated encryption. In either | |||
of these cases, the resulting communication will be susceptible to | of these cases, the resulting communication will be susceptible to | |||
obvious and well-understood attacks from an attacker in the path of | obvious and well-understood attacks from an attacker in the path of | |||
the communications. | the communications. | |||
[TLS-1.3] specifically warns against anonymous connections because | ||||
such connections only provide protection against passive | ||||
eavesdropping while failing to protect against active on-path | ||||
attacks. Section C.5 of [TLS-1.3] explicitly states applications | ||||
MUST NOT use TLS with unverifiable server authentication unless there | ||||
is explicit configuration or a specific application profile to do so. | ||||
This document is such an application profile. | ||||
Encrypting the traffic between resolvers and authoritative servers | ||||
does not solve all the privacy issues for resolution. See | ||||
[PRIVACY-REC] and [PRIVACY-CONS] for in-depth discussion of the | ||||
associated privacy issues. | ||||
7. Acknowledgements | 7. Acknowledgements | |||
Puneet Sood contributed many ideas to early drafts of this document. | Puneet Sood contributed many ideas to early drafts of this document. | |||
The DPRIVE Working Group has contributed many ideas that keep | The DPRIVE Working Group has contributed many ideas that keep | |||
shifting the focus and content of this document. | shifting the focus and content of this document. | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[DNS-SVCB] | [DNS-SVCB] Schwartz, B., "Service Binding Mapping for DNS Servers", | |||
Schwartz, B., "Service Binding Mapping for DNS Servers", | Work in Progress, Internet-Draft, draft-schwartz-svcb-dns- | |||
draft-schwartz-svcb-dns-03 (work in progress), April 2021. | 04, 26 July 2021, <https://www.ietf.org/archive/id/draft- | |||
schwartz-svcb-dns-04.txt>. | ||||
[DNS-TERM] | [DNS-TERM] Hoffman, P. and K. Fujiwara, "DNS Terminology", Work in | |||
Hoffman, P. and K. Fujiwara, "DNS Terminology", draft- | Progress, Internet-Draft, draft-ietf-dnsop-rfc8499bis-03, | |||
ietf-dnsop-rfc8499bis-02 (work in progress), June 2021. | 28 September 2021, <https://www.ietf.org/archive/id/draft- | |||
ietf-dnsop-rfc8499bis-03.txt>. | ||||
[FULL-AUTH] | [FULL-AUTH] | |||
Pauly, T., Rescorla, E., Schinazi, D., and C. A. Wood, | Pauly, T., Rescorla, E., Schinazi, D., and C. A. Wood, | |||
"Signaling Authoritative DNS Encryption", draft-rescorla- | "Signaling Authoritative DNS Encryption", Work in | |||
dprive-adox-latest-00 (work in progress), February 2021. | Progress, Internet-Draft, draft-rescorla-dprive-adox- | |||
latest-00, 26 February 2021, | ||||
<https://www.ietf.org/archive/id/draft-rescorla-dprive- | ||||
adox-latest-00.txt>. | ||||
[MUSTSHOULD1] | [MUST-SHOULD-1] | |||
Bradner, S., "Key words for use in RFCs to Indicate | 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>. | |||
[MUSTSHOULD2] | [MUST-SHOULD-2] | |||
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | 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>. | |||
[OPPORTUN] | [OPPORTUN] Dukhovni, V., "Opportunistic Security: Some Protection | |||
Dukhovni, V., "Opportunistic Security: Some Protection | ||||
Most of the Time", RFC 7435, DOI 10.17487/RFC7435, | Most of the Time", RFC 7435, DOI 10.17487/RFC7435, | |||
December 2014, <https://www.rfc-editor.org/info/rfc7435>. | December 2014, <https://www.rfc-editor.org/info/rfc7435>. | |||
[SVCB] Schwartz, B., Bishop, M., and E. Nygren, "Service binding | [SVCB] Schwartz, B., Bishop, M., and E. Nygren, "Service binding | |||
and parameter specification via the DNS (DNS SVCB and | and parameter specification via the DNS (DNS SVCB and | |||
HTTPS RRs)", draft-ietf-dnsop-svcb-https-06 (work in | HTTPS RRs)", Work in Progress, Internet-Draft, draft-ietf- | |||
progress), June 2021. | dnsop-svcb-https-07, 5 August 2021, | |||
<https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb- | ||||
https-07.txt>. | ||||
[TLS-13] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [TLS-13] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
8.2. Informative References | 8.2. Informative References | |||
[DNS-OVER-HTTPS] | ||||
Hoffman, P. and P. McManus, "DNS Queries over HTTPS | ||||
(DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | ||||
<https://www.rfc-editor.org/info/rfc8484>. | ||||
[DNS-OVER-QUIC] | ||||
Huitema, C., Dickinson, S., and A. Mankin, "Specification | ||||
of DNS over Dedicated QUIC Connections", Work in Progress, | ||||
Internet-Draft, draft-ietf-dprive-dnsoquic-04, 3 September | ||||
2021, <https://www.ietf.org/archive/id/draft-ietf-dprive- | ||||
dnsoquic-04.txt>. | ||||
[DNS-OVER-TCP] | [DNS-OVER-TCP] | |||
Dickinson, J., Dickinson, S., Bellis, R., Mankin, A., and | Dickinson, J., Dickinson, S., Bellis, R., Mankin, A., and | |||
D. Wessels, "DNS Transport over TCP - Implementation | D. Wessels, "DNS Transport over TCP - Implementation | |||
Requirements", RFC 7766, DOI 10.17487/RFC7766, March 2016, | Requirements", RFC 7766, DOI 10.17487/RFC7766, March 2016, | |||
<https://www.rfc-editor.org/info/rfc7766>. | <https://www.rfc-editor.org/info/rfc7766>. | |||
[DNSOHTTPS] | [DNS-OVER-TLS] | |||
Hoffman, P. and P. McManus, "DNS Queries over HTTPS | Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., | |||
(DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | ||||
<https://www.rfc-editor.org/info/rfc8484>. | ||||
[DNSOQUIC] | ||||
Huitema, C., Mankin, A., and S. Dickinson, "Specification | ||||
of DNS over Dedicated QUIC Connections", draft-ietf- | ||||
dprive-dnsoquic-02 (work in progress), February 2021. | ||||
[DNSOTLS] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., | ||||
and P. Hoffman, "Specification for DNS over Transport | and P. Hoffman, "Specification for DNS over Transport | |||
Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May | Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May | |||
2016, <https://www.rfc-editor.org/info/rfc7858>. | 2016, <https://www.rfc-editor.org/info/rfc7858>. | |||
[EDNS-TCP] Wouters, P., Abley, J., Dickinson, S., and R. Bellis, "The | ||||
edns-tcp-keepalive EDNS0 Option", RFC 7828, | ||||
DOI 10.17487/RFC7828, April 2016, | ||||
<https://www.rfc-editor.org/info/rfc7828>. | ||||
[HTTP-1.1] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | ||||
Protocol (HTTP/1.1): Message Syntax and Routing", | ||||
RFC 7230, DOI 10.17487/RFC7230, June 2014, | ||||
<https://www.rfc-editor.org/info/rfc7230>. | ||||
[PRIVACY-CONS] | ||||
Wicinski, T., Ed., "DNS Privacy Considerations", RFC 9076, | ||||
DOI 10.17487/RFC9076, July 2021, | ||||
<https://www.rfc-editor.org/info/rfc9076>. | ||||
[PRIVACY-REC] | [PRIVACY-REC] | |||
Dickinson, S., Overeinder, B., van Rijswijk-Deij, R., and | Dickinson, S., Overeinder, B., van Rijswijk-Deij, R., and | |||
A. Mankin, "Recommendations for DNS Privacy Service | A. Mankin, "Recommendations for DNS Privacy Service | |||
Operators", BCP 232, RFC 8932, DOI 10.17487/RFC8932, | Operators", BCP 232, RFC 8932, DOI 10.17487/RFC8932, | |||
October 2020, <https://www.rfc-editor.org/info/rfc8932>. | October 2020, <https://www.rfc-editor.org/info/rfc8932>. | |||
[RSO_STATEMENT] | [RSO_STATEMENT] | |||
"Statement on DNS Encryption", 2021, <https://root- | "Statement on DNS Encryption", 2021, <https://root- | |||
servers.org/media/news/Statement_on_DNS_Encryption.pdf>. | servers.org/media/news/Statement_on_DNS_Encryption.pdf>. | |||
[TCP-TIMEOUT] | ||||
Kristoff, J. and D. Wessels, "DNS Transport over TCP - | ||||
Operational Requirements", Work in Progress, Internet- | ||||
Draft, draft-ietf-dnsop-dns-tcp-requirements-12, 18 August | ||||
2021, <https://www.ietf.org/archive/id/draft-ietf-dnsop- | ||||
dns-tcp-requirements-12.txt>. | ||||
[TLS-1.3] Rescorla, E., "The Transport Layer Security (TLS) Protocol | ||||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8446>. | ||||
Authors' Addresses | Authors' Addresses | |||
Paul Hoffman | Paul Hoffman | |||
ICANN | ICANN | |||
Email: paul.hoffman@icann.org | Email: paul.hoffman@icann.org | |||
Peter van Dijk | Peter van Dijk | |||
PowerDNS | PowerDNS | |||
End of changes. 39 change blocks. | ||||
74 lines changed or deleted | 128 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |