rfc8932v1.txt | rfc8932.txt | |||
---|---|---|---|---|
skipping to change at line 19 ¶ | skipping to change at line 19 ¶ | |||
October 2020 | October 2020 | |||
Recommendations for DNS Privacy Service Operators | Recommendations for DNS Privacy Service Operators | |||
Abstract | Abstract | |||
This document presents operational, policy, and security | This document presents operational, policy, and security | |||
considerations for DNS recursive resolver operators who choose to | considerations for DNS recursive resolver operators who choose to | |||
offer DNS privacy services. With these recommendations, the operator | offer DNS privacy services. With these recommendations, the operator | |||
can make deliberate decisions regarding which services to provide, as | can make deliberate decisions regarding which services to provide, as | |||
well as how the decisions and alternatives impact the privacy of | well as understanding how those decisions and the alternatives impact | |||
users. | the privacy of users. | |||
This document also presents a non-normative framework to assist | This document also presents a non-normative framework to assist | |||
writers of a Recursive operator Privacy Statement, analogous to DNS | writers of a Recursive operator Privacy Statement, analogous to DNS | |||
Security Extensions (DNSSEC) Policies and DNSSEC Practice Statements | Security Extensions (DNSSEC) Policies and DNSSEC Practice Statements | |||
described in RFC 6841. | described in RFC 6841. | |||
Status of This Memo | Status of This Memo | |||
This memo documents an Internet Best Current Practice. | This memo documents an Internet Best Current Practice. | |||
skipping to change at line 192 ¶ | skipping to change at line 192 ¶ | |||
legal advice as to the contents of an RPS. | legal advice as to the contents of an RPS. | |||
A desired operational impact is that all operators (both those | A desired operational impact is that all operators (both those | |||
providing resolvers within networks and those operating large public | providing resolvers within networks and those operating large public | |||
services) can demonstrate their commitment to user privacy, thereby | services) can demonstrate their commitment to user privacy, thereby | |||
driving all DNS resolution services to a more equitable footing. | driving all DNS resolution services to a more equitable footing. | |||
Choices for users would (in this ideal world) be driven by other | Choices for users would (in this ideal world) be driven by other | |||
factors -- e.g., differing security policies or minor differences in | factors -- e.g., differing security policies or minor differences in | |||
operator policy -- rather than gross disparities in privacy concerns. | operator policy -- rather than gross disparities in privacy concerns. | |||
Community insight [or judgment?] about operational practices can | Community insight (or judgment?) about operational practices can | |||
change quickly, and experience shows that a Best Current Practice | change quickly, and experience shows that a Best Current Practice | |||
(BCP) document about privacy and security is a point-in-time | (BCP) document about privacy and security is a point-in-time | |||
statement. Readers are advised to seek out any updates that apply to | statement. Readers are advised to seek out any updates that apply to | |||
this document. | this document. | |||
2. Scope | 2. Scope | |||
"DNS Privacy Considerations" [RFC7626] describes the general privacy | "DNS Privacy Considerations" [RFC7626] describes the general privacy | |||
issues and threats associated with the use of the DNS by Internet | issues and threats associated with the use of the DNS by Internet | |||
users; much of the threat analysis here is lifted from that document | users; much of the threat analysis here is lifted from that document | |||
skipping to change at line 316 ¶ | skipping to change at line 316 ¶ | |||
to the three named levels of compliance stated above. However, | to the three named levels of compliance stated above. However, | |||
compliance (to the indicated level) remains a normative requirement. | compliance (to the indicated level) remains a normative requirement. | |||
5.1. On the Wire between Client and Server | 5.1. On the Wire between Client and Server | |||
In this section, we consider both data on the wire and the service | In this section, we consider both data on the wire and the service | |||
provided to the client. | provided to the client. | |||
5.1.1. Transport Recommendations | 5.1.1. Transport Recommendations | |||
[RFC6973] Threats: | Threats described in [RFC6973]: | |||
Surveillance: | Surveillance: | |||
Passive surveillance of traffic on the wire. | Passive surveillance of traffic on the wire. | |||
DNS Privacy Threats: | DNS Privacy Threats: | |||
Active injection of spurious data or traffic. | Active injection of spurious data or traffic. | |||
Mitigations: | Mitigations: | |||
A DNS privacy service can mitigate these threats by providing | A DNS privacy service can mitigate these threats by providing | |||
service over one or more of the following transports: | service over one or more of the following transports: | |||
* DNS over TLS (DoT) [RFC7858] [RFC8310]. | * DNS over TLS (DoT) [RFC7858] [RFC8310]. | |||
* DNS over HTTPS (DoH) [RFC8484]. | * DNS over HTTPS (DoH) [RFC8484]. | |||
It is noted that a DNS privacy service can also be provided over DNS | It is noted that a DNS privacy service can also be provided over DNS | |||
over DTLS [RFC8094]; however, this is an Experimental specification, | over DTLS [RFC8094]; however, this is an Experimental specification, | |||
and there are no known implementations at the time of writing. | and there are no known implementations at the time of writing. | |||
It is also noted that DNS privacy service might be provided over | It is also noted that DNS privacy service might be provided over | |||
IPsec, DNSCrypt, or VPNs. However, there are no specific RFCs that | DNSCrypt [DNSCrypt], IPsec, or VPNs. However, there are no specific | |||
cover the use of these transports for DNS, and any discussion of best | RFCs that cover the use of these transports for DNS, and any | |||
practice for providing such a service is out of scope for this | discussion of best practice for providing such a service is out of | |||
document. | scope for this document. | |||
Whilst encryption of DNS traffic can protect against active injection | Whilst encryption of DNS traffic can protect against active injection | |||
on the paths traversed by the encrypted connection, this does not | on the paths traversed by the encrypted connection, this does not | |||
diminish the need for DNSSEC; see Section 5.1.4. | diminish the need for DNSSEC; see Section 5.1.4. | |||
5.1.2. Authentication of DNS Privacy Services | 5.1.2. Authentication of DNS Privacy Services | |||
[RFC6973] Threats: | Threats described in [RFC6973]: | |||
Surveillance: | Surveillance: | |||
Active attacks on client resolver configuration. | Active attacks on client resolver configuration. | |||
Mitigations: | Mitigations: | |||
DNS privacy services should ensure clients can authenticate the | DNS privacy services should ensure clients can authenticate the | |||
server. Note that this, in effect, commits the DNS privacy | server. Note that this, in effect, commits the DNS privacy | |||
service to a public identity users will trust. | service to a public identity users will trust. | |||
When using DoT, clients that select a "Strict Privacy" usage | When using DoT, clients that select a "Strict Privacy" usage | |||
profile [RFC8310] (to mitigate the threat of active attack on the | profile [RFC8310] (to mitigate the threat of active attack on the | |||
client) require the ability to authenticate the DNS server. To | client) require the ability to authenticate the DNS server. To | |||
enable this, DNS privacy services that offer DNS over TLS need to | enable this, DNS privacy services that offer DoT need to provide | |||
provide credentials that will be accepted by the client's trust | credentials that will be accepted by the client's trust model, in | |||
model, in the form of either X.509 certificates [RFC5280] or | the form of either X.509 certificates [RFC5280] or Subject Public | |||
Subject Public Key Info (SPKI) pin sets [RFC8310]. | Key Info (SPKI) pin sets [RFC8310]. | |||
When offering DoH [RFC8484], HTTPS requires authentication of the | When offering DoH [RFC8484], HTTPS requires authentication of the | |||
server as part of the protocol. | server as part of the protocol. | |||
Server operators should also follow the best practices with regard | ||||
to certificate revocation, as described in [RFC7525]. | ||||
5.1.2.1. Certificate Management | 5.1.2.1. Certificate Management | |||
Anecdotal evidence to date highlights the management of certificates | Anecdotal evidence to date highlights the management of certificates | |||
as one of the more challenging aspects for operators of traditional | as one of the more challenging aspects for operators of traditional | |||
DNS resolvers that choose to additionally provide a DNS privacy | DNS resolvers that choose to additionally provide a DNS privacy | |||
service, as management of such credentials is new to those DNS | service, as management of such credentials is new to those DNS | |||
operators. | operators. | |||
It is noted that SPKI pin-set management is described in [RFC7858] | It is noted that SPKI pin set management is described in [RFC7858] | |||
but that key-pinning mechanisms in general have fallen out of favor | but that key-pinning mechanisms in general have fallen out of favor | |||
operationally for various reasons, such as the logistical overhead of | operationally for various reasons, such as the logistical overhead of | |||
rolling keys. | rolling keys. | |||
DNS Privacy Threats: | DNS Privacy Threats: | |||
* Invalid certificates, resulting in an unavailable service, | * Invalid certificates, resulting in an unavailable service, | |||
which might force a user to fallback to cleartext. | which might force a user to fall back to cleartext. | |||
* Misidentification of a server by a client -- e.g., typos in DoH | * Misidentification of a server by a client -- e.g., typos in DoH | |||
URL templates [RFC8484] or authentication domain names | URL templates [RFC8484] or authentication domain names | |||
[RFC8310] that accidentally direct clients to attacker- | [RFC8310] that accidentally direct clients to attacker- | |||
controlled servers. | controlled servers. | |||
Mitigations: | Mitigations: | |||
It is recommended that operators: | It is recommended that operators: | |||
* Follow the guidance in Section 6.5 of [RFC7525] with regard to | * Follow the guidance in Section 6.5 of [RFC7525] with regard to | |||
skipping to change at line 523 ¶ | skipping to change at line 520 ¶ | |||
DNS actually solves many of the practical issues encountered by DNS | DNS actually solves many of the practical issues encountered by DNS | |||
validating clients -- e.g., interference by middleboxes with | validating clients -- e.g., interference by middleboxes with | |||
cleartext DNS payloads is completely avoided. In this sense, a | cleartext DNS payloads is completely avoided. In this sense, a | |||
validating client that uses a DNS privacy service that supports | validating client that uses a DNS privacy service that supports | |||
DNSSEC has a far simpler task in terms of DNSSEC roadblock avoidance | DNSSEC has a far simpler task in terms of DNSSEC roadblock avoidance | |||
[RFC8027]. | [RFC8027]. | |||
5.1.5. Availability | 5.1.5. Availability | |||
DNS Privacy Threats: | DNS Privacy Threats: | |||
A failed DNS privacy service could force the user to switch | A failing DNS privacy service could force the user to switch | |||
providers, fallback to cleartext, or accept no DNS service for the | providers, fall back to cleartext, or accept no DNS service for | |||
outage. | the duration of the outage. | |||
Mitigations: | Mitigations: | |||
A DNS privacy service should strive to engineer encrypted services | A DNS privacy service should strive to engineer encrypted services | |||
to the same availability level as any unencrypted services they | to the same availability level as any unencrypted services they | |||
provide. Particular care should to be taken to protect DNS | provide. Particular care should to be taken to protect DNS | |||
privacy services against denial-of-service (DoS) attacks, as | privacy services against denial-of-service (DoS) attacks, as | |||
experience has shown that unavailability of DNS resolving because | experience has shown that unavailability of DNS resolving because | |||
of attacks is a significant motivation for users to switch | of attacks is a significant motivation for users to switch | |||
services. See, for example, Section IV-C of | services. See, for example, Section IV-C of | |||
[Passive-Observations-of-a-Large-DNS]. | [Passive-Observations-of-a-Large-DNS]. | |||
Techniques such as those described in Section 10 of [RFC7766] can | Techniques such as those described in Section 10 of [RFC7766] can | |||
be of use to operators to defend against such attacks. | be of use to operators to defend against such attacks. | |||
5.1.6. Service Options | 5.1.6. Service Options | |||
DNS Privacy Threats: | DNS Privacy Threats: | |||
Unfairly disadvantaging users of the privacy service with respect | Unfairly disadvantaging users of the privacy service with respect | |||
to the services available. This could force the user to switch | to the services available. This could force the user to switch | |||
providers, fallback to cleartext, or accept no DNS service for the | providers, fall back to cleartext, or accept no DNS service for | |||
outage. | the duration of the outage. | |||
Mitigations: | Mitigations: | |||
A DNS privacy service should deliver the same level of service as | A DNS privacy service should deliver the same level of service as | |||
offered on unencrypted channels in terms of options such as | offered on unencrypted channels in terms of options such as | |||
filtering (or lack thereof), DNSSEC validation, etc. | filtering (or lack thereof), DNSSEC validation, etc. | |||
5.1.7. Impact of Encryption on Monitoring by DNS Privacy Service | 5.1.7. Impact of Encryption on Monitoring by DNS Privacy Service | |||
Operators | Operators | |||
DNS Privacy Threats: | DNS Privacy Threats: | |||
skipping to change at line 602 ¶ | skipping to change at line 599 ¶ | |||
Some operators may choose to implement DoT using a TLS proxy | Some operators may choose to implement DoT using a TLS proxy | |||
(e.g., [nginx], [haproxy], or [stunnel]) in front of a DNS | (e.g., [nginx], [haproxy], or [stunnel]) in front of a DNS | |||
nameserver because of proven robustness and capacity when handling | nameserver because of proven robustness and capacity when handling | |||
large numbers of client connections, load-balancing capabilities, | large numbers of client connections, load-balancing capabilities, | |||
and good tooling. Currently, however, because such proxies | and good tooling. Currently, however, because such proxies | |||
typically have no specific handling of DNS as a protocol over TLS | typically have no specific handling of DNS as a protocol over TLS | |||
or DTLS, using them can restrict traffic management at the proxy | or DTLS, using them can restrict traffic management at the proxy | |||
layer and the DNS server. For example, all traffic received by a | layer and the DNS server. For example, all traffic received by a | |||
nameserver behind such a proxy will appear to originate from the | nameserver behind such a proxy will appear to originate from the | |||
proxy, and DNS techniques such as Access Control Lists (ACLs), | proxy, and DNS techniques such as Access Control Lists (ACLs), | |||
Response Rate Limiting (RRL), or DNS64 will be hard or impossible | Response Rate Limiting (RRL), or DNS64 [RFC6147] will be hard or | |||
to implement in the nameserver. | impossible to implement in the nameserver. | |||
Operators may choose to use a DNS-aware proxy, such as [dnsdist], | Operators may choose to use a DNS-aware proxy, such as [dnsdist], | |||
that offers custom options (similar to those proposed in | that offers custom options (similar to those proposed in | |||
[DNS-XPF]) to add source information to packets to address this | [DNS-XPF]) to add source information to packets to address this | |||
shortcoming. It should be noted that such options potentially | shortcoming. It should be noted that such options potentially | |||
significantly increase the leaked information in the event of a | significantly increase the leaked information in the event of a | |||
misconfiguration. | misconfiguration. | |||
5.2. Data at Rest on the Server | 5.2. Data at Rest on the Server | |||
5.2.1. Data Handling | 5.2.1. Data Handling | |||
[RFC6973] Threats: | Threats described in [RFC6973]: | |||
* Surveillance. | * Surveillance. | |||
* Stored-data compromise. | * Stored-data compromise. | |||
* Correlation. | * Correlation. | |||
* Identification. | * Identification. | |||
* Secondary use. | * Secondary use. | |||
skipping to change at line 726 ¶ | skipping to change at line 723 ¶ | |||
individual, and the major vector for this in DNS traffic is the | individual, and the major vector for this in DNS traffic is the | |||
client IP address. | client IP address. | |||
There is active discussion in the space of effective pseudonymization | There is active discussion in the space of effective pseudonymization | |||
of IP addresses in DNS traffic logs; however, there seems to be no | of IP addresses in DNS traffic logs; however, there seems to be no | |||
single solution that is widely recognized as suitable for all or most | single solution that is widely recognized as suitable for all or most | |||
use cases. There are also as yet no standards for this that are | use cases. There are also as yet no standards for this that are | |||
unencumbered by patents. | unencumbered by patents. | |||
Appendix B provides a more detailed survey of various techniques | Appendix B provides a more detailed survey of various techniques | |||
employed or under development in 2019. | employed or under development in 2020. | |||
5.2.4. Pseudonymization, Anonymization, or Discarding of Other | 5.2.4. Pseudonymization, Anonymization, or Discarding of Other | |||
Correlation Data | Correlation Data | |||
DNS Privacy Threats: | DNS Privacy Threats: | |||
* Fingerprinting of the client OS via various means, including: | * Fingerprinting of the client OS via various means, including: | |||
IP TTL/Hoplimit, TCP parameters (e.g., window size, Explicit | IP TTL/Hoplimit, TCP parameters (e.g., window size, Explicit | |||
Congestion Notification (ECN) support, selective acknowledgment | Congestion Notification (ECN) support, selective acknowledgment | |||
(SACK)), OS-specific DNS query patterns (e.g., for network | (SACK)), OS-specific DNS query patterns (e.g., for network | |||
connectivity, captive portal detection, or OS-specific | connectivity, captive portal detection, or OS-specific | |||
skipping to change at line 761 ¶ | skipping to change at line 758 ¶ | |||
* Resolvers _might_ receive client identifiers -- e.g., Media | * Resolvers _might_ receive client identifiers -- e.g., Media | |||
Access Control (MAC) addresses in EDNS(0) options. Some | Access Control (MAC) addresses in EDNS(0) options. Some | |||
customer premises equipment (CPE) devices are known to add them | customer premises equipment (CPE) devices are known to add them | |||
[MAC-address-EDNS]. | [MAC-address-EDNS]. | |||
Mitigations: | Mitigations: | |||
* Data minimization or discarding of such correlation data. | * Data minimization or discarding of such correlation data. | |||
5.2.5. Cache Snooping | 5.2.5. Cache Snooping | |||
[RFC6973] Threats: | Threats described in [RFC6973]: | |||
Surveillance: | Surveillance: | |||
Profiling of client queries by malicious third parties. | Profiling of client queries by malicious third parties. | |||
Mitigations: | Mitigations: | |||
See [ISC-Knowledge-database-on-cache-snooping] for an example | See [ISC-Knowledge-database-on-cache-snooping] for an example | |||
discussion on defending against cache snooping. Options proposed | discussion on defending against cache snooping. Options proposed | |||
include limiting access to a server and limiting nonrecursive | include limiting access to a server and limiting nonrecursive | |||
queries. | queries. | |||
5.3. Data Sent Onwards from the Server | 5.3. Data Sent Onwards from the Server | |||
In this section, we consider both data sent on the wire in upstream | In this section, we consider both data sent on the wire in upstream | |||
queries and data shared with third parties. | queries and data shared with third parties. | |||
5.3.1. Protocol Recommendations | 5.3.1. Protocol Recommendations | |||
[RFC6973] Threats: | Threats described in [RFC6973]: | |||
Surveillance: | Surveillance: | |||
Transmission of identifying data upstream. | Transmission of identifying data upstream. | |||
Mitigations: | Mitigations: | |||
As specified in [RFC8310] for DoT but applicable to any DNS | The server should: | |||
privacy services, the server should: | ||||
* implement QNAME minimization [RFC7816]. | * implement QNAME minimization [RFC7816]. | |||
* honor a SOURCE PREFIX-LENGTH set to 0 in a query containing the | * honor a SOURCE PREFIX-LENGTH set to 0 in a query containing the | |||
EDNS(0) Client Subnet (ECS) option ([RFC7871], Section 7.1.2). | EDNS(0) Client Subnet (ECS) option ([RFC7871], Section 7.1.2). | |||
This is as specified in [RFC8310] for DoT but applicable to any | ||||
DNS privacy service. | ||||
Optimizations: | Optimizations: | |||
As per Section 2 of [RFC7871], the server should either: | As per Section 2 of [RFC7871], the server should either: | |||
* not use the ECS option in upstream queries at all, or | * not use the ECS option in upstream queries at all, or | |||
* offer alternative services, one that sends ECS and one that | * offer alternative services, one that sends ECS and one that | |||
does not. | does not. | |||
If operators do offer a service that sends the ECS options upstream, | If operators do offer a service that sends the ECS options upstream, | |||
skipping to change at line 820 ¶ | skipping to change at line 818 ¶ | |||
significant operational overhead compared to dynamic detection of ECS | significant operational overhead compared to dynamic detection of ECS | |||
support on authoritative servers. | support on authoritative servers. | |||
Additional options: | Additional options: | |||
* "Aggressive Use of DNSSEC-Validated Cache" [RFC8198] and | * "Aggressive Use of DNSSEC-Validated Cache" [RFC8198] and | |||
"NXDOMAIN: There Really Is Nothing Underneath" [RFC8020] to reduce | "NXDOMAIN: There Really Is Nothing Underneath" [RFC8020] to reduce | |||
the number of queries to authoritative servers to increase | the number of queries to authoritative servers to increase | |||
privacy. | privacy. | |||
* Run a copy of the root zone on loopback [RFC8806] to avoid making | * Run a local copy of the root zone [RFC8806] to avoid making | |||
queries to the root servers that might leak information. | queries to the root servers that might leak information. | |||
5.3.2. Client Query Obfuscation | 5.3.2. Client Query Obfuscation | |||
Additional options: | Additional options: | |||
Since queries from recursive resolvers to authoritative servers are | Since queries from recursive resolvers to authoritative servers are | |||
performed using cleartext (at the time of writing), resolver services | performed using cleartext (at the time of writing), resolver services | |||
need to consider the extent to which they may be directly leaking | need to consider the extent to which they may be directly leaking | |||
information about their client community via these upstream queries | information about their client community via these upstream queries | |||
skipping to change at line 851 ¶ | skipping to change at line 849 ¶ | |||
recognized techniques to perform such obfuscation or bulk prefetches. | recognized techniques to perform such obfuscation or bulk prefetches. | |||
Another technique that particularly small operators may consider is | Another technique that particularly small operators may consider is | |||
forwarding local traffic to a larger resolver (with a privacy policy | forwarding local traffic to a larger resolver (with a privacy policy | |||
that aligns with their own practices) over an encrypted protocol, so | that aligns with their own practices) over an encrypted protocol, so | |||
that the upstream queries are obfuscated among those of the large | that the upstream queries are obfuscated among those of the large | |||
resolver. | resolver. | |||
5.3.3. Data Sharing | 5.3.3. Data Sharing | |||
[RFC6973] Threats: | Threats described in [RFC6973]: | |||
* Surveillance. | * Surveillance. | |||
* Stored-data compromise. | * Stored-data compromise. | |||
* Correlation. | * Correlation. | |||
* Identification. | * Identification. | |||
* Secondary use. | * Secondary use. | |||
skipping to change at line 1179 ¶ | skipping to change at line 1177 ¶ | |||
Troncoso, "DNS Privacy not so private: the traffic | Troncoso, "DNS Privacy not so private: the traffic | |||
analysis perspective.", Privacy Enhancing | analysis perspective.", Privacy Enhancing | |||
Technologies Symposium, 2018, | Technologies Symposium, 2018, | |||
<https://petsymposium.org/2018/files/hotpets/4-siby.pdf>. | <https://petsymposium.org/2018/files/hotpets/4-siby.pdf>. | |||
[DNS-XPF] Bellis, R., Dijk, P. V., and R. Gacogne, "DNS X-Proxied- | [DNS-XPF] Bellis, R., Dijk, P. V., and R. Gacogne, "DNS X-Proxied- | |||
For", Work in Progress, Internet-Draft, draft-bellis- | For", Work in Progress, Internet-Draft, draft-bellis- | |||
dnsop-xpf-04, 5 March 2018, | dnsop-xpf-04, 5 March 2018, | |||
<https://tools.ietf.org/html/draft-bellis-dnsop-xpf-04>. | <https://tools.ietf.org/html/draft-bellis-dnsop-xpf-04>. | |||
[DNSCrypt] "DNSCrypt - Official Project Home Page", | ||||
<https://www.dnscrypt.org>. | ||||
[dnsdist] PowerDNS, "dnsdist Overview", <https://dnsdist.org>. | [dnsdist] PowerDNS, "dnsdist Overview", <https://dnsdist.org>. | |||
[dnstap] "dnstap", <https://dnstap.info>. | [dnstap] "dnstap", <https://dnstap.info>. | |||
[DoH-resolver-policy] | [DoH-resolver-policy] | |||
Mozilla, "Security/DOH-resolver-policy", 2019, | Mozilla, "Security/DOH-resolver-policy", 2019, | |||
<https://wiki.mozilla.org/Security/DOH-resolver-policy>. | <https://wiki.mozilla.org/Security/DOH-resolver-policy>. | |||
[dot-ALPN] IANA, "Transport Layer Security (TLS) Extensions: TLS | [dot-ALPN] IANA, "Transport Layer Security (TLS) Extensions: TLS | |||
Application-Layer Protocol Negotiation (ALPN) Protocol | Application-Layer Protocol Negotiation (ALPN) Protocol | |||
IDs", <https://www.iana.org/assignments/tls-extensiontype- | IDs", <https://www.iana.org/assignments/tls-extensiontype- | |||
values>. | values>. | |||
[Geolocation-Impact-Assessment] | [Geolocation-Impact-Assessment] | |||
Conversion Works, "Anonymize IP Geolocation Accuracy | Conversion Works, "Anonymize IP Geolocation Accuracy | |||
Impact Assessment", 2017, | Impact Assessment", 19 May 2017, | |||
<https://support.google.com/analytics/ | <https://www.conversionworks.co.uk/blog/2017/05/19/ | |||
answer/2763052?hl=en>. | anonymize-ip-geo-impact-test/>. | |||
[haproxy] "HAProxy - The Reliable, High Performance TCP/HTTP Load | [haproxy] "HAProxy - The Reliable, High Performance TCP/HTTP Load | |||
Balancer", <https://www.haproxy.org/>. | Balancer", <https://www.haproxy.org/>. | |||
[Harvan] Harvan, M., "Prefix- and Lexicographical-order-preserving | [Harvan] Harvan, M., "Prefix- and Lexicographical-order-preserving | |||
IP Address Anonymization", IEEE/IFIP Network Operations | IP Address Anonymization", IEEE/IFIP Network Operations | |||
and Management Symposium, 2006, | and Management Symposium, DOI 10.1109/NOMS.2006.1687580, | |||
<http://mharvan.net/talks/noms-ip_anon.pdf>. | 2006, <http://mharvan.net/talks/noms-ip_anon.pdf>. | |||
[Internet.nl] | [Internet.nl] | |||
Internet.nl, "Internet.nl Is Your Internet Up To Date?", | Internet.nl, "Internet.nl Is Your Internet Up To Date?", | |||
2019, <https://internet.nl>. | 2019, <https://internet.nl>. | |||
[IP-Anonymization-in-Analytics] | [IP-Anonymization-in-Analytics] | |||
Google, "IP Anonymization in Analytics", 2019, | Google, "IP Anonymization in Analytics", 2019, | |||
<https://support.google.com/analytics/ | <https://support.google.com/analytics/ | |||
answer/2763052?hl=en>. | answer/2763052?hl=en>. | |||
skipping to change at line 1251 ¶ | skipping to change at line 1252 ¶ | |||
Hubert, B., "Embedding MAC address in DNS requests for | Hubert, B., "Embedding MAC address in DNS requests for | |||
selective filtering", DNS-OARC mailing list, 25 January | selective filtering", DNS-OARC mailing list, 25 January | |||
2016, <https://lists.dns-oarc.net/pipermail/dns- | 2016, <https://lists.dns-oarc.net/pipermail/dns- | |||
operations/2016-January/014143.html>. | operations/2016-January/014143.html>. | |||
[nginx] nginx.org, "nginx news", 2019, <https://nginx.org/>. | [nginx] nginx.org, "nginx news", 2019, <https://nginx.org/>. | |||
[Passive-Observations-of-a-Large-DNS] | [Passive-Observations-of-a-Large-DNS] | |||
de Vries, W. B., van Rijswijk-Deij, R., de Boer, P-T., and | de Vries, W. B., van Rijswijk-Deij, R., de Boer, P-T., and | |||
A. Pras, "Passive Observations of a Large DNS Service: 2.5 | A. Pras, "Passive Observations of a Large DNS Service: 2.5 | |||
Years in the Life of Google", 2018, | Years in the Life of Google", | |||
DOI 10.23919/TMA.2018.8506536, 2018, | ||||
<http://tma.ifip.org/2018/wp- | <http://tma.ifip.org/2018/wp- | |||
content/uploads/sites/3/2018/06/tma2018_paper30.pdf>. | content/uploads/sites/3/2018/06/tma2018_paper30.pdf>. | |||
[pcap] The Tcpdump Group, "Tcpdump & Libpcap", 2020, | [pcap] The Tcpdump Group, "Tcpdump & Libpcap", 2020, | |||
<https://www.tcpdump.org/>. | <https://www.tcpdump.org/>. | |||
[Pitfalls-of-DNS-Encryption] | [Pitfalls-of-DNS-Encryption] | |||
Shulman, H., "Pretty Bad Privacy: Pitfalls of DNS | Shulman, H., "Pretty Bad Privacy: Pitfalls of DNS | |||
Encryption", Proceedings of the 13th Workshop on Privacy | Encryption", Proceedings of the 13th Workshop on Privacy | |||
in the Electronic Society, pp. 191-200, | in the Electronic Society, pp. 191-200, | |||
skipping to change at line 1279 ¶ | skipping to change at line 1281 ¶ | |||
Comparison+of+policy+and+privacy+statements+2019>. | Comparison+of+policy+and+privacy+statements+2019>. | |||
[PowerDNS-dnswasher] | [PowerDNS-dnswasher] | |||
PowerDNS, "dnswasher", commit 050e687, 24 April 2020, | PowerDNS, "dnswasher", commit 050e687, 24 April 2020, | |||
<https://github.com/PowerDNS/pdns/blob/master/pdns/ | <https://github.com/PowerDNS/pdns/blob/master/pdns/ | |||
dnswasher.cc>. | dnswasher.cc>. | |||
[Ramaswamy-and-Wolf] | [Ramaswamy-and-Wolf] | |||
Ramaswamy, R. and T. Wolf, "High-Speed Prefix-Preserving | Ramaswamy, R. and T. Wolf, "High-Speed Prefix-Preserving | |||
IP Address Anonymization for Passive Measurement Systems", | IP Address Anonymization for Passive Measurement Systems", | |||
2007, | DOI 10.1109/TNET.2006.890128, 2007, | |||
<http://www.ecs.umass.edu/ece/wolf/pubs/ton2007.pdf>. | <http://www.ecs.umass.edu/ece/wolf/pubs/ton2007.pdf>. | |||
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
Rose, "Resource Records for the DNS Security Extensions", | Rose, "Resource Records for the DNS Security Extensions", | |||
RFC 4034, DOI 10.17487/RFC4034, March 2005, | RFC 4034, DOI 10.17487/RFC4034, March 2005, | |||
<https://www.rfc-editor.org/info/rfc4034>. | <https://www.rfc-editor.org/info/rfc4034>. | |||
[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
Rose, "Protocol Modifications for the DNS Security | Rose, "Protocol Modifications for the DNS Security | |||
Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005, | Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005, | |||
<https://www.rfc-editor.org/info/rfc4035>. | <https://www.rfc-editor.org/info/rfc4035>. | |||
[RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, | [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, | |||
"Transport Layer Security (TLS) Session Resumption without | "Transport Layer Security (TLS) Session Resumption without | |||
Server-Side State", RFC 5077, DOI 10.17487/RFC5077, | Server-Side State", RFC 5077, DOI 10.17487/RFC5077, | |||
January 2008, <https://www.rfc-editor.org/info/rfc5077>. | January 2008, <https://www.rfc-editor.org/info/rfc5077>. | |||
[RFC6147] Bagnulo, M., Sullivan, A., Matthews, P., and I. van | ||||
Beijnum, "DNS64: DNS Extensions for Network Address | ||||
Translation from IPv6 Clients to IPv4 Servers", RFC 6147, | ||||
DOI 10.17487/RFC6147, April 2011, | ||||
<https://www.rfc-editor.org/info/rfc6147>. | ||||
[RFC6235] Boschi, E. and B. Trammell, "IP Flow Anonymization | [RFC6235] Boschi, E. and B. Trammell, "IP Flow Anonymization | |||
Support", RFC 6235, DOI 10.17487/RFC6235, May 2011, | Support", RFC 6235, DOI 10.17487/RFC6235, May 2011, | |||
<https://www.rfc-editor.org/info/rfc6235>. | <https://www.rfc-editor.org/info/rfc6235>. | |||
[RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, | [RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, | |||
DOI 10.17487/RFC6265, April 2011, | DOI 10.17487/RFC6265, April 2011, | |||
<https://www.rfc-editor.org/info/rfc6265>. | <https://www.rfc-editor.org/info/rfc6265>. | |||
[RFC7626] Bortzmeyer, S., "DNS Privacy Considerations", RFC 7626, | [RFC7626] Bortzmeyer, S., "DNS Privacy Considerations", RFC 7626, | |||
DOI 10.17487/RFC7626, August 2015, | DOI 10.17487/RFC7626, August 2015, | |||
skipping to change at line 1354 ¶ | skipping to change at line 1362 ¶ | |||
[stunnel] Goldlust, S., Almond, C., and F. Dupont, "DNS over TLS", | [stunnel] Goldlust, S., Almond, C., and F. Dupont, "DNS over TLS", | |||
ISC Knowledge Database", 1 November 2018, | ISC Knowledge Database", 1 November 2018, | |||
<https://kb.isc.org/article/AA-01386/0/DNS-over-TLS.html>. | <https://kb.isc.org/article/AA-01386/0/DNS-over-TLS.html>. | |||
[SURFnet-policy] | [SURFnet-policy] | |||
Baartmans, C., van Wynsberghe, A., van Rijswijk-Deij, R., | Baartmans, C., van Wynsberghe, A., van Rijswijk-Deij, R., | |||
and F. Jorna, "SURFnet Data Sharing Policy", June 2016, | and F. Jorna, "SURFnet Data Sharing Policy", June 2016, | |||
<https://surf.nl/datasharing>. | <https://surf.nl/datasharing>. | |||
[TCPdpriv] Ipsilon Networks, Inc., "TCPdpriv", 2005, | [tcpdpriv] Ipsilon Networks, Inc., "TCPDRIV - Program for Eliminating | |||
<http://ita.ee.lbl.gov/html/contrib/tcpdpriv.html>. | Confidential Information from Traces", 2004, | |||
<http://fly.isti.cnr.it/software/tcpdpriv/>. | ||||
[van-Dijkhuizen-et-al] | [van-Dijkhuizen-et-al] | |||
Van Dijkhuizen, N. and J. Van Der Ham, "A Survey of | Van Dijkhuizen, N. and J. Van Der Ham, "A Survey of | |||
Network Traffic Anonymisation Techniques and | Network Traffic Anonymisation Techniques and | |||
Implementations", ACM Computing Surveys, | Implementations", ACM Computing Surveys, | |||
DOI 10.1145/3182660, May 2018, | DOI 10.1145/3182660, May 2018, | |||
<https://doi.org/10.1145/3182660>. | <https://doi.org/10.1145/3182660>. | |||
[Xu-et-al] Fan, J., Xu, J., Ammar, M.H., and S.B. Moon, "Prefix- | [Xu-et-al] Fan, J., Xu, J., Ammar, M.H., and S.B. Moon, "Prefix- | |||
preserving IP address anonymization: measurement-based | preserving IP address anonymization: measurement-based | |||
security evaluation and a new cryptography-based scheme", | security evaluation and a new cryptography-based scheme", | |||
DOI 10.1016/j.comnet.2004.03.033, 2004, | DOI 10.1016/j.comnet.2004.03.033, 2004, | |||
<http://an.kaist.ac.kr/~sbmoon/paper/intl-journal/2004-cn- | <http://an.kaist.ac.kr/~sbmoon/paper/intl-journal/2004-cn- | |||
anon.pdf>. | anon.pdf>. | |||
Appendix A. Documents | Appendix A. Documents | |||
This section provides an overview of some DNS privacy-related | This section provides an overview of some DNS privacy-related | |||
documents. However, this is neither an exhaustive list nor a | documents. However, this is neither an exhaustive list nor a | |||
definitive statement on the characteristic of the document. | definitive statement on the characteristics of any document with | |||
regard to potential increases or decreases in DNS privacy. | ||||
A.1. Potential Increases in DNS Privacy | A.1. Potential Increases in DNS Privacy | |||
These documents are limited in scope to communications between stub | These documents are limited in scope to communications between stub | |||
clients and recursive resolvers: | clients and recursive resolvers: | |||
* "Specification for DNS over Transport Layer Security (TLS)" | * "Specification for DNS over Transport Layer Security (TLS)" | |||
[RFC7858]. | [RFC7858]. | |||
* "DNS over Datagram Transport Layer Security (DTLS)" [RFC8094]. | * "DNS over Datagram Transport Layer Security (DTLS)" [RFC8094]. | |||
skipping to change at line 1554 ¶ | skipping to change at line 1564 ¶ | |||
reverse truncation) or completely (black-marker anonymization). | reverse truncation) or completely (black-marker anonymization). | |||
Generalization. Data is replaced by more general data with reduced | Generalization. Data is replaced by more general data with reduced | |||
specificity. One example would be to replace all TCP/UDP port | specificity. One example would be to replace all TCP/UDP port | |||
numbers with one of two fixed values indicating whether the | numbers with one of two fixed values indicating whether the | |||
original port was ephemeral (>=1024) or nonephemeral (>1024). | original port was ephemeral (>=1024) or nonephemeral (>1024). | |||
Another example, precision degradation, reduces the accuracy of, | Another example, precision degradation, reduces the accuracy of, | |||
for example, a numeric value or a timestamp. | for example, a numeric value or a timestamp. | |||
Enumeration. With data from a well-ordered set, replace the first | Enumeration. With data from a well-ordered set, replace the first | |||
data item data using a random initial value and then allocate | data item's data using a random initial value and then allocate | |||
ordered values for subsequent data items. When used with | ordered values for subsequent data items. When used with | |||
timestamp data, this preserves ordering but loses precision and | timestamp data, this preserves ordering but loses precision and | |||
distance. | distance. | |||
Reordering/shuffling. Preserving the original data, but rearranging | Reordering/shuffling. Preserving the original data, but rearranging | |||
its order, often in a random manner. | its order, often in a random manner. | |||
Random substitution. As replacement, but using randomly generated | Random substitution. As replacement, but using randomly generated | |||
replacement values. | replacement values. | |||
skipping to change at line 1605 ¶ | skipping to change at line 1615 ¶ | |||
addresses is translated to 0.0.0.1, the second to 0.0.0.2, and so on. | addresses is translated to 0.0.0.1, the second to 0.0.0.2, and so on. | |||
The de-identified address therefore depends on the order that | The de-identified address therefore depends on the order that | |||
addresses arrive in the input, and when running over a large amount | addresses arrive in the input, and when running over a large amount | |||
of data, the address translation tables can grow to a significant | of data, the address translation tables can grow to a significant | |||
size. | size. | |||
Anonymization: Format-preserving, Enumeration. | Anonymization: Format-preserving, Enumeration. | |||
B.2.3. Prefix-Preserving Map | B.2.3. Prefix-Preserving Map | |||
Used in [TCPdpriv], this algorithm stores a set of original and | Used in [tcpdpriv], this algorithm stores a set of original and | |||
anonymized IP address pairs. When a new IP address arrives, it is | anonymized IP address pairs. When a new IP address arrives, it is | |||
compared with previous addresses to determine the longest prefix | compared with previous addresses to determine the longest prefix | |||
match. The new address is anonymized by using the same prefix, with | match. The new address is anonymized by using the same prefix, with | |||
the remainder of the address anonymized with a random value. The use | the remainder of the address anonymized with a random value. The use | |||
of a random value means that TCPdpriv is not deterministic; different | of a random value means that TCPdpriv is not deterministic; different | |||
anonymized values will be generated on each run. The need to store | anonymized values will be generated on each run. The need to store | |||
previous addresses means that TCPdpriv has significant and unbounded | previous addresses means that TCPdpriv has significant and unbounded | |||
memory requirements, and because of the need to allocate anonymized | memory requirements. The need to allocate anonymized addresses | |||
addresses sequentially cannot be used in parallel processing. | sequentially means that TCPdpriv cannot be used in parallel | |||
processing. | ||||
Anonymization: Format-preserving, prefix preservation (general). | Anonymization: Format-preserving, prefix preservation (general). | |||
B.2.4. Cryptographic Prefix-Preserving Pseudonymization | B.2.4. Cryptographic Prefix-Preserving Pseudonymization | |||
Cryptographic prefix-preserving pseudonymization was originally | Cryptographic prefix-preserving pseudonymization was originally | |||
proposed as an improvement to the prefix-preserving map implemented | proposed as an improvement to the prefix-preserving map implemented | |||
in TCPdpriv, described in [Xu-et-al] and implemented in the | in TCPdpriv, described in [Xu-et-al] and implemented in the | |||
[Crypto-PAn] tool. Crypto-PAn is now frequently used as an acronym | [Crypto-PAn] tool. Crypto-PAn is now frequently used as an acronym | |||
for the algorithm. Initially, it was described for IPv4 addresses | for the algorithm. Initially, it was described for IPv4 addresses | |||
skipping to change at line 1643 ¶ | skipping to change at line 1654 ¶ | |||
Pseudonymization: Format-preserving, prefix preservation (general). | Pseudonymization: Format-preserving, prefix preservation (general). | |||
B.2.5. Top-Hash Subtree-Replicated Anonymization | B.2.5. Top-Hash Subtree-Replicated Anonymization | |||
Proposed in [Ramaswamy-and-Wolf], Top-hash Subtree-replicated | Proposed in [Ramaswamy-and-Wolf], Top-hash Subtree-replicated | |||
Anonymization (TSA) originated in response to the requirement for | Anonymization (TSA) originated in response to the requirement for | |||
faster processing than Crypto-PAn. It used hashing for the most | faster processing than Crypto-PAn. It used hashing for the most | |||
significant byte of an IPv4 address and a precalculated binary-tree | significant byte of an IPv4 address and a precalculated binary-tree | |||
structure for the remainder of the address. To save memory space, | structure for the remainder of the address. To save memory space, | |||
replication is used within the tree structure, reducing the size of | replication is used within the tree structure, reducing the size of | |||
the precalculated structures to a few Mb for IPv4 addresses. Address | the precalculated structures to a few megabytes for IPv4 addresses. | |||
pseudonymization is done via hash and table lookup and so requires | Address pseudonymization is done via hash and table lookup and so | |||
minimal computation. However, due to the much-increased address | requires minimal computation. However, due to the much-increased | |||
space for IPv6, TSA is not memory efficient for IPv6. | address space for IPv6, TSA is not memory efficient for IPv6. | |||
Pseudonymization: Format-preserving, prefix preservation (general). | Pseudonymization: Format-preserving, prefix preservation (general). | |||
B.2.6. ipcipher | B.2.6. ipcipher | |||
A recently released proposal from PowerDNS, ipcipher [ipcipher1] | A recently released proposal from PowerDNS, ipcipher [ipcipher1] | |||
[ipcipher2], is a simple pseudonymization technique for IPv4 and IPv6 | [ipcipher2], is a simple pseudonymization technique for IPv4 and IPv6 | |||
addresses. IPv6 addresses are encrypted directly with AES-128 using | addresses. IPv6 addresses are encrypted directly with AES-128 using | |||
a key (which may be derived from a passphrase). IPv4 addresses are | a key (which may be derived from a passphrase). IPv4 addresses are | |||
similarly encrypted, but using a recently proposed encryption | similarly encrypted, but using a recently proposed encryption | |||
skipping to change at line 1907 ¶ | skipping to change at line 1918 ¶ | |||
Thanks to Loganaden Velvindron for useful updates to the text. | Thanks to Loganaden Velvindron for useful updates to the text. | |||
Sara Dickinson thanks the Open Technology Fund for a grant to support | Sara Dickinson thanks the Open Technology Fund for a grant to support | |||
the work on this document. | the work on this document. | |||
Contributors | Contributors | |||
The below individuals contributed significantly to the document: | The below individuals contributed significantly to the document: | |||
John Dickinson | John Dickinson | |||
Sinodun Internet Technologies | Sinodun IT | |||
Magdalen Centre | Magdalen Centre | |||
Oxford Science Park | Oxford Science Park | |||
Oxford | Oxford | |||
OX4 4GA | OX4 4GA | |||
United Kingdom | United Kingdom | |||
Jim Hague | Jim Hague | |||
Sinodun Internet Technologies | Sinodun IT | |||
Magdalen Centre | Magdalen Centre | |||
Oxford Science Park | Oxford Science Park | |||
Oxford | Oxford | |||
OX4 4GA | OX4 4GA | |||
United Kingdom | United Kingdom | |||
Authors' Addresses | Authors' Addresses | |||
Sara Dickinson | Sara Dickinson | |||
Sinodun IT | Sinodun IT | |||
End of changes. 34 change blocks. | ||||
53 lines changed or deleted | 64 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/ |