rfc9076.original | rfc9076.txt | |||
---|---|---|---|---|
dprive T. Wicinski, Ed. | Internet Engineering Task Force (IETF) T. Wicinski, Ed. | |||
Internet-Draft March 9, 2021 | Request for Comments: 9076 July 2021 | |||
Obsoletes: 7626 (if approved) | Obsoletes: 7626 | |||
Intended status: Informational | Category: Informational | |||
Expires: September 10, 2021 | ISSN: 2070-1721 | |||
DNS Privacy Considerations | DNS Privacy Considerations | |||
draft-ietf-dprive-rfc7626-bis-09 | ||||
Abstract | Abstract | |||
This document describes the privacy issues associated with the use of | This document describes the privacy issues associated with the use of | |||
the DNS by Internet users. It provides general observations about | the DNS by Internet users. It provides general observations about | |||
typical current privacy practices. It is intended to be an analysis | typical current privacy practices. It is intended to be an analysis | |||
of the present situation and does not prescribe solutions. This | of the present situation and does not prescribe solutions. This | |||
document obsoletes RFC 7626. | document obsoletes RFC 7626. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
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). Not all documents | |||
approved by the IESG are candidates for any level of Internet | ||||
Standard; see Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on September 10, 2021. | 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/rfc9076. | ||||
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/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are 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. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Scope | |||
3. Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Risks | |||
4. Risks in the DNS Data . . . . . . . . . . . . . . . . . . . . 6 | 4. Risks in the DNS Data | |||
4.1. The Public Nature of DNS Data . . . . . . . . . . . . . . 6 | 4.1. The Public Nature of DNS Data | |||
4.2. Data in the DNS Request . . . . . . . . . . . . . . . . . 6 | 4.2. Data in the DNS Request | |||
4.2.1. Data in the DNS Payload . . . . . . . . . . . . . . . 8 | 4.2.1. Data in the DNS Payload | |||
4.3. Cache Snooping . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Cache Snooping | |||
5. Risks On the Wire . . . . . . . . . . . . . . . . . . . . . . 8 | 5. Risks on the Wire | |||
5.1. Unencrypted Transports . . . . . . . . . . . . . . . . . 8 | 5.1. Unencrypted Transports | |||
5.2. Encrypted Transports . . . . . . . . . . . . . . . . . . 10 | 5.2. Encrypted Transports | |||
6. Risks in the Servers . . . . . . . . . . . . . . . . . . . . 11 | 6. Risks in the Servers | |||
6.1. In the Recursive Resolvers . . . . . . . . . . . . . . . 12 | 6.1. In the Recursive Resolvers | |||
6.1.1. Resolver Selection . . . . . . . . . . . . . . . . . 12 | 6.1.1. Resolver Selection | |||
6.1.2. Active Attacks on Resolver Configuration . . . . . . 14 | 6.1.2. Active Attacks on Resolver Configuration | |||
6.1.3. Blocking of DNS Resolution Services . . . . . . . . . 15 | 6.1.3. Blocking of DNS Resolution Services | |||
6.1.4. Encrypted Transports and Recursive Resolvers . . . . 15 | 6.1.4. Encrypted Transports and Recursive Resolvers | |||
6.2. In the Authoritative Name Servers . . . . . . . . . . . . 16 | 6.2. In the Authoritative Name Servers | |||
7. Other risks . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 7. Other Risks | |||
7.1. Re-identification and Other Inferences . . . . . . . . . 17 | 7.1. Re-identification and Other Inferences | |||
7.2. More Information . . . . . . . . . . . . . . . . . . . . 18 | 7.2. More Information | |||
8. Actual "Attacks" . . . . . . . . . . . . . . . . . . . . . . 18 | 8. Actual "Attacks" | |||
9. Legalities . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 9. Legalities | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 10. Security Considerations | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 11. IANA Considerations | |||
12. Contributions . . . . . . . . . . . . . . . . . . . . . . . . 19 | 12. References | |||
13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 | 12.1. Normative References | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 12.2. Informative References | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . 20 | Appendix A. Updates since RFC 7626 | |||
14.2. Informative References . . . . . . . . . . . . . . . . . 20 | Acknowledgments | |||
14.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | Contributions | |||
Appendix A. Updates since RFC7626 . . . . . . . . . . . . . . . 27 | Author's Address | |||
Appendix B. Changelog . . . . . . . . . . . . . . . . . . . . . 27 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 30 | ||||
1. Introduction | 1. Introduction | |||
This document is an analysis of the DNS privacy issues, in the spirit | This document is an analysis of the DNS privacy issues, in the spirit | |||
of Section 8 of [RFC6973]. | of Section 8 of [RFC6973]. | |||
The Domain Name System (DNS) is specified in [RFC1034], [RFC1035], | The Domain Name System (DNS) is specified in [RFC1034], [RFC1035], | |||
and many later RFCs, which have never been consolidated. It is one | and many later RFCs, which have never been consolidated. It is one | |||
of the most important infrastructure components of the Internet and | of the most important infrastructure components of the Internet and | |||
often ignored or misunderstood by Internet users (and even by many | is often ignored or misunderstood by Internet users (and even by many | |||
professionals). Almost every activity on the Internet starts with a | professionals). Almost every activity on the Internet starts with a | |||
DNS query (and often several). Its use has many privacy implications | DNS query (and often several). Its use has many privacy | |||
and this document is an attempt at a comprehensive and accurate list. | implications, and this document is an attempt at a comprehensive and | |||
accurate list. | ||||
Let us begin with a simplified reminder of how the DNS works (See | Let us begin with a simplified reminder of how the DNS works (see | |||
also [RFC8499]). A client, the stub resolver, issues a DNS query to | also [RFC8499]). A client, the stub resolver, issues a DNS query to | |||
a server, called the recursive resolver (also called caching resolver | a server called the recursive resolver (also called caching resolver, | |||
or full resolver or recursive name server). Let's use the query | full resolver, or recursive name server). Let's use the query "What | |||
"What are the AAAA records for www.example.com?" as an example. AAAA | are the AAAA records for www.example.com?" as an example. AAAA is | |||
is the QTYPE (Query Type), and www.example.com is the QNAME (Query | the QTYPE (Query Type), and www.example.com is the QNAME (Query | |||
Name). (The description that follows assumes a cold cache, for | Name). (The description that follows assumes a cold cache, for | |||
instance, because the server just started.) The recursive resolver | instance, because the server just started.) The recursive resolver | |||
will first query the root name servers. In most cases, the root name | will first query the root name servers. In most cases, the root name | |||
servers will send a referral. In this example, the referral will be | servers will send a referral. In this example, the referral will be | |||
to the .com name servers. The resolver repeats the query to one of | to the .com name servers. The resolver repeats the query to one of | |||
the .com name servers. The .com name servers, in turn, will refer to | the .com name servers. The .com name servers, in turn, will refer to | |||
the example.com name servers. The example.com name server will then | the example.com name servers. The example.com name servers will then | |||
return the answer. The root name servers, the name servers of .com, | return the answers. The root name servers, the name servers of .com, | |||
and the name servers of example.com are called authoritative name | and the name servers of example.com are called authoritative name | |||
servers. It is important, when analyzing the privacy issues, to | servers. It is important, when analyzing the privacy issues, to | |||
remember that the question asked to all these name servers is always | remember that the question asked to all these name servers is always | |||
the original question, not a derived question. The question sent to | the original question, not a derived question. The question sent to | |||
the root name servers is "What are the AAAA records for | the root name servers is "What are the AAAA records for | |||
www.example.com?", not "What are the name servers of .com?". By | www.example.com?", not "What are the name servers of .com?". By | |||
repeating the full question, instead of just the relevant part of the | repeating the full question, instead of just the relevant part of the | |||
question to the next in line, the DNS provides more information than | question to the next in line, the DNS provides more information than | |||
necessary to the name server. In this simplified description, | necessary to the name server. In this simplified description, | |||
recursive resolvers do not implement QNAME minimization as described | recursive resolvers do not implement QNAME minimization as described | |||
in [RFC7816], which will only send the relevant part of the question | in [RFC7816], which will only send the relevant part of the question | |||
to the upstream name server. | to the upstream name server. | |||
DNS relies heavily on caching, so the algorithm described above is | DNS relies heavily on caching, so the algorithm described above is | |||
actually a bit more complicated, and not all questions are sent to | actually a bit more complicated, and not all questions are sent to | |||
the authoritative name servers. If a few seconds later the stub | the authoritative name servers. If the stub resolver asks the | |||
resolver asks the recursive resolver, "What are the SRV records of | recursive resolver a few seconds later, "What are the SRV records of | |||
_xmpp-server._tcp.example.com?", the recursive resolver will remember | _xmpp-server._tcp.example.com?", the recursive resolver will remember | |||
that it knows the name servers of example.com and will just query | that it knows the name servers of example.com and will just query | |||
them, bypassing the root and .com. Because there is typically no | them, bypassing the root and .com. Because there is typically no | |||
caching in the stub resolver, the recursive resolver, unlike the | caching in the stub resolver, the recursive resolver, unlike the | |||
authoritative servers, sees all the DNS traffic. (Applications, like | authoritative servers, sees all the DNS traffic. (Applications, like | |||
web browsers, may have some form of caching that does not follow DNS | web browsers, may have some form of caching that does not follow DNS | |||
rules, for instance, because it may ignore the TTL. So, the | rules, for instance, because it may ignore the TTL. So, the | |||
recursive resolver does not see all the name resolution activity.) | recursive resolver does not see all the name resolution activity.) | |||
It should be noted that DNS recursive resolvers sometimes forward | It should be noted that DNS recursive resolvers sometimes forward | |||
requests to other recursive resolvers, typically bigger machines, | requests to other recursive resolvers, typically bigger machines, | |||
with a larger and more shared cache (and the query hierarchy can be | with a larger and more shared cache (and the query hierarchy can be | |||
even deeper, with more than two levels of recursive resolvers). From | even deeper, with more than two levels of recursive resolvers). From | |||
the point of view of privacy, these forwarders are like resolvers, | the point of view of privacy, these forwarders are like resolvers | |||
except that they do not see all of the requests being made (due to | except that they do not see all of the requests being made (due to | |||
caching in the first resolver). | caching in the first resolver). | |||
At the time of writing, almost all this DNS traffic is currently sent | At the time of writing, almost all this DNS traffic is currently sent | |||
unencrypted. However, there is increasing deployment of DNS-over-TLS | unencrypted. However, there is increasing deployment of DNS over TLS | |||
(DoT) [RFC7858] and DNS-over-HTTPS (DoH) [RFC8484], particularly in | (DoT) [RFC7858] and DNS over HTTPS (DoH) [RFC8484], particularly in | |||
mobile devices, browsers, and by providers of anycast recursive DNS | mobile devices, browsers, and by providers of anycast recursive DNS | |||
resolution services. There are a few cases where there is some | resolution services. There are a few cases where there is some | |||
alternative channel encryption, for instance, in an IPsec VPN tunnel, | alternative channel encryption, for instance, in an IPsec VPN tunnel, | |||
at least between the stub resolver and the resolver. Some recent | at least between the stub resolver and the resolver. Some recent | |||
analysis on service quality of encrypted DNS traffic can be found in | analysis on the service quality of encrypted DNS traffic can be found | |||
[dns-over-encryption]. | in [dns-over-encryption]. | |||
Today, almost all DNS queries are sent over UDP [thomas-ditl-tcp]. | Today, almost all DNS queries are sent over UDP [thomas-ditl-tcp]. | |||
This has practical consequences when considering encryption of the | This has practical consequences when considering encryption of the | |||
traffic as a possible privacy technique. Some encryption solutions | traffic as a possible privacy technique. Some encryption solutions | |||
are only designed for TCP, not UDP, although new solutions are still | are only designed for TCP, not UDP, although new solutions are still | |||
emerging [I-D.ietf-quic-transport] [I-D.ietf-dprive-dnsoquic]. | emerging [RFC9000] [DPRIVE-DNSOQUIC]. | |||
Another important point to keep in mind when analyzing the privacy | Another important point to keep in mind when analyzing the privacy | |||
issues of DNS is the fact that DNS requests received by a server are | issues of DNS is the fact that DNS requests received by a server are | |||
triggered by different reasons. Let's assume an eavesdropper wants | triggered for different reasons. Let's assume an eavesdropper wants | |||
to know which web page is viewed by a user. For a typical web page, | to know which web page is viewed by a user. For a typical web page, | |||
there are three sorts of DNS requests being issued: | there are three sorts of DNS requests being issued: | |||
o Primary request: this is the domain name in the URL that the user | Primary request: | |||
typed, selected from a bookmark, or chose by clicking on an | This is the domain name in the URL that the user typed, selected | |||
hyperlink. Presumably, this is what is of interest for the | from a bookmark, or chose by clicking on a hyperlink. Presumably, | |||
eavesdropper. | this is what is of interest for the eavesdropper. | |||
o Secondary requests: these are the additional requests performed by | Secondary requests: | |||
the user agent (here, the web browser) without any direct | These are the additional requests performed by the user agent | |||
involvement or knowledge of the user. For the Web, they are | (here, the web browser) without any direct involvement or | |||
triggered by embedded content, Cascading Style Sheets (CSS), | knowledge of the user. For the Web, they are triggered by | |||
JavaScript code, embedded images, etc. In some cases, there can | embedded content, Cascading Style Sheets (CSS), JavaScript code, | |||
be dozens of domain names in different contexts on a single web | embedded images, etc. In some cases, there can be dozens of | |||
page. | domain names in different contexts on a single web page. | |||
o Tertiary requests: these are the additional requests performed by | Tertiary requests: | |||
the DNS system itself. For instance, if the answer to a query is | These are the additional requests performed by the DNS service | |||
a referral to a set of name servers, and the glue records are not | itself. For instance, if the answer to a query is a referral to a | |||
returned, the resolver will have to do additional requests to turn | set of name servers and the glue records are not returned, the | |||
the name servers' names into IP addresses. Similarly, even if | resolver will have to send additional requests to turn the name | |||
glue records are returned, a careful recursive server will do | servers' names into IP addresses. Similarly, even if glue records | |||
tertiary requests to verify the IP addresses of those records. | are returned, a careful recursive server will send tertiary | |||
requests to verify the IP addresses of those records. | ||||
It can also be noted that, in the case of a typical web browser, more | It can also be noted that, in the case of a typical web browser, more | |||
DNS requests than strictly necessary are sent, for instance, to | DNS requests than strictly necessary are sent, for instance, to | |||
prefetch resources that the user may query later or when | prefetch resources that the user may query later or when | |||
autocompleting the URL in the address bar. Both are a significant | autocompleting the URL in the address bar. Both are a significant | |||
privacy concern since they may leak information even about non- | privacy concern since they may leak information even about non- | |||
explicit actions. For instance, just reading a local HTML page, even | explicit actions. For instance, just reading a local HTML page, even | |||
without selecting the hyperlinks, may trigger DNS requests. | without selecting the hyperlinks, may trigger DNS requests. | |||
For privacy-related terms, the terminology is from [RFC6973]. | Privacy-related terminology is from [RFC6973]. This document | |||
obsoletes [RFC7626]. | ||||
2. Scope | 2. Scope | |||
This document focuses mostly on the study of privacy risks for the | This document focuses mostly on the study of privacy risks for the | |||
end user (the one performing DNS requests). The risks of pervasive | end user (the one performing DNS requests). The risks of pervasive | |||
surveillance [RFC7258] are considered as well as risks coming from a | surveillance [RFC7258] are considered as well as risks coming from a | |||
more focused surveillance. In this document, the term 'end user' is | more focused surveillance. In this document, the term "end user" is | |||
used as defined in [RFC8890]. | used as defined in [RFC8890]. | |||
This document does not attempt a comparison of specific privacy | This document does not attempt a comparison of specific privacy | |||
protections provided by individual networks or organizations, it | protections provided by individual networks or organizations; it | |||
makes only general observations about typical current practices. | makes only general observations about typical current practices. | |||
Privacy risks for the holder of a zone (the risk that someone gets | Privacy risks for the holder of a zone (the risk that someone gets | |||
the data) are discussed in [RFC5936] and [RFC5155]. | the data) are discussed in [RFC5155] and [RFC5936]. | |||
Privacy risks for recursive operators (including access providers and | Privacy risks for recursive operators (including access providers and | |||
operators in enterprise networks) such as leakage of private | operators in enterprise networks) such as leakage of private | |||
namespaces or blocklists are out of scope for this document. | namespaces or blocklists are out of scope for this document. | |||
Non-privacy risks (e.g security related considerations such as cache | Non-privacy risks (e.g., security-related considerations such as | |||
poisoning) are also out of scope. | cache poisoning) are also out of scope. | |||
The privacy risks associated with the use of other protocols that | The privacy risks associated with the use of other protocols that | |||
make use of DNS information are not considered here. | make use of DNS information are not considered here. | |||
3. Risks | 3. Risks | |||
The following four sections outline the privacy considerations | The following four sections outline the privacy considerations | |||
associated with different aspects of the DNS for the end user. When | associated with different aspects of the DNS for the end user. When | |||
reading these sections it needs to be kept in mind that many of the | reading these sections, it needs to be kept in mind that many of the | |||
considerations (for example, recursive resolver and transport | considerations (for example, recursive resolver and transport | |||
protocol) can be specific to the network context that a device is | protocol) can be specific to the network context that a device is | |||
using at a given point in time. A user may have many devices and | using at a given point in time. A user may have many devices, and | |||
each device might utilize many different networks (e.g. home, work, | each device might utilize many different networks (e.g., home, work, | |||
public or cellular) over a period of time or even concurrently. An | public, or cellular) over a period of time or even concurrently. An | |||
exhaustive analysis of the privacy considerations for an individual | exhaustive analysis of the privacy considerations for an individual | |||
user would need to take into account the set of devices used and the | user would need to take into account the set of devices used and the | |||
multiple dynamic contexts of each device. This document does not | multiple dynamic contexts of each device. This document does not | |||
attempt such a complex analysis, but instead it presents an overview | attempt such a complex analysis; instead, it presents an overview of | |||
of the various considerations that could form the basis of such an | the various considerations that could form the basis of such an | |||
analysis. | analysis. | |||
4. Risks in the DNS Data | 4. Risks in the DNS Data | |||
4.1. The Public Nature of DNS Data | 4.1. The Public Nature of DNS Data | |||
It has been stated that "the data in the DNS is public". This | It has been stated that "the data in the DNS is public". This | |||
sentence makes sense for an Internet-wide lookup system, and there | sentence makes sense for an Internet-wide lookup system, and there | |||
are multiple facets to the data and metadata involved that deserve a | are multiple facets to the data and metadata involved that deserve a | |||
more detailed look. First, access control lists (ACLs) and private | more detailed look. First, access control lists (ACLs) and private | |||
namespaces notwithstanding, the DNS operates under the assumption | namespaces notwithstanding, the DNS operates under the assumption | |||
that public-facing authoritative name servers will respond to "usual" | that public-facing authoritative name servers will respond to "usual" | |||
DNS queries for any zone they are authoritative for without further | DNS queries for any zone they are authoritative for, without further | |||
authentication or authorization of the client (resolver). Due to the | authentication or authorization of the client (resolver). Due to the | |||
lack of search capabilities, only a given QNAME will reveal the | lack of search capabilities, only a given QNAME will reveal the | |||
resource records associated with that name (or that name's non- | resource records associated with that name (or that name's | |||
existence). In other words: one needs to know what to ask for, in | nonexistence). In other words: one needs to know what to ask for in | |||
order to receive a response. There are many ways in which supposedly | order to receive a response. There are many ways in which supposedly | |||
"private" resources currently leak. A few examples are DNSSEC NSEC | "private" resources currently leak. A few examples are DNSSEC NSEC | |||
zone walking[RFC4470]; passive-DNS services[passive-dns]; etc. The | zone walking [RFC4470], passive DNS services [passive-dns], etc. The | |||
zone transfer QTYPE [RFC5936] is often blocked or restricted to | zone transfer QTYPE [RFC5936] is often blocked or restricted to | |||
authenticated/authorized access to enforce this difference (and maybe | authenticated/authorized access to enforce this difference (and maybe | |||
for other reasons). | for other reasons). | |||
Another difference between the DNS data and a particular DNS | Another difference between the DNS data and a particular DNS | |||
transaction (i.e., a DNS name lookup). DNS data and the results of a | transaction (i.e., a DNS name lookup): DNS data and the results of a | |||
DNS query are public, within the boundaries described above, and may | DNS query are public, within the boundaries described above, and may | |||
not have any confidentiality requirements. However, the same is not | not have any confidentiality requirements. However, the same is not | |||
true of a single transaction or a sequence of transactions; those | true of a single transaction or a sequence of transactions; those | |||
transactions are not / should not be public. A single transaction | transactions are not / should not be public. A single transaction | |||
reveals both the originator of the query and the query contents which | reveals both the originator of the query and the query contents; this | |||
potentially leaks sensitive information about a specific user. A | potentially leaks sensitive information about a specific user. A | |||
typical example from outside the DNS world is: the web site of | typical example from outside the DNS world is that the website of | |||
Alcoholics Anonymous is public; the fact that you visit it should not | Alcoholics Anonymous is public but the fact that you visit it should | |||
be. Furthermore, the ability to link queries reveals information | not be. Furthermore, the ability to link queries reveals information | |||
about individual use patterns. | about individual use patterns. | |||
4.2. Data in the DNS Request | 4.2. Data in the DNS Request | |||
The DNS request includes many fields, but two of them seem | The DNS request includes many fields, but two of them seem | |||
particularly relevant for the privacy issues: the QNAME and the | particularly relevant for the privacy issues: the QNAME and the | |||
source IP address. "source IP address" is used in a loose sense of | source IP address. "Source IP address" is used in a loose sense of | |||
"source IP address + maybe source port number", because the port | "source IP address + maybe source port number", because the port | |||
number is also in the request and can be used to differentiate | number is also in the request and can be used to differentiate | |||
between several users sharing an IP address (behind a Carrier-Grade | between several users sharing an IP address (behind a Carrier-Grade | |||
NAT (CGN), for instance [RFC6269]). | NAT (CGN), for instance [RFC6269]). | |||
The QNAME is the full name sent by the user. It gives information | The QNAME is the full name sent by the user. It gives information | |||
about what the user does ("What are the MX records of example.net?" | about what the user does ("What are the MX records of example.net?" | |||
means he probably wants to send email to someone at example.net, | means they probably want to send email to someone at example.net, | |||
which may be a domain used by only a few persons and is therefore | which may be a domain used by only a few persons and is therefore | |||
very revealing about communication relationships). Some QNAMEs are | very revealing about communication relationships). Some QNAMEs are | |||
more sensitive than others. For instance, querying the A record of a | more sensitive than others. For instance, querying the A record of a | |||
well-known web statistics domain reveals very little (everybody | well-known web statistics domain reveals very little (everybody | |||
visits web sites that use this analytics service), but querying the A | visits websites that use this analytics service), but querying the A | |||
record of www.verybad.example where verybad.example is the domain of | record of www.verybad.example where verybad.example is the domain of | |||
an organization that some people find offensive or objectionable may | an organization that some people find offensive or objectionable may | |||
create more problems for the user. Also, sometimes, the QNAME embeds | create more problems for the user. Also, sometimes, the QNAME embeds | |||
the software one uses, which could be a privacy issue. For instance, | the software one uses, which could be a privacy issue (for instance, | |||
_ldap._tcp.Default-First-Site-Name._sites.gc._msdcs.example.org. | _ldap._tcp.Default-First-Site-Name._sites.gc._msdcs.example.org. | |||
There are also some BitTorrent clients that query an SRV record for | There are also some BitTorrent clients that query an SRV record for | |||
_bittorrent-tracker._tcp.domain.example. | _bittorrent-tracker._tcp.domain.example. | |||
Another important thing about the privacy of the QNAME is the future | Another important thing about the privacy of the QNAME is future | |||
usages. Today, the lack of privacy is an obstacle to putting | usages. Today, the lack of privacy is an obstacle to putting | |||
potentially sensitive or personally identifiable data in the DNS. At | potentially sensitive or personally identifiable data in the DNS. At | |||
the moment, your DNS traffic might reveal that you are doing email | the moment, your DNS traffic might reveal that you are exchanging | |||
but not with whom. If your Mail User Agent (MUA) starts looking up | emails but not with whom. If your Mail User Agent (MUA) starts | |||
Pretty Good Privacy (PGP) keys in the DNS [RFC7929], then privacy | looking up Pretty Good Privacy (PGP) keys in the DNS [RFC7929], then | |||
becomes a lot more important. And email is just an example; there | privacy becomes a lot more important. And email is just an example; | |||
would be other really interesting uses for a more privacy-friendly | there would be other really interesting uses for a more privacy- | |||
DNS. | friendly DNS. | |||
For the communication between the stub resolver and the recursive | For the communication between the stub resolver and the recursive | |||
resolver, the source IP address is the address of the user's machine. | resolver, the source IP address is the address of the user's machine. | |||
Therefore, all the issues and warnings about collection of IP | Therefore, all the issues and warnings about collection of IP | |||
addresses apply here. For the communication between the recursive | addresses apply here. For the communication between the recursive | |||
resolver and the authoritative name servers, the source IP address | resolver and the authoritative name servers, the source IP address | |||
has a different meaning; it does not have the same status as the | has a different meaning; it does not have the same status as the | |||
source address in an HTTP connection. It can be typically the IP | source address in an HTTP connection. It is typically the IP address | |||
address of the recursive resolver that, in a way, "hides" the real | of the recursive resolver that, in a way, "hides" the real user. | |||
user. However, hiding does not always work. Sometimes EDNS(0) | However, hiding does not always work. The edns-client-subnet (ECS) | |||
Client subnet [RFC7871] is used (see one privacy analysis in | EDNS0 option [RFC7871] is sometimes used (see one privacy analysis in | |||
[denis-edns-client-subnet]). Sometimes the end user has a personal | [denis-edns-client-subnet]). Sometimes the end user has a personal | |||
recursive resolver on their machine. In both cases, the IP address | recursive resolver on their machine. In both cases, the IP address | |||
originating queries to the authoritative server is as sensitive as it | originating queries to the authoritative server is as sensitive as it | |||
is for HTTP [sidn-entrada]. | is for HTTP [sidn-entrada]. | |||
A note about IP addresses: there is currently no IETF document that | A note about IP addresses: there is currently no IETF document that | |||
describes in detail all the privacy issues around IP addressing in | describes in detail all the privacy issues around IP addressing in | |||
general, although [RFC7721] does discuss privacy considerations for | general, although [RFC7721] does discuss privacy considerations for | |||
IPv6 address generation mechanisms. In the meantime, the discussion | IPv6 address generation mechanisms. In the meantime, the discussion | |||
here is intended to include both IPv4 and IPv6 source addresses. For | here is intended to include both IPv4 and IPv6 source addresses. For | |||
a number of reasons, their assignment and utilization characteristics | a number of reasons, their assignment and utilization characteristics | |||
are different, which may have implications for details of information | are different, which may have implications for details of information | |||
leakage associated with the collection of source addresses. (For | leakage associated with the collection of source addresses. (For | |||
example, a specific IPv6 source address seen on the public Internet | example, a specific IPv6 source address seen on the public Internet | |||
is less likely than an IPv4 address to originate behind an address | is less likely than an IPv4 address to originate behind an address- | |||
sharing scheme.) However, for both IPv4 and IPv6 addresses, it is | sharing scheme.) However, for both IPv4 and IPv6 addresses, it is | |||
important to note that source addresses are propagated with queries | important to note that source addresses are propagated with queries | |||
via EDNS(0) Client subnet and comprise metadata about the host, user, | via the ECS option and comprise metadata about the host, user, or | |||
or application that originated them. | application that originated them. | |||
4.2.1. Data in the DNS Payload | 4.2.1. Data in the DNS Payload | |||
At the time of writing there are no standardized client identifiers | At the time of writing, there are no standardized client identifiers | |||
contained in the DNS payload itself (ECS [RFC7871] while widely used | contained in the DNS payload itself (ECS, as described in [RFC7871], | |||
is only of Category Informational). | is widely used; however, [RFC7871] is only an Informational RFC). | |||
DNS Cookies [RFC7873] are a lightweight DNS transaction security | DNS Cookies [RFC7873] are a lightweight DNS transaction security | |||
mechanism that provides limited protection against a variety of | mechanism that provides limited protection against a variety of | |||
increasingly common denial-of-service and amplification/forgery or | increasingly common denial-of-service and amplification/forgery or | |||
cache poisoning attacks by off-path attackers. It is noted, however, | cache poisoning attacks by off-path attackers. It is noted, however, | |||
that they are designed to just verify IP addresses (and should change | that they are designed to just verify IP addresses (and should change | |||
once a client's IP address changes), but they are not designed to | once a client's IP address changes), but they are not designed to | |||
actively track users (like HTTP cookies). | actively track users (like HTTP cookies). | |||
There are anecdotal accounts of MAC addresses [1] and even user names | There are anecdotal accounts of Media Access Control (MAC) addresses | |||
being inserted in non-standard EDNS(0) options [RFC6891] for stub to | (https://lists.dns-oarc.net/pipermail/dns- | |||
operations/2016-January/014143.html) and even user names being | ||||
inserted in nonstandard EDNS(0) options [RFC6891] for stub-to- | ||||
resolver communications to support proprietary functionality | resolver communications to support proprietary functionality | |||
implemented at the resolver (e.g., parental filtering). | implemented at the resolver (e.g., parental filtering). | |||
4.3. Cache Snooping | 4.3. Cache Snooping | |||
The content of recursive resolvers' caches can reveal data about the | The content of recursive resolvers' caches can reveal data about the | |||
clients using it (the privacy risks depend on the number of clients). | clients using it (the privacy risks depend on the number of clients). | |||
This information can sometimes be examined by sending DNS queries | This information can sometimes be examined by sending DNS queries | |||
with RD=0 to inspect cache content, particularly looking at the DNS | with RD=0 to inspect cache content, particularly looking at the DNS | |||
TTLs [grangeia.snooping]. Since this also is a reconnaissance | TTLs [grangeia.snooping]. Since this also is a reconnaissance | |||
technique for subsequent cache poisoning attacks, some counter | technique for subsequent cache poisoning attacks, some | |||
measures have already been developed and deployed | countermeasures have already been developed and deployed | |||
[cache-snooping-defence]. | [cache-snooping-defence]. | |||
5. Risks On the Wire | 5. Risks on the Wire | |||
5.1. Unencrypted Transports | 5.1. Unencrypted Transports | |||
For unencrypted transports, DNS traffic can be seen by an | For unencrypted transports, DNS traffic can be seen by an | |||
eavesdropper like any other traffic. (DNSSEC, specified in | eavesdropper like any other traffic. (DNSSEC, specified in | |||
[RFC4033], explicitly excludes confidentiality from its goals.) So, | [RFC4033], explicitly excludes confidentiality from its goals.) So, | |||
if an initiator starts an HTTPS communication with a recipient, while | if an initiator starts an HTTPS communication with a recipient, the | |||
the HTTP traffic will be encrypted, the DNS exchange prior to it will | HTTP traffic will be encrypted, but the DNS exchange prior to it will | |||
not be. When other protocols will become more and more privacy-aware | not be. When other protocols become more and more privacy aware and | |||
and secured against surveillance (e.g., [RFC8446], | secured against surveillance (e.g., [RFC8446], [RFC9000]), the use of | |||
[I-D.ietf-quic-transport]), the use of unencrypted transports for DNS | unencrypted transports for DNS may become "the weakest link" in | |||
may become "the weakest link" in privacy. It is noted that at the | privacy. It is noted that, at the time of writing, there is ongoing | |||
time of writing there is on-going work attempting to encrypt the SNI | work attempting to encrypt the Server Name Identification (SNI) in | |||
in the TLS handshake [RFC8744], which is one of the last remaining | the TLS handshake [RFC8744], which is one of the last remaining non- | |||
non-DNS cleartext identifiers of a connection target. | DNS cleartext identifiers of a connection target. | |||
An important specificity of the DNS traffic is that it may take a | An important specificity of the DNS traffic is that it may take a | |||
different path than the communication between the initiator and the | different path than the communication between the initiator and the | |||
recipient. For instance, an eavesdropper may be unable to tap the | recipient. For instance, an eavesdropper may be unable to tap the | |||
wire between the initiator and the recipient but may have access to | wire between the initiator and the recipient but may have access to | |||
the wire going to the recursive resolver, or to the authoritative | the wire going to the recursive resolver or to the authoritative name | |||
name servers. | servers. | |||
The best place to tap, from an eavesdropper's point of view, is | The best place to tap, from an eavesdropper's point of view, is | |||
clearly between the stub resolvers and the recursive resolvers, | clearly between the stub resolvers and the recursive resolvers, | |||
because traffic is not limited by DNS caching. | because traffic is not limited by DNS caching. | |||
The attack surface between the stub resolver and the rest of the | The attack surface between the stub resolver and the rest of the | |||
world can vary widely depending upon how the end user's device is | world can vary widely depending upon how the end user's device is | |||
configured. By order of increasing attack surface: | configured. By order of increasing attack surface: | |||
o The recursive resolver can be on the end user's device. In | * The recursive resolver can be on the end user's device. In | |||
(currently) a small number of cases, individuals may choose to | (currently) a small number of cases, individuals may choose to | |||
operate their own DNS resolver on their local machine. In this | operate their own DNS resolver on their local machine. In this | |||
case, the attack surface for the connection between the stub | case, the attack surface for the connection between the stub | |||
resolver and the caching resolver is limited to that single | resolver and the caching resolver is limited to that single | |||
machine. The recursive resolver will expose data to authoritative | machine. The recursive resolver will expose data to authoritative | |||
resolvers as discussed in Section 6.2. | resolvers as discussed in Section 6.2. | |||
o The recursive resolver may be at the local network edge. For | * The recursive resolver may be at the local network edge. For | |||
many/most enterprise networks and for some residential networks, | many/most enterprise networks and for some residential networks, | |||
the caching resolver may exist on a server at the edge of the | the caching resolver may exist on a server at the edge of the | |||
local network. In this case, the attack surface is the local | local network. In this case, the attack surface is the local | |||
network. Note that in large enterprise networks, the DNS resolver | network. Note that in large enterprise networks, the DNS resolver | |||
may not be located at the edge of the local network but rather at | may not be located at the edge of the local network but rather at | |||
the edge of the overall enterprise network. In this case, the | the edge of the overall enterprise network. In this case, the | |||
enterprise network could be thought of as similar to the Internet | enterprise network could be thought of as similar to the Internet | |||
Access Provider (IAP) network referenced below. | Access Provider (IAP) network referenced below. | |||
o The recursive resolver can be in the IAP network. For most | * The recursive resolver can be in the IAP network. For most | |||
residential networks and potentially other networks, the typical | residential networks and potentially other networks, the typical | |||
case is for the user's device to be configured (typically | case is for the user's device to be configured (typically | |||
automatically through DHCP or RA options) with the addresses of | automatically through DHCP or relay agent options) with the | |||
the DNS proxy in the Customer Premise Equipment (CPE), which in | addresses of the DNS proxy in the Customer Premises Equipment | |||
turns points to the DNS recursive resolvers at the IAP. The | (CPE), which in turn points to the DNS recursive resolvers at the | |||
attack surface for on-the-wire attacks is therefore from the end | IAP. The attack surface for on-the-wire attacks is therefore from | |||
user system across the local network and across the IAP network to | the end user system across the local network and across the IAP | |||
the IAP's recursive resolvers. | network to the IAP's recursive resolvers. | |||
o The recursive resolver can be a public DNS service (or a privately | * The recursive resolver can be a public DNS service (or a privately | |||
run DNS resolver hosted on the public internet). Some machines | run DNS resolver hosted on the public Internet). Some machines | |||
may be configured to use public DNS resolvers such as those | may be configured to use public DNS resolvers such as those | |||
operated by Google Public DNS or OpenDNS. The user may have | operated by Google Public DNS or OpenDNS. The user may have | |||
configured their machine to use these DNS recursive resolvers | configured their machine to use these DNS recursive resolvers | |||
themselves -- or their IAP may have chosen to use the public DNS | themselves -- or their IAP may have chosen to use the public DNS | |||
resolvers rather than operating their own resolvers. In this | resolvers rather than operating their own resolvers. In this | |||
case, the attack surface is the entire public Internet between the | case, the attack surface is the entire public Internet between the | |||
user's connection and the public DNS service. It can be noted | user's connection and the public DNS service. It can be noted | |||
that if the user selects a single resolver with a small client | that if the user selects a single resolver with a small client | |||
population (even when using an encrypted transport) it can | population (even when using an encrypted transport), it can | |||
actually serve to aid tracking of that user as they move across | actually serve to aid tracking of that user as they move across | |||
network environments. | network environments. | |||
It is also noted that typically a device connected _only_ to a modern | It is also noted that, typically, a device connected _only_ to a | |||
cellular network is | modern cellular network is | |||
o directly configured with only the recursive resolvers of the IAP | * directly configured with only the recursive resolvers of the IAP | |||
and | and | |||
o afforded some level of protection against some types of | * afforded some level of protection against some types of | |||
eavesdropping for all traffic (including DNS traffic) due to the | eavesdropping for all traffic (including DNS traffic) due to the | |||
cellular network link-layer encryption. | cellular network link-layer encryption. | |||
The attack surface for this specific scenario is not considered here. | The attack surface for this specific scenario is not considered here. | |||
5.2. Encrypted Transports | 5.2. Encrypted Transports | |||
The use of encrypted transports directly mitigates passive | The use of encrypted transports directly mitigates passive | |||
surveillance of the DNS payload, however there are still some privacy | surveillance of the DNS payload; however, some privacy attacks are | |||
attacks possible. This section enumerates the residual privacy risks | still possible. This section enumerates the residual privacy risks | |||
to an end user when an attacker can passively monitor encrypted DNS | to an end user when an attacker can passively monitor encrypted DNS | |||
traffic flows on the wire. | traffic flows on the wire. | |||
These are cases where user identification, fingerprinting or | These are cases where user identification, fingerprinting, or | |||
correlations may be possible due to the use of certain transport | correlations may be possible due to the use of certain transport | |||
layers or clear text/observable features. These issues are not | layers or cleartext/observable features. These issues are not | |||
specific to DNS, but DNS traffic is susceptible to these attacks when | specific to DNS, but DNS traffic is susceptible to these attacks when | |||
using specific transports. | using specific transports. | |||
There are some general examples, for example, certain studies have | Some general examples exist; for example, certain studies highlight | |||
highlighted that IPv4 TTL, IPv6 Hop Limit, or TCP Window sizes os- | that the OS fingerprint values (http://netres.ec/?b=11B99BD) of IPv4 | |||
fingerprint [2] values can be used to fingerprint client OS's or that | TTL, IPv6 Hop Limit, or TCP Window size can be used to fingerprint | |||
various techniques can be used to de-NAT DNS queries [dns-de-nat]. | client OSes or that various techniques can be used to de-NAT DNS | |||
queries [dns-de-nat]. | ||||
Note that even when using encrypted transports, the use of clear text | Note that even when using encrypted transports, the use of cleartext | |||
transport options to decrease latency can provide correlation of a | transport options to decrease latency can provide correlation of a | |||
users' connections, e.g. using TCP Fast Open [RFC7413]. | user's connections, e.g., using TCP Fast Open [RFC7413]. | |||
Implementations that support encrypted transports also commonly re- | Implementations that support encrypted transports also commonly reuse | |||
use connections for multiple DNS queries to optimize performance | connections for multiple DNS queries to optimize performance (e.g., | |||
(e.g. via DNS pipelining or HTTPS multiplexing). Default | via DNS pipelining or HTTPS multiplexing). Default configuration | |||
configuration options for encrypted transports could in principle | options for encrypted transports could, in principle, fingerprint a | |||
fingerprint a specific client application. For example: | specific client application. For example: | |||
o TLS version or cipher suite selection | * TLS version or cipher suite selection | |||
o session resumption | * session resumption | |||
o the maximum number of messages to send or | * the maximum number of messages to send and | |||
o a maximum connection time before closing a connections and re- | * a maximum connection time before closing a connections and | |||
opening. | reopening. | |||
If libraries or applications offer user configuration of such options | If libraries or applications offer user configuration of such options | |||
(e.g. [getdns]) then they could in principle help to identify a | (e.g., [getdns]), then they could, in principle, help to identify a | |||
specific user. Users may want to use only the defaults to avoid this | specific user. Users may want to use only the defaults to avoid this | |||
issue. | issue. | |||
Whilst there are known attacks on older versions of TLS, the most | While there are known attacks on older versions of TLS, the most | |||
recent recommendations [RFC7525] and the development of TLS 1.3 | recent recommendations [RFC7525] and the development of TLS 1.3 | |||
[RFC8446] largely mitigate those. | [RFC8446] largely mitigate those. | |||
Traffic analysis of unpadded encrypted traffic is also possible | Traffic analysis of unpadded encrypted traffic is also possible | |||
[pitfalls-of-dns-encryption] because the sizes and timing of | [pitfalls-of-dns-encryption] because the sizes and timing of | |||
encrypted DNS requests and responses can be correlated to unencrypted | encrypted DNS requests and responses can be correlated to unencrypted | |||
DNS requests upstream of a recursive resolver. | DNS requests upstream of a recursive resolver. | |||
6. Risks in the Servers | 6. Risks in the Servers | |||
Using the terminology of [RFC6973], the DNS servers (recursive | Using the terminology of [RFC6973], the DNS servers (recursive | |||
resolvers and authoritative servers) are enablers: they facilitate | resolvers and authoritative servers) are enablers: "they facilitate | |||
communication between an initiator and a recipient without being | communication between an initiator and a recipient without being | |||
directly in the communications path. As a result, they are often | directly in the communications path". As a result, they are often | |||
forgotten in risk analysis. But, to quote again [RFC6973], "Although | forgotten in risk analysis. But, to quote [RFC6973] again, "Although | |||
[...] enablers may not generally be considered as attackers, they may | [...] enablers may not generally be considered as attackers, they may | |||
all pose privacy threats (depending on the context) because they are | all pose privacy threats (depending on the context) because they are | |||
able to observe, collect, process, and transfer privacy-relevant | able to observe, collect, process, and transfer privacy-relevant | |||
data." In [RFC6973] parlance, enablers become observers when they | data". In [RFC6973] parlance, enablers become observers when they | |||
start collecting data. | start collecting data. | |||
Many programs exist to collect and analyze DNS data at the servers -- | Many programs exist to collect and analyze DNS data at the servers -- | |||
from the "query log" of some programs like BIND to tcpdump and more | from the "query log" of some programs like BIND to tcpdump and more | |||
sophisticated programs like PacketQ [packetq] and DNSmezzo | sophisticated programs like PacketQ [packetq] and DNSmezzo | |||
[dnsmezzo]. The organization managing the DNS server can use this | [dnsmezzo]. The organization managing the DNS server can use this | |||
data itself, or it can be part of a surveillance program like PRISM | data itself, or it can be part of a surveillance program like PRISM | |||
[prism] and pass data to an outside observer. | [prism] and pass data to an outside observer. | |||
Sometimes, this data is kept for a long time and/or distributed to | Sometimes this data is kept for a long time and/or distributed to | |||
third parties for research purposes [ditl] [day-at-root], security | third parties for research purposes [ditl] [day-at-root], security | |||
analysis, or surveillance tasks. These uses are sometimes under some | analysis, or surveillance tasks. These uses are sometimes under some | |||
sort of contract, with various limitations, for instance, on | sort of contract, with various limitations, for instance, on | |||
redistribution, given the sensitive nature of the data. Also, there | redistribution, given the sensitive nature of the data. Also, there | |||
are observation points in the network that gather DNS data and then | are observation points in the network that gather DNS data and then | |||
make it accessible to third parties for research or security purposes | make it accessible to third parties for research or security purposes | |||
("passive DNS" [passive-dns]). | ("passive DNS" [passive-dns]). | |||
6.1. In the Recursive Resolvers | 6.1. In the Recursive Resolvers | |||
Recursive Resolvers see all the traffic since there is typically no | Recursive resolvers see all the traffic since there is typically no | |||
caching before them. To summarize: your recursive resolver knows a | caching before them. To summarize: your recursive resolver knows a | |||
lot about you. The resolver of a large IAP, or a large public | lot about you. The resolver of a large IAP, or a large public | |||
resolver, can collect data from many users. | resolver, can collect data from many users. | |||
6.1.1. Resolver Selection | 6.1.1. Resolver Selection | |||
Given all the above considerations, the choice of recursive resolver | Given all the above considerations, the choice of recursive resolver | |||
has direct privacy considerations for end users. Historically, end | has direct privacy considerations for end users. Historically, end | |||
user devices have used the DHCP-provided local network recursive | user devices have used the DHCP-provided local network recursive | |||
resolver. The choice by a user to join a particular network (e.g. by | resolver. The choice by a user to join a particular network (e.g., | |||
physically plugging in a cable or selecting a network in a OS | by physically plugging in a cable or selecting a network in an OS | |||
dialogue) typically updates a number of system resources - these can | dialogue) typically updates a number of system resources -- these can | |||
include IP addresses, availability of IPv4/IPv6, DHCP server, and DNS | include IP addresses, the availability of IPv4/IPv6, DHCP server, and | |||
resolver. These individual changes, including the change in DNS | DNS resolver. These individual changes, including the change in DNS | |||
resolver, are not normally communicated directly to the user by the | resolver, are not normally communicated directly to the user by the | |||
OS when the network is joined. The choice of network has | OS when the network is joined. The choice of network has | |||
historically determined the default system DNS resolver selection; | historically determined the default system DNS resolver selection; | |||
the two are directly coupled in this model. | the two are directly coupled in this model. | |||
The vast majority of users do not change their default system DNS | The vast majority of users do not change their default system DNS | |||
settings and so implicitly accept the network settings for DNS. The | settings and so implicitly accept the network settings for the DNS. | |||
network resolvers have therefore historically been the sole | The network resolvers have therefore historically been the sole | |||
destination for all of the DNS queries from a device. These | destination for all of the DNS queries from a device. These | |||
resolvers may have varied privacy policies depending on the network. | resolvers may have varied privacy policies depending on the network. | |||
Privacy policies for these servers may or may not be available and | Privacy policies for these servers may or may not be available, and | |||
users need to be aware that privacy guarantees will vary with the | users need to be aware that privacy guarantees will vary with the | |||
network. | network. | |||
All major OS's expose the system DNS settings and allow users to | All major OSes expose the system DNS settings and allow users to | |||
manually override them if desired. | manually override them if desired. | |||
More recently, some networks and users have actively chosen to use a | More recently, some networks and users have actively chosen to use a | |||
large public resolver, e.g., Google Public DNS [3], Cloudflare [4], | large public resolver, e.g., Google Public DNS | |||
or Quad9 [5]. There can be many reasons: cost considerations for | (https://developers.google.com/speed/public-dns), Cloudflare | |||
network operators, better reliability or anti-censorship | (https://developers.cloudflare.com/1.1.1.1/setting-up-1.1.1.1/), or | |||
considerations are just a few. Such services typically do provide a | Quad9 (https://www.quad9.net). There can be many reasons: cost | |||
privacy policy and the user can get an idea of the data collected by | considerations for network operators, better reliability, or anti- | |||
such operators by reading one e.g., Google Public DNS - Your Privacy | censorship considerations are just a few. Such services typically do | |||
[6]. | provide a privacy policy, and the user can get an idea of the data | |||
collected by such operators by reading one, e.g., Google Public DNS - | ||||
Your Privacy (https://developers.google.com/speed/public-dns/ | ||||
privacy). | ||||
In general, as with many other protocols, issues around | In general, as with many other protocols, issues around | |||
centralization also arise with DNS. The picture is fluid with | centralization also arise with DNS. The picture is fluid with | |||
several competing factors contributing which can also vary by | several competing factors contributing, where these factors can also | |||
geographic region. These include: | vary by geographic region. These include: | |||
o ISP outsourcing, including to third party and public resolvers | * ISP outsourcing, including to third-party and public resolvers | |||
o regional market domination by one or only a few ISPs | * regional market domination by one or only a few ISPs | |||
o applications directing DNS traffic by default to a limited subset | * applications directing DNS traffic by default to a limited subset | |||
of resolvers, see Section 6.1.1.2 | of resolvers (see Section 6.1.1.2) | |||
An increased proportion of the global DNS resolution traffic being | An increased proportion of the global DNS resolution traffic being | |||
served by only a few entities means that the privacy considerations | served by only a few entities means that the privacy considerations | |||
for users are highly dependent on the privacy policies and practices | for users are highly dependent on the privacy policies and practices | |||
of those entities. Many of the issues around centralization are | of those entities. Many of the issues around centralization are | |||
discussed in [centralisation-and-data-sovereignty]. | discussed in [centralisation-and-data-sovereignty]. | |||
6.1.1.1. Dynamic Discovery of DoH and Strict DoT | 6.1.1.1. Dynamic Discovery of DoH and Strict DoT | |||
Whilst support for opportunistic DoT can be determined by probing a | While support for opportunistic DoT can be determined by probing a | |||
resolver on port 853, there is currently no standardized discovery | resolver on port 853, there is currently no standardized discovery | |||
mechanism for DoH and Strict DoT servers. | mechanism for DoH and Strict DoT servers. | |||
This means that clients which might want to dynamically discover such | This means that clients that might want to dynamically discover such | |||
encrypted services, and where users are willing to trust such | encrypted services, and where users are willing to trust such | |||
services, are not able to do so. At the time of writing, efforts to | services, are not able to do so. At the time of writing, efforts to | |||
provide standardized signaling mechanisms to discover the services | provide standardized signaling mechanisms to discover the services | |||
offered by local resolvers are in progress | offered by local resolvers are in progress [DNSOP-RESOLVER]. Note | |||
[I-D.ietf-dnsop-resolver-information]. Note that an increasing | that an increasing number of ISPs are deploying encrypted DNS; for | |||
numbers of ISPs are deploying encrypted DNS, for example see the | example, see the Encrypted DNS Deployment Initiative [EDDI]. | |||
Encrypted DNS Deployment Initiative [EDDI]. | ||||
6.1.1.2. Application-specific Resolver Selection | 6.1.1.2. Application-Specific Resolver Selection | |||
An increasing number of applications are offering application- | An increasing number of applications are offering application- | |||
specific encrypted DNS resolution settings, rather than defaulting to | specific encrypted DNS resolution settings, rather than defaulting to | |||
using only the system resolver. A variety of heuristics and | using only the system resolver. A variety of heuristics and | |||
resolvers are available in different applications including hard- | resolvers are available in different applications, including hard- | |||
coded lists of recognized DoH/DoT servers. | coded lists of recognized DoH/DoT servers. | |||
Generally, users are not aware of application specific DNS settings, | Generally, users are not aware of application-specific DNS settings | |||
and may not have control over those settings. To address these | and may not have control over those settings. To address these | |||
limitations, users will only be aware of and have the ability to | limitations, users will only be aware of and have the ability to | |||
control such settings if applications provide the following | control such settings if applications provide the following | |||
functions: | functions: | |||
o communicate clearly to users the change when the default | * communicate the change clearly to users when the default | |||
application resolver changes away from the system resolver | application resolver changes away from the system resolver | |||
o provide configuration options to change the default application | * provide configuration options to change the default application | |||
resolver, including a choice to always use the system resolver | resolver, including a choice to always use the system resolver | |||
o provide mechanisms for users to locally inspect, selectively | * provide mechanisms for users to locally inspect, selectively | |||
forward, and filter queries (either via the application itself or use | forward, and filter queries (either via the application itself or | |||
of the system resolver) | use of the system resolver) | |||
Application-specific changes to default destinations for users' DNS | Application-specific changes to default destinations for users' DNS | |||
queries might increase or decrease user privacy - it is highly | queries might increase or decrease user privacy; it is highly | |||
dependent on the network context and the application-specific | dependent on the network context and the application-specific | |||
default. This is an area of active debate and the IETF is working on | default. This is an area of active debate, and the IETF is working | |||
a number of issues related to application-specific DNS settings. | on a number of issues related to application-specific DNS settings. | |||
6.1.2. Active Attacks on Resolver Configuration | 6.1.2. Active Attacks on Resolver Configuration | |||
The previous section discussed DNS privacy, assuming that all the | The previous section discussed DNS privacy, assuming that all the | |||
traffic was directed to the intended servers (i.e those that would be | traffic was directed to the intended servers (i.e., those that would | |||
used in the absence of an active attack) and that the potential | be used in the absence of an active attack) and that the potential | |||
attacker was purely passive. But, in reality, there can be active | attacker was purely passive. But, in reality, there can be active | |||
attackers in the network. | attackers in the network. | |||
The Internet Threat model, as described in [RFC3552], assumes that | The Internet Threat model, as described in [RFC3552], assumes that | |||
the attacker controls the network. Such an attacker can completely | the attacker controls the network. Such an attacker can completely | |||
control any insecure DNS resolution, both passively monitoring the | control any insecure DNS resolution, both passively monitoring the | |||
queries and responses and substituting their own responses. Even if | queries and responses and substituting their own responses. Even if | |||
encrypted DNS such as DoH or DoT is used, unless the client has been | encrypted DNS such as DoH or DoT is used, unless the client has been | |||
configured in a secure way with the server identity, an active | configured in a secure way with the server identity, an active | |||
attacker can impersonate the server. This implies that opportunistic | attacker can impersonate the server. This implies that opportunistic | |||
modes of DoH/DoT as well as modes where the client learns of the DoH/ | modes of DoH/DoT as well as modes where the client learns of the DoH/ | |||
DoT server via in-network mechanisms such as DHCP are vulnerable to | DoT server via in-network mechanisms such as DHCP are vulnerable to | |||
attack. In addition, if the client is compromised, the attacker can | attack. In addition, if the client is compromised, the attacker can | |||
replace the DNS configuration with one of its own choosing. | replace the DNS configuration with one of its own choosing. | |||
6.1.3. Blocking of DNS Resolution Services | 6.1.3. Blocking of DNS Resolution Services | |||
User privacy can also be at risk if there is blocking of access to | User privacy can also be at risk if there is blocking of access to | |||
remote recursive servers that offer encrypted transports e.g., when | remote recursive servers that offer encrypted transports, e.g., when | |||
the local resolver does not offer encryption and/or has very poor | the local resolver does not offer encryption and/or has very poor | |||
privacy policies. For example, active blocking of port 853 for DoT | privacy policies. For example, active blocking of port 853 for DoT | |||
or of specific IP addresses could restrict the resolvers available to | or blocking of specific IP addresses could restrict the resolvers | |||
the user. The extent of the risk to user privacy is highly dependent | available to the user. The extent of the risk to user privacy is | |||
on the specific network and user context; a user on a network that is | highly dependent on the specific network and user context; a user on | |||
known to perform surveillance would be compromised if they could not | a network that is known to perform surveillance would be compromised | |||
access such services, whereas a user on a trusted network might have | if they could not access such services, whereas a user on a trusted | |||
no privacy motivation to do so. | network might have no privacy motivation to do so. | |||
As a matter of policy, some recursive resolvers use their position in | As a matter of policy, some recursive resolvers use their position in | |||
the query path to selectively block access to certain DNS records. | the query path to selectively block access to certain DNS records. | |||
This is a form of Rendezvous-Based Blocking as described in | This is a form of rendezvous-based blocking as described in | |||
Section 4.3 of [RFC7754]. Such blocklists often include servers | Section 4.3 of [RFC7754]. Such blocklists often include servers | |||
known to be used for malware, bots or other security risks. In order | known to be used for malware, bots, or other security risks. In | |||
to prevent circumvention of their blocking policies, some networks | order to prevent circumvention of their blocking policies, some | |||
also block access to resolvers with incompatible policies. | networks also block access to resolvers with incompatible policies. | |||
It is also noted that attacks on remote resolver services, e.g., | It is also noted that attacks on remote resolver services, e.g., | |||
DDoS, could force users to switch to other services that do not offer | DDoS, could force users to switch to other services that do not offer | |||
encrypted transports for DNS. | encrypted transports for DNS. | |||
6.1.4. Encrypted Transports and Recursive Resolvers | 6.1.4. Encrypted Transports and Recursive Resolvers | |||
6.1.4.1. DoT and DoH | 6.1.4.1. DoT and DoH | |||
Use of encrypted transports does not reduce the data available in the | Use of encrypted transports does not reduce the data available in the | |||
recursive resolver and ironically can actually expose more | recursive resolver and ironically can actually expose more | |||
information about users to operators. As described in Section 5.2 | information about users to operators. As described in Section 5.2, | |||
use of session based encrypted transports (TCP/TLS) can expose | use of session-based encrypted transports (TCP/TLS) can expose | |||
correlation data about users. | correlation data about users. | |||
6.1.4.2. DoH Specific Considerations | 6.1.4.2. DoH-Specific Considerations | |||
DoH inherits the full privacy properties of the HTTPS stack and as a | DoH inherits the full privacy properties of the HTTPS stack and as a | |||
consequence introduces new privacy considerations when compared with | consequence introduces new privacy considerations when compared with | |||
DNS over UDP, TCP or TLS [RFC7858]. Section 8.2 of [RFC8484] | DNS over UDP, TCP, or TLS [RFC7858]. Section 8.2 of [RFC8484] | |||
describes the privacy consideration in the server of the DoH | describes the privacy considerations in the server of the DoH | |||
protocol. | protocol. | |||
A brief summary of some of the issues includes: | A brief summary of some of the issues includes the following: | |||
o HTTPS presents new considerations for correlation, such as | * HTTPS presents new considerations for correlation, such as | |||
explicit HTTP cookies and implicit fingerprinting of the unique | explicit HTTP cookies and implicit fingerprinting of the unique | |||
set and ordering of HTTP request header fields. | set and ordering of HTTP request header fields. | |||
o The User-Agent and Accept-Language request header fields often | * The User-Agent and Accept-Language request header fields often | |||
convey specific information about the client version or locale. | convey specific information about the client version or locale. | |||
o Utilizing the full set of HTTP features enables DoH to be more | * Utilizing the full set of HTTP features enables DoH to be more | |||
than an HTTP tunnel, but it is at the cost of opening up | than an HTTP tunnel, but it is at the cost of opening up | |||
implementations to the full set of privacy considerations of HTTP. | implementations to the full set of privacy considerations of HTTP. | |||
o Implementations are advised to expose the minimal set of data | * Implementations are advised to expose the minimal set of data | |||
needed to achieve the desired feature set. | needed to achieve the desired feature set. | |||
[RFC8484] specifically makes selection of HTTPS functionality vs | [RFC8484] specifically makes selection of HTTPS functionality vs. | |||
privacy an implementation choice. At the extremes, there may be | privacy an implementation choice. At the extremes, there may be | |||
implementations that attempt to achieve parity with DoT from a | implementations that attempt to achieve parity with DoT from a | |||
privacy perspective at the cost of using no identifiable HTTP | privacy perspective at the cost of using no identifiable HTTP | |||
headers, there might be others that provide feature rich data flows | headers, and there might be others that provide feature-rich data | |||
where the low-level origin of the DNS query is easily identifiable. | flows where the low-level origin of the DNS query is easily | |||
Some implementations have, in fact, chosen to restrict the use of the | identifiable. Some implementations have, in fact, chosen to restrict | |||
'User-Agent' header so that resolver operators cannot identify the | the use of the User-Agent header so that resolver operators cannot | |||
specific application that is originating the DNS queries. | identify the specific application that is originating the DNS | |||
queries. | ||||
Privacy focused users should be aware of the potential for additional | Privacy-focused users should be aware of the potential for additional | |||
client identifiers in DoH compared to DoT and may want to only use | client identifiers in DoH compared to DoT and may want to only use | |||
DoH client implementations that provide clear guidance on what | DoH client implementations that provide clear guidance on what | |||
identifiers they add. | identifiers they add. | |||
6.2. In the Authoritative Name Servers | 6.2. In the Authoritative Name Servers | |||
Unlike what happens for recursive resolvers, observation capabilities | Unlike what happens for recursive resolvers, the observation | |||
of authoritative name servers are limited by caching; they see only | capabilities of authoritative name servers are limited by caching; | |||
the requests for which the answer was not in the cache. For | they see only the requests for which the answer was not in the cache. | |||
aggregated statistics ("What is the percentage of LOC queries?"), | For aggregated statistics ("What is the percentage of LOC queries?"), | |||
this is sufficient, but it prevents an observer from seeing | this is sufficient, but it prevents an observer from seeing | |||
everything. Similarly the increasing deployment of QNAME | everything. Similarly, the increasing deployment of QNAME | |||
minimisation [ripe-qname-measurements] reduces the data visible at | minimization [ripe-qname-measurements] reduces the data visible at | |||
the authoritative name server. Still, the authoritative name servers | the authoritative name server. Still, the authoritative name servers | |||
see a part of the traffic, and this subset may be sufficient to | see a part of the traffic, and this subset may be sufficient to | |||
violate some privacy expectations. | violate some privacy expectations. | |||
Also, the user often has some legal/contractual link with the | Also, the user often has some legal/contractual link with the | |||
recursive resolver (he has chosen the IAP, or he has chosen to use a | recursive resolver (they have chosen the IAP, or they have chosen to | |||
given public resolver), while having no control and perhaps no | use a given public resolver) while having no control and perhaps no | |||
awareness of the role of the authoritative name servers and their | awareness of the role of the authoritative name servers and their | |||
observation abilities. | observation abilities. | |||
As noted before, using a local resolver or a resolver close to the | As noted before, using a local resolver or a resolver close to the | |||
machine decreases the attack surface for an on-the-wire eavesdropper. | machine decreases the attack surface for an on-the-wire eavesdropper. | |||
But it may decrease privacy against an observer located on an | But it may decrease privacy against an observer located on an | |||
authoritative name server. This authoritative name server will see | authoritative name server. This authoritative name server will see | |||
the IP address of the end client instead of the address of a big | the IP address of the end client instead of the address of a big | |||
recursive resolver shared by many users. | recursive resolver shared by many users. | |||
skipping to change at page 17, line 23 ¶ | skipping to change at line 789 ¶ | |||
receive together around 50,000 queries per second. While most of it | receive together around 50,000 queries per second. While most of it | |||
is "junk" (errors on the Top-Level Domain (TLD) name), it gives an | is "junk" (errors on the Top-Level Domain (TLD) name), it gives an | |||
idea of the amount of big data that pours into name servers. (And | idea of the amount of big data that pours into name servers. (And | |||
even "junk" can leak information; for instance, if there is a typing | even "junk" can leak information; for instance, if there is a typing | |||
error in the TLD, the user will send data to a TLD that is not the | error in the TLD, the user will send data to a TLD that is not the | |||
usual one.) | usual one.) | |||
Many domains, including TLDs, are partially hosted by third-party | Many domains, including TLDs, are partially hosted by third-party | |||
servers, sometimes in a different country. The contracts between the | servers, sometimes in a different country. The contracts between the | |||
domain manager and these servers may or may not take privacy into | domain manager and these servers may or may not take privacy into | |||
account. Whatever the contract, the third-party hoster may be honest | account. Whatever the contract, the third-party hoster may or may | |||
or not but, in any case, it will have to follow its local laws. For | not be honest; in any case, it will have to follow its local laws. | |||
example, requests to a given ccTLD may go to servers managed by | For example, requests to a given ccTLD may go to servers managed by | |||
organizations outside of the ccTLD's country. Users may not | organizations outside of the ccTLD's country. Users may not | |||
anticipate that, when doing a security analysis. | anticipate that when doing a security analysis. | |||
Also, it seems (see the survey described in [aeris-dns]) that there | Also, it seems (see the survey described in [aeris-dns]) that there | |||
is a strong concentration of authoritative name servers among | is a strong concentration of authoritative name servers among | |||
"popular" domains (such as the Alexa Top N list). For instance, | "popular" domains (such as the Alexa Top N list). For instance, | |||
among the Alexa Top 100K [7], one DNS provider hosts today 10% of the | among the Alexa Top 100K (https://www.alexa.com/topsites), one DNS | |||
domains. The ten most important DNS providers host together one | provider hosts 10% of the domains today. The ten most important DNS | |||
third of the domains. With the control (or the ability to sniff the | providers together host one-third of all domains. With the control | |||
traffic) of a few name servers, you can gather a lot of information. | (or the ability to sniff the traffic) of a few name servers, you can | |||
gather a lot of information. | ||||
7. Other risks | 7. Other Risks | |||
7.1. Re-identification and Other Inferences | 7.1. Re-identification and Other Inferences | |||
An observer has access not only to the data he/she directly collects | An observer has access not only to the data they directly collect but | |||
but also to the results of various inferences about this data. The | also to the results of various inferences about this data. The term | |||
term 'observer' here is used very generally, it might be one that is | "observer" here is used very generally; for example, the observer | |||
passively observing cleartext DNS traffic, one in the network that is | might passively observe cleartext DNS traffic or be in the network | |||
actively attacking the user by re-directing DNS resolution, or it | that is actively attacking the user by redirecting DNS resolution, or | |||
might be a local or remote resolver operator. | it might be a local or remote resolver operator. | |||
For instance, a user can be re-identified via DNS queries. If the | For instance, a user can be re-identified via DNS queries. If the | |||
adversary knows a user's identity and can watch their DNS queries for | adversary knows a user's identity and can watch their DNS queries for | |||
a period, then that same adversary may be able to re-identify the | a period, then that same adversary may be able to re-identify the | |||
user solely based on their pattern of DNS queries later on regardless | user solely based on their pattern of DNS queries later on regardless | |||
of the location from which the user makes those queries. For | of the location from which the user makes those queries. For | |||
example, one study [herrmann-reidentification] found that such re- | example, one study [herrmann-reidentification] found that such re- | |||
identification is possible so that "73.1% of all day-to-day links | identification is possible so that "73.1% of all day-to-day links | |||
were correctly established, i.e., user u was either re-identified | were correctly established, i.e. user u was either re-identified | |||
unambiguously (1) or the classifier correctly reported that u was not | unambiguously (1) or the classifier correctly reported that u was not | |||
present on day t+1 any more (2)." While that study related to web | present on day t + 1 any more (2)". While that study related to web | |||
browsing behavior, equally characteristic patterns may be produced | browsing behavior, equally characteristic patterns may be produced | |||
even in machine-to-machine communications or without a user taking | even in machine-to-machine communications or without a user taking | |||
specific actions, e.g., at reboot time if a characteristic set of | specific actions, e.g., at reboot time if a characteristic set of | |||
services are accessed by the device. | services are accessed by the device. | |||
For instance, one could imagine that an intelligence agency | For instance, one could imagine that an intelligence agency | |||
identifies people going to a site by putting in a very long DNS name | identifies people going to a site by putting in a very long DNS name | |||
and looking for queries of a specific length. Such traffic analysis | and looking for queries of a specific length. Such traffic analysis | |||
could weaken some privacy solutions. | could weaken some privacy solutions. | |||
The IAB privacy and security program also have a document [RFC7624] | The IAB Privacy and Security Program also has a document [RFC7624] | |||
that considers such inference-based attacks in a more general | that considers such inference-based attacks in a more general | |||
framework. | framework. | |||
7.2. More Information | 7.2. More Information | |||
Useful background information can also be found in [tor-leak] (about | Useful background information can also be found in [tor-leak] | |||
the risk of privacy leak through DNS) and in a few academic papers: | (regarding the risk of privacy leaks through DNS) and in a few | |||
[yanbin-tsudik], [castillo-garcia], [fangming-hori-sakurai], and | academic papers: [yanbin-tsudik], [castillo-garcia], | |||
[federrath-fuchs-herrmann-piosecny]. | [fangming-hori-sakurai], and [federrath-fuchs-herrmann-piosecny]. | |||
8. Actual "Attacks" | 8. Actual "Attacks" | |||
A very quick examination of DNS traffic may lead to the false | A very quick examination of DNS traffic may lead to the false | |||
conclusion that extracting the needle from the haystack is difficult. | conclusion that extracting the needle from the haystack is difficult. | |||
"Interesting" primary DNS requests are mixed with useless (for the | "Interesting" primary DNS requests are mixed with useless (for the | |||
eavesdropper) secondary and tertiary requests (see the terminology in | eavesdropper) secondary and tertiary requests (see the terminology in | |||
Section 1). But, in this time of "big data" processing, powerful | Section 1). But, in this time of "big data" processing, powerful | |||
techniques now exist to get from the raw data to what the | techniques now exist to get from the raw data to what the | |||
eavesdropper is actually interested in. | eavesdropper is actually interested in. | |||
Many research papers about malware detection use DNS traffic to | Many research papers about malware detection use DNS traffic to | |||
detect "abnormal" behavior that can be traced back to the activity of | detect "abnormal" behavior that can be traced back to the activity of | |||
malware on infected machines. Yes, this research was done for the | malware on infected machines. Yes, this research was done for the | |||
good, but technically it is a privacy attack and it demonstrates the | greater good, but technically it is a privacy attack and it | |||
power of the observation of DNS traffic. See [dns-footprint], | demonstrates the power of the observation of DNS traffic. See | |||
[dagon-malware], and [darkreading-dns]. | [dns-footprint], [dagon-malware], and [darkreading-dns]. | |||
Passive DNS systems [passive-dns] allow reconstruction of the data of | Passive DNS services [passive-dns] allow reconstruction of the data | |||
sometimes an entire zone. Well-known passive DNS systems keep only | of sometimes an entire zone. Well-known passive DNS services keep | |||
the DNS responses, and not the source IP address of the client, | only the DNS responses and not the source IP address of the client, | |||
precisely for privacy reasons. Other passive DNS systems may not be | precisely for privacy reasons. Other passive DNS services may not be | |||
so careful. And there is still the potential problems with revealing | so careful. And there are still potential problems with revealing | |||
QNAMEs. | QNAMEs. | |||
The revelations from the Edward Snowden documents, which were leaked | The revelations from the Edward Snowden documents, which were leaked | |||
from the National Security Agency (NSA), provide evidence of the use | from the National Security Agency (NSA), provide evidence of the use | |||
of the DNS in mass surveillance operations [morecowbell]. For | of the DNS in mass surveillance operations [morecowbell]. For | |||
example the MORECOWBELL surveillance program, which uses a dedicated | example, the MORECOWBELL surveillance program uses a dedicated covert | |||
covert monitoring infrastructure to actively query DNS servers and | monitoring infrastructure to actively query DNS servers and perform | |||
perform HTTP requests to obtain meta information about services and | HTTP requests to obtain meta-information about services and to check | |||
to check their availability. Also the QUANTUMTHEORY [8] project | their availability. Also, the QUANTUMTHEORY | |||
which includes detecting lookups for certain addresses and injecting | (https://theintercept.com/document/2014/03/12/nsa-gchqs- | |||
bogus replies is another good example showing that the lack of | quantumtheory-hacking-tactics/) project, which includes detecting | |||
privacy protections in the DNS is actively exploited. | lookups for certain addresses and injecting bogus replies, is another | |||
good example showing that the lack of privacy protections in the DNS | ||||
is actively exploited. | ||||
9. Legalities | 9. Legalities | |||
To our knowledge, there are no specific privacy laws for DNS data, in | To our knowledge, there are no specific privacy laws for DNS data in | |||
any country. Interpreting general privacy laws like | any country. Interpreting general privacy laws, like the European | |||
[data-protection-directive] or GDPR [9] applicable in the European | Union's [data-protection-directive] or GDPR (https://gdpr.eu/tag/ | |||
Union in the context of DNS traffic data is not an easy task, and | gdpr/), in the context of DNS traffic data is not an easy task, and | |||
there is no known court precedent. See an interesting analysis in | there is no known court precedent. See an interesting analysis in | |||
[sidn-entrada]. | [sidn-entrada]. | |||
10. Security Considerations | 10. Security Considerations | |||
This document is entirely about security, more precisely privacy. It | This document is entirely about security -- more precisely, privacy. | |||
just lays out the problem; it does not try to set requirements (with | It just lays out the problem; it does not try to set requirements | |||
the choices and compromises they imply), much less define solutions. | (with the choices and compromises they imply), much less define | |||
Possible solutions to the issues described here are discussed in | solutions. Possible solutions to the issues described here are | |||
other documents (currently too many to all be mentioned); see, for | discussed in other documents (currently too many to all be | |||
instance, 'Recommendations for DNS Privacy Operators' | mentioned); see, for instance, "Recommendations for DNS Privacy | |||
[I-D.ietf-dprive-bcp-op]. | Operators" [RFC8932]. | |||
11. IANA Considerations | 11. IANA Considerations | |||
This document makes no requests of the IANA. | This document has no IANA actions. | |||
12. Contributions | ||||
Sara Dickinson and Stephane Bortzmeyer were the original authors on | ||||
the document, and their contribution on the initial version is | ||||
greatly appreciated. | ||||
13. Acknowledgments | ||||
Thanks to Nathalie Boulvard and to the CENTR members for the original | ||||
work that led to this document. Thanks to Ondrej Sury for the | ||||
interesting discussions. Thanks to Mohsen Souissi and John Heidemann | ||||
for proofreading and to Paul Hoffman, Matthijs Mekking, Marcos Sanz, | ||||
Tim Wicinski, Francis Dupont, Allison Mankin, and Warren Kumari for | ||||
proofreading, providing technical remarks, and making many | ||||
readability improvements. Thanks to Dan York, Suzanne Woolf, Tony | ||||
Finch, Stephen Farrell, Peter Koch, Simon Josefsson, and Frank Denis | ||||
for good written contributions. Thanks to Vittorio Bertola and | ||||
Mohamed Boucadair for a detailed review of the -bis. And thanks to | ||||
the IESG members for the last remarks. | ||||
14. References | 12. References | |||
14.1. Normative References | 12.1. Normative References | |||
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | |||
<https://www.rfc-editor.org/info/rfc1034>. | <https://www.rfc-editor.org/info/rfc1034>. | |||
[RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
November 1987, <https://www.rfc-editor.org/info/rfc1035>. | November 1987, <https://www.rfc-editor.org/info/rfc1035>. | |||
[RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | |||
Morris, J., Hansen, M., and R. Smith, "Privacy | Morris, J., Hansen, M., and R. Smith, "Privacy | |||
Considerations for Internet Protocols", RFC 6973, | Considerations for Internet Protocols", RFC 6973, | |||
DOI 10.17487/RFC6973, July 2013, | DOI 10.17487/RFC6973, July 2013, | |||
<https://www.rfc-editor.org/info/rfc6973>. | <https://www.rfc-editor.org/info/rfc6973>. | |||
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | |||
2014, <https://www.rfc-editor.org/info/rfc7258>. | 2014, <https://www.rfc-editor.org/info/rfc7258>. | |||
14.2. Informative References | 12.2. Informative References | |||
[aeris-dns] | [aeris-dns] | |||
Vinot, N., "Vie privee: et le DNS alors?", (In French), | Vinot, N., "Vie privée: et le DNS alors? [Privacy: what | |||
2015, | about DNS?]", February 2015, | |||
<https://blog.imirhil.fr/vie-privee-et-le-dns-alors.html>. | <https://blog.imirhil.fr/vie-privee-et-le-dns-alors.html>. | |||
[cache-snooping-defence] | [cache-snooping-defence] | |||
ISC, "ISC Knowledge Database: DNS Cache snooping - should | ISC, "DNS Cache snooping - should I be concerned?", | |||
I be concerned?", 2018, | October 2018, <https://kb.isc.org/docs/aa-00482>. | |||
<https://kb.isc.org/docs/aa-00482>. | ||||
[castillo-garcia] | [castillo-garcia] | |||
Castillo-Perez, S. and J. Garcia-Alfaro, "Anonymous | Castillo-Perez, S. and J. Garcia-Alfaro, "Anonymous | |||
Resolution of DNS Queries", 2008, | Resolution of DNS Queries", Lecture Notes in Computer | |||
<http://deic.uab.es/~joaquin/papers/is08.pdf>. | Science, Vol. 5332, DOI 10.1007/978-3-540-88873-4_5, 2008, | |||
<https://dl.acm.org/doi/10.1007/978-3-540-88873-4_5>. | ||||
[centralisation-and-data-sovereignty] | [centralisation-and-data-sovereignty] | |||
De Filippi, P. and S. McCarthy, "Cloud Computing: | De Filippi, P. and S. McCarthy, "Cloud Computing: | |||
Centralization and Data Sovereignty", October 2012, | Centralization and Data Sovereignty", European Journal of | |||
Law and Technology, Vol. 3, No. 2, October 2012, | ||||
<https://papers.ssrn.com/sol3/ | <https://papers.ssrn.com/sol3/ | |||
papers.cfm?abstract_id=2167372>. | papers.cfm?abstract_id=2167372>. | |||
[dagon-malware] | [dagon-malware] | |||
Dagon, D., "Corrupted DNS Resolution Paths: The Rise of a | Dagon, D., "Corrupted DNS Resolution Paths: The Rise of a | |||
Malicious Resolution Authority", ISC/OARC Workshop, 2007, | Malicious Resolution Authority", ISC/OARC Workshop, 2007, | |||
<https://www.dns-oarc.net/files/workshop-2007/Dagon- | <https://www.dns-oarc.net/files/workshop-2007/Dagon- | |||
Resolution-corruption.pdf>. | Resolution-corruption.pdf>. | |||
[darkreading-dns] | [darkreading-dns] | |||
Lemos, R., "Got Malware? Three Signs Revealed In DNS | Lemos, R., "Got Malware? Three Signs Revealed In DNS | |||
Traffic", InformationWeek Dark Reading, May 2013, | Traffic", May 2013, | |||
<http://www.darkreading.com/analytics/security-monitoring/ | <https://www.darkreading.com/analytics/security- | |||
got-malware-three-signs-revealed-in-dns-traffic/d/ | monitoring/got-malware-three-signs-revealed-in-dns- | |||
d-id/1139680>. | traffic/d/d-id/1139680>. | |||
[data-protection-directive] | [data-protection-directive] | |||
European Parliament, "Directive 95/46/EC of the European | European Parliament, "Directive 95/46/EC of the European | |||
Parliament and of the council on the protection of | Parliament and of the Council of 24 October 1995 on the | |||
individuals with regard to the processing of personal data | protection of individuals with regard to the processing of | |||
and on the free movement of such data", Official Journal L | personal data and on the free movement of such data", | |||
281, pp. 0031 - 0050, November 1995, <http://eur- | Official Journal L 281, pp. 31-50, November 1995, | |||
lex.europa.eu/LexUriServ/ | <https://eur-lex.europa.eu/LexUriServ/ | |||
LexUriServ.do?uri=CELEX:31995L0046:EN:HTML>. | LexUriServ.do?uri=CELEX:31995L0046:EN:HTML>. | |||
[day-at-root] | [day-at-root] | |||
Castro, S., Wessels, D., Fomenkov, M., and K. Claffy, "A | Castro, S., Wessels, D., Fomenkov, M., and K. Claffy, "A | |||
Day at the Root of the Internet", ACM SIGCOMM Computer | Day at the Root of the Internet", ACM SIGCOMM Computer | |||
Communication Review, Vol. 38, Number 5, | Communication Review, Vol. 38, No. 5, | |||
DOI 10.1145/1452335.1452341, October 2008, | DOI 10.1145/1452335.1452341, October 2008, | |||
<http://www.sigcomm.org/sites/default/files/ccr/ | <https://www.sigcomm.org/sites/default/files/ccr/ | |||
papers/2008/October/1452335-1452341.pdf>. | papers/2008/October/1452335-1452341.pdf>. | |||
[denis-edns-client-subnet] | [denis-edns-client-subnet] | |||
Denis, F., "Security and privacy issues of edns-client- | Denis, F., "Security and privacy issues of edns-client- | |||
subnet", August 2013, | subnet", August 2013, | |||
<https://00f.net/2013/08/07/edns-client-subnet/>. | <https://00f.net/2013/08/07/edns-client-subnet/>. | |||
[ditl] CAIDA, "A Day in the Life of the Internet (DITL)", 2002, | [ditl] CAIDA, "A Day in the Life of the Internet (DITL)", | |||
<http://www.caida.org/projects/ditl/>. | <https://www.caida.org/projects/ditl/>. | |||
[dns-de-nat] | ||||
Orevi, L., Herzberg, A., Zlatokrilov, H., and D. Sigron, | ||||
"DNS-DNS: DNS-based De-NAT Scheme", January 2017, | ||||
<https://www.researchgate.net/publication/320322146_DNS- | ||||
DNS_DNS-based_De-NAT_Scheme>. | ||||
[dns-footprint] | [dns-footprint] | |||
Stoner, E., "DNS Footprint of Malware", OARC Workshop, | Stoner, E., "DNS Footprint of Malware", OARC Workshop, | |||
October 2010, <https://www.dns-oarc.net/files/workshop- | October 2010, <https://www.dns-oarc.net/files/workshop- | |||
201010/OARC-ers-20101012.pdf>. | 201010/OARC-ers-20101012.pdf>. | |||
[dns-over-encryption] | [dns-over-encryption] | |||
Lu, C., Liu, B., Li, Z., Hao, S., Duan, H., Zhang, M., | Lu, C., Liu, B., Li, Z., Hao, S., Duan, H., Zhang, M., | |||
Leng, C., Liu, Y., Zhang, Z., and J. Wu, "An End-to-End, | Leng, C., Liu, Y., Zhang, Z., and J. Wu, "An End-to-End, | |||
Large-Scale Measurement of DNS-over-Encryption", IMC | Large-Scale Measurement of DNS-over-Encryption: How Far | |||
'19 Amsterdam, Netherlands, DOI 10.1145/3355369.3355580, | Have We Come?", IMC '19: Proceedings of the Internet | |||
October 2019, | Measurement Conference, pp. 22-35, | |||
<http://dl.acm.org/citation.cfm?id=3355369.3355580>. | DOI 10.1145/3355369.3355580, October 2019, | |||
<https://dl.acm.org/citation.cfm?id=3355369.3355580>. | ||||
[dnsmezzo] | [dnsmezzo] Bortzmeyer, S., "DNSmezzo", <http://www.dnsmezzo.net/>. | |||
Bortzmeyer, S., "DNSmezzo", 2009, | ||||
<http://www.dnsmezzo.net/>. | ||||
[EDDI] EDDI, "Encrypted DNS Deployment Initiative", 2020, | [DNSOP-RESOLVER] | |||
Sood, P., Arends, R., and P. Hoffman, "DNS Resolver | ||||
Information Self-publication", Work in Progress, Internet- | ||||
Draft, draft-ietf-dnsop-resolver-information-01, 11 | ||||
February 2020, <https://datatracker.ietf.org/doc/html/ | ||||
draft-ietf-dnsop-resolver-information-01>. | ||||
[DPRIVE-DNSOQUIC] | ||||
Huitema, C., Dickinson, S., and A. Mankin, "Specification | ||||
of DNS over Dedicated QUIC Connections", Work in Progress, | ||||
Internet-Draft, draft-ietf-dprive-dnsoquic-03, 12 July | ||||
2021, <https://datatracker.ietf.org/doc/html/draft-ietf- | ||||
dprive-dnsoquic-03>. | ||||
[EDDI] EDDI, "Encrypted DNS Deployment Initiative", | ||||
<https://www.encrypted-dns.org>. | <https://www.encrypted-dns.org>. | |||
[fangming-hori-sakurai] | [fangming-hori-sakurai] | |||
Fangming, Z., Hori, Y., and K. Sakurai, "Analysis of | Zhao, F., Hori, Y., and K. Sakurai, "Analysis of Privacy | |||
Privacy Disclosure in DNS Query", 2007 International | Disclosure in DNS Query", MUE '07: Proceedings of the 2007 | |||
Conference on Multimedia and Ubiquitous Engineering (MUE | International Conference on Multimedia and Ubiquitous | |||
2007), Seoul, Korea, ISBN: 0-7695-2777-9, pp. 952-957, | Engineering, pp. 952-957, DOI 10.1109/MUE.2007.84, | |||
DOI 10.1109/MUE.2007.84, April 2007, | ISBN 0-7695-2777-9, April 2007, | |||
<http://dl.acm.org/citation.cfm?id=1262690.1262986>. | <https://dl.acm.org/citation.cfm?id=1262690.1262986>. | |||
[federrath-fuchs-herrmann-piosecny] | [federrath-fuchs-herrmann-piosecny] | |||
Federrath, H., Fuchs, K., Herrmann, D., and C. Piosecny, | Federrath, H., Fuchs, K.-P., Herrmann, D., and C. | |||
"Privacy-Preserving DNS: Analysis of Broadcast, Range | Piosecny, "Privacy-Preserving DNS: Analysis of Broadcast, | |||
Queries and Mix-based Protection Methods", Computer | Range Queries and Mix-based Protection Methods", ESORICS | |||
Security ESORICS 2011, Springer, page(s) 665-683, | 2011, pp. 665-683, DOI 10.1007/978-3-642-23822-2_36, | |||
ISBN 978-3-642-23821-5, 2011, <https://svs.informatik.uni- | ISBN 978-3-642-23822-2, 2011, <https://svs.informatik.uni- | |||
hamburg.de/publications/2011/2011-09-14_FFHP_PrivacyPreser | hamburg.de/publications/2011/2011-09-14_FFHP_PrivacyPreser | |||
vingDNS_ESORICS2011.pdf>. | vingDNS_ESORICS2011.pdf>. | |||
[getdns] getdns, "getdns - A modern asynchronous DNS API", January | [getdns] "getdns", <https://getdnsapi.net>. | |||
2020, <https://getdnsapi.net>. | ||||
[grangeia.snooping] | [grangeia.snooping] | |||
Grangeia, L., "DNS Cache Snooping or Snooping the Cache | Grangeia, L., "Cache Snooping or Snooping the Cache for | |||
for Fun and Profit", 2005, | Fun and Profit", 2005, | |||
<https://www.semanticscholar.org/paper/Cache-Snooping-or- | <https://www.semanticscholar.org/paper/Cache-Snooping-or- | |||
Snooping-the-Cache-for-Fun-and- | Snooping-the-Cache-for-Fun-and- | |||
1-Grangeia/9b22f606e10b3609eafbdcbfc9090b63be8778c3>. | 1-Grangeia/9b22f606e10b3609eafbdcbfc9090b63be8778c3>. | |||
[herrmann-reidentification] | [herrmann-reidentification] | |||
Herrmann, D., Gerber, C., Banse, C., and H. Federrath, | Herrmann, D., Gerber, C., Banse, C., and H. Federrath, | |||
"Analyzing Characteristic Host Access Patterns for Re- | "Analyzing Characteristic Host Access Patterns for Re- | |||
Identification of Web User Sessions", | Identification of Web User Sessions", Lecture Notes in | |||
DOI 10.1007/978-3-642-27937-9_10, 2012, <http://epub.uni- | Computer Science, Vol. 7127, | |||
DOI 10.1007/978-3-642-27937-9_10, 2012, <https://epub.uni- | ||||
regensburg.de/21103/1/Paper_PUL_nordsec_published.pdf>. | regensburg.de/21103/1/Paper_PUL_nordsec_published.pdf>. | |||
[I-D.ietf-dnsop-resolver-information] | ||||
Sood, P., Arends, R., and P. Hoffman, "DNS Resolver | ||||
Information Self-publication", draft-ietf-dnsop-resolver- | ||||
information-01 (work in progress), February 2020. | ||||
[I-D.ietf-dprive-bcp-op] | ||||
Dickinson, S., Overeinder, B., Rijswijk-Deij, R., and A. | ||||
Mankin, "Recommendations for DNS Privacy Service | ||||
Operators", draft-ietf-dprive-bcp-op-14 (work in | ||||
progress), July 2020. | ||||
[I-D.ietf-dprive-dnsoquic] | ||||
Huitema, C., Mankin, A., and S. Dickinson, "Specification | ||||
of DNS over Dedicated QUIC Connections", draft-ietf- | ||||
dprive-dnsoquic-01 (work in progress), October 2020. | ||||
[I-D.ietf-quic-transport] | ||||
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | ||||
and Secure Transport", draft-ietf-quic-transport-34 (work | ||||
in progress), January 2021. | ||||
[morecowbell] | [morecowbell] | |||
Grothoff, C., Wachs, M., Ermert, M., and J. Appelbaum, | Grothoff, C., Wachs, M., Ermert, M., and J. Appelbaum, | |||
"NSA's MORECOWBELL: Knell for DNS", GNUnet e.V., January | "NSA's MORECOWBELL: Knell for DNS", January 2015, <https:/ | |||
2015, <https://pdfs.semanticscholar.org/2610/2b99bdd6a258a | /pdfs.semanticscholar.org/2610/2b99bdd6a258a98740af8217ba8 | |||
98740af8217ba8da8a1e4fa.pdf>. | da8a1e4fa.pdf>. | |||
[packetq] DNS-OARC, "PacketQ, a simple tool to make SQL-queries | [packetq] DNS-OARC, "A tool that provides a basic SQL-frontend to | |||
against PCAP-files", 2011, | PCAP-files", Release 1.4.3, commit 29a8288, October 2020, | |||
<https://github.com/DNS-OARC/PacketQ>. | <https://github.com/DNS-OARC/PacketQ>. | |||
[passive-dns] | [passive-dns] | |||
Weimer, F., "Passive DNS Replication", April 2005, | Weimer, F., "Passive DNS Replication", 17th Annual FIRST | |||
Conference, April 2005, | ||||
<https://www.first.org/conference/2005/papers/florian- | <https://www.first.org/conference/2005/papers/florian- | |||
weimer-slides-1.pdf>. | weimer-slides-1.pdf>. | |||
[pitfalls-of-dns-encryption] | [pitfalls-of-dns-encryption] | |||
Shulman, H., "Pretty Bad Privacy:Pitfalls of DNS | Shulman, H., "Pretty Bad Privacy: Pitfalls of DNS | |||
Encryption", <https://dl.acm.org/citation.cfm?id=2665959>. | Encryption", WPES '14: Proceedings of the 13th Workshop on | |||
Privacy in the Electronic Society, pp. 191-200, | ||||
DOI 10.1145/2665943.2665959, November 2014, | ||||
<https://dl.acm.org/citation.cfm?id=2665959>. | ||||
[prism] Wikipedia, "PRISM (surveillance program)", July 2015, | [prism] Wikipedia, "PRISM (surveillance program)", July 2015, | |||
<https://en.wikipedia.org/w/index.php?title=PRISM_(surveil | <https://en.wikipedia.org/w/index.php?title=PRISM_(surveil | |||
lance_program)&oldid=673789455>. | lance_program)&oldid=673789455>. | |||
[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>. | |||
skipping to change at page 25, line 5 ¶ | skipping to change at line 1141 ¶ | |||
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | |||
2015, <https://www.rfc-editor.org/info/rfc7525>. | 2015, <https://www.rfc-editor.org/info/rfc7525>. | |||
[RFC7624] Barnes, R., Schneier, B., Jennings, C., Hardie, T., | [RFC7624] Barnes, R., Schneier, B., Jennings, C., Hardie, T., | |||
Trammell, B., Huitema, C., and D. Borkmann, | Trammell, B., Huitema, C., and D. Borkmann, | |||
"Confidentiality in the Face of Pervasive Surveillance: A | "Confidentiality in the Face of Pervasive Surveillance: A | |||
Threat Model and Problem Statement", RFC 7624, | Threat Model and Problem Statement", RFC 7624, | |||
DOI 10.17487/RFC7624, August 2015, | DOI 10.17487/RFC7624, August 2015, | |||
<https://www.rfc-editor.org/info/rfc7624>. | <https://www.rfc-editor.org/info/rfc7624>. | |||
[RFC7626] Bortzmeyer, S., "DNS Privacy Considerations", RFC 7626, | ||||
DOI 10.17487/RFC7626, August 2015, | ||||
<https://www.rfc-editor.org/info/rfc7626>. | ||||
[RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy | [RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy | |||
Considerations for IPv6 Address Generation Mechanisms", | Considerations for IPv6 Address Generation Mechanisms", | |||
RFC 7721, DOI 10.17487/RFC7721, March 2016, | RFC 7721, DOI 10.17487/RFC7721, March 2016, | |||
<https://www.rfc-editor.org/info/rfc7721>. | <https://www.rfc-editor.org/info/rfc7721>. | |||
[RFC7754] Barnes, R., Cooper, A., Kolkman, O., Thaler, D., and E. | [RFC7754] Barnes, R., Cooper, A., Kolkman, O., Thaler, D., and E. | |||
Nordmark, "Technical Considerations for Internet Service | Nordmark, "Technical Considerations for Internet Service | |||
Blocking and Filtering", RFC 7754, DOI 10.17487/RFC7754, | Blocking and Filtering", RFC 7754, DOI 10.17487/RFC7754, | |||
March 2016, <https://www.rfc-editor.org/info/rfc7754>. | March 2016, <https://www.rfc-editor.org/info/rfc7754>. | |||
skipping to change at page 26, line 14 ¶ | skipping to change at line 1199 ¶ | |||
[RFC8744] Huitema, C., "Issues and Requirements for Server Name | [RFC8744] Huitema, C., "Issues and Requirements for Server Name | |||
Identification (SNI) Encryption in TLS", RFC 8744, | Identification (SNI) Encryption in TLS", RFC 8744, | |||
DOI 10.17487/RFC8744, July 2020, | DOI 10.17487/RFC8744, July 2020, | |||
<https://www.rfc-editor.org/info/rfc8744>. | <https://www.rfc-editor.org/info/rfc8744>. | |||
[RFC8890] Nottingham, M., "The Internet is for End Users", RFC 8890, | [RFC8890] Nottingham, M., "The Internet is for End Users", RFC 8890, | |||
DOI 10.17487/RFC8890, August 2020, | DOI 10.17487/RFC8890, August 2020, | |||
<https://www.rfc-editor.org/info/rfc8890>. | <https://www.rfc-editor.org/info/rfc8890>. | |||
[RFC8932] Dickinson, S., Overeinder, B., van Rijswijk-Deij, R., and | ||||
A. Mankin, "Recommendations for DNS Privacy Service | ||||
Operators", BCP 232, RFC 8932, DOI 10.17487/RFC8932, | ||||
October 2020, <https://www.rfc-editor.org/info/rfc8932>. | ||||
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | ||||
Multiplexed and Secure Transport", RFC 9000, | ||||
DOI 10.17487/RFC9000, May 2021, | ||||
<https://www.rfc-editor.org/info/rfc9000>. | ||||
[ripe-qname-measurements] | [ripe-qname-measurements] | |||
Vries, W., "Making the DNS More Private with QNAME | de Vries, W., "Making the DNS More Private with QNAME | |||
Minimisation", April 2019, | Minimisation", April 2019, | |||
<https://labs.ripe.net/Members/wouter_de_vries/make-dns-a- | <https://labs.ripe.net/Members/wouter_de_vries/make-dns-a- | |||
bit-more-private-with-qname-minimisation>. | bit-more-private-with-qname-minimisation>. | |||
[sidn-entrada] | [sidn-entrada] | |||
Hesselman, C., Jansen, J., Wullink, M., Vink, K., and M. | Hesselman, C., Jansen, J., Wullink, M., Vink, K., and M. | |||
Simon, "A privacy framework for 'DNS big data' | Simon, "A privacy framework for 'DNS big data' | |||
applications", November 2014, | applications", November 2014, | |||
<https://www.sidnlabs.nl/downloads/ | <https://www.sidnlabs.nl/downloads/ | |||
yBW6hBoaSZe4m6GJc_0b7w/2211058ab6330c7f3788141ea19d3db7/ | yBW6hBoaSZe4m6GJc_0b7w/2211058ab6330c7f3788141ea19d3db7/ | |||
SIDN_Labs_Privacyraamwerk_Position_Paper_V1.4_ENG.pdf>. | SIDN_Labs_Privacyraamwerk_Position_Paper_V1.4_ENG.pdf>. | |||
[thomas-ditl-tcp] | [thomas-ditl-tcp] | |||
Thomas, M. and D. Wessels, "An Analysis of TCP Traffic in | Thomas, M. and D. Wessels, "An Analysis of TCP Traffic in | |||
Root Server DITL Data", DNS-OARC 2014 Fall Workshop, | Root Server DITL Data", DNS-OARC 2014 Fall Workshop, | |||
October 2014, <https://indico.dns- | October 2014, <https://indico.dns- | |||
oarc.net/event/20/session/2/contribution/15/material/ | oarc.net/event/20/session/2/contribution/15/material/ | |||
slides/1.pdf>. | slides/1.pdf>. | |||
[tor-leak] | [tor-leak] Tor, "Tor FAQs: I keep seeing these warnings about SOCKS | |||
Tor, "DNS leaks in Tor", 2013, | and DNS information leaks. Should I worry?", | |||
<https://www.torproject.org/docs/ | <https://www.torproject.org/docs/ | |||
faq.html.en#WarningsAboutSOCKSandDNSInformationLeaks>. | faq.html.en#WarningsAboutSOCKSandDNSInformationLeaks>. | |||
[yanbin-tsudik] | [yanbin-tsudik] | |||
Yanbin, L. and G. Tsudik, "Towards Plugging Privacy Leaks | Yanbin, L. and G. Tsudik, "Towards Plugging Privacy Leaks | |||
in the Domain Name System", October 2009, | in Domain Name System", June 2010, | |||
<http://arxiv.org/abs/0910.2472>. | <https://arxiv.org/abs/0910.2472>. | |||
14.3. URIs | ||||
[1] https://lists.dns-oarc.net/pipermail/dns- | ||||
operations/2016-January/014143.html | ||||
[2] http://netres.ec/?b=11B99BD | ||||
[3] https://developers.google.com/speed/public-dns | ||||
[4] https://developers.cloudflare.com/1.1.1.1/setting-up-1.1.1.1/ | ||||
[5] https://www.quad9.net | ||||
[6] https://developers.google.com/speed/public-dns/privacy | ||||
[7] https://www.alexa.com/topsites | ||||
[8] https://theintercept.com/document/2014/03/12/nsa-gchqs- | ||||
quantumtheory-hacking-tactics/ | ||||
[9] https://www.eugdpr.org/the-regulation.html | ||||
Appendix A. Updates since RFC7626 | ||||
Update many references; Added discussions of encrypted transports | ||||
including DoT and DoH; Added section on DNS payload; Added section on | ||||
authentication of servers; Added section on blocking of services. | ||||
With the publishing of RFC7816 on QNAME minimisation, text, | ||||
references, and initial attempts to measure deployment were added to | ||||
reflect this. The text and references on the Snowden revelations | ||||
were updated. | ||||
The "Risks overview" section was changed to "Scope" to help clarify | ||||
the risks being considered. Text was adding on cellular network DNS, | ||||
blocking and security. Considerations for recursive resolvers were | ||||
collected and placed together. Addded a discussion on resolver | ||||
selection. | ||||
Appendix B. Changelog | ||||
draft-ietf-dprive-rfc7626-bis-08 | ||||
o Second batch of Editorial updates from IESG last call | ||||
draft-ietf-dprive-rfc7626-bis-07 | ||||
o First batch of Editorial updates from IESG last call | ||||
draft-ietf-dprive-rfc7626-bis-06 | ||||
o Removed Sara and Stephane as editors, made chairs as Editor. | ||||
o Replaced the text in 6.1.1.2 with the text from the -04 version. | ||||
o Clarified text about resolver selection in 6.1.1. | ||||
draft-ietf-dprive-rfc7626-bis-05 | ||||
o Editorial updates from second IESG last call | ||||
o Section renumbering as suggested by Vittorio Bertola | ||||
draft-ietf-dprive-rfc7626-bis-04 | ||||
o Tsvart review: Add reference to DNS-over-QUIC, fix typo. | ||||
o Secdir review: Add text in Section 3 on devices using many | ||||
networks. | ||||
o Update bullet in 3.4.1 on cellular encryption. | ||||
o Section 3.5.1.1 - re-work the section to try to address multiple | ||||
comments. | ||||
o Section 3.5.1.4 - remove this section as now covered by 3.5.1.1. | ||||
o Section 3.5.1.5.2 - Remove several paragraphs and more directly | ||||
reference RFC8484 by including bullet points quoting text from | ||||
Section 8.2 of RFC8484. Retain the last 2 paragraphs as they are | ||||
information for users, not implementors. | ||||
o Section 3.4.2 - some minor updates made based on specific | ||||
comments. | ||||
draft-ietf-dprive-rfc7626-bis-03 | ||||
o Address 2 minor nits (typo in section 3.4.1 and adding an IANA | ||||
section) | ||||
o Minor updates from AD review | ||||
draft-ietf-dprive-rfc7626-bis-02 | ||||
o Numerous editorial corrections thanks to Mohamed Boucadair and | ||||
* Minor additions to Scope section | ||||
* New text on cellular network DNS | ||||
o Additional text from Vittorio Bertola on blocking and security | ||||
draft-ietf-dprive-rfc7626-bis-01 | ||||
o Re-structure section 3.5 (was 2.5) | ||||
* Collect considerations for recursive resolvers together | ||||
* Re-work several sections here to clarify their context (e.g., | ||||
'Rogue servers' becomes 'Active attacks on resolver | ||||
configuration') | ||||
* Add discussion of resolver selection | ||||
o Update text and old reference on Snowdon revelations. | ||||
o Add text on and references to QNAME minimisation RFC and | ||||
deployment measurements | ||||
o Correct outdated references | ||||
o Clarify scope by adding a Scope section (was Risks overview) | ||||
o Clarify what risks are considered in section 3.4.2 | ||||
draft-ietf-dprive-rfc7626-bis-00 | ||||
o Rename after WG adoption | ||||
o Use DoT acronym throughout | ||||
o Minor updates to status of deployment and other drafts | ||||
draft-bortzmeyer-dprive-rfc7626-bis-02 | ||||
o Update various references and fix some nits. | ||||
draft-bortzmeyer-dprive-rfc7626-bis-01 | ||||
o Update reference for dickinson-bcp-op to draft-dickinson-dprive- | ||||
bcp-op | ||||
draft-borztmeyer-dprive-rfc7626-bis-00: | Appendix A. Updates since RFC 7626 | |||
Initial commit. Differences to RFC7626: | Many references were updated. Discussions of encrypted transports, | |||
including DoT and DoH, and sections on DNS payload, authentication of | ||||
servers, and blocking of services were added. With the publishing of | ||||
[RFC7816] on QNAME minimization, text, references, and initial | ||||
attempts to measure deployment were added to reflect this. The text | ||||
and references on the Snowden revelations were updated. | ||||
o Update many references | The "Risks Overview" section was changed to "Scope" to help clarify | |||
the risks being considered. Text on cellular network DNS, blocking, | ||||
and security was added. Considerations for recursive resolvers were | ||||
collected and placed together. A discussion on resolver selection | ||||
was added. | ||||
o Add discussions of encrypted transports including DoT and DoH | Acknowledgments | |||
o Add section on DNS payload | Thanks to Nathalie Boulvard and to the CENTR members for the original | |||
work that led to this document. Thanks to Ondrej Sury for the | ||||
interesting discussions. Thanks to Mohsen Souissi and John Heidemann | ||||
for proofreading and to Paul Hoffman, Matthijs Mekking, Marcos Sanz, | ||||
Francis Dupont, Allison Mankin, and Warren Kumari for proofreading, | ||||
providing technical remarks, and making many readability | ||||
improvements. Thanks to Dan York, Suzanne Woolf, Tony Finch, Stephen | ||||
Farrell, Peter Koch, Simon Josefsson, and Frank Denis for good | ||||
written contributions. Thanks to Vittorio Bertola and Mohamed | ||||
Boucadair for a detailed review of the -bis. And thanks to the IESG | ||||
members for the last remarks. | ||||
o Add section on authentication of servers | Contributions | |||
o Add section on blocking of services | Sara Dickinson and Stephane Bortzmeyer were the original authors of | |||
the document, and their contribution to the initial draft of this | ||||
document is greatly appreciated. | ||||
Author's Address | Author's Address | |||
Tim Wicinski (editor) | Tim Wicinski (editor) | |||
Elkins, WV 26241 | Elkins, WV 26241 | |||
USA | United States of America | |||
Email: tjw.ietf@gmail.com | Email: tjw.ietf@gmail.com | |||
End of changes. 168 change blocks. | ||||
570 lines changed or deleted | 457 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/ |