| < draft-bortzmeyer-dnsop-dns-privacy-00.txt | draft-bortzmeyer-dnsop-dns-privacy-01.txt > | |||
|---|---|---|---|---|
| Network Working Group S. Bortzmeyer | Network Working Group S. Bortzmeyer | |||
| Internet-Draft AFNIC | Internet-Draft AFNIC | |||
| Intended status: Informational November 27, 2013 | Intended status: Informational December 17, 2013 | |||
| Expires: May 31, 2014 | Expires: June 20, 2014 | |||
| DNS privacy problem statement | DNS privacy problem statement | |||
| draft-bortzmeyer-dnsop-dns-privacy-00 | draft-bortzmeyer-dnsop-dns-privacy-01 | |||
| 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 mostly a problem | the DNS by Internet users. It is intended to be mostly a problem | |||
| statement and it does not prescribe solutions (although Section 5 | statement and it does not prescribe solutions. | |||
| suggests some possible improvments). | ||||
| Discussions of the document should take place on the dnsop mailing | Discussions of the document should take place on the dnsop mailing | |||
| list [dnsop] | list [dnsop]. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at 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 May 31, 2014. | This Internet-Draft will expire on June 20, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 | |||
| 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 | |||
| 2. Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Risks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. Data in the DNS request . . . . . . . . . . . . . . . . . 3 | 2.1. Data in the DNS request . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. On the wire . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. On the wire . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.3. In the servers . . . . . . . . . . . . . . . . . . . . . 5 | 2.3. In the servers . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.3.1. In the resolvers . . . . . . . . . . . . . . . . . . 6 | 2.3.1. In the resolvers . . . . . . . . . . . . . . . . . . 7 | |||
| 2.3.2. In the authoritative name servers . . . . . . . . . . 6 | 2.3.2. In the authoritative name servers . . . . . . . . . . 7 | |||
| 2.3.3. Rogue servers . . . . . . . . . . . . . . . . . . . . 7 | 2.3.3. Rogue servers . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3. Actual "attacks" . . . . . . . . . . . . . . . . . . . . . . 7 | 3. Actual "attacks" . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4. Legalities . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Legalities . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Possible technical solutions . . . . . . . . . . . . . . . . 7 | 5. Security considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. On the wire . . . . . . . . . . . . . . . . . . . . . . . 8 | 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.1.1. Reducing the attack surface . . . . . . . . . . . . . 8 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.1.2. Encrypting the DNS traffic . . . . . . . . . . . . . 8 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 5.2. In the servers . . . . . . . . . . . . . . . . . . . . . 10 | 7.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
| 5.2.1. In the resolvers . . . . . . . . . . . . . . . . . . 10 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 5.2.2. In the authoritative name servers . . . . . . . . . . 10 | ||||
| 5.2.3. Rogue servers . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 6. Security considerations . . . . . . . . . . . . . . . . . . . 11 | ||||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 12 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 1. Introduction | 1. Introduction | |||
| The Domain Name System is specified in [RFC1034] and [RFC1035]. It | The Domain Name System is specified in [RFC1034] and [RFC1035]. It | |||
| is one of the most important infrastructure components of the | is one of the most important infrastructure components of the | |||
| Internet and one of the most often ignored or misunderstood. Almost | Internet and one of the most often ignored or misunderstood. Almost | |||
| every activity on the Internet starts with a DNS query (and often | every activity on the Internet starts with a DNS query (and often | |||
| several). Its use has many privacy implications and we try to give | several). Its use has many privacy implications and we try to give | |||
| here a comprehensive and accurate list. | here a comprehensive and accurate list. | |||
| skipping to change at page 3, line 33 ¶ | skipping to change at page 3, line 32 ¶ | |||
| Almost all the DNS queries are today sent over UDP, and this has | Almost all the DNS queries are today sent over UDP, and this has | |||
| practical consequences if someone thinks of encrypting this traffic | practical consequences if someone thinks of encrypting this traffic | |||
| (some encryption solutions are typically done for TCP, not UDP). | (some encryption solutions are typically done for TCP, not UDP). | |||
| I should be noted to that DNS resolvers sometimes forward requests to | I should be noted to that DNS resolvers sometimes forward requests to | |||
| bigger machines, with a larger and more shared cache, the forwarders. | bigger machines, with a larger and more shared cache, the forwarders. | |||
| From the point of view of privacy, forwarders are like resolvers, | From the point of view of privacy, forwarders are like resolvers, | |||
| except that the caching in the resolver before them decreases the | except that the caching in the resolver before them decreases the | |||
| amount of data they can see. | amount of data they can see. | |||
| We will use here the terminology of [RFC6973]. | Another important point to keep in mind when analyzing the privacy | |||
| issues of DNS is the mix of many sort of DNS requests received by a | ||||
| server. Let's assume the eavesdropper want to know which Web page is | ||||
| visited by an user. For a typical Web page displayed by the user, | ||||
| there are three sorts of DNS requests: | ||||
| Primary request: this is the domain name that the user typed or | ||||
| selected from a bookmark or choosed by clicking on an hyperklink. | ||||
| Presulably, this is what is of interest for the eavesdropper. | ||||
| Secondary requests: these are the requests performed by the user | ||||
| agent (here, the Web browser) without any direct involvment or | ||||
| knowledge of the user. For the Web, they are triggered by | ||||
| included content, CSS sheets, JavaScript code, embedded images, | ||||
| etc. In some cases, there can be dozens of domain names in a | ||||
| single page. | ||||
| Tertiary requests: these are the requests performed by the DNS | ||||
| system itself. For instance, if the answer to a query is a | ||||
| referral to a set of name servers, and the glue is not returned, | ||||
| the resolver will have to do tertiary requests to turn name | ||||
| servers' named into IP addresses. | ||||
| For privacy-related terms, we will use here the terminology of | ||||
| [RFC6973]. | ||||
| 2. Risks | 2. Risks | |||
| This draft is limited to the study of privacy risks for the end-user | This draft is limited to the study of privacy risks for the end-user | |||
| (the one performing DNS requests). Privacy risks for the holder of a | (the one performing DNS requests). Privacy risks for the holder of a | |||
| zone (the risk that someone gets the data) are discussed in [RFC5936] | zone (the risk that someone gets the data) are discussed in [RFC5936] | |||
| and in [I-D.koch-perpass-dns-confidentiality]. Non-privacy risks | and in [I-D.koch-perpass-dns-confidentiality]. Non-privacy risks | |||
| (such as cache poisoning) are out of scope. | (such as cache poisoning) are out of scope. | |||
| 2.1. Data in the DNS request | 2.1. Data in the DNS request | |||
| skipping to change at page 4, line 31 ¶ | skipping to change at page 5, line 5 ¶ | |||
| the issues and warnings about collection of IP addresses apply here. | the issues and warnings about collection of IP addresses apply here. | |||
| For the communication between the resolver and the authoritative name | For the communication between the resolver and the authoritative name | |||
| servers, the source IP address has a different meaning, it does not | servers, the source IP address has a different meaning, it does not | |||
| have the same status as the source address in a HTTP connection. It | have the same status as the source address in a HTTP connection. It | |||
| is now the IP address of the resolver which, in a way "hides" the | is now the IP address of the resolver which, in a way "hides" the | |||
| real user. However, it does not always work. Sometimes | real user. However, it does not always work. Sometimes | |||
| [I-D.vandergaast-edns-client-subnet] is used. Sometimes the end user | [I-D.vandergaast-edns-client-subnet] is used. Sometimes the end user | |||
| has a personal resolver on her machine. In that case, the IP address | has a personal resolver on her machine. In that case, the IP address | |||
| is as sensitive as it is for HTTP. | is as sensitive as it is for HTTP. | |||
| A note about IP addresses: there is currently no IETF document which | ||||
| describes in detail the privacy issues of IP addressing. In the mean | ||||
| time, the discussion here is intended to include both IPv4 and IPv6 | ||||
| source addresses. For a number of reasons their assignment and | ||||
| utilization characteristics are different, which may have | ||||
| implications for details of information leakage associated with the | ||||
| collection of source addresses. (For example, a specific IPv6 source | ||||
| address seen on the public Internet is less likely than an IPv4 | ||||
| address to originate behind a CGN or other NAT.) However, for both | ||||
| IPv4 and IPv6 addresses, it's important to note that source addresses | ||||
| are propagated with queries and comprise metadata about the host, | ||||
| user, or application that originated them. | ||||
| 2.2. On the wire | 2.2. On the wire | |||
| DNS traffic can be seen by an eavesdropper like any other traffic. | DNS traffic can be seen by an eavesdropper like any other traffic. | |||
| It is typically not encrypted. (DNSSEC, specified in [RFC4033] | It is typically not encrypted. (DNSSEC, specified in [RFC4033] | |||
| explicitely excludes confidentiality from its goals.) So, if an | explicitely excludes confidentiality from its goals.) So, if an | |||
| initiator starts a HTTPS communication with a recipient, while the | initiator starts a HTTPS communication with a recipient, while the | |||
| HTTP traffic will be encrypted, the DNS exchange prior to it will not | HTTP traffic will be encrypted, the DNS exchange prior to it will not | |||
| be. When the other protocols will become more or more privacy-aware | be. When the other protocols will become more or more privacy-aware | |||
| and secured against surveillance, the DNS risks to become "the | and secured against surveillance, the DNS risks to become "the | |||
| weakest link" in privacy. | weakest link" in privacy. | |||
| skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 41 ¶ | |||
| communications path. As a result, they are often forgotten in risk | communications path. As a result, they are often forgotten in risk | |||
| analysis. But, to quote again [RFC6973], "Although [...] enablers | analysis. But, to quote again [RFC6973], "Although [...] enablers | |||
| may not generally be considered as attackers, they may all pose | may not generally be considered as attackers, they may all pose | |||
| privacy threats (depending on the context) because they are able to | privacy threats (depending on the context) because they are able to | |||
| observe, collect, process, and transfer privacy-relevant data." In | observe, collect, process, and transfer privacy-relevant data." In | |||
| [RFC6973] parlance, enablers become observers when they start | [RFC6973] parlance, enablers become observers when they start | |||
| collecting data. | 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 TODO reference and DNSmezzo TODO | sophisticated programs like PacketQ [packetq] reference and DNSmezzo | |||
| reference. 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 attacker. | [prism] and pass data to an outside attacker. | |||
| Sometimes, these data are kept for a long time and/or distributed to | Sometimes, these data are kept for a long time and/or distributed to | |||
| third parties, for research purposes [ditl], for security analysis, | third parties, for research purposes [ditl], for security analysis, | |||
| or for surveillance tasks. Also, there are observation points in the | or for surveillance tasks. Also, there are observation points in the | |||
| network which gather DNS data and then make it accessible to third- | network which gather DNS data and then make it accessible to third- | |||
| parties for research or security purposes ("passive DNS | parties for research or security purposes ("passive DNS | |||
| [passive-dns]"). | [passive-dns]"). | |||
| skipping to change at page 7, line 32 ¶ | skipping to change at page 8, line 23 ¶ | |||
| A rogue DHCP server can direct you to a rogue resolver. Most of the | A rogue DHCP server can direct you to a rogue resolver. Most of the | |||
| times, it seems to be done to divert traffic, by providing lies for | times, it seems to be done to divert traffic, by providing lies for | |||
| some domain names. But it could be used just to capture the traffic | some domain names. But it could be used just to capture the traffic | |||
| and gather information about you. Same thing for malwares like | and gather information about you. Same thing for malwares like | |||
| DNSchanger[dnschanger] which changes the resolver in the machine's | DNSchanger[dnschanger] which changes the resolver in the machine's | |||
| configuration. | configuration. | |||
| 3. Actual "attacks" | 3. Actual "attacks" | |||
| A very quick examination of DNS traffic may lead to the false | ||||
| conclusion that extracting the needle from the haystack is difficult. | ||||
| "Interesting" primary DNS requests are mixed with useless (for the | ||||
| eavesdropper) second and tertiary requests (see the terminology in | ||||
| Section 1). But, in this time of "big data" processing, powerful | ||||
| techniques now exist to get from the raw data to what you're 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" behaviour that can be traced back to the activity | detect "abnormal" behaviour that can be traced back to the activity | |||
| of malware on infected machines. Yes, this reasearch was done for | of malware on infected machines. Yes, this reasearch was done for | |||
| the good but, technically, it is a privacy attack and it demonstrates | the good but, technically, it is a privacy attack and it demonstrates | |||
| the power of the observation of DNS traffic. See [dns-footprint], | the power of the observation of DNS traffic. See [dns-footprint], | |||
| [dagon-malware] and [darkreading-dns]. | [dagon-malware] and [darkreading-dns]. | |||
| 4. Legalities | 4. Legalities | |||
| To our knowledge, there are no specific privacy laws for DNS data. | To our knowledge, there are no specific privacy laws for DNS data. | |||
| Interpreting general privacy laws like [data-protection-directive] | Interpreting general privacy laws like [data-protection-directive] | |||
| (European Union) in the context of DNS traffic data is not an easy | (European Union) in the context of DNS traffic data is not an easy | |||
| task and it seems there is no court precedent here. | task and it seems there is no court precedent here. | |||
| 5. Possible technical solutions | 5. Security considerations | |||
| We mention here only the solutions that could be deployed in the | ||||
| current Internet. Disruptive solutions, like replacing the DNS with | ||||
| a completely new resolution protocol, are interesting but are kept | ||||
| for a future work. Remember that the focus of this document is on | ||||
| describing the threats, not in detailing solutions. This section is | ||||
| therefore non-normative and is NOT a technical specification of | ||||
| solutions. For the same reason, there are not yet actual | ||||
| recommendations in this document. | ||||
| Raising seriously the bar against the eavesdropper will require | ||||
| SEVERAL actions. Not one is decisive by itself but, together, they | ||||
| can have an effect. The most important suggested here are: | ||||
| qname minimization, | ||||
| encryption of DNS traffic, | ||||
| padding (sending random queries from time to time). | ||||
| We detail some of these actions later, classified by the kind of | ||||
| observer (on the wire, in a server, etc). Some actions will help | ||||
| against several kinds of observers. For instance, padding, sending | ||||
| gratuitous queries from time to time (queries where you're not | ||||
| interested in the replies, just to disturb the analysis), is useful | ||||
| against all sorts of observers. It is a costly technique, because it | ||||
| increases the traffic on the network but it seriously blurs the | ||||
| picture for the observer. | ||||
| 5.1. On the wire | ||||
| 5.1.1. Reducing the attack surface | ||||
| See Section 5.2.1 since the solution described there apply against | ||||
| on-the-wire eavesdropping as well as against observation by the | ||||
| resolver. | ||||
| 5.1.2. Encrypting the DNS traffic | ||||
| To really defeat an eavesdropper, there is only one solution: | ||||
| encryption. But, from the end user point of view, even if you check | ||||
| that your communication between your stub resolver and the resolver | ||||
| is encrypted, you have no way to ensure that the communication | ||||
| between the resolver and the autoritative name servers will be. | ||||
| There are two different cases, communication between the stub | ||||
| resolver and the resolver (no caching but only two parties so | ||||
| solutions which rely on an agreement may work) and communication | ||||
| between the resolver and the authoritative servers (less data because | ||||
| of caching, but many parties involved, so any solution has to scale | ||||
| well). Encrypting the "last mile", between the user's stub resolver | ||||
| and the resolver may be sufficient since the biggest danger for | ||||
| privacy is between the stub resolver and the resolver, because there | ||||
| is no caching involved there. | ||||
| The only encryption mechanism available for DNS which is today an | ||||
| IETF standard is IPsec in ESP mode. Its deployment in the wide | ||||
| Internet is very limited, for reasons which are out of scope here. | ||||
| Still, it may be a solution for "the last mile" and, indeed, many VPN | ||||
| solutions use it this way, encrypting the whole traffic, including | ||||
| DNS to the safe resolver. In the IETF standards, a possible | ||||
| alternative could be DTLS [RFC6347]. It enjoyed very little actual | ||||
| deployment and its interaction with the DNS has never been | ||||
| considered, studied or of course implemented. There are also non | ||||
| standard encryption techniques like DNScrypt [dnscrypt] for the stub | ||||
| resolver <-> resolver communication or DNScurve [dnscurve] for the | ||||
| resolver <-> authoritative server communication. It seems today that | ||||
| the possibility of massive encryption of DNS traffic is very remote. | ||||
| A last "pervasive encryption" solution for the DNS could be | ||||
| "Confidential DNS" by W. Wijngaards which is not published yet but | ||||
| seems promising. | ||||
| Another solution would be to use more TCP for the queries, together | ||||
| with TLS [RFC5246]. DNS can run over TCP and it provides a good way | ||||
| to leverage the software and experience of the TLS world. There have | ||||
| been discussions to use more TCP for the DNS, in light of reflection | ||||
| attacks (based on the spoofing of the source IP address, which is | ||||
| much more difficult with TCP). For instance, a stub resolver could | ||||
| open a TCP connection with the resolver at startup and keep it open | ||||
| to send queries and receive responses. The server would of course be | ||||
| free to tear down these connections at will (when it is under stress, | ||||
| for instance) and the client could reestablish them when necessary. | ||||
| Remember that TLS sessions can survive TCP connections so there is no | ||||
| need to restart the TLS negociation each time. This DNS-over-TLS- | ||||
| over-TCP is already implemented in the Unbound resolver. It is safe | ||||
| only if pipelining multiple questions over the same channel. Name | ||||
| compression should also be disabled, or CRIME-style [crime] attacks | ||||
| can apply. | ||||
| Encryption alone does not guarantee perfect privacy, because of the | ||||
| available metadata. For instance, the size of questions and | ||||
| responses, even encrypted, provide hints about what queries have been | ||||
| sent. (DNScrypt uses random-length padding, and a 64 bytes block | ||||
| size, to limit this risk, but this raises other issues, for instance | ||||
| during amplification attacks. Other security protocols use similar | ||||
| techniques, for instance ESPv3.) Observing the periodicity of | ||||
| encrypted questions/responses also discloses the TTL, which is yet | ||||
| another hint about the queries. Non-cached responses are disclosing | ||||
| the RTT between the resolver and authoritative servers. This is a | ||||
| very useful indication to guess where authoritative servers are | ||||
| located. Web pages are made of many resources, leading to multiple | ||||
| requests, whose number and timing fingerprint which web site is being | ||||
| browsed. So, observing encrypted traffic is not enough to recover | ||||
| any plaintext queries, but is enough to answer the question "is one | ||||
| of my employees browsing Facebook?". Finally, attackers can perform | ||||
| a denial-of-service attack on possible targets, check if this makes a | ||||
| difference on the encrypted traffic they observe, and infer what a | ||||
| query was. | ||||
| 5.2. In the servers | ||||
| 5.2.1. In the resolvers | ||||
| It does not seem there is a possible solution against a leaky | ||||
| resolver. A resolver has to see the entire DNS traffic in clear. | ||||
| The best approach to limit the problem is to have local resolvers | ||||
| whose caching will limit the leak. Local networks should have a | ||||
| local caching resolver (even if it forwards the unanswered questions | ||||
| to a forwarder) and individual laptops can have their very own | ||||
| resolver, too. | ||||
| One mechanism to potentially mitigate on the wire attacks between | ||||
| stub resolvers and caching resolvers is to determine if the network | ||||
| location of the caching resolver can be moved closer to the end | ||||
| user's computer (reducing the attack surface). As noted earlier in | ||||
| Section 2.2, if an end user's computer is configured with a caching | ||||
| resolver on the edge of the local network, an attacker would need to | ||||
| gain access to that local network in order to successfully execute an | ||||
| on the wire attack against the stub resolver. On the other hand, if | ||||
| the end user's computer is configured to use a public DNS service as | ||||
| the caching resolver, the attacker needs to simply get in the network | ||||
| path between the end user and the public DNS server and so there is a | ||||
| much greater opportunity for a successful attack. Configuring a | ||||
| caching resolver closer to the end user can also reduce the | ||||
| possibility of on the wire attacks. | ||||
| 5.2.2. In the authoritative name servers | ||||
| A possible solution would be to minimize the amount of data sent from | ||||
| the resolver. When a resolver receives the query "What is the AAAA | ||||
| record for www.example.com?", it sends to the root (assuming a cold | ||||
| resolver, whose cache is empty) the very same question. Sending | ||||
| "What are the NS records for .com?" would be sufficient (since it | ||||
| will be the answer from the root anyway). To do so would be | ||||
| compatible with the current DNS system and therefore could be | ||||
| deployable, since it is an unilateral change to the resolvers. | ||||
| To do so, the resolver needs to know the zone cut [RFC2181]. There | ||||
| is not a zone cut at every label boundary. If we take the name | ||||
| www.foo.bar.example, it is possible that there is a zone cut between | ||||
| "foo" and "bar" but not between "bar" and "example". So, assuming | ||||
| the resolver already knows the name servers of .example, when it | ||||
| receives the query "What is the AAAA record of www.foo.bar.example", | ||||
| it does not always know if the request should be sent to the name | ||||
| servers of bar.example or to those of example. [RFC2181] suggests an | ||||
| algorithm to find the zone cut, so resolvers may try it. | ||||
| Note that DNSSEC-validating resolvers already have access to this | ||||
| information, since they have to find the zone cut (the DNSKEY record | ||||
| set is just below, the DS record set just above). | ||||
| It can be noted that minimizing the amount of data sent also | ||||
| partially addresses the case of a wire sniffer. | ||||
| One should note that the behaviour suggested here (minimizing the | ||||
| amount of data sent in qnames) is NOT forbidden by the [RFC1034] | ||||
| (section 5.3.3) or [RFC1035] (section 7.2). Sending the full qname | ||||
| to the authoritative name server is a tradition, not a protocol | ||||
| requirment. | ||||
| Another note is that the answer to the NS query, unlike the referral | ||||
| sent when the question is a full qname, is in the Answer section, not | ||||
| in the Authoritative section. It has probably no practical | ||||
| consequences. | ||||
| 5.2.3. Rogue servers | ||||
| Traditional security measures (do not let malware change the system | ||||
| configuration) are of course a must. A protection against rogue | ||||
| servers announced by DHCP could be to have a local resolver, and to | ||||
| always use it, ignoring DHCP. | ||||
| 6. Security considerations | ||||
| Hey, man, the entire document is about security! | This document is entirely about security, more precisely privacy. | |||
| Possible solutions to the issues described here are discussed in | ||||
| [I-D.bortzmeyer-dnsop-privacy-sol] or in | ||||
| [I-D.wijngaards-dnsop-confidentialdns]. | ||||
| 7. Acknowledgments | 6. 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 which leaded to this draft. Thanks to Olaf Kolkman, Francis | work which leaded to this draft. Thanks to Ondrej Sury for the | |||
| Dupont and Ondrej Sury for the interesting discussions. Thanks to | interesting discussions. Thanks to Mohsen Souissi for proofreading. | |||
| Mohsen Souissi for proofreading. Thanks to Dan York and Frank Denis | Thanks to Dan York, Suzanne Woolf and Frank Denis for good written | |||
| for good written contributions. | contributions. | |||
| 8. References | 7. References | |||
| 8.1. Normative References | ||||
| 7.1. Normative References | ||||
| [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
| STD 13, RFC 1034, November 1987. | STD 13, RFC 1034, November 1987. | |||
| [RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
| specification", STD 13, RFC 1035, November 1987. | specification", STD 13, RFC 1035, November 1987. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [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, July | Considerations for Internet Protocols", RFC 6973, July | |||
| 2013. | 2013. | |||
| 8.2. Informative References | 7.2. Informative References | |||
| [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS | [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS | |||
| Specification", RFC 2181, July 1997. | Specification", RFC 2181, July 1997. | |||
| [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| Rose, "DNS Security Introduction and Requirements", RFC | Rose, "DNS Security Introduction and Requirements", RFC | |||
| 4033, March 2005. | 4033, March 2005. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, August 2008. | (TLS) Protocol Version 1.2", RFC 5246, August 2008. | |||
| skipping to change at page 12, line 48 ¶ | skipping to change at page 10, line 10 ¶ | |||
| [I-D.koch-perpass-dns-confidentiality] | [I-D.koch-perpass-dns-confidentiality] | |||
| Koch, P., "Confidentiality Aspects of DNS Data, | Koch, P., "Confidentiality Aspects of DNS Data, | |||
| Publication, and Resolution", draft-koch-perpass-dns- | Publication, and Resolution", draft-koch-perpass-dns- | |||
| confidentiality-00 (work in progress), November 2013. | confidentiality-00 (work in progress), November 2013. | |||
| [I-D.vandergaast-edns-client-subnet] | [I-D.vandergaast-edns-client-subnet] | |||
| Contavalli, C., Gaast, W., Leach, S., and E. Lewis, | Contavalli, C., Gaast, W., Leach, S., and E. Lewis, | |||
| "Client Subnet in DNS Requests", draft-vandergaast-edns- | "Client Subnet in DNS Requests", draft-vandergaast-edns- | |||
| client-subnet-02 (work in progress), July 2013. | client-subnet-02 (work in progress), July 2013. | |||
| [I-D.bortzmeyer-dnsop-privacy-sol] | ||||
| Bortzmeyer, S., "Possible solutions to DNS privacy | ||||
| issues", draft-bortzmeyer-dnsop-privacy-sol-00 (work in | ||||
| progress), December 2013. | ||||
| [I-D.wijngaards-dnsop-confidentialdns] | ||||
| Wijngaards, W., "Confidential DNS", draft-wijngaards- | ||||
| dnsop-confidentialdns-00 (work in progress), November | ||||
| 2013. | ||||
| [dnsop] IETF, , "The dnsop mailing list", October 2013. | [dnsop] IETF, , "The dnsop mailing list", October 2013. | |||
| [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", 2007. | Malicious Resolution Authority", 2007. | |||
| [dns-footprint] | [dns-footprint] | |||
| Stoner, E., "DNS footprint of malware", October 2010. | Stoner, E., "DNS footprint of malware", October 2010. | |||
| [darkreading-dns] | [darkreading-dns] | |||
| skipping to change at page 13, line 23 ¶ | skipping to change at page 10, line 42 ¶ | |||
| [dnschanger] | [dnschanger] | |||
| Wikipedia, , "DNSchanger", November 2011. | Wikipedia, , "DNSchanger", November 2011. | |||
| [dnscrypt] | [dnscrypt] | |||
| Denis, F., "DNSCrypt", . | Denis, F., "DNSCrypt", . | |||
| [dnscurve] | [dnscurve] | |||
| Bernstein, D., "DNScurve", . | Bernstein, D., "DNScurve", . | |||
| [packetq] , "PacketQ, a simple tool to make SQL-queries against | ||||
| PCAP-files", 2011. | ||||
| [dnsmezzo] | ||||
| Bortzmeyer, S., "PacketQ, a simple tool to make SQL- | ||||
| queries against PCAP-files", 2009. | ||||
| [prism] NSA, , "PRISM", 2007. | [prism] NSA, , "PRISM", 2007. | |||
| [crime] Rizzo, J. and T. Dong, "The CRIME attack against TLS", | [crime] Rizzo, J. and T. Dong, "The CRIME attack against TLS", | |||
| 2012. | 2012. | |||
| [ditl] , "A Day in the Life of the Internet (DITL)", 2002. | [ditl] , "A Day in the Life of the Internet (DITL)", 2002. | |||
| [data-protection-directive] | [data-protection-directive] | |||
| , "European directive 95/46/EC on the protection of | , "European directive 95/46/EC on the protection of | |||
| individuals with regard to the processing of personal data | individuals with regard to the processing of personal data | |||
| and on the free movement of such data", November 1995. | and on the free movement of such data", November 1995. | |||
| [passive-dns] | [passive-dns] | |||
| Weimer, F., "Passive DNS Replication", April 2005. | Weimer, F., "Passive DNS Replication", April 2005. | |||
| [tor-leak] | ||||
| , "DNS leaks in Tor", 2013. | ||||
| Author's Address | Author's Address | |||
| Stephane Bortzmeyer | Stephane Bortzmeyer | |||
| AFNIC | AFNIC | |||
| Immeuble International | Immeuble International | |||
| Saint-Quentin-en-Yvelines 78181 | Saint-Quentin-en-Yvelines 78181 | |||
| France | France | |||
| Phone: +33 1 39 30 83 46 | Phone: +33 1 39 30 83 46 | |||
| Email: bortzmeyer+ietf@nic.fr | Email: bortzmeyer+ietf@nic.fr | |||
| End of changes. 19 change blocks. | ||||
| 227 lines changed or deleted | 103 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/ | ||||