| < draft-ietf-dprive-rfc7626-bis-04.txt | draft-ietf-dprive-rfc7626-bis-05.txt > | |||
|---|---|---|---|---|
| dprive S. Bortzmeyer | dprive S. Bortzmeyer | |||
| Internet-Draft AFNIC | Internet-Draft AFNIC | |||
| Obsoletes: 7626 (if approved) S. Dickinson | Obsoletes: 7626 (if approved) S. Dickinson | |||
| Intended status: Informational Sinodun IT | Intended status: Informational Sinodun IT | |||
| Expires: July 19, 2020 January 16, 2020 | Expires: November 5, 2020 May 4, 2020 | |||
| DNS Privacy Considerations | DNS Privacy Considerations | |||
| draft-ietf-dprive-rfc7626-bis-04 | draft-ietf-dprive-rfc7626-bis-05 | |||
| 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 is intended to be an analysis of the | the DNS by Internet users. It is intended to be an analysis of the | |||
| present situation and does not prescribe solutions. This document | present situation and does not prescribe solutions. This document | |||
| obsoletes RFC 7626. | obsoletes RFC 7626. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 34 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on July 19, 2020. | This Internet-Draft will expire on November 5, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
| skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
| 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 | |||
| 2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. The Alleged Public Nature of DNS Data . . . . . . . . . . 5 | 4. Risks in the DNS Data . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2. Data in the DNS Request . . . . . . . . . . . . . . . . . 6 | 4.1. The Alleged Public Nature of DNS Data . . . . . . . . . . 6 | |||
| 3.2.1. Data in the DNS payload . . . . . . . . . . . . . . . 7 | 4.2. Data in the DNS Request . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. Cache Snooping . . . . . . . . . . . . . . . . . . . . . 8 | 4.2.1. Data in the DNS Payload . . . . . . . . . . . . . . . 8 | |||
| 3.4. On the Wire . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Cache Snooping . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.4.1. Unencrypted Transports . . . . . . . . . . . . . . . 8 | 5. Risks On the Wire . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.4.2. Encrypted Transports . . . . . . . . . . . . . . . . 10 | 5.1. Unencrypted Transports . . . . . . . . . . . . . . . . . 8 | |||
| 3.5. In the Servers . . . . . . . . . . . . . . . . . . . . . 11 | 5.2. Encrypted Transports . . . . . . . . . . . . . . . . . . 10 | |||
| 3.5.1. In the Recursive Resolvers . . . . . . . . . . . . . 11 | 6. Risks in the Servers . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.5.2. In the Authoritative Name Servers . . . . . . . . . . 15 | 6.1. In the Recursive Resolvers . . . . . . . . . . . . . . . 12 | |||
| 3.6. Re-identification and Other Inferences . . . . . . . . . 16 | 6.1.1. Resolver Selection . . . . . . . . . . . . . . . . . 12 | |||
| 3.7. More Information . . . . . . . . . . . . . . . . . . . . 17 | 6.1.2. Active Attacks on Resolver Configuration . . . . . . 14 | |||
| 4. Actual "Attacks" . . . . . . . . . . . . . . . . . . . . . . 17 | 6.1.3. Blocking of User Selected DNS Resolution Services . . 15 | |||
| 5. Legalities . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 6.1.4. Encrypted Transports and Recursive Resolvers . . . . 15 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 6.2. In the Authoritative Name Servers . . . . . . . . . . . . 16 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 7. Other risks . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 7.1. Re-identification and Other Inferences . . . . . . . . . 17 | |||
| 9. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 7.2. More Information . . . . . . . . . . . . . . . . . . . . 18 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 8. Actual "Attacks" . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 21 | 9. Legalities . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 21 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | |||
| 10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 13. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 22 | ||||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 22 | ||||
| 14.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 28 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 | ||||
| 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 | often ignored or misunderstood by Internet users (and even by many | |||
| skipping to change at page 3, line 25 ¶ | skipping to change at page 3, line 32 ¶ | |||
| 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. | |||
| Because DNS relies on caching heavily, the algorithm described above | DNS relies on caching heavily, so the algorithm described above is | |||
| 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 a few seconds later the stub | |||
| resolver asks the recursive resolver, "What are the SRV records of | resolver asks the recursive resolver, "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.) | |||
| skipping to change at page 5, line 31 ¶ | skipping to change at page 5, line 34 ¶ | |||
| 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 cache | |||
| poisoning) are also out of scope. | 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 | |||
| This section outlines the privacy considerations associated with | The following four sections outline the privacy considerations | |||
| different aspects of the DNS for the end user. When reading this | associated with different aspects of the DNS for the end user. When | |||
| section it needs to be kept in mind that many of the considerations | reading these sections it needs to be kept in mind that many of the | |||
| (for example, recursive resolver and transport protocol) can be | considerations (for example, recursive resolver and transport | |||
| specific to the network context that a device is using at a given | protocol) can be specific to the network context that a device is | |||
| point in time. A user may have many devices and each device might | using at a given point in time. A user may have many devices and | |||
| utilize many different networks (e.g. home, work, public or cellular) | each device might utilize many different networks (e.g. home, work, | |||
| over a period of time or even concurrently. An exhaustive analysis | public or cellular) over a period of time or even concurrently. An | |||
| of the privacy considerations for an individual user would need to | exhaustive analysis of the privacy considerations for an individual | |||
| take into account the set of devices used and the multiple dynamic | user would need to take into account the set of devices used and the | |||
| contexts of each device. This document does not attempt such a | multiple dynamic contexts of each device. This document does not | |||
| complex analysis, instead it presents an overview of the various | attempt such a complex analysis, instead it presents an overview of | |||
| considerations that could form the basis of such an analysis. | the various considerations that could form the basis of such an | |||
| analysis. | ||||
| 3.1. The Alleged Public Nature of DNS Data | 4. Risks in the DNS Data | |||
| 4.1. The Alleged Public Nature of DNS Data | ||||
| It has long been claimed that "the data in the DNS is public". While | It has long been claimed that "the data in the DNS is public". While | |||
| this sentence makes sense for an Internet-wide lookup system, there | this sentence makes sense for an Internet-wide lookup system, 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 | |||
| skipping to change at page 6, line 18 ¶ | skipping to change at page 6, line 29 ¶ | |||
| existence). In other words: one needs to know what to ask for, in | existence). In other words: one needs to know what to ask for, in | |||
| order to receive a response. The zone transfer QTYPE [RFC5936] is | order to receive a response. The zone transfer QTYPE [RFC5936] is | |||
| often blocked or restricted to authenticated/authorized access to | often blocked or restricted to authenticated/authorized access to | |||
| enforce this difference (and maybe for other reasons). | enforce this difference (and maybe for other reasons). | |||
| Another differentiation to be considered is between the DNS data | Another differentiation to be considered is between the DNS data | |||
| itself and a particular transaction (i.e., a DNS name lookup). DNS | itself and a particular transaction (i.e., a DNS name lookup). DNS | |||
| data and the results of a DNS query are public, within the boundaries | data and the results of a DNS query are public, within the boundaries | |||
| described above, and may not have any confidentiality requirements. | described above, and may not have any confidentiality requirements. | |||
| However, the same is not true of a single transaction or a sequence | However, the same is not true of a single transaction or a sequence | |||
| of transactions; that transaction is not / should not be public. A | of transactions; those transaction are not / should not be public. A | |||
| typical example from outside the DNS world is: the web site of | single transactions reveals both the originator of the query and the | |||
| Alcoholics Anonymous is public; the fact that you visit it should not | query contents which potentially leaks sensitive information about a | |||
| be. | specific user. A typical example from outside the DNS world is: the | |||
| web site of Alcoholics Anonymous is public; the fact that you visit | ||||
| it should not be. Furthermore, the ability to link queries reveals | ||||
| information about individual use patterns. | ||||
| 3.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 | |||
| skipping to change at page 7, line 22 ¶ | skipping to change at page 7, line 35 ¶ | |||
| 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 is typically the IP address | source address in an HTTP connection. It is typically the IP address | |||
| of the recursive resolver that, in a way, "hides" the real user. | of the recursive resolver that, in a way, "hides" the real user. | |||
| However, hiding does not always work. Sometimes EDNS(0) Client | However, hiding does not always work. Sometimes EDNS(0) Client | |||
| subnet [RFC7871] is used (see its privacy analysis in | subnet [RFC7871] is used (see its 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 her machine. In both cases, the IP address is | recursive resolver on her machine. In both cases, the IP address | |||
| as sensitive as it is for HTTP [sidn-entrada]. | originating queries to the authoritative server is as sensitive as it | |||
| 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 | |||
| and comprise metadata about the host, user, or application that | and comprise metadata about the host, user, or application that | |||
| originated them. | originated them. | |||
| 3.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 [RFC7871] while widely used | |||
| is only of Category Informational). | is only of Category Informational). | |||
| 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), they are not designed to | once a client's IP address changes), 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 MAC addresses [1] and even user names | |||
| being inserted in non-standard EDNS(0) options for stub to resolver | being inserted in non-standard EDNS(0) options [RFC6891] for stub to | |||
| communications to support proprietary functionality implemented at | resolver communications to support proprietary functionality | |||
| the resolver (e.g., parental filtering). | implemented at the resolver (e.g., parental filtering). | |||
| 3.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 counter | |||
| measures have already been developed and deployed. | measures have already been developed and deployed | |||
| [cache-snooping-defence]. | ||||
| 3.4. On the Wire | 5. Risks On the Wire | |||
| 3.4.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, while | |||
| the HTTP traffic will be encrypted, the DNS exchange prior to it will | the HTTP traffic will be encrypted, the DNS exchange prior to it will | |||
| not be. When other protocols will become more and more privacy-aware | not be. When other protocols will become more and more privacy-aware | |||
| and secured against surveillance (e.g., [RFC8446], | and secured against surveillance (e.g., [RFC8446], | |||
| [I-D.ietf-quic-transport]), the use of unencrypted transports for DNS | [I-D.ietf-quic-transport]), the use of unencrypted transports for DNS | |||
| may become "the weakest link" in privacy. It is noted that at the | may become "the weakest link" in privacy. It is noted that at the | |||
| skipping to change at page 9, line 32 ¶ | skipping to change at page 9, line 47 ¶ | |||
| o The recursive resolver can be in the IAP network. For most | o The recursive resolver can be in the IAP network. For most | |||
| residential users and potentially other networks, the typical case | residential users and potentially other networks, the typical case | |||
| is for the end user's device to be configured (typically | is for the end user's device to be configured (typically | |||
| automatically through DHCP or RA options) with the addresses of | automatically through DHCP or RA options) with the addresses of | |||
| the DNS proxy in the CPE, which in turns points to the DNS | the DNS proxy in the CPE, which in turns points to the DNS | |||
| recursive resolvers at the IAP. The attack surface for on-the- | recursive resolvers at the IAP. The attack surface for on-the- | |||
| wire attacks is therefore from the end user system across the | wire attacks is therefore from the end user system across the | |||
| local network and across the IAP network to the IAP's recursive | local network and across the IAP network to the IAP's recursive | |||
| resolvers. | resolvers. | |||
| o The recursive resolver can be a public DNS service. Some machines | o The recursive resolver can be a public DNS service (or a privately | |||
| 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 end user may have | operated by Google Public DNS or OpenDNS. The end 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 | |||
| end user's connection and the public DNS service. | end user's connection and the public DNS service. It can be noted | |||
| that if the user selects a single resolver with a small client | ||||
| population (even when using an encrypted transport) it can | ||||
| actually serve to aid tracking of that user as they move across | ||||
| network environment. | ||||
| 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 modern | |||
| cellular network is | cellular network is | |||
| o directly configured with only the recursive resolvers of the IAP | o directly configured with only the recursive resolvers of the IAP | |||
| and | and | |||
| o afforded some level of protection against some types of | o 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. | |||
| 3.4.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 there are still some privacy | |||
| attacks possible. This section enumerates the residual privacy risks | attacks 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 clear text/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 | There are some general examples, for example, certain studies have | |||
| highlighted that IPv4 TTL, IPv6 Hop Limit, or TCP Window sizes os- | highlighted that IPv4 TTL, IPv6 Hop Limit, or TCP Window sizes os- | |||
| fingerprint [2] values can be used to fingerprint client OS's or that | fingerprint [2] values can be used to fingerprint client OS's or that | |||
| various techniques can be used to de-NAT DNS queries dns-de-nat [3]. | various techniques can be used to de-NAT DNS queries dns-de-nat [3]. | |||
| Note that even when using encrypted transports the use of clear text | Note that even when using encrypted transports the use of clear text | |||
| 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] with TLS 1.2. | users' connections e.g. using TCP Fast Open [RFC7413]. | |||
| More specifically, (since the deployment of encrypted transports is | ||||
| not widespread at the time of writing) users wishing to use encrypted | ||||
| transports for DNS may in practice be limited in the resolver | ||||
| services available. Given this, the choice of a user to configure a | ||||
| single resolver (or a fixed set of resolvers) and an encrypted | ||||
| transport to use in all network environments can actually serve to | ||||
| identify the user as one that desires privacy and can provide an | ||||
| added mechanism to track them as they move across network | ||||
| environments. | ||||
| Implementations that support encrypted transports also commonly re- | Implementations that support encrypted transports also commonly re- | |||
| use sessions for multiple DNS queries to optimize performance (e.g. | use connections for multiple DNS queries to optimize performance | |||
| via DNS pipelining or HTTPS multiplexing). Default configuration | (e.g. via DNS pipelining or HTTPS multiplexing). Default | |||
| options for encrypted transports could in principle fingerprint a | configuration options for encrypted transports could in principle | |||
| specific client application. For example: | fingerprint a specific client application. For example: | |||
| o TLS version or cipher suite selection | o TLS version or cipher suite selection | |||
| o session resumption | o session resumption | |||
| o the maximum number of messages to send or | o the maximum number of messages to send or | |||
| o a maximum connection time before closing a connections and re- | o a maximum connection time before closing a connections and re- | |||
| opening. | opening. | |||
| skipping to change at page 11, line 19 ¶ | skipping to change at page 11, line 28 ¶ | |||
| Whilst there are known attacks on older versions of TLS the most | Whilst 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. | |||
| 3.5. 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 again [RFC6973], "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 | |||
| skipping to change at page 11, line 48 ¶ | skipping to change at page 12, line 8 ¶ | |||
| 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]). | |||
| 3.5.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. | |||
| 3.5.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, which may have strong, medium, or weak privacy policies | resolver. The choice by a user to join a particular network (e.g. by | |||
| depending on the network. Privacy policies for these servers may or | physically plugging in a cable or selecting a network in a OS | |||
| may not be available and users need to be aware that privacy | dialogue) typically updates a number of system resources - these can | |||
| guarantees will vary with network. | include IP addresses, availability of IPv4/IPv6, DHCP server, and DNS | |||
| resolver. These individual changes, including the change in DNS | ||||
| resolver, are not normally communicated directly to the user by the | ||||
| OS when the network is joined. The choice of network has | ||||
| historically determined the default system DNS resolver selection; | ||||
| the two are directly coupled in this model. | ||||
| The vast majority of users do not change their default system DNS | ||||
| settings and so implicitly accept the network settings for DNS. The | ||||
| network resolvers have therefore historically been the sole | ||||
| destination for all of the DNS queries from a device. These | ||||
| resolvers may have strong, medium, or weak privacy policies depending | ||||
| on the network. Privacy policies for these servers may or may not be | ||||
| available and users need to be aware that privacy guarantees will | ||||
| vary with network. | ||||
| All major OS's expose the system DNS settings and allow users to | ||||
| manually override them if desired. | ||||
| More recently, some networks and end users have actively chosen to | More recently, some networks and end users have actively chosen to | |||
| use a large public resolver, e.g., Google Public DNS [4], Cloudflare | use a large public resolver, e.g., Google Public DNS [4], Cloudflare | |||
| [5], or Quad9 [6]. There can be many reasons: cost considerations | [5], or Quad9 [6]. There can be many reasons: cost considerations | |||
| for network operators, better reliability or anti-censorship | for network operators, better reliability or anti-censorship | |||
| considerations are just a few. Such services typically do provide a | considerations are just a few. Such services typically do provide a | |||
| privacy policy and the end user can get an idea of the data collected | privacy policy and the end user can get an idea of the data collected | |||
| by such operators by reading one e.g., Google Public DNS - Your | by such operators by reading one e.g., Google Public DNS - Your | |||
| Privacy [7]. | Privacy [7]. | |||
| 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 which can also vary by | |||
| geographic region. These include: | geographic region. These include: | |||
| o ISP outsourcing, including to third party and public resolvers | o ISP outsourcing, including to third party and public resolvers | |||
| o regional market domination by one or only a few ISPs | o regional market domination by one or only a few ISPs | |||
| o popular applications directing DNS traffic by default to specific | ||||
| dominant 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 end users are highly dependent on the privacy policies and | for end users are additionally highly dependent on the privacy | |||
| practices of those entities. Many of the issues around | policies and practices of those entities. Many of the issues around | |||
| centralization are discussed in | centralization are discussed in | |||
| [centralisation-and-data-sovereignty]. | [centralisation-and-data-sovereignty]. | |||
| 3.5.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 | Whilst 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 which 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 | |||
| [I-D.ietf-dnsop-resolver-information]. Note that an increasing | [I-D.ietf-dnsop-resolver-information]. Note that an increasing | |||
| numbers of ISPs are deploying encrypted DNS and publishing DNS | numbers of ISPs are deploying encrypted DNS, for example see the | |||
| privacy polices, for example see the Encrypted DNS Deployment | Encrypted DNS Deployment Initiative [EDDI]. | |||
| Initiative [EDDI]. | ||||
| 3.5.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. | |||
| Users will only be aware of and have the ability to control such | For users to have the ability to manage the DNS resolver settings for | |||
| settings if applications provide the following functions: | each individual application in a similar fashion to the OS DNS | |||
| settings, each application would need to expose the default settings | ||||
| to the user, provide a configuration interface to change them, and | ||||
| support configuration of user specified resolvers. | ||||
| o communicate clearly the change in default to users | The system resolver resolution path is sometimes used to configure | |||
| additional DNS controls e.g. query logging, domain based query re- | ||||
| direction or filtering. If all of the applications used on a given | ||||
| device can be configured to use the system resolver, such controls | ||||
| need only be configured on the system resolver resolution path. | ||||
| However if applications offer neither the option to use the system | ||||
| resolver nor equivalent application-specific DNS controls then users | ||||
| should take note that for queries generated by such an application | ||||
| they may not be able to | ||||
| o provide configuration options to change the default | o directly inspect the DNS queries (e.g. if they are encrypted), or | |||
| o provide configuration options to always use the system resolver | o manage them to set DNS controls across the device which are | |||
| consistent with the system resolver controls. | ||||
| Note that if a client device is compromised by a malicious | ||||
| application, the attacker can use application-specific DNS resolvers, | ||||
| transport and controls of its own choosing. | ||||
| 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 on | |||
| a number of issues related to application-specific DNS settings. | a number of issues related to application-specific DNS settings. | |||
| 3.5.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 be | |||
| used in the absence of an active attack) and that the potential | used in the absence of an active attack) and that the potential | |||
| attacker was purely passive. But, in reality, we can have active | attacker was purely passive. But, in reality, we can have 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. | |||
| 3.5.1.3. Blocking of User Selected DNS Resolution Services | 6.1.3. Blocking of User Selected DNS Resolution Services | |||
| User privacy can also be at risk if there is blocking (by local | User privacy can also be at risk if there is blocking (by local | |||
| network operators or more general mechanisms) of access to remote | network operators or more general mechanisms) of access to remote | |||
| recursive servers that offer encrypted transports when the local | recursive servers that offer encrypted transports when the local | |||
| resolver does not offer encryption and/or has very poor privacy | resolver does not offer encryption and/or has very poor privacy | |||
| policies. For example, active blocking of port 853 for DoT or of | policies. For example, active blocking of port 853 for DoT or of | |||
| specific IP addresses could restrict the resolvers available to the | specific IP addresses could restrict the resolvers available to the | |||
| user. The extent of the risk to end user privacy is highly dependent | user. The extent of the risk to end user privacy is highly dependent | |||
| on the specific network and user context; a user on a network that is | on the specific network and user context; a user on a network that is | |||
| known to perform surveillance would be compromised if they could not | known to perform surveillance would be compromised if they could not | |||
| skipping to change at page 14, line 31 ¶ | skipping to change at page 15, line 31 ¶ | |||
| 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 know | Section 4.3 of [RFC7754]. Such blocklists often include servers know | |||
| to be used for malware, bots or other security risks. In order to | to be used for malware, bots or other security risks. In order to | |||
| prevent circumvention of their blocking policies, some networks also | prevent circumvention of their blocking policies, some networks also | |||
| block access to resolvers with incompatible policies. | block access to resolvers with incompatible policies. | |||
| It is also noted that attacks on remote resolver services, e.g., DDoS | 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 | could force users to switch to other services that do not offer | |||
| encrypted transports for DNS. | encrypted transports for DNS. | |||
| 3.5.1.4. Encrypted Transports and Recursive Resolvers | 6.1.4. Encrypted Transports and Recursive Resolvers | |||
| 3.5.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 3.4.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. | |||
| 3.5.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 consideration 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: | |||
| o HTTPS presents new considerations for correlation, such as | o HTTPS presents new considerations for correlation, such as | |||
| skipping to change at page 15, line 25 ¶ | skipping to change at page 16, line 25 ¶ | |||
| o Implementations are advised to expose the minimal set of data | o 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, there might be others that provide feature rich data flows | |||
| where the low-level origin of the DNS query is easily identifiable. | where the low-level origin of the DNS query is easily identifiable. | |||
| Some implementations have, in fact, chosen restrict the use of the | Some implementations have, in fact, chosen to restrict the use of the | |||
| 'User-Agent' header so that resolver operators cannot identify the | 'User-Agent' header so that resolver operators cannot identify the | |||
| specific application that is originating the DNS queries. | 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. | |||
| 3.5.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, observation capabilities | |||
| of authoritative name servers are limited by caching; they see only | of authoritative name servers are limited by caching; they see only | |||
| the requests for which the answer was not in the cache. For | the requests for which the answer was not in the cache. For | |||
| aggregated statistics ("What is the percentage of LOC queries?"), | 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 | minimisation [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 end user typically has some legal/contractual link with the | Also, the end 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 (he has chosen the IAP, or he has chosen to use a | |||
| given public resolver), while having no control and perhaps no | 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 | |||
| skipping to change at page 16, line 42 ¶ | skipping to change at page 17, line 42 ¶ | |||
| when doing a security analysis. | 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 [8], one DNS provider hosts today 10% of the | among the Alexa Top 100K [8], one DNS provider hosts today 10% of the | |||
| domains. The ten most important DNS providers host together one | domains. The ten most important DNS providers host together one | |||
| third of the domains. With the control (or the ability to sniff the | third of the domains. With the control (or the ability to sniff the | |||
| traffic) of a few name servers, you can gather a lot of information. | traffic) of a few name servers, you can gather a lot of information. | |||
| 3.6. Re-identification and Other Inferences | 7. Other risks | |||
| 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 he/she directly collects | |||
| but also to the results of various inferences about this data. The | but also to the results of various inferences about this data. The | |||
| term 'observer' here is used very generally, it might be one that is | term 'observer' here is used very generally, it might be one that is | |||
| passively observing cleartext DNS traffic, one in the network that is | passively observing cleartext DNS traffic, one in the network that is | |||
| actively attacking the user by re-directing DNS resolution, or it | actively attacking the user by re-directing DNS resolution, or it | |||
| might be a local or remote resolver operator. | 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 | |||
| skipping to change at page 17, line 26 ¶ | skipping to change at page 18, line 29 ¶ | |||
| 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 work in progress | The IAB privacy and security program also have a work in progress | |||
| [RFC7624] that considers such inference-based attacks in a more | [RFC7624] that considers such inference-based attacks in a more | |||
| general framework. | general framework. | |||
| 3.7. 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] (about | |||
| the risk of privacy leak through DNS) and in a few academic papers: | the risk of privacy leak through DNS) and in a few academic papers: | |||
| [yanbin-tsudik], [castillo-garcia], [fangming-hori-sakurai], and | [yanbin-tsudik], [castillo-garcia], [fangming-hori-sakurai], and | |||
| [federrath-fuchs-herrmann-piosecny]. | [federrath-fuchs-herrmann-piosecny]. | |||
| 4. 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 | |||
| skipping to change at page 18, line 20 ¶ | skipping to change at page 19, line 23 ¶ | |||
| 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, which uses a dedicated | |||
| covert monitoring infrastructure to actively query DNS servers and | covert monitoring infrastructure to actively query DNS servers and | |||
| perform HTTP requests to obtain meta information about services and | perform HTTP requests to obtain meta information about services and | |||
| to check their availability. Also the QUANTUMTHEORY [9] project | to check their availability. Also the QUANTUMTHEORY [9] project | |||
| which includes detecting lookups for certain addresses and injecting | which includes detecting lookups for certain addresses and injecting | |||
| bogus replies is another good example showing that the lack of | bogus replies is another good example showing that the lack of | |||
| privacy protections in the DNS is actively exploited. | privacy protections in the DNS is actively exploited. | |||
| 5. 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 | |||
| [data-protection-directive] or GDPR [10] applicable in the European | [data-protection-directive] or GDPR [10] applicable in the European | |||
| Union in the context of DNS traffic data is not an easy task, and we | Union in the context of DNS traffic data is not an easy task, and we | |||
| do not know a court precedent here. See an interesting analysis in | do not know a court precedent here. See an interesting analysis in | |||
| [sidn-entrada]. | [sidn-entrada]. | |||
| 6. Security Considerations | 10. Security Considerations | |||
| This document is entirely about security, more precisely privacy. It | This document is entirely about security, more precisely privacy. It | |||
| just lays out the problem; it does not try to set requirements (with | just lays out the problem; it does not try to set requirements (with | |||
| the choices and compromises they imply), much less define solutions. | the choices and compromises they imply), much less define solutions. | |||
| Possible solutions to the issues described here are discussed in | Possible solutions to the issues described here are discussed in | |||
| other documents (currently too many to all be mentioned); see, for | other documents (currently too many to all be mentioned); see, for | |||
| instance, 'Recommendations for DNS Privacy Operators' | instance, 'Recommendations for DNS Privacy Operators' | |||
| [I-D.ietf-dprive-bcp-op]. | [I-D.ietf-dprive-bcp-op]. | |||
| 7. IANA Considerations | 11. IANA Considerations | |||
| This document makes no requests of the IANA. | This document makes no requests of the IANA. | |||
| 8. Acknowledgments | 12. Acknowledgments | |||
| Thanks to Nathalie Boulvard and to the CENTR members for the original | Thanks to Nathalie Boulvard and to the CENTR members for the original | |||
| work that led to this document. Thanks to Ondrej Sury for the | work that led to this document. Thanks to Ondrej Sury for the | |||
| interesting discussions. Thanks to Mohsen Souissi and John Heidemann | interesting discussions. Thanks to Mohsen Souissi and John Heidemann | |||
| for proofreading and to Paul Hoffman, Matthijs Mekking, Marcos Sanz, | for proofreading and to Paul Hoffman, Matthijs Mekking, Marcos Sanz, | |||
| Tim Wicinski, Francis Dupont, Allison Mankin, and Warren Kumari for | Tim Wicinski, Francis Dupont, Allison Mankin, and Warren Kumari for | |||
| proofreading, providing technical remarks, and making many | proofreading, providing technical remarks, and making many | |||
| readability improvements. Thanks to Dan York, Suzanne Woolf, Tony | readability improvements. Thanks to Dan York, Suzanne Woolf, Tony | |||
| Finch, Stephen Farrell, Peter Koch, Simon Josefsson, and Frank Denis | Finch, Stephen Farrell, Peter Koch, Simon Josefsson, and Frank Denis | |||
| for good written contributions. Thanks to Vittorio Bertola and | for good written contributions. Thanks to Vittorio Bertola and | |||
| Mohamed Boucadair for a detailed review of the -bis. And thanks to | Mohamed Boucadair for a detailed review of the -bis. And thanks to | |||
| the IESG members for the last remarks. | the IESG members for the last remarks. | |||
| 9. Changelog | 13. Changelog | |||
| 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 | draft-ietf-dprive-rfc7626-bis-04 | |||
| o Tsvart review: Add reference to DNS-over-QUIC, fix typo. | o Tsvart review: Add reference to DNS-over-QUIC, fix typo. | |||
| o Secdir review: Add text in Section 3 on devices using many | o Secdir review: Add text in Section 3 on devices using many | |||
| networks. Update bullet in 3.4.1 on cellular encryption. | networks. Update bullet in 3.4.1 on cellular encryption. | |||
| o Section 3.5.1.1 - re-work the section to try to address multiple | o Section 3.5.1.1 - re-work the section to try to address multiple | |||
| comments. | comments. | |||
| skipping to change at page 21, line 4 ¶ | skipping to change at page 22, line 12 ¶ | |||
| Initial commit. Differences to RFC7626: | Initial commit. Differences to RFC7626: | |||
| o Update many references | o Update many references | |||
| o Add discussions of encrypted transports including DoT and DoH | o Add discussions of encrypted transports including DoT and DoH | |||
| o Add section on DNS payload | o Add section on DNS payload | |||
| o Add section on authentication of servers | o Add section on authentication of servers | |||
| o Add section on blocking of services | o Add section on blocking of services | |||
| 10. References | 14. References | |||
| 10.1. Normative References | 14.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, <https://www.rfc- | DOI 10.17487/RFC6973, July 2013, <https://www.rfc- | |||
| editor.org/info/rfc6973>. | 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>. | |||
| 10.2. Informative References | 14.2. Informative References | |||
| [aeris-dns] | [aeris-dns] | |||
| Vinot, N., "Vie privee: et le DNS alors?", (In French), | Vinot, N., "Vie privee: et le DNS alors?", (In French), | |||
| 2015, <https://blog.imirhil.fr/vie-privee-et-le-dns- | 2015, <https://blog.imirhil.fr/vie-privee-et-le-dns- | |||
| alors.html>. | alors.html>. | |||
| [cache-snooping-defence] | ||||
| ISC, , "ISC Knowledge Database: DNS Cache snooping - | ||||
| should I be concerned?", 2018, <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", 2008, | |||
| <http://deic.uab.es/~joaquin/papers/is08.pdf>. | <http://deic.uab.es/~joaquin/papers/is08.pdf>. | |||
| [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", October 2012, | |||
| <https://papers.ssrn.com/sol3/ | <https://papers.ssrn.com/sol3/ | |||
| papers.cfm?abstract_id=2167372>. | papers.cfm?abstract_id=2167372>. | |||
| skipping to change at page 23, line 48 ¶ | skipping to change at page 25, line 8 ¶ | |||
| [I-D.huitema-quic-dnsoquic] | [I-D.huitema-quic-dnsoquic] | |||
| Huitema, C., Shore, M., Mankin, A., Dickinson, S., and J. | Huitema, C., Shore, M., Mankin, A., Dickinson, S., and J. | |||
| Iyengar, "Specification of DNS over Dedicated QUIC | Iyengar, "Specification of DNS over Dedicated QUIC | |||
| Connections", draft-huitema-quic-dnsoquic-07 (work in | Connections", draft-huitema-quic-dnsoquic-07 (work in | |||
| progress), September 2019. | progress), September 2019. | |||
| [I-D.ietf-dnsop-resolver-information] | [I-D.ietf-dnsop-resolver-information] | |||
| Sood, P., Arends, R., and P. Hoffman, "DNS Resolver | Sood, P., Arends, R., and P. Hoffman, "DNS Resolver | |||
| Information Self-publication", draft-ietf-dnsop-resolver- | Information Self-publication", draft-ietf-dnsop-resolver- | |||
| information-00 (work in progress), August 2019. | information-01 (work in progress), February 2020. | |||
| [I-D.ietf-dprive-bcp-op] | [I-D.ietf-dprive-bcp-op] | |||
| Dickinson, S., Overeinder, B., Rijswijk-Deij, R., and A. | Dickinson, S., Overeinder, B., Rijswijk-Deij, R., and A. | |||
| Mankin, "Recommendations for DNS Privacy Service | Mankin, "Recommendations for DNS Privacy Service | |||
| Operators", draft-ietf-dprive-bcp-op-07 (work in | Operators", draft-ietf-dprive-bcp-op-08 (work in | |||
| progress), December 2019. | progress), January 2020. | |||
| [I-D.ietf-quic-transport] | [I-D.ietf-quic-transport] | |||
| Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | |||
| and Secure Transport", draft-ietf-quic-transport-24 (work | and Secure Transport", draft-ietf-quic-transport-27 (work | |||
| in progress), November 2019. | in progress), February 2020. | |||
| [I-D.ietf-tls-sni-encryption] | [I-D.ietf-tls-sni-encryption] | |||
| Huitema, C. and E. Rescorla, "Issues and Requirements for | Huitema, C. and E. Rescorla, "Issues and Requirements for | |||
| SNI Encryption in TLS", draft-ietf-tls-sni-encryption-09 | SNI Encryption in TLS", draft-ietf-tls-sni-encryption-09 | |||
| (work in progress), October 2019. | (work in progress), October 2019. | |||
| [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", GNUnet e.V., January | |||
| 2015, <https://pdfs.semanticscholar.org/2610/2b99bdd6a258a | 2015, <https://pdfs.semanticscholar.org/2610/2b99bdd6a258a | |||
| skipping to change at page 25, line 19 ¶ | skipping to change at page 26, line 24 ¶ | |||
| [RFC5936] Lewis, E. and A. Hoenes, Ed., "DNS Zone Transfer Protocol | [RFC5936] Lewis, E. and A. Hoenes, Ed., "DNS Zone Transfer Protocol | |||
| (AXFR)", RFC 5936, DOI 10.17487/RFC5936, June 2010, | (AXFR)", RFC 5936, DOI 10.17487/RFC5936, June 2010, | |||
| <https://www.rfc-editor.org/info/rfc5936>. | <https://www.rfc-editor.org/info/rfc5936>. | |||
| [RFC6269] Ford, M., Ed., Boucadair, M., Durand, A., Levis, P., and | [RFC6269] Ford, M., Ed., Boucadair, M., Durand, A., Levis, P., and | |||
| P. Roberts, "Issues with IP Address Sharing", RFC 6269, | P. Roberts, "Issues with IP Address Sharing", RFC 6269, | |||
| DOI 10.17487/RFC6269, June 2011, <https://www.rfc- | DOI 10.17487/RFC6269, June 2011, <https://www.rfc- | |||
| editor.org/info/rfc6269>. | editor.org/info/rfc6269>. | |||
| [RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms | ||||
| for DNS (EDNS(0))", STD 75, RFC 6891, | ||||
| DOI 10.17487/RFC6891, April 2013, <https://www.rfc- | ||||
| editor.org/info/rfc6891>. | ||||
| [RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP | [RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP | |||
| Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014, | Fast Open", RFC 7413, DOI 10.17487/RFC7413, December 2014, | |||
| <https://www.rfc-editor.org/info/rfc7413>. | <https://www.rfc-editor.org/info/rfc7413>. | |||
| [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, | |||
| "Recommendations for Secure Use of Transport Layer | "Recommendations for Secure Use of Transport Layer | |||
| Security (TLS) and Datagram Transport Layer Security | Security (TLS) and Datagram Transport Layer Security | |||
| (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>. | |||
| skipping to change at page 27, line 22 ¶ | skipping to change at page 28, line 30 ¶ | |||
| [tor-leak] | [tor-leak] | |||
| Tor, "DNS leaks in Tor", 2013, | Tor, "DNS leaks in Tor", 2013, | |||
| <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 the Domain Name System", October 2009, | |||
| <http://arxiv.org/abs/0910.2472>. | <http://arxiv.org/abs/0910.2472>. | |||
| 10.3. URIs | 14.3. URIs | |||
| [1] https://lists.dns-oarc.net/pipermail/dns- | [1] https://lists.dns-oarc.net/pipermail/dns- | |||
| operations/2016-January/014141.html | operations/2016-January/014143.html | |||
| [2] http://netres.ec/?b=11B99BD | [2] http://netres.ec/?b=11B99BD | |||
| [3] https://www.researchgate.net/publication/320322146_DNS-DNS_DNS- | [3] https://www.researchgate.net/publication/320322146_DNS-DNS_DNS- | |||
| based_De-NAT_Scheme | based_De-NAT_Scheme | |||
| [4] https://developers.google.com/speed/public-dns | [4] https://developers.google.com/speed/public-dns | |||
| [5] https://developers.cloudflare.com/1.1.1.1/setting-up-1.1.1.1/ | [5] https://developers.cloudflare.com/1.1.1.1/setting-up-1.1.1.1/ | |||
| End of changes. 62 change blocks. | ||||
| 121 lines changed or deleted | 184 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/ | ||||