| < draft-ietf-dprive-rfc7626-bis-01.txt | draft-ietf-dprive-rfc7626-bis-02.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: March 30, 2020 September 27, 2019 | Expires: April 18, 2020 October 16, 2019 | |||
| DNS Privacy Considerations | DNS Privacy Considerations | |||
| draft-ietf-dprive-rfc7626-bis-01 | draft-ietf-dprive-rfc7626-bis-02 | |||
| 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 March 30, 2020. | This Internet-Draft will expire on April 18, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 29 ¶ | skipping to change at page 2, line 29 ¶ | |||
| 3.5.2. In the Authoritative Name Servers . . . . . . . . . . 15 | 3.5.2. In the Authoritative Name Servers . . . . . . . . . . 15 | |||
| 3.6. Re-identification and Other Inferences . . . . . . . . . 16 | 3.6. Re-identification and Other Inferences . . . . . . . . . 16 | |||
| 3.7. More Information . . . . . . . . . . . . . . . . . . . . 17 | 3.7. More Information . . . . . . . . . . . . . . . . . . . . 17 | |||
| 4. Actual "Attacks" . . . . . . . . . . . . . . . . . . . . . . 17 | 4. Actual "Attacks" . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5. Legalities . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 5. Legalities . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 8. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 8. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 20 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 20 | 9.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
| 9.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 9.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 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 is specified in [RFC1034], [RFC1035], and many | The Domain Name System (DNS) is specified in [RFC1034], [RFC1035], | |||
| later RFCs, which have never been consolidated. It is one of the | and many later RFCs, which have never been consolidated. It is one | |||
| most important infrastructure components of the Internet and often | of the most important infrastructure components of the Internet and | |||
| ignored or misunderstood by Internet users (and even by many | often ignored or misunderstood by Internet users (and even by many | |||
| professionals). Almost every activity on the Internet starts with a | professionals). Almost every activity on the Internet starts with a | |||
| DNS query (and often several). Its use has many privacy implications | DNS query (and often several). Its use has many privacy implications | |||
| and this is an attempt at a comprehensive and accurate list. | and this document is an attempt at a comprehensive and accurate list. | |||
| Let us begin with a simplified reminder of how the DNS works. (See | Let us begin with a simplified reminder of how the DNS works (See | |||
| also [RFC8499]) A client, the stub resolver, issues a DNS query to a | also [RFC8499]). A client, the stub resolver, issues a DNS query to | |||
| server, called the recursive resolver (also called caching resolver | a server, called the recursive resolver (also called caching resolver | |||
| or full resolver or recursive name server). Let's use the query | or full resolver or recursive name server). Let's use the query | |||
| "What are the AAAA records for www.example.com?" as an example. AAAA | "What are the AAAA records for www.example.com?" as an example. AAAA | |||
| is the QTYPE (Query Type), and www.example.com is the QNAME (Query | is the QTYPE (Query Type), and www.example.com is the QNAME (Query | |||
| Name). (The description that follows assumes a cold cache, for | Name). (The description that follows assumes a cold cache, for | |||
| instance, because the server just started.) The recursive resolver | instance, because the server just started.) The recursive resolver | |||
| will first query the root name servers. In most cases, the root name | will first query the root name servers. In most cases, the root name | |||
| servers will send a referral. In this example, the referral will be | servers will send a referral. In this example, the referral will be | |||
| to the .com name servers. The resolver repeats the query to one of | to the .com name servers. The resolver repeats the query to one of | |||
| the .com name servers. The .com name servers, in turn, will refer to | the .com name servers. The .com name servers, in turn, will refer to | |||
| the example.com name servers. The example.com name server will then | the example.com name servers. The example.com name server will then | |||
| skipping to change at page 3, line 24 ¶ | skipping to change at page 3, line 24 ¶ | |||
| 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 just | Because DNS relies on caching heavily, the algorithm described above | |||
| above is actually a bit more complicated, and not all questions are | is actually a bit more complicated, and not all questions are sent to | |||
| sent to the authoritative name servers. If a few seconds later the | the authoritative name servers. If a few seconds later the stub | |||
| stub resolver asks the recursive resolver, "What are the SRV records | resolver asks the recursive resolver, "What are the SRV records of | |||
| of _xmpp-server._tcp.example.com?", the recursive resolver will | _xmpp-server._tcp.example.com?", the recursive resolver will remember | |||
| remember that it knows the name servers of example.com and will just | that it knows the name servers of example.com and will just query | |||
| query them, bypassing the root and .com. Because there is typically | them, bypassing the root and .com. Because there is typically no | |||
| no caching in the stub resolver, the recursive resolver, unlike the | caching in the stub resolver, the recursive resolver, unlike the | |||
| authoritative servers, sees all the DNS traffic. (Applications, like | authoritative servers, sees all the DNS traffic. (Applications, like | |||
| web browsers, may have some form of caching that does not follow DNS | web browsers, may have some form of caching that does not follow DNS | |||
| rules, for instance, because it may ignore the TTL. So, the | rules, for instance, because it may ignore the TTL. So, the | |||
| recursive resolver does not see all the name resolution activity.) | recursive resolver does not see all the name resolution activity.) | |||
| It should be noted that DNS recursive resolvers sometimes forward | It should be noted that DNS recursive resolvers sometimes forward | |||
| requests to other recursive resolvers, typically bigger machines, | requests to other recursive resolvers, typically bigger machines, | |||
| with a larger and more shared cache (and the query hierarchy can be | with a larger and more shared cache (and the query hierarchy can be | |||
| even deeper, with more than two levels of recursive resolvers). From | even deeper, with more than two levels of recursive resolvers). From | |||
| the point of view of privacy, these forwarders are like resolvers, | the point of view of privacy, these forwarders are like resolvers, | |||
| except that they do not see all of the requests being made (due to | except that they do not see all of the requests being made (due to | |||
| caching in the first resolver). | caching in the first resolver). | |||
| At the time of writing, almost all this DNS traffic is currently sent | At the time of writing, almost all this DNS traffic is currently sent | |||
| in clear (unencrypted). However there is increasing deployment of | in clear (i.e., unencrypted). However there is increasing deployment | |||
| DNS-over-TLS (DoT) [RFC7858] and DNS-over-HTTPS (DoH) [RFC8484], | of DNS-over-TLS (DoT) [RFC7858] and DNS-over-HTTPS (DoH) [RFC8484], | |||
| particularly in mobile devices, browsers and by providers of anycast | particularly in mobile devices, browsers, and by providers of anycast | |||
| recursive DNS resolution services. There are a few cases where there | recursive DNS resolution services. There are a few cases where there | |||
| is some alternative channel encryption, for instance, in an IPsec | is some alternative channel encryption, for instance, in an IPsec VPN | |||
| VPN, at least between the stub resolver and the resolver. | tunnel, at least between the stub resolver and the resolver. | |||
| Today, almost all DNS queries are sent over UDP [thomas-ditl-tcp]. | Today, almost all DNS queries are sent over UDP [thomas-ditl-tcp]. | |||
| This has practical consequences when considering encryption of the | This has practical consequences when considering encryption of the | |||
| traffic as a possible privacy technique. Some encryption solutions | traffic as a possible privacy technique. Some encryption solutions | |||
| are only designed for TCP, not UDP and new solutions are still | are only designed for TCP, not UDP and new solutions are still | |||
| emerging [I-D.ietf-quic-transport]. | emerging [I-D.ietf-quic-transport]. | |||
| Another important point to keep in mind when analyzing the privacy | Another important point to keep in mind when analyzing the privacy | |||
| issues of DNS is the fact that DNS requests received by a server are | issues of DNS is the fact that DNS requests received by a server are | |||
| triggered by different reasons. Let's assume an eavesdropper wants | triggered by different reasons. Let's assume an eavesdropper wants | |||
| skipping to change at page 5, line 12 ¶ | skipping to change at page 5, line 12 ¶ | |||
| For privacy-related terms, we will use the terminology from | For privacy-related terms, we will use the terminology from | |||
| [RFC6973]. | [RFC6973]. | |||
| 2. Scope | 2. Scope | |||
| This document focuses mostly on the study of privacy risks for the | This document focuses mostly on the study of privacy risks for the | |||
| end user (the one performing DNS requests). We consider the risks of | end user (the one performing DNS requests). We consider the risks of | |||
| pervasive surveillance [RFC7258] as well as risks coming from a more | pervasive surveillance [RFC7258] as well as risks coming from a more | |||
| focused surveillance. | focused surveillance. | |||
| This document does not attempt a comparison of specific privacy | ||||
| protections provided by individual networks or organisations, it | ||||
| makes only general observations about typical current practices. | ||||
| Privacy risks for the holder of a zone (the risk that someone gets | Privacy risks for the holder of a zone (the risk that someone gets | |||
| the data) are discussed in [RFC5936] and [RFC5155]. | the data) are discussed in [RFC5936] and [RFC5155]. | |||
| Privacy risks for recursive operators such as leakage of private | Privacy risks for recursive operators (including access providers and | |||
| operators in enterprise networks) such as leakage of private | ||||
| namespaces or blocklists are out of scope for this document. | namespaces or blocklists are out of scope for this document. | |||
| Non-privacy risks (e.g security related concerns such as cache | Non-privacy risks (e.g security related concerns 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, e.g., | ||||
| unencrypted TLS SNI extensions or HTTPS destination IP address | ||||
| fingerprinting are not considered here. | ||||
| 3. Risks | 3. Risks | |||
| 3.1. The Alleged Public Nature of DNS Data | 3.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 and private | more detailed look. First, access control lists (ACLs) and private | |||
| namespaces notwithstanding, the DNS operates under the assumption | namespaces notwithstanding, the DNS operates under the assumption | |||
| that public-facing authoritative name servers will respond to "usual" | that public-facing authoritative name servers will respond to "usual" | |||
| DNS queries for any zone they are authoritative for without further | DNS queries for any zone they are authoritative for without further | |||
| authentication or authorization of the client (resolver). Due to the | authentication or authorization of the client (resolver). Due to the | |||
| lack of search capabilities, only a given QNAME will reveal the | lack of search capabilities, only a given QNAME will reveal the | |||
| resource records associated with that name (or that name's non- | resource records associated with that name (or that name's non- | |||
| 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). | |||
| skipping to change at page 5, line 44 ¶ | skipping to change at page 6, line 4 ¶ | |||
| resource records associated with that name (or that name's non- | resource records associated with that name (or that name's non- | |||
| 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; that transaction is not / should not be public. A | |||
| typical example from outside the DNS world is: the web site of | typical example from outside the DNS world is: the web site of | |||
| Alcoholics Anonymous is public; the fact that you visit it should not | Alcoholics Anonymous is public; the fact that you visit it should not | |||
| be. | be. | |||
| 3.2. Data in the DNS Request | 3.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", because the port is also in | "source IP address + maybe source port number", because the port | |||
| the request and can be used to differentiate between several users | number is also in the request and can be used to differentiate | |||
| sharing an IP address (behind a Carrier-Grade NAT (CGN), for instance | between several users sharing an IP address (behind a Carrier-Grade | |||
| [RFC6269]). | NAT (CGN) or a NPTv6, for instance [RFC6269]). | |||
| The QNAME is the full name sent by the user. It gives information | The QNAME is the full name sent by the user. It gives information | |||
| about what the user does ("What are the MX records of example.net?" | about what the user does ("What are the MX records of example.net?" | |||
| means he probably wants to send email to someone at example.net, | means he probably wants to send email to someone at example.net, | |||
| which may be a domain used by only a few persons and is therefore | which may be a domain used by only a few persons and is therefore | |||
| very revealing about communication relationships). Some QNAMEs are | very revealing about communication relationships). Some QNAMEs are | |||
| more sensitive than others. For instance, querying the A record of a | more sensitive than others. For instance, querying the A record of a | |||
| well-known web statistics domain reveals very little (everybody | well-known web statistics domain reveals very little (everybody | |||
| visits web sites that use this analytics service), but querying the A | visits web sites that use this analytics service), but querying the A | |||
| record of www.verybad.example where verybad.example is the domain of | record of www.verybad.example where verybad.example is the domain of | |||
| skipping to change at page 6, line 38 ¶ | skipping to change at page 6, line 44 ¶ | |||
| There are also some BitTorrent clients that query an SRV record for | There are also some BitTorrent clients that query an SRV record for | |||
| _bittorrent-tracker._tcp.domain.example. | _bittorrent-tracker._tcp.domain.example. | |||
| Another important thing about the privacy of the QNAME is the future | Another important thing about the privacy of the QNAME is the future | |||
| usages. Today, the lack of privacy is an obstacle to putting | usages. Today, the lack of privacy is an obstacle to putting | |||
| potentially sensitive or personally identifiable data in the DNS. At | potentially sensitive or personally identifiable data in the DNS. At | |||
| the moment, your DNS traffic might reveal that you are doing email | the moment, your DNS traffic might reveal that you are doing email | |||
| but not with whom. If your Mail User Agent (MUA) starts looking up | but not with whom. If your Mail User Agent (MUA) starts looking up | |||
| Pretty Good Privacy (PGP) keys in the DNS [RFC7929], then privacy | Pretty Good Privacy (PGP) keys in the DNS [RFC7929], then privacy | |||
| becomes a lot more important. And email is just an example; there | becomes a lot more important. And email is just an example; there | |||
| would be other really interesting uses for a more privacy- friendly | would be other really interesting uses for a more privacy-friendly | |||
| DNS. | DNS. | |||
| For the communication between the stub resolver and the recursive | For the communication between the stub resolver and the recursive | |||
| resolver, the source IP address is the address of the user's machine. | resolver, the source IP address is the address of the user's machine. | |||
| Therefore, all the issues and warnings about collection of IP | Therefore, all the issues and warnings about collection of IP | |||
| addresses apply here. For the communication between the recursive | addresses apply here. For the communication between the recursive | |||
| resolver and the authoritative name servers, the source IP address | resolver and the authoritative name servers, the source IP address | |||
| has a different meaning; it does not have the same status as the | has a different meaning; it does not have the same status as the | |||
| source address in an HTTP connection. It is now the IP address of | source address in an HTTP connection. It is typically the IP address | |||
| 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 is | |||
| as sensitive as it is for HTTP [sidn-entrada]. | 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 | |||
| the meantime, the discussion here is intended to include both IPv4 | the meantime, the discussion here is intended to include both IPv4 | |||
| and IPv6 source addresses. For a number of reasons, their assignment | and IPv6 source addresses. For a number of reasons, their assignment | |||
| and utilization characteristics are different, which may have | and utilization characteristics are different, which may have | |||
| implications for details of information leakage associated with the | implications for details of information leakage associated with the | |||
| collection of source addresses. (For example, a specific IPv6 source | collection of source addresses. (For example, a specific IPv6 source | |||
| address seen on the public Internet is less likely than an IPv4 | address seen on the public Internet is less likely than an IPv4 | |||
| address to originate behind a CGN or other NAT.) However, for both | address to originate behind an address sharing scheme.) However, for | |||
| IPv4 and IPv6 addresses, it's important to note that source addresses | both IPv4 and IPv6 addresses, it is important to note that source | |||
| are propagated with queries and comprise metadata about the host, | addresses are propagated with queries and comprise metadata about the | |||
| user, or application that originated them. | host, user, or application that originated them. | |||
| 3.2.1. Data in the DNS payload | 3.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 for stub to resolver | |||
| communications to support proprietary functionality implemented at | communications to support proprietary functionality implemented at | |||
| the resolver (e.g. parental filtering). | the resolver (e.g., parental filtering). | |||
| 3.3. Cache Snooping | 3.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. | |||
| skipping to change at page 8, line 15 ¶ | skipping to change at page 8, line 17 ¶ | |||
| 3.4. On the Wire | 3.4. On the Wire | |||
| 3.4.1. Unencrypted Transports | 3.4.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 | |||
| time of writing there is on-going work attempting to encrypt the SNI | time of writing there is on-going work attempting to encrypt the SNI | |||
| in the TLS handshake [I-D.ietf-tls-sni-encryption]. | in the TLS handshake [I-D.ietf-tls-sni-encryption]. | |||
| An important specificity of the DNS traffic is that it may take a | An important specificity of the DNS traffic is that it may take a | |||
| different path than the communication between the initiator and the | different path than the communication between the initiator and the | |||
| recipient. For instance, an eavesdropper may be unable to tap the | recipient. For instance, an eavesdropper may be unable to tap the | |||
| wire between the initiator and the recipient but may have access to | wire between the initiator and the recipient but may have access to | |||
| the wire going to the recursive resolver, or to the authoritative | the wire going to the recursive resolver, or to the authoritative | |||
| name servers. | name servers. | |||
| The best place to tap, from an eavesdropper's point of view, is | The best place to tap, from an eavesdropper's point of view, is | |||
| clearly between the stub resolvers and the recursive resolvers, | clearly between the stub resolvers and the recursive resolvers, | |||
| because traffic is not limited by DNS caching. | because traffic is not limited by DNS caching. | |||
| The attack surface between the stub resolver and the rest of the | The attack surface between the stub resolver and the rest of the | |||
| world can vary widely depending upon how the end user's computer is | world can vary widely depending upon how the end user's device is | |||
| configured. By order of increasing attack surface: | configured. By order of increasing attack surface: | |||
| The recursive resolver can be on the end user's computer. In | o The recursive resolver can be on the end user's device. In | |||
| (currently) a small number of cases, individuals may choose to | (currently) a small number of cases, individuals may choose to | |||
| operate their own DNS resolver on their local machine. In this | operate their own DNS resolver on their local machine. In this | |||
| case, the attack surface for the connection between the stub | case, the attack surface for the connection between the stub | |||
| resolver and the caching resolver is limited to that single | resolver and the caching resolver is limited to that single | |||
| machine. | machine. | |||
| The recursive resolver may be at the local network edge. For | o The recursive resolver may be at the local network edge. For | |||
| many/most enterprise networks and for some residential users, the | many/most enterprise networks and for some residential users, the | |||
| caching resolver may exist on a server at the edge of the local | caching resolver may exist on a server at the edge of the local | |||
| network. In this case, the attack surface is the local network. | network. In this case, the attack surface is the local network. | |||
| Note that in large enterprise networks, the DNS resolver may not | Note that in large enterprise networks, the DNS resolver may not | |||
| be located at the edge of the local network but rather at the edge | be located at the edge of the local network but rather at the edge | |||
| of the overall enterprise network. In this case, the enterprise | of the overall enterprise network. In this case, the enterprise | |||
| network could be thought of as similar to the Internet Access | network could be thought of as similar to the Internet Access | |||
| Provider (IAP) network referenced below. | Provider (IAP) network referenced below. | |||
| The recursive resolver can be in the IAP premises. 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 computer to be configured (typically | is for the end user's device to be configured (typically | |||
| automatically through DHCP) with the addresses of the DNS | automatically through DHCP or RA options) with the addresses of | |||
| recursive resolvers at the IAP. The attack surface for on-the- | the DNS proxy in the CPE, which in turns points to the DNS | |||
| wire attacks is therefore from the end-user system across the | recursive resolvers at the IAP. The attack surface for on-the- | |||
| local network and across the IAP network to the IAP's recursive | wire attacks is therefore from the end user system across the | |||
| resolvers. | local network and across the IAP network to the IAP's recursive | |||
| resolvers. | ||||
| The recursive resolver can be a public DNS service. Some machines | o The recursive resolver can be a public DNS service. 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 today by Google Public DNS or OpenDNS. The end user may | operated by Google Public DNS or OpenDNS. The end user may have | |||
| 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 is also noted that typically a device connected _only_ to a modern | ||||
| cellular network is | ||||
| o directly configured with only the recursive resolvers of the IAP | ||||
| and | ||||
| o all traffic (including DNS) between the device and the cellular | ||||
| network is encrypted following an encryption profile edited by the | ||||
| IPv6 for Third Generation Partnership Project (3GPP [2]). | ||||
| The attack surface for this specific scenario is not considered here. | ||||
| 3.4.2. Encrypted Transports | 3.4.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 IP TTL or TCP Window sizes os-fingerprint [2] values | highlighted that IPv4 TTL, IPv6 Hop Limit, or TCP Window sizes os- | |||
| can be used to fingerprint client OS's or that various techniques can | fingerprint [3] values can be used to fingerprint client OS's or that | |||
| be used to de-NAT DNS queries dns-de-nat [3]. | various techniques can be used to de-NAT DNS queries dns-de-nat [4]. | |||
| The use of clear text transport options to decrease latency may also | The use of clear text transport options to optimize latency may also | |||
| identify a user e.g. using TCP Fast Open [RFC7413]. | identify a user, e.g., using TCP Fast Open with TLS 1.2 [RFC7413]. | |||
| More specifically, (since the deployment of encrypted transports is | More specifically, (since the deployment of encrypted transports is | |||
| not widespread at the time of writing) users wishing to use encrypted | not widespread at the time of writing) users wishing to use encrypted | |||
| transports for DNS may in practice be limited in the resolver | transports for DNS may in practice be limited in the resolver | |||
| services available. Given this, the choice of a user to configure a | services available. Given this, the choice of a user to configure a | |||
| single resolver (or a fixed set of resolvers) and an encrypted | single resolver (or a fixed set of resolvers) and an encrypted | |||
| transport to use in all network environments can actually serve to | transport to use in all network environments can actually serve to | |||
| identify the user as one that desires privacy and can provide an | identify the user as one that desires privacy and can provide an | |||
| added mechanism to track them as they move across network | added mechanism to track them as they move across network | |||
| environments. | environments. | |||
| Users of encrypted transports are also highly likely to re-use | Users of encrypted transports are also highly likely to re-use | |||
| sessions for multiple DNS queries to optimize performance (e.g. via | sessions for multiple DNS queries to optimize performance (e.g., via | |||
| DNS pipelining or HTTPS multiplexing). Certain configuration options | DNS pipelining or HTTPS multiplexing). Certain configuration options | |||
| for encrypted transports could also in principle fingerprint a user | for encrypted transports could also in principle fingerprint a user | |||
| or client application. For example: | or 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 | |||
| skipping to change at page 11, line 34 ¶ | skipping to change at page 11, line 34 ¶ | |||
| 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 | 3.5.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 | 3.5.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, which may have strong, medium, or weak privacy policies | |||
| depending on the network. Privacy policies for these servers may or | depending on the network. Privacy policies for these servers may or | |||
| may not be available and users need to be aware that privacy | may not be available and users need to be aware that privacy | |||
| guarantees will vary with network. | guarantees will vary with network. | |||
| More recently some networks and end users have actively chosen to use | More recently some networks and end users have actively chosen to use | |||
| a large public resolver instead e.g. Google Public DNS, Cloudflare | a large public resolver instead, e.g., Google Public DNS [5], | |||
| or Quad9 (need refs). There can be many reasons: cost considerations | Cloudflare [6], or Quad9 [7]. There can be many reasons: cost | |||
| for network operators, better reliability or anti-censorship | considerations for network operators, better reliability or anti- | |||
| considerations are just a few. Such services typically do provide a | censorship considerations are just a few. Such services typically do | |||
| privacy policy and the end user can get an idea of the data collected | provide a privacy policy and the end user can get an idea of the data | |||
| by such operators by reading one e.g., Google Public DNS - Your | collected by such operators by reading one e.g., Google Public DNS - | |||
| Privacy [4]. | Your Privacy [8]. | |||
| Even more recently some applications have announced plans to deploy | Even more recently some applications have announced plans to deploy | |||
| application specific DNS settings which might be enabled by default. | application-specific DNS settings which might be enabled by default. | |||
| For example current proposals by Firefox [firefox] revolve around a | For example, current proposals by Firefox [firefox] revolve around a | |||
| default based on geographic region using a pre-configured list of | default based on the geographic region, using a pre-configured list | |||
| large public resolver services which offer DoH, combined with non- | of large public resolver services which offer DoH, combined with non- | |||
| standard probing and signalling mechanism to disable DoH in | standard probing and signalling mechanism to disable DoH in | |||
| particular networks. Whereas Chrome [chrome] is experimenting with | particular networks. Whereas Chrome [chrome] is experimenting with | |||
| using DoH to the DHCP provided resolver if it is on a list of DoH- | using DoH to the DHCP-provided resolver if it is on a list of DoH- | |||
| compatible providers. At the time of writing efforts to provide | compatible providers. At the time of writing, efforts to provide | |||
| standardized signalling mechanisms for applications to discover the | standardized signalling mechanisms for applications to discover the | |||
| services offered by local resolvers are in progress | services offered by local resolvers are in progress | |||
| [I-D.ietf-dnsop-resolver-information]. | [I-D.ietf-dnsop-resolver-information]. | |||
| If applications enable application specific DNS settings without | If applications enable application-specific DNS settings without | |||
| properly informing the user of the change (or do not provide an | properly informing the user of the change (or do not provide an | |||
| option for user configuration of the application recursive resolver) | option for user configuration of the application's recursive | |||
| there is a potential privacy issue; depending on the network context | resolver) there is a potential privacy issue; depending on the | |||
| and the application default the application might use a recursive | network context and the application default, the application might | |||
| server that provides less privacy protection than the default network | use a recursive server that provides less privacy protection than the | |||
| provided server without the users full knowledge. Users that are | default network-provided server without the user's full knowledge. | |||
| fully aware of an application specific DNS setting may want to | Users that are fully aware of an application specific DNS setting may | |||
| actively override any default in favour of their chosen recursive | want to actively override any default in favour of their chosen | |||
| resolver. | recursive resolver. | |||
| There are also concerns that should the trend towards using large | There are also concerns that, should the trend towards using large | |||
| public resolvers increase, this will itself provide a privacy concern | public resolvers increase, this will itself provide a privacy | |||
| due to a small number of operators having visibility of the majority | concern, due to a small number of operators having visibility of the | |||
| of DNS requests globally and the potential for aggregating data | majority of DNS requests globally and the potential for aggregating | |||
| across services about a user. Additionally the operating | data across services about a user. Additionally the operating | |||
| organisation of the resolver may be in a different legal jurisdiction | organisation of the resolver may be in a different legal jurisdiction | |||
| to the user which creates further privacy concerns around legal | than the user, which creates further privacy concerns around legal | |||
| protections of and access to the data collected by the operator. | protections of and access to the data collected by the operator. | |||
| At the time of writing the deployment models for DNS are evolving, | At the time of writing the deployment models for DNS are evolving, | |||
| their implications are complex and extend beyond the scope of this | their implications are complex and extend beyond the scope of this | |||
| document. They are the subject of much other work including | document. They are the subject of much other work including | |||
| [I-D.livingood-doh-implementation-risks-issues], the IETF ADD mailing | [I-D.livingood-doh-implementation-risks-issues], the IETF ADD mailing | |||
| list [5] and the Encrypted DNS Deployment Initiative [6]. | list [9] and the Encrypted DNS Deployment Initiative [10]. | |||
| 3.5.1.2. Active attacks on resolver configuration | 3.5.1.2. Active Attacks on Resolver Configuration | |||
| The previous paragraphs 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 redirecting the traffic, not just to observe | attackers in the network redirecting the traffic, not just to observe | |||
| it but also potentially change it. | it but also potentially change it. | |||
| For instance, a DHCP server controlled by an attacker can direct you | For instance, a DHCP server controlled by an attacker can direct you | |||
| to a recursive resolver also controlled by that attacker. Most of | to a recursive resolver also controlled by that attacker. Most of | |||
| the time, it seems to be done to divert traffic in order to also | the time, it seems to be done to divert traffic in order to also | |||
| direct the user to a web server controlled by the attacker. However | direct the user to a web server controlled by the attacker. However | |||
| skipping to change at page 13, line 27 ¶ | skipping to change at page 13, line 27 ¶ | |||
| can masquerade as the intended server and respond with data to the | can masquerade as the intended server and respond with data to the | |||
| client. (Attacker controlled servers that inject malicious data are | client. (Attacker controlled servers that inject malicious data are | |||
| possible, but it is a separate problem not relevant to privacy.) A | possible, but it is a separate problem not relevant to privacy.) A | |||
| server controlled by an attacker may respond correctly for a long | server controlled by an attacker may respond correctly for a long | |||
| period of time, thereby foregoing detection. | period of time, thereby foregoing detection. | |||
| Also, malware like DNSchanger [dnschanger] can change the recursive | Also, malware like DNSchanger [dnschanger] can change the recursive | |||
| resolver in the machine's configuration, or the routing itself can be | resolver in the machine's configuration, or the routing itself can be | |||
| subverted (for instance, [ripe-atlas-turkey]). | subverted (for instance, [ripe-atlas-turkey]). | |||
| 3.5.1.3. Blocking of user selected services | 3.5.1.3. Blocking of User Selected 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 (e.g. 1.1.1.1 or 2606:4700:4700::1111) could | specific IP addresses (e.g., 1.1.1.1 or 2606:4700:4700::1111) could | |||
| restrict the resolvers available to the user. The extent of the risk | restrict the resolvers available to the user. The extent of the risk | |||
| to end user privacy is highly dependant on the specific network and | to end user privacy is highly dependent on the specific network and | |||
| user context; a user on a network that is known to perform | user context; a user on a network that is known to perform | |||
| surveillance would be compromised if they could not access such | surveillance would be compromised if they could not access such | |||
| services whereas a user on a trusted network might have no privacy | services, whereas a user on a trusted network might have no privacy | |||
| motivation to do so. | motivation to do so. | |||
| Similarly attacks on such services e.g. DDoS could force users to | In some cases, networks might block access to remote resolvers for | |||
| switch to other services that do not offer encrypted transports for | security reasons, for example to cripple malware and bots or to | |||
| DNS. | prevent data exfiltration methods that use encrypted DNS | |||
| communications as transport. In these cases, if the network fully | ||||
| respects user privacy in other ways (i.e. encrypted DNS and good | ||||
| data handling policies) the block can serve to further protect user | ||||
| privacy by ensuring such security precautions. | ||||
| 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 | ||||
| encrypted transports for DNS. | ||||
| 3.5.1.4. Authentication of Servers | 3.5.1.4. Authentication of Servers | |||
| Both DoH and Strict mode for DoT require authentication of the server | Both DoH and Strict mode for DoT [RFC8310] require authentication of | |||
| and therefore as long as the authentication credentials are obtained | the server and therefore as long as the authentication credentials | |||
| over a secure channel then using either of these transports defeats | are obtained over a secure channel then using either of these | |||
| the attack of re-directing traffic to rogue servers. Of course | transports defeats the attack of re-directing traffic to rogue | |||
| attacks on these secure channels are also possible, but out of the | servers. Of course attacks on these secure channels are also | |||
| scope of this document. | possible, but out of the scope of this document. | |||
| 3.5.1.5. Encrypted Transports | 3.5.1.5. Encrypted Transports | |||
| 3.5.1.5.1. DoT and DoH | 3.5.1.5.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 mentioned in Section 3.4 | information about users to operators. As mentioned in Section 3.4 | |||
| use of session based encrypted transports (TCP/TLS) can expose | use of session based encrypted transports (TCP/TLS) can expose | |||
| correlation data about users. Such concerns in the TCP/TLS layers | correlation data about users. Such concerns in the TCP/TLS layers | |||
| apply equally to DoT and DoH which both use TLS as the underlying | apply equally to DoT and DoH which both use TLS as the underlying | |||
| transport, some examples are: | transport, some examples are: | |||
| o fingerprinting based on TLS version and/or cipher suite selection | o fingerprinting based on TLS version and/or cipher suite selection | |||
| o user tracking via session resumption in TLS 1.2 | o user tracking via session resumption in TLS 1.2 | |||
| 3.5.1.5.2. DoH Specific Considerations | 3.5.1.5.2. DoH Specific Considerations | |||
| The proposed specification for DoH [RFC8484] includes a Privacy | Section 8 of [RFC8484] highlights some of the privacy consideration | |||
| Considerations section which highlights some of the differences | differences between HTTP and DNS. As a deliberate design choice DoH | |||
| between HTTP and DNS. As a deliberate design choice DoH inherits the | inherits the privacy properties of the HTTPS stack and as a | |||
| privacy properties of the HTTPS stack and as a consequence introduces | consequence introduces new privacy concerns when compared with DNS | |||
| new privacy concerns when compared with DNS over UDP, TCP or TLS | over UDP, TCP or TLS [RFC7858]. The rationale for this decision is | |||
| [RFC7858]. The rationale for this decision is that retaining the | that retaining the ability to leverage the full functionality of the | |||
| ability to leverage the full functionality of the HTTP ecosystem is | HTTP ecosystem is more important than placing specific constraints on | |||
| more important than placing specific constraints on this new protocol | this new protocol based on privacy considerations (modulo limiting | |||
| based on privacy considerations (modulo limiting the use of HTTP | the use of HTTP cookies). | |||
| cookies). | ||||
| In analyzing the new issues introduced by DoH it is helpful to | In analyzing the new issues introduced by DoH it is helpful to | |||
| recognize that there exists a natural tension between | recognize that there exists a natural tension between | |||
| o the wide practice in HTTP to use various headers to optimize HTTP | o the wide practice in HTTP to use various headers to optimize HTTP | |||
| connections, functionality and behaviour (which can facilitate | connections, functionality and behaviour (which can facilitate | |||
| user identification and tracking) | user identification and tracking) | |||
| o and the fact that the DNS payload is currently very tightly | o and the fact that the DNS payload is currently very tightly | |||
| encoded and contains no standardized user identifiers. | encoded and contains no standardized user identifiers. | |||
| DoT, for example, would normally contain no client identifiers above | DoT, for example, would normally contain no client identifiers above | |||
| the TLS layer and a resolver would see only a stream of DNS query | the TLS layer and a resolver would see only a stream of DNS query | |||
| payloads originating within one or more connections from a client IP | payloads originating within one or more connections from a client IP | |||
| address. Whereas if DoH clients commonly include several headers in | address. Whereas if DoH clients commonly include several headers in | |||
| a DNS message (e.g. user-agent and accept-language) this could lead | a DNS message (e.g., user-agent and accept-language) this could lead | |||
| to the DoH server being able to identify the source of individual DNS | to the DoH server being able to identify the source of individual DNS | |||
| requests not only to a specific end user device but to a specific | requests not only to a specific end user device but to a specific | |||
| application. | application. | |||
| Additionally, depending on the client architecture, isolation of DoH | Additionally, depending on the client architecture, isolation of DoH | |||
| queries from other HTTP traffic may or may not be feasible or | queries from other HTTP traffic may or may not be feasible or | |||
| desirable. Depending on the use case, isolation of DoH queries from | desirable. Depending on the use case, isolation of DoH queries from | |||
| other HTTP traffic may or may not increase privacy. | other HTTP traffic may or may not increase privacy. | |||
| The picture for privacy considerations and user expectations for DoH | The picture for privacy considerations and user expectations for DoH | |||
| skipping to change at page 15, line 26 ¶ | skipping to change at page 15, line 33 ¶ | |||
| HTTPS functionality vs privacy is specifically made an implementation | HTTPS functionality vs privacy is specifically made an implementation | |||
| choice in DoH and users may well have differing privacy expectations | choice in DoH and users may well have differing privacy expectations | |||
| depending on the DoH use case and implementation. | depending on the DoH use case and implementation. | |||
| At the extremes, there may be implementations that attempt to achieve | At the extremes, there may be implementations that attempt to achieve | |||
| parity with DoT from a privacy perspective at the cost of using no | parity with DoT from a privacy perspective at the cost of using no | |||
| identifiable headers, there might be others that provide feature rich | identifiable headers, there might be others that provide feature rich | |||
| data flows where the low-level origin of the DNS query is easily | data flows where the low-level origin of the DNS query is easily | |||
| identifiable. | identifiable. | |||
| Privacy focussed users should be aware of the potential for | Privacy focused users should be aware of the potential for additional | |||
| additional client identifiers in DoH compared to DoT and may want to | client identifiers in DoH compared to DoT and may want to only use | |||
| only use DoH client implementations that provide clear guidance on | DoH client implementations that provide clear guidance on what | |||
| what identifiers they add. | identifiers they add. | |||
| 3.5.2. In the Authoritative Name Servers | 3.5.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 | |||
| skipping to change at page 17, line 7 ¶ | skipping to change at page 17, line 14 ¶ | |||
| 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 | |||
| a period, then that same adversary may be able to re-identify the | a period, then that same adversary may be able to re-identify the | |||
| user solely based on their pattern of DNS queries later on regardless | user solely based on their pattern of DNS queries later on regardless | |||
| of the location from which the user makes those queries. For | of the location from which the user makes those queries. For | |||
| example, one study [herrmann-reidentification] found that such re- | example, one study [herrmann-reidentification] found that such re- | |||
| identification is possible so that "73.1% of all day-to-day links | identification is possible so that "73.1% of all day-to-day links | |||
| were correctly established, i.e. user u was either re-identified | were correctly established, i.e., user u was either re-identified | |||
| unambiguously (1) or the classifier correctly reported that u was not | unambiguously (1) or the classifier correctly reported that u was not | |||
| present on day t+1 any more (2)." While that study related to web | present on day t+1 any more (2)." While that study related to web | |||
| browsing behavior, equally characteristic patterns may be produced | browsing behavior, equally characteristic patterns may be produced | |||
| even in machine-to-machine communications or without a user taking | even in machine-to-machine communications or without a user taking | |||
| specific actions, e.g., at reboot time if a characteristic set of | specific actions, e.g., at reboot time if a characteristic set of | |||
| services are accessed by the device. | services are accessed by the device. | |||
| For instance, one could imagine that an intelligence agency | For instance, one could imagine that an intelligence agency | |||
| identifies people going to a site by putting in a very long DNS name | identifies people going to a site by putting in a very long DNS name | |||
| and looking for queries of a specific length. Such traffic analysis | and looking for queries of a specific length. Such traffic analysis | |||
| skipping to change at page 18, line 22 ¶ | skipping to change at page 18, line 29 ¶ | |||
| 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 project which | to check their availability. Also the QUANTUMTHEORY project which | |||
| includes detecting lookups for certain addresses and injecting bogus | includes detecting lookups for certain addresses and injecting bogus | |||
| replies is another good example showing that the lack of privacy | replies is another good example showing that the lack of privacy | |||
| protections in the DNS is actively exploited. | protections in the DNS is actively exploited. | |||
| 5. Legalities | 5. 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 [7] applicable in the European | [data-protection-directive] or GDPR [11] 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 | 6. 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 | |||
| skipping to change at page 18, line 47 ¶ | skipping to change at page 19, line 6 ¶ | |||
| 7. Acknowledgments | 7. 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. And thanks to the IESG members for | for good written contributions. Thanks to Vittorio Bertola and | |||
| the last remarks. | Mohamed Boucadair for a detailed review of the -bis. And thanks to | |||
| the IESG members for the last remarks. | ||||
| 8. Changelog | 8. Changelog | |||
| draft-ietf-dprive-rfc7627-bis-01 | draft-ietf-dprive-rfc7626-bis-02 | |||
| o Numerous editorial corrections thanks to Mohamed Boucadair and | ||||
| * Minor additions to Scope section | ||||
| * New text on cellular network DNS | ||||
| o Additional text from Vittorio Bertola on blocking and security | ||||
| draft-ietf-dprive-rfc7626-bis-01 | ||||
| o Re-structure section 3.5 (was 2.5) | o Re-structure section 3.5 (was 2.5) | |||
| * Collect considerations for recursive resolvers together | * Collect considerations for recursive resolvers together | |||
| * Re-work several sections here to clarify their context (e.g. | * Re-work several sections here to clarify their context (e.g., | |||
| 'Rogue servers' becomes 'Active attacks on resolver | 'Rogue servers' becomes 'Active attacks on resolver | |||
| configuration') | configuration') | |||
| * Add discussion of resolver selection | * Add discussion of resolver selection | |||
| o Update text and old reference on Snowdon revelations. | o Update text and old reference on Snowdon revelations. | |||
| o Add text on and references to QNAME minimisation RFC and | o Add text on and references to QNAME minimisation RFC and | |||
| deployment measurements | deployment measurements | |||
| o Correct outdated references | o Correct outdated references | |||
| o Clarify scope by adding a Scope section (was Risks overview) | o Clarify scope by adding a Scope section (was Risks overview) | |||
| o Clarify what risks are considered in section 3.4.2 | o Clarify what risks are considered in section 3.4.2 | |||
| draft-ietf-dprive-rfc7627-bis-00 | draft-ietf-dprive-rfc7626-bis-00 | |||
| o Rename after WG adoption | o Rename after WG adoption | |||
| o Use DoT acronym throughout | o Use DoT acronym throughout | |||
| o Minor updates to status of deployment and other drafts | o Minor updates to status of deployment and other drafts | |||
| draft-bortzmeyer-dprive-rfc7626-bis-02 | ||||
| o Update various references and fix some nits. | o Update various references and fix some nits. | |||
| draft-bortzmeyer-dprive-rfc7626-bis-01 | draft-bortzmeyer-dprive-rfc7626-bis-01 | |||
| o Update reference for dickinson-bcp-op to draft-dickinson-dprive- | o Update reference for dickinson-bcp-op to draft-dickinson-dprive- | |||
| bcp-op | bcp-op | |||
| draft-borztmeyer-dprive-rfc7626-bis-00: | draft-borztmeyer-dprive-rfc7626-bis-00: | |||
| Initial commit. Differences to RFC7626: | Initial commit. Differences to RFC7626: | |||
| skipping to change at page 20, line 34 ¶ | skipping to change at page 21, line 5 ¶ | |||
| [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>. | |||
| [RFC7816] Bortzmeyer, S., "DNS Query Name Minimisation to Improve | ||||
| Privacy", RFC 7816, DOI 10.17487/RFC7816, March 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7816>. | ||||
| 9.2. Informative References | 9.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>. | |||
| [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, | |||
| skipping to change at page 23, line 13 ¶ | skipping to change at page 23, line 27 ¶ | |||
| regensburg.de/21103/1/Paper_PUL_nordsec_published.pdf>. | regensburg.de/21103/1/Paper_PUL_nordsec_published.pdf>. | |||
| [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-00 (work in progress), August 2019. | |||
| [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-03 (work in | Operators", draft-ietf-dprive-bcp-op-04 (work in | |||
| progress), July 2019. | progress), October 2019. | |||
| [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-23 (work | and Secure Transport", draft-ietf-quic-transport-23 (work | |||
| in progress), September 2019. | in progress), September 2019. | |||
| [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-06 | SNI Encryption in TLS", draft-ietf-tls-sni-encryption-08 | |||
| (work in progress), September 2019. | (work in progress), October 2019. | |||
| [I-D.livingood-doh-implementation-risks-issues] | [I-D.livingood-doh-implementation-risks-issues] | |||
| Livingood, J., Antonakakis, M., Sleigh, B., and A. | Livingood, J., Antonakakis, M., Sleigh, B., and A. | |||
| Winfield, "Centralized DNS over HTTPS (DoH) Implementation | Winfield, "Centralized DNS over HTTPS (DoH) Implementation | |||
| Issues and Risks", draft-livingood-doh-implementation- | Issues and Risks", draft-livingood-doh-implementation- | |||
| risks-issues-04 (work in progress), September 2019. | risks-issues-04 (work in progress), September 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 | |||
| skipping to change at page 24, line 45 ¶ | skipping to change at page 25, line 12 ¶ | |||
| (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May | |||
| 2015, <https://www.rfc-editor.org/info/rfc7525>. | 2015, <https://www.rfc-editor.org/info/rfc7525>. | |||
| [RFC7624] Barnes, R., Schneier, B., Jennings, C., Hardie, T., | [RFC7624] Barnes, R., Schneier, B., Jennings, C., Hardie, T., | |||
| Trammell, B., Huitema, C., and D. Borkmann, | Trammell, B., Huitema, C., and D. Borkmann, | |||
| "Confidentiality in the Face of Pervasive Surveillance: A | "Confidentiality in the Face of Pervasive Surveillance: A | |||
| Threat Model and Problem Statement", RFC 7624, | Threat Model and Problem Statement", RFC 7624, | |||
| DOI 10.17487/RFC7624, August 2015, <https://www.rfc- | DOI 10.17487/RFC7624, August 2015, <https://www.rfc- | |||
| editor.org/info/rfc7624>. | editor.org/info/rfc7624>. | |||
| [RFC7816] Bortzmeyer, S., "DNS Query Name Minimisation to Improve | ||||
| Privacy", RFC 7816, DOI 10.17487/RFC7816, March 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7816>. | ||||
| [RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., | [RFC7858] Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D., | |||
| and P. Hoffman, "Specification for DNS over Transport | and P. Hoffman, "Specification for DNS over Transport | |||
| Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May | Layer Security (TLS)", RFC 7858, DOI 10.17487/RFC7858, May | |||
| 2016, <https://www.rfc-editor.org/info/rfc7858>. | 2016, <https://www.rfc-editor.org/info/rfc7858>. | |||
| [RFC7871] Contavalli, C., van der Gaast, W., Lawrence, D., and W. | [RFC7871] Contavalli, C., van der Gaast, W., Lawrence, D., and W. | |||
| Kumari, "Client Subnet in DNS Queries", RFC 7871, | Kumari, "Client Subnet in DNS Queries", RFC 7871, | |||
| DOI 10.17487/RFC7871, May 2016, <https://www.rfc- | DOI 10.17487/RFC7871, May 2016, <https://www.rfc- | |||
| editor.org/info/rfc7871>. | editor.org/info/rfc7871>. | |||
| [RFC7873] Eastlake 3rd, D. and M. Andrews, "Domain Name System (DNS) | [RFC7873] Eastlake 3rd, D. and M. Andrews, "Domain Name System (DNS) | |||
| Cookies", RFC 7873, DOI 10.17487/RFC7873, May 2016, | Cookies", RFC 7873, DOI 10.17487/RFC7873, May 2016, | |||
| <https://www.rfc-editor.org/info/rfc7873>. | <https://www.rfc-editor.org/info/rfc7873>. | |||
| [RFC7929] Wouters, P., "DNS-Based Authentication of Named Entities | [RFC7929] Wouters, P., "DNS-Based Authentication of Named Entities | |||
| (DANE) Bindings for OpenPGP", RFC 7929, | (DANE) Bindings for OpenPGP", RFC 7929, | |||
| DOI 10.17487/RFC7929, August 2016, <https://www.rfc- | DOI 10.17487/RFC7929, August 2016, <https://www.rfc- | |||
| editor.org/info/rfc7929>. | editor.org/info/rfc7929>. | |||
| [RFC8310] Dickinson, S., Gillmor, D., and T. Reddy, "Usage Profiles | ||||
| for DNS over TLS and DNS over DTLS", RFC 8310, | ||||
| DOI 10.17487/RFC8310, March 2018, <https://www.rfc- | ||||
| editor.org/info/rfc8310>. | ||||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| [RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS | [RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS | |||
| (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | |||
| <https://www.rfc-editor.org/info/rfc8484>. | <https://www.rfc-editor.org/info/rfc8484>. | |||
| [RFC8499] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS | [RFC8499] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS | |||
| Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499, | Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499, | |||
| skipping to change at page 26, line 27 ¶ | skipping to change at page 26, line 47 ¶ | |||
| [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>. | |||
| 9.3. URIs | 9.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/014141.html | |||
| [2] http://netres.ec/?b=11B99BD | [2] https://www.3gpp.org | |||
| [3] https://www.researchgate.net/publication/320322146_DNS-DNS_DNS- | [3] http://netres.ec/?b=11B99BD | |||
| [4] 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/privacy | [5] https://developers.google.com/speed/public-dns | |||
| [5] https://mailarchive.ietf.org/arch/browse/static/add | [6] https://developers.cloudflare.com/1.1.1.1/setting-up-1.1.1.1/ | |||
| [6] https://www.encrypted-dns.org | [7] https://www.quad9.net | |||
| [7] https://www.eugdpr.org/the-regulation.html | [8] https://developers.google.com/speed/public-dns/privacy | |||
| [9] https://mailarchive.ietf.org/arch/browse/static/add | ||||
| [10] https://www.encrypted-dns.org | ||||
| [11] https://www.eugdpr.org/the-regulation.html | ||||
| Authors' Addresses | Authors' Addresses | |||
| Stephane Bortzmeyer | Stephane Bortzmeyer | |||
| AFNIC | AFNIC | |||
| 1, rue Stephenson | 1, rue Stephenson | |||
| Montigny-le-Bretonneux | Montigny-le-Bretonneux | |||
| France 78180 | France 78180 | |||
| Email: bortzmeyer+ietf@nic.fr | Email: bortzmeyer+ietf@nic.fr | |||
| End of changes. 69 change blocks. | ||||
| 168 lines changed or deleted | 219 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/ | ||||