| < draft-ietf-dprive-bcp-op-06.txt | draft-ietf-dprive-bcp-op-07.txt > | |||
|---|---|---|---|---|
| dprive S. Dickinson | dprive S. Dickinson | |||
| Internet-Draft Sinodun IT | Internet-Draft Sinodun IT | |||
| Intended status: Best Current Practice B. Overeinder | Intended status: Best Current Practice B. Overeinder | |||
| Expires: May 21, 2020 R. van Rijswijk-Deij | Expires: June 20, 2020 R. van Rijswijk-Deij | |||
| NLnet Labs | NLnet Labs | |||
| A. Mankin | A. Mankin | |||
| Salesforce | Salesforce | |||
| November 18, 2019 | December 18, 2019 | |||
| Recommendations for DNS Privacy Service Operators | Recommendations for DNS Privacy Service Operators | |||
| draft-ietf-dprive-bcp-op-06 | draft-ietf-dprive-bcp-op-07 | |||
| 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, | can make deliberate decisions regarding which services to provide, | |||
| and how the decisions and alternatives impact the privacy of users. | and how the decisions and alternatives impact the privacy of users. | |||
| This document also presents a framework to assist writers of a DNS | This document also presents a framework to assist writers of a DNS | |||
| skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 43 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 21, 2020. | This Internet-Draft will expire on June 20, 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. Privacy related documents . . . . . . . . . . . . . . . . . . 5 | 3. Privacy related documents . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 5. Recommendations for DNS privacy services . . . . . . . . . . 6 | 5. Recommendations for DNS privacy services . . . . . . . . . . 6 | |||
| 5.1. On the wire between client and server . . . . . . . . . . 7 | 5.1. On the wire between client and server . . . . . . . . . . 7 | |||
| 5.1.1. Transport recommendations . . . . . . . . . . . . . . 7 | 5.1.1. Transport recommendations . . . . . . . . . . . . . . 7 | |||
| 5.1.2. Authentication of DNS privacy services . . . . . . . 8 | 5.1.2. Authentication of DNS privacy services . . . . . . . 8 | |||
| 5.1.3. Protocol recommendations . . . . . . . . . . . . . . 9 | 5.1.3. Protocol recommendations . . . . . . . . . . . . . . 9 | |||
| 5.1.4. DNSSEC . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.1.4. DNSSEC . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 5.1.5. Availability . . . . . . . . . . . . . . . . . . . . 11 | 5.1.5. Availability . . . . . . . . . . . . . . . . . . . . 11 | |||
| 5.1.6. Service options . . . . . . . . . . . . . . . . . . . 12 | 5.1.6. Service options . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.1.7. Impact on DNS Privacy Service Operators . . . . . . . 12 | 5.1.7. Impact of Encryption on DNS Monitoring . . . . . . . 12 | |||
| 5.1.8. Limitations of using a pure TLS proxy . . . . . . . . 13 | 5.1.8. Limitations of using a pure TLS proxy . . . . . . . . 13 | |||
| 5.2. Data at rest on the server . . . . . . . . . . . . . . . 13 | 5.2. Data at rest on the server . . . . . . . . . . . . . . . 13 | |||
| 5.2.1. Data handling . . . . . . . . . . . . . . . . . . . . 13 | 5.2.1. Data handling . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.2.2. Data minimization of network traffic . . . . . . . . 14 | 5.2.2. Data minimization of network traffic . . . . . . . . 14 | |||
| 5.2.3. IP address pseudonymization and anonymization methods 15 | 5.2.3. IP address pseudonymization and anonymization methods 15 | |||
| 5.2.4. Pseudonymization, anonymization or discarding of | 5.2.4. Pseudonymization, anonymization or discarding of | |||
| other correlation data . . . . . . . . . . . . . . . 17 | other correlation data . . . . . . . . . . . . . . . 17 | |||
| 5.2.5. Cache snooping . . . . . . . . . . . . . . . . . . . 17 | 5.2.5. Cache snooping . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.3. Data sent onwards from the server . . . . . . . . . . . . 18 | 5.3. Data sent onwards from the server . . . . . . . . . . . . 18 | |||
| 5.3.1. Protocol recommendations . . . . . . . . . . . . . . 18 | 5.3.1. Protocol recommendations . . . . . . . . . . . . . . 18 | |||
| skipping to change at page 3, line 7 ¶ | skipping to change at page 3, line 7 ¶ | |||
| 6.2. Current policy and privacy statements . . . . . . . . . . 22 | 6.2. Current policy and privacy statements . . . . . . . . . . 22 | |||
| 6.3. Enforcement/accountability . . . . . . . . . . . . . . . 23 | 6.3. Enforcement/accountability . . . . . . . . . . . . . . . 23 | |||
| 7. IANA considerations . . . . . . . . . . . . . . . . . . . . . 23 | 7. IANA considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 8. Security considerations . . . . . . . . . . . . . . . . . . . 23 | 8. Security considerations . . . . . . . . . . . . . . . . . . . 23 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 24 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 11. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 11. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 26 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 26 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 28 | 12.2. Informative References . . . . . . . . . . . . . . . . . 28 | |||
| 12.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 30 | Appendix A. Documents . . . . . . . . . . . . . . . . . . . . . 32 | |||
| Appendix A. Documents . . . . . . . . . . . . . . . . . . . . . 31 | A.1. Potential increases in DNS privacy . . . . . . . . . . . 32 | |||
| A.1. Potential increases in DNS privacy . . . . . . . . . . . 31 | A.2. Potential decreases in DNS privacy . . . . . . . . . . . 33 | |||
| A.2. Potential decreases in DNS privacy . . . . . . . . . . . 32 | A.3. Related operational documents . . . . . . . . . . . . . . 33 | |||
| A.3. Related operational documents . . . . . . . . . . . . . . 32 | Appendix B. IP address techniques . . . . . . . . . . . . . . . 34 | |||
| Appendix B. IP address techniques . . . . . . . . . . . . . . . 32 | B.1. Google Analytics non-prefix filtering . . . . . . . . . . 35 | |||
| B.1. Google Analytics non-prefix filtering . . . . . . . . . . 33 | B.2. dnswasher . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| B.2. dnswasher . . . . . . . . . . . . . . . . . . . . . . . . 34 | B.3. Prefix-preserving map . . . . . . . . . . . . . . . . . . 35 | |||
| B.3. Prefix-preserving map . . . . . . . . . . . . . . . . . . 34 | B.4. Cryptographic Prefix-Preserving Pseudonymisation . . . . 36 | |||
| B.4. Cryptographic Prefix-Preserving Pseudonymisation . . . . 34 | B.5. Top-hash Subtree-replicated Anonymisation . . . . . . . . 36 | |||
| B.5. Top-hash Subtree-replicated Anonymisation . . . . . . . . 35 | B.6. ipcipher . . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
| B.6. ipcipher . . . . . . . . . . . . . . . . . . . . . . . . 35 | B.7. Bloom filters . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| B.7. Bloom filters . . . . . . . . . . . . . . . . . . . . . . 35 | Appendix C. Example DROP statement . . . . . . . . . . . . . . . 37 | |||
| Appendix C. Example DROP statement . . . . . . . . . . . . . . . 36 | C.1. Policy . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| C.1. Policy . . . . . . . . . . . . . . . . . . . . . . . . . 36 | C.2. Practice . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| C.2. Practice . . . . . . . . . . . . . . . . . . . . . . . . 39 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 1. Introduction | 1. Introduction | |||
| The Domain Name System (DNS) is at the core of the Internet; almost | The Domain Name System (DNS) is at the core of the Internet; almost | |||
| every activity on the Internet starts with a DNS query (and often | every activity on the Internet starts with a DNS query (and often | |||
| several). However the DNS was not originally designed with strong | several). However the DNS was not originally designed with strong | |||
| security or privacy mechanisms. A number of developments have taken | security or privacy mechanisms. A number of developments have taken | |||
| place in recent years which aim to increase the privacy of the DNS | place in recent years which aim to increase the privacy of the DNS | |||
| system and these are now seeing some deployment. This latest | system and these are now seeing some deployment. This latest | |||
| evolution of the DNS presents new challenges to operators and this | evolution of the DNS presents new challenges to operators and this | |||
| skipping to change at page 4, line 44 ¶ | skipping to change at page 4, line 44 ¶ | |||
| DROP statement is a document that an operator can publish | DROP statement is a document that an operator can publish | |||
| outlining their operational practices and commitments with regard | outlining their operational practices and commitments with regard | |||
| to privacy thereby providing a means for clients to evaluate the | to privacy thereby providing a means for clients to evaluate the | |||
| privacy properties of a given DNS privacy service. In particular, | privacy properties of a given DNS privacy service. In particular, | |||
| the framework identifies the elements that should be considered in | the framework identifies the elements that should be considered in | |||
| formulating a DROP statement. This document does not, however, | formulating a DROP statement. This document does not, however, | |||
| define a particular Privacy statement, nor does it seek to provide | define a particular Privacy statement, nor does it seek to provide | |||
| legal advice or recommendations as to the contents. | legal advice or recommendations as to the contents. | |||
| 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 anycast | 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 difference in | factors e.g. differing security policies or minor difference 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 errata or updates | statement. Readers are advised to seek out any errata or updates | |||
| skipping to change at page 5, line 26 ¶ | skipping to change at page 5, line 26 ¶ | |||
| from that document and from [RFC6973]. However this document is | from that document and from [RFC6973]. However this document is | |||
| limited in scope to best practice considerations for the provision of | limited in scope to best practice considerations for the provision of | |||
| DNS privacy services by servers (recursive resolvers) to clients | DNS privacy services by servers (recursive resolvers) to clients | |||
| (stub resolvers or forwarders). Privacy considerations specifically | (stub resolvers or forwarders). Privacy considerations specifically | |||
| from the perspective of an end user, or those for operators of | from the perspective of an end user, or those for operators of | |||
| authoritative nameservers are out of scope. | authoritative nameservers are out of scope. | |||
| This document includes (but is not limited to) considerations in the | This document includes (but is not limited to) considerations in the | |||
| following areas (taken from [I-D.ietf-dprive-rfc7626-bis]): | following areas (taken from [I-D.ietf-dprive-rfc7626-bis]): | |||
| 1. Data "on the wire" between a client and a server | 1. Data "on the wire" between a client and a server. | |||
| 2. Data "at rest" on a server (e.g. in logs) | 2. Data "at rest" on a server (e.g. in logs). | |||
| 3. Data "sent onwards" from the server (either on the wire or shared | 3. Data "sent onwards" from the server (either on the wire or shared | |||
| with a third party) | with a third party). | |||
| Whilst the issues raised here are targeted at those operators who | Whilst the issues raised here are targeted at those operators who | |||
| choose to offer a DNS privacy service, considerations for areas 2 and | choose to offer a DNS privacy service, considerations for areas 2 and | |||
| 3 could equally apply to operators who only offer DNS over | 3 could equally apply to operators who only offer DNS over | |||
| unencrypted transports but who would like to align with privacy best | unencrypted transports but who would like to align with privacy best | |||
| practice. | practice. | |||
| 3. Privacy related documents | 3. Privacy related documents | |||
| There are various documents that describe protocol changes that have | There are various documents that describe protocol changes that have | |||
| skipping to change at page 6, line 17 ¶ | skipping to change at page 6, line 17 ¶ | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| DNS terminology is as described in [RFC8499] with one modification: | DNS terminology is as described in [RFC8499] with one modification: | |||
| we restate the clause in the original definition of Privacy-enabling | we restate the clause in the original definition of Privacy-enabling | |||
| DNS server in [RFC8310] to include the requirement that a DNS over | DNS server in [RFC8310] to include the requirement that a DNS over | |||
| (D)TLS server should also offer at least one of the credentials | (D)TLS server should also offer at least one of the credentials | |||
| described in Section 8 and implement the (D)TLS profile described in | described in Section 8 of [RFC8310] and implement the (D)TLS profile | |||
| Section 9 of [RFC8310]. | described in Section 9 of [RFC8310]. | |||
| Other Terms: | Other Terms: | |||
| o DROP: DNS Recursive Operator Privacy statement, see Section 6. | o DROP: DNS Recursive Operator Privacy statement, see Section 6. | |||
| o DNS privacy service: The service that is offered via a privacy- | o DNS privacy service: The service that is offered via a privacy- | |||
| enabling DNS server and is documented either in an informal | enabling DNS server and is documented either in an informal | |||
| statement of policy and practice with regard to users privacy or a | statement of policy and practice with regard to users privacy or a | |||
| formal DROP statement. | formal DROP statement. | |||
| 5. Recommendations for DNS privacy services | 5. Recommendations for DNS privacy services | |||
| We describe two classes of threats: | We describe two classes of threats: | |||
| o 'Privacy Considerations for Internet Protocols' [RFC6973] Threats | o Threats described in [RFC6973] 'Privacy Considerations for | |||
| Internet Protocols' | ||||
| * Privacy terminology, threats to privacy and mitigations as | * Privacy terminology, threats to privacy and mitigations as | |||
| described in Sections 3, 5 and 6 of [RFC6973]. | described in Sections 3, 5 and 6 of [RFC6973]. | |||
| o DNS Privacy Threats | o DNS Privacy Threats | |||
| * These are threats to the users and operators of DNS privacy | * These are threats to the users and operators of DNS privacy | |||
| services that are not directly covered by [RFC6973]. These may | services that are not directly covered by [RFC6973]. These may | |||
| be more operational in nature such as certificate management or | be more operational in nature such as certificate management or | |||
| service availability issues. | service availability issues. | |||
| We describe three classes of actions that operators of DNS privacy | We describe three classes of actions that operators of DNS privacy | |||
| services can take: | services can take: | |||
| o Threat mitigation for well understood and documented privacy | o Threat mitigation for well understood and documented privacy | |||
| threats to the users of the service and in some cases to the | threats to the users of the service and in some cases to the | |||
| operators of the service. | operators of the service. | |||
| o Optimization of privacy services from an operational or management | o Optimization of privacy services from an operational or management | |||
| perspective | perspective. | |||
| o Additional options that could further enhance the privacy and | o Additional options that could further enhance the privacy and | |||
| usability of the service | usability of the service. | |||
| This document does not specify policy only best practice, however for | This document does not specify policy - only best practice, however | |||
| DNS Privacy services to be considered compliant with these best | for DNS Privacy services to be considered compliant with these best | |||
| practice guidelines they SHOULD implement (where appropriate) all: | practice guidelines they SHOULD implement (where appropriate) all: | |||
| o Threat mitigations to be minimally compliant | o Threat mitigations to be minimally compliant. | |||
| o Optimizations to be moderately compliant | o Optimizations to be moderately compliant. | |||
| o Additional options to be maximally compliant | o Additional options to be maximally compliant. | |||
| 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: | [RFC6973] Threats: | |||
| o Surveillance: | o Surveillance: | |||
| * Passive surveillance of traffic on the wire | * Passive surveillance of traffic on the wire | |||
| [I-D.ietf-dprive-rfc7626-bis] Section 2.4.2. | [I-D.ietf-dprive-rfc7626-bis] Section 2.4.2. | |||
| DNS Privacy Threats: | DNS Privacy Threats: | |||
| o Active injection of spurious data or traffic | o Active injection of spurious data or traffic. | |||
| Mitigations: | Mitigations: | |||
| A DNS privacy service can mitigate these threats by providing service | A DNS privacy service can mitigate these threats by providing service | |||
| over one or more of the following transports | over one or more of the following transports | |||
| o DNS-over-TLS [RFC7858] and [RFC8310] | o DNS-over-TLS [RFC7858] and [RFC8310]. | |||
| o DoH [RFC8484] | o 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, use of these transports for DNS | IPSec, DNSCrypt or VPNs. However, use of these transports for DNS | |||
| are not standardized and any discussion of best practice for | are not standardized and any discussion of best practice for | |||
| providing such a service is out of scope for this document. | providing such a service is out of scope for this document. | |||
| skipping to change at page 8, line 33 ¶ | skipping to change at page 8, line 33 ¶ | |||
| 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 service | server. Note that this, in effect, commits the DNS privacy service | |||
| to a public identity users will trust. | to a public identity users will trust. | |||
| When using DNS-over-TLS clients that select a 'Strict Privacy' usage | When using DNS-over-TLS 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 should | enable this, DNS privacy services that offer DNS-over-TLS should | |||
| provide credentials in the form of either X.509 certificates | provide credentials in the form of either X.509 certificates | |||
| [RFC5280] or SPKI pin sets [RFC8310]. | [RFC5280] or Subject Public 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. | |||
| 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 | |||
| skipping to change at page 9, line 8 ¶ | skipping to change at page 9, line 8 ¶ | |||
| 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: | |||
| o Invalid certificates, resulting in an unavailable service. | o Invalid certificates, resulting in an unavailable service. | |||
| o Mis-identification of a server by a client e.g. typos in URLs or | o Mis-identification of a server by a client e.g. typos in URLs or | |||
| authentication domain names | authentication domain names. | |||
| Mitigations: | Mitigations: | |||
| It is recommended that operators: | It is recommended that operators: | |||
| o Follow the guidance in Section 6.5 of [RFC7525] with regards to | o Follow the guidance in Section 6.5 of [RFC7525] with regards to | |||
| certificate revocation | certificate revocation . | |||
| o Choose a short, memorable authentication name for the service | ||||
| o Automate the generation, publication and renewal of certificates. | o Automate the generation, publication and renewal of certificates. | |||
| For example, ACME [RFC8555] provides a mechanism to actively | For example, ACME [RFC8555] provides a mechanism to actively | |||
| manage certificates through automation and has been implemented by | manage certificates through automation and has been implemented by | |||
| a number of certificate authorities. | a number of certificate authorities. | |||
| o Monitor certificates to prevent accidental expiration of | o Monitor certificates to prevent accidental expiration of | |||
| certificates | certificates. | |||
| o Choose a short, memorable authentication name for the service. | ||||
| 5.1.3. Protocol recommendations | 5.1.3. Protocol recommendations | |||
| 5.1.3.1. DNS-over-TLS | 5.1.3.1. DNS-over-TLS | |||
| DNS Privacy Threats: | DNS Privacy Threats: | |||
| o Known attacks on TLS such as those described in [RFC7457] | o Known attacks on TLS such as those described in [RFC7457]. | |||
| o Traffic analysis, for example: [Pitfalls-of-DNS-Encryption] | o Traffic analysis, for example: [Pitfalls-of-DNS-Encryption]. | |||
| o Potential for client tracking via transport identifiers | o Potential for client tracking via transport identifiers. | |||
| o Blocking of well known ports (e.g. 853 for DNS-over-TLS) | o Blocking of well known ports (e.g. 853 for DNS-over-TLS). | |||
| Mitigations: | Mitigations: | |||
| In the case of DNS-over-TLS, TLS profiles from Section 9 and the | In the case of DNS-over-TLS, TLS profiles from Section 9 and the | |||
| Countermeasures to DNS Traffic Analysis from section 11.1 of | Countermeasures to DNS Traffic Analysis from section 11.1 of | |||
| [RFC8310] provide strong mitigations. This includes but is not | [RFC8310] provide strong mitigations. This includes but is not | |||
| limited to: | limited to: | |||
| o Adhering to [RFC7525] | o Adhering to [RFC7525]. | |||
| o Implementing only (D)TLS 1.2 or later as specified in [RFC8310]. | ||||
| o Implementing only (D)TLS 1.2 or later as specified in [RFC8310] | ||||
| o Implementing EDNS(0) Padding [RFC7830] using the guidelines in | o Implementing EDNS(0) Padding [RFC7830] using the guidelines in | |||
| [RFC8467] or a successor specification. | [RFC8467] or a successor specification. | |||
| o Servers should not degrade in any way the query service level | o Servers should not degrade in any way the query service level | |||
| provided to clients that do not use any form of session resumption | provided to clients that do not use any form of session resumption | |||
| mechanism, such as TLS session resumption [RFC5077] with TLS 1.2, | mechanism, such as TLS session resumption [RFC5077] with TLS 1.2, | |||
| section 2.2 of RFC8446, or Domain Name System (DNS) Cookies | section 2.2 of RFC8446, or Domain Name System (DNS) Cookies | |||
| [RFC7873]. | [RFC7873]. | |||
| o A DNS-over-TLS privacy service on both port 853 and 443. This | o A DNS-over-TLS privacy service on both port 853 and 443. This | |||
| practice may not be possible if e.g. the operator deploys DoH on | practice may not be possible if e.g. the operator deploys DoH on | |||
| the same IP address. | the same IP address. | |||
| Optimizations: | Optimizations: | |||
| o Concurrent processing of pipelined queries, returning responses as | o Concurrent processing of pipelined queries, returning responses as | |||
| soon as available, potentially out of order as specified in | soon as available, potentially out of order as specified in | |||
| [RFC7766]. This is often called 'OOOR' - out-of-order responses. | [RFC7766]. This is often called 'OOOR' - out-of-order responses | |||
| (Providing processing performance similar to HTTP multiplexing) | (providing processing performance similar to HTTP multiplexing). | |||
| o Management of TLS connections to optimize performance for clients | o Management of TLS connections to optimize performance for clients | |||
| using either | using either: | |||
| * [RFC7766] and EDNS(0) Keepalive [RFC7828] and/or | * [RFC7766] and EDNS(0) Keepalive [RFC7828] and/or | |||
| * DNS Stateful Operations [RFC8490] | * DNS Stateful Operations [RFC8490]. | |||
| 5.1.3.2. DoH | 5.1.3.2. DoH | |||
| DNS Privacy Threats: | DNS Privacy Threats: | |||
| o Known attacks on TLS such as those described in [RFC7457] | o Known attacks on TLS such as those described in [RFC7457]. | |||
| o Traffic analysis, for example: DNS Privacy not so private: the | o Traffic analysis, for example: [DNS-Privacy-not-so-private]. | |||
| traffic analysis perspective [1] | ||||
| o Potential for client tracking via transport identifiers | o Potential for client tracking via transport identifiers. | |||
| Mitigations: | Mitigations: | |||
| o Clients must be able to forego the use of HTTP Cookies [RFC6265] | o Clients must be able to forego the use of HTTP Cookies [RFC6265] | |||
| and still use the service | and still use the service. | |||
| o Clients should not be required to include any headers beyond the | o Clients should not be required to include any headers beyond the | |||
| absolute minimum to obtain service from a DoH server. (See | absolute minimum to obtain service from a DoH server. (See | |||
| Section 6.1 of [I-D.ietf-httpbis-bcp56bis].) | Section 6.1 of [I-D.ietf-httpbis-bcp56bis].) | |||
| 5.1.4. DNSSEC | 5.1.4. DNSSEC | |||
| DNS Privacy Threats: | DNS Privacy Threats: | |||
| o Users may be directed to bogus IP addresses for e.g. websites | o Users may be directed to bogus IP addresses for e.g. websites | |||
| skipping to change at page 12, line 5 ¶ | skipping to change at page 12, line 5 ¶ | |||
| outage. | outage. | |||
| Mitigations: | Mitigations: | |||
| A DNS privacy service should strive to engineer encrypted services to | A DNS privacy service should strive to engineer encrypted services to | |||
| the same availability level as any unencrypted services they provide. | the same availability level as any unencrypted services they provide. | |||
| Particular care should to be taken to protect DNS privacy services | Particular care should to be taken to protect DNS privacy services | |||
| against denial-of-service attacks, as experience has shown that | against denial-of-service attacks, as experience has shown that | |||
| unavailability of DNS resolving because of attacks is a significant | unavailability of DNS resolving because of attacks is a significant | |||
| motivation for users to switch services. See, for example | motivation for users to switch services. See, for example | |||
| Section IV-C of Passive Observations of a Large DNS Service: 2.5 | Section IV-C of [Passive-Observations-of-a-Large-DNS]. | |||
| Years in the Life of Google [2]. | ||||
| Techniques such as those described in Section 10 of [RFC7766] can be | Techniques such as those described in Section 10 of [RFC7766] can be | |||
| of use to operators to defend against such attacks. | 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: | |||
| o Unfairly disadvantaging users of the privacy service with respect | o 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, fallback to cleartext or accept no DNS service for the | |||
| outage. | 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 un-encrypted channels in terms of such options as | offered on un-encrypted channels in terms of such options as | |||
| filtering (or lack thereof), DNSSEC validation, etc. | filtering (or lack thereof), DNSSEC validation, etc. | |||
| 5.1.7. Impact on DNS Privacy Service Operators | 5.1.7. Impact of Encryption on DNS Monitoring | |||
| DNS Privacy Threats: | DNS Privacy Threats: | |||
| o Increased use of encryption impacts operator ability to manage | o Increased use of encryption impacts operator ability to manage | |||
| their network [RFC8404] | their network [RFC8404]. | |||
| Many monitoring solutions for DNS traffic rely on the plain text | Many monitoring solutions for DNS traffic rely on the plain text | |||
| nature of this traffic and work by intercepting traffic on the wire, | nature of this traffic and work by intercepting traffic on the wire, | |||
| either using a separate view on the connection between clients and | either using a separate view on the connection between clients and | |||
| the resolver, or as a separate process on the resolver system that | the resolver, or as a separate process on the resolver system that | |||
| inspects network traffic. Such solutions will no longer function | inspects network traffic. Such solutions will no longer function | |||
| when traffic between clients and resolvers is encrypted. There are, | when traffic between clients and resolvers is encrypted. There are, | |||
| however, legitimate reasons for operators to inspect DNS traffic, | however, legitimate reasons for operators to inspect DNS traffic, | |||
| e.g. to monitor for network security threats. Operators may | e.g. to monitor for network security threats. Operators may | |||
| therefore need to invest in alternative means of monitoring that | therefore need to invest in alternative means of monitoring that | |||
| relies on either the resolver software directly, or exporting DNS | relies on either the resolver software directly, or exporting DNS | |||
| traffic from the resolver using e.g. dnstap [3]. | traffic from the resolver using e.g. [dnstap]. | |||
| Optimization: | Optimization: | |||
| When implementing alternative means for traffic monitoring, operators | When implementing alternative means for traffic monitoring, operators | |||
| of a DNS privacy service should consider using privacy conscious | of a DNS privacy service should consider using privacy conscious | |||
| means to do so (see section Section 5.2 for more details on data | means to do so (see section Section 5.2 for more details on data | |||
| handling and also the discussion on the use of Bloom Filters in | handling and also the discussion on the use of Bloom Filters in | |||
| Appendix A. | Appendix A. | |||
| 5.1.8. Limitations of using a pure TLS proxy | 5.1.8. Limitations of using a pure TLS proxy | |||
| DNS Privacy Threats: | DNS Privacy Threats: | |||
| o Limited ability to manage or monitor incoming connections using | o Limited ability to manage or monitor incoming connections using | |||
| DNS specific techniques | DNS specific techniques. | |||
| o Misconfiguration of the target server could lead to data leakage | o Misconfiguration of the target server could lead to data leakage | |||
| if the proxy to target server path is not encrypted. | if the proxy to target server path is not encrypted. | |||
| Optimization: | Optimization: | |||
| Some operators may choose to implement DNS-over-TLS using a TLS proxy | Some operators may choose to implement DNS-over-TLS using a TLS proxy | |||
| (e.g. nginx [4], haproxy [5] or stunnel [6]) in front of a DNS | (e.g. [nginx], [haproxy] or [stunnel]) in front of a DNS nameserver | |||
| nameserver because of proven robustness and capacity when handling | because of proven robustness and capacity when handling large numbers | |||
| large numbers of client connections, load balancing capabilities and | of client connections, load balancing capabilities and good tooling. | |||
| good tooling. Currently, however, because such proxies typically | Currently, however, because such proxies typically have no specific | |||
| have no specific handling of DNS as a protocol over TLS or DTLS using | handling of DNS as a protocol over TLS or DTLS using them can | |||
| them can restrict traffic management at the proxy layer and at the | restrict traffic management at the proxy layer and at the DNS server. | |||
| DNS server. For example, all traffic received by a nameserver behind | For example, all traffic received by a nameserver behind such a proxy | |||
| such a proxy will appear to originate from the proxy and DNS | will appear to originate from the proxy and DNS techniques such as | |||
| techniques such as ACLs, RRL or DNS64 will be hard or impossible to | ACLs, RRL or DNS64 will be hard or impossible to implement in the | |||
| implement in the nameserver. | nameserver. | |||
| Operators may choose to use a DNS aware proxy such as dnsdist [7] | Operators may choose to use a DNS aware proxy such as [dnsdist] which | |||
| which offer custom options (similar to that proposed in | offer custom options (similar to that proposed in | |||
| [I-D.bellis-dnsop-xpf]) to add source information to packets to | [I-D.bellis-dnsop-xpf]) to add source information to packets to | |||
| address this shortcoming. It should be noted that such options | address this shortcoming. It should be noted that such options | |||
| potentially significantly increase the leaked information in the | potentially significantly increase the leaked information in the | |||
| event of a misconfiguration. | event of a 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: | [RFC6973] Threats: | |||
| o Surveillance | o Surveillance. | |||
| o Stored data compromise | o Stored data compromise. | |||
| o Correlation | o Correlation. | |||
| o Identification | o Identification. | |||
| o Secondary use | o Secondary use. | |||
| o Disclosure. | ||||
| o Disclosure | ||||
| Other Threats | Other Threats | |||
| o Contravention of legal requirements not to process user data? | o Contravention of legal requirements not to process user data. | |||
| Mitigations: | Mitigations: | |||
| The following are common activities for DNS service operators and in | The following are common activities for DNS service operators and in | |||
| all cases should be minimized or completely avoided if possible for | all cases should be minimized or completely avoided if possible for | |||
| DNS privacy services. If data is retained it should be encrypted and | DNS privacy services. If data is retained it should be encrypted and | |||
| either aggregated, pseudonymized or anonymized whenever possible. In | either aggregated, pseudonymized or anonymized whenever possible. In | |||
| general the principle of data minimization described in [RFC6973] | general the principle of data minimization described in [RFC6973] | |||
| should be applied. | should be applied. | |||
| skipping to change at page 15, line 27 ¶ | skipping to change at page 15, line 27 ¶ | |||
| the decade. Developments over the last decade have been both a | the decade. Developments over the last decade have been both a | |||
| blessing and a curse; the large increase in size between an IPv4 and | blessing and a curse; the large increase in size between an IPv4 and | |||
| an IPv6 address, for example, renders some techniques impractical, | an IPv6 address, for example, renders some techniques impractical, | |||
| but also makes available a much larger amount of input entropy, the | but also makes available a much larger amount of input entropy, the | |||
| better to resist brute force re-identification attacks that have | better to resist brute force re-identification attacks that have | |||
| grown in practicality over the period. | grown in practicality over the period. | |||
| Techniques employed may be broadly categorized as either | Techniques employed may be broadly categorized as either | |||
| anonymization or pseudonymization. The following discussion uses the | anonymization or pseudonymization. The following discussion uses the | |||
| definitions from [RFC6973] Section 3, with additional observations | definitions from [RFC6973] Section 3, with additional observations | |||
| from van Dijkhuizen et al. [8] | from [van-Dijkhuizen-et-al.] | |||
| o Anonymization. To enable anonymity of an individual, there must | o Anonymization. To enable anonymity of an individual, there must | |||
| exist a set of individuals that appear to have the same | exist a set of individuals that appear to have the same | |||
| attribute(s) as the individual. To the attacker or the observer, | attribute(s) as the individual. To the attacker or the observer, | |||
| these individuals must appear indistinguishable from each other. | these individuals must appear indistinguishable from each other. | |||
| o Pseudonymization. The true identity is deterministically replaced | o Pseudonymization. The true identity is deterministically replaced | |||
| with an alternate identity (a pseudonym). When the | with an alternate identity (a pseudonym). When the | |||
| pseudonymization schema is known, the process can be reversed, so | pseudonymization schema is known, the process can be reversed, so | |||
| the original identity becomes known again. | the original identity becomes known again. | |||
| skipping to change at page 16, line 8 ¶ | skipping to change at page 16, line 8 ¶ | |||
| DNS is connecting DNS queries to an individual and the major vector | DNS is connecting DNS queries to an individual and the major vector | |||
| for this in DNS traffic is the client IP address. | for this in DNS traffic is the 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. | |||
| The following table presents a high level comparison of various | The following table presents a high level comparison of various | |||
| techniques employed or under development today and classifies them | techniques employed or under development in 2019 and classifies them | |||
| according to categorization of technique and other properties. | according to categorization of technique and other properties. | |||
| Appendix B provides a more detailed survey of these techniques and | Appendix B provides a more detailed survey of these techniques and | |||
| definitions for the categories and properties listed below. The list | definitions for the categories and properties listed below. The list | |||
| of techniques includes the main techniques in current use, but does | of techniques includes the main techniques in current use, but does | |||
| not claim to be comprehensive. | not claim to be comprehensive. | |||
| +---------------------------+----+---+----+---+----+---+---+ | +---------------------------+----+---+----+---+----+---+---+ | |||
| | Categorisation/Property | GA | d | TC | C | TS | i | B | | | Categorisation/Property | GA | d | TC | C | TS | i | B | | |||
| +---------------------------+----+---+----+---+----+---+---+ | +---------------------------+----+---+----+---+----+---+---+ | |||
| | Anonymisation | X | X | X | | | | X | | | Anonymisation | X | X | X | | | | X | | |||
| skipping to change at page 16, line 48 ¶ | skipping to change at page 16, line 48 ¶ | |||
| TS = TSA, i = ipcipher, B = Bloom filter | TS = TSA, i = ipcipher, B = Bloom filter | |||
| The choice of which method to use for a particular application will | The choice of which method to use for a particular application will | |||
| depend on the requirements of that application and consideration of | depend on the requirements of that application and consideration of | |||
| the threat analysis of the particular situation. | the threat analysis of the particular situation. | |||
| For example, a common goal is that distributed packet captures must | For example, a common goal is that distributed packet captures must | |||
| be in an existing data format such as PCAP [pcap] or C-DNS [RFC8618] | be in an existing data format such as PCAP [pcap] or C-DNS [RFC8618] | |||
| that can be used as input to existing analysis tools. In that case, | that can be used as input to existing analysis tools. In that case, | |||
| use of a format-preserving technique is essential. This, though, is | use of a format-preserving technique is essential. This, though, is | |||
| not cost-free - several authors (e.g. Brenker & Arnes [9]) have | not cost-free - several authors (e.g. [Brenker-and-Arnes] have | |||
| observed that, as the entropy in an IPv4 address is limited, given a | observed that, as the entropy in an IPv4 address is limited, given a | |||
| de-identified log from a target, if an attacker is capable of | de-identified log from a target, if an attacker is capable of | |||
| ensuring packets are captured by the target and the attacker can send | ensuring packets are captured by the target and the attacker can send | |||
| forged traffic with arbitrary source and destination addresses to | forged traffic with arbitrary source and destination addresses to | |||
| that target, any format-preserving pseudonymization is vulnerable to | that target, any format-preserving pseudonymization is vulnerable to | |||
| an attack along the lines of a cryptographic chosen plaintext attack. | an attack along the lines of a cryptographic chosen plaintext attack. | |||
| 5.2.4. Pseudonymization, anonymization or discarding of other | 5.2.4. Pseudonymization, anonymization or discarding of other | |||
| correlation data | correlation data | |||
| skipping to change at page 17, line 23 ¶ | skipping to change at page 17, line 23 ¶ | |||
| o Fingerprinting of the client OS via various means including: IP | o Fingerprinting of the client OS via various means including: IP | |||
| TTL/Hoplimit, TCP parameters (e.g. window size, ECN support, | TTL/Hoplimit, TCP parameters (e.g. window size, ECN support, | |||
| 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 updates). | connectivity, captive portal detection or OS specific updates). | |||
| o Fingerprinting of the client application or TLS library by e.g. | o Fingerprinting of the client application or TLS library by e.g. | |||
| TLS version/Cipher suite combinations or other connection | TLS version/Cipher suite combinations or other connection | |||
| parameters. | parameters. | |||
| o Correlation of queries on multiple TCP session originating from | o Correlation of queries on multiple TCP session originating from | |||
| the same IP address | the same IP address. | |||
| o Correlating of queries on multiple TLS sessions originating from | o Correlating of queries on multiple TLS sessions originating from | |||
| the same client, including via session resumption mechanisms | the same client, including via session resumption mechanisms. | |||
| o Resolvers _might_ receive client identifiers e.g. MAC addresses | o Resolvers _might_ receive client identifiers e.g. MAC addresses | |||
| in EDNS(0) options - some CPE devices are known to add them. | in EDNS(0) options - some CPE devices are known to add them. | |||
| o HTTP headers (e.g., User-Agent, Accept, Accept-Encoding) | o HTTP headers (e.g., User-Agent, Accept, Accept-Encoding). | |||
| Mitigations: | Mitigations: | |||
| o Data minimization or discarding of such correlation data. | o Data minimization or discarding of such correlation data. | |||
| 5.2.5. Cache snooping | 5.2.5. Cache snooping | |||
| [RFC6973] Threats: | [RFC6973] Threats: | |||
| o Surveillance: | o Surveillance: | |||
| * Profiling of client queries by malicious third parties | * Profiling of client queries by malicious third parties. | |||
| Mitigations: | Mitigations: | |||
| o See ISC Knowledge database on cache snooping [10] for an example | o See [ISC-Knowledge-database-on-cache-snooping] for an example | |||
| discussion on defending against cache snooping | discussion on defending against cache snooping. | |||
| 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: | [RFC6973] Threats: | |||
| o Surveillance: | o Surveillance: | |||
| * Transmission of identifying data upstream. | * Transmission of identifying data upstream. | |||
| Mitigations: | Mitigations: | |||
| As specified in [RFC8310] for DNS-over-TLS but applicable to any DNS | As specified in [RFC8310] for DNS-over-TLS but applicable to any DNS | |||
| Privacy services the server should: | Privacy services the server should: | |||
| o Implement QNAME minimization [RFC7816] | o Implement QNAME minimization [RFC7816]. | |||
| o Honor a SOURCE PREFIX-LENGTH set to 0 in a query containing the | o Honor a SOURCE PREFIX-LENGTH set to 0 in a query containing the | |||
| EDNS(0) Client Subnet (ECS) option and not send an ECS option in | EDNS(0) Client Subnet (ECS) option and not send an ECS option in | |||
| upstream queries. | upstream queries. | |||
| Optimizations: | Optimizations: | |||
| o The server should either | o 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 | |||
| they should use the shortest prefix that is operationally feasible | they should use the shortest prefix that is operationally feasible | |||
| and ideally use a policy of whitelisting upstream servers to send ECS | and ideally use a policy of whitelisting upstream servers to send ECS | |||
| to in order to minimize data leakage. Operators should make clear in | to in order to minimize data leakage. Operators should make clear in | |||
| skipping to change at page 19, line 42 ¶ | skipping to change at page 19, line 42 ¶ | |||
| 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: | [RFC6973] Threats: | |||
| o Surveillance | o Surveillance. | |||
| o Stored data compromise | o Stored data compromise. | |||
| o Correlation | o Correlation. | |||
| o Identification | o Identification. | |||
| o Secondary use | o Secondary use. | |||
| o Disclosure. | ||||
| o Disclosure | ||||
| DNS Privacy Threats: | DNS Privacy Threats: | |||
| o Contravention of legal requirements not to process user data | o Contravention of legal requirements not to process user data. | |||
| Mitigations: | Mitigations: | |||
| Operators should not provide identifiable data to third-parties | Operators should not provide identifiable data to third-parties | |||
| without explicit consent from clients (we take the stance here that | without explicit consent from clients (we take the stance here that | |||
| simply using the resolution service itself does not constitute | simply using the resolution service itself does not constitute | |||
| consent). | consent). | |||
| Operators should consider including specific guidelines for the | Operators should consider including specific guidelines for the | |||
| collection of aggregated and/or anonymized data for research | collection of aggregated and/or anonymized data for research | |||
| purposes, within or outside of their own organization. This can | purposes, within or outside of their own organization. This can | |||
| benefit not only the operator (through inclusion in novel research) | benefit not only the operator (through inclusion in novel research) | |||
| but also the wider Internet community. See SURFnet's policy [11] on | but also the wider Internet community. See the policy published by | |||
| data sharing for research as an example. | SURFnet [SURFnet-policy] on data sharing for research as an example. | |||
| 6. DNS Recursive Operator Privacy (DROP) statement | 6. DNS Recursive Operator Privacy (DROP) statement | |||
| The following section outlines the recommended contents of a DROP | The following section outlines the recommended contents of a DROP | |||
| statement an operator might choose to publish. An example statement | statement an operator might choose to publish. An example statement | |||
| for a specific scenario is provided for guidance only in Appendix C. | for a specific scenario is provided for guidance only in Appendix C. | |||
| 6.1. Recommended contents of a DROP statement | 6.1. Recommended contents of a DROP statement | |||
| 6.1.1. Policy | 6.1.1. Policy | |||
| 1. Treatment of IP addresses. Make an explicit statement that IP | 1. Treatment of IP addresses. Make an explicit statement that IP | |||
| addresses are treated as PII. | addresses are treated as PII. | |||
| 2. Data collection and sharing. Specify clearly what data | 2. Data collection and sharing. Specify clearly what data | |||
| (including IP addresses) is: | (including IP addresses) is: | |||
| * Collected and retained by the operator, and for what period it | * Collected and retained by the operator, and for what period it | |||
| is retained | is retained. | |||
| * Shared with partners | * Shared with partners. | |||
| * Shared, sold or rented to third-parties | * Shared, sold or rented to third-parties. | |||
| and in each case whether it is aggregated, pseudonymized or | and in each case whether it is aggregated, pseudonymized or | |||
| anonymized and the conditions of data transfer. | anonymized and the conditions of data transfer. | |||
| 3. Exceptions. Specify any exceptions to the above, for example | 3. Exceptions. Specify any exceptions to the above, for example | |||
| technically malicious or anomalous behavior. | technically malicious or anomalous behavior. | |||
| 4. Associated entities. Declare any partners, third-party | 4. Associated entities. Declare any partners, third-party | |||
| affiliations or sources of funding. | affiliations or sources of funding. | |||
| skipping to change at page 21, line 22 ¶ | skipping to change at page 21, line 22 ¶ | |||
| operator filters, edits or alters in any way the replies that it | operator filters, edits or alters in any way the replies that it | |||
| receives from the authoritative servers for each DNS zone, before | receives from the authoritative servers for each DNS zone, before | |||
| forwarding them to the clients. For each category listed below, | forwarding them to the clients. For each category listed below, | |||
| the operator should also specify how the filtering lists are | the operator should also specify how the filtering lists are | |||
| created and managed, whether it employs any third-party sources | created and managed, whether it employs any third-party sources | |||
| for such lists, and which ones. | for such lists, and which ones. | |||
| * Specify if any replies are being filtered out or altered for | * Specify if any replies are being filtered out or altered for | |||
| network and computer security reasons (e.g. preventing | network and computer security reasons (e.g. preventing | |||
| connections to malware-spreading websites or botnet control | connections to malware-spreading websites or botnet control | |||
| servers) | servers). | |||
| * Specify if any replies are being filtered out or altered for | * Specify if any replies are being filtered out or altered for | |||
| mandatory legal reasons, due to applicable legislation or | mandatory legal reasons, due to applicable legislation or | |||
| binding orders by courts and other public authorities | binding orders by courts and other public authorities. | |||
| * Specify if any replies are being filtered out or altered for | * Specify if any replies are being filtered out or altered for | |||
| voluntary legal reasons, due to an internal policy by the | voluntary legal reasons, due to an internal policy by the | |||
| operator aiming at reducing potential legal risks | operator aiming at reducing potential legal risks. | |||
| * Specify if any replies are being filtered out or altered for | * Specify if any replies are being filtered out or altered for | |||
| any other reason, including commercial ones | any other reason, including commercial ones. | |||
| 6.1.2. Practice | 6.1.2. Practice | |||
| This section should explain the current operational practices of the | This section should explain the current operational practices of the | |||
| service. | service. | |||
| 1. Deviations. Specify any temporary or permanent deviations from | 1. Deviations. Specify any temporary or permanent deviations from | |||
| the policy for operational reasons. | the policy for operational reasons. | |||
| 2. Client facing capabilities. With reference to section Section 5 | 2. Client facing capabilities. With reference to section Section 5 | |||
| provide specific details of which capabilities are provided on | provide specific details of which capabilities are provided on | |||
| which client facing addresses and ports: | which client facing addresses and ports: | |||
| 1. For DoT, specify the authentication name to be used (if any) | 1. For DoT, specify the authentication name to be used (if any). | |||
| 2. For DoT, specify the SPKI pin sets to be used (if any) and | 2. For DoT, specify the SPKI pin sets to be used (if any) and | |||
| policy for rolling keys | policy for rolling keys. | |||
| 3. Upstream capabilities. With reference to section Section 5.3 | 3. Upstream capabilities. With reference to section Section 5.3 | |||
| provide specific details of which capabilities are provided | provide specific details of which capabilities are provided | |||
| upstream for data sent to authoritative servers. | upstream for data sent to authoritative servers. | |||
| 4. Support. Provide contact/support information for the service. | 4. Support. Provide contact/support information for the service. | |||
| 5. Jurisdiction. This section should communicate the applicable | 5. Jurisdiction. This section should communicate the applicable | |||
| jurisdictions and law enforcement regimes under which the service | jurisdictions and law enforcement regimes under which the service | |||
| is being provided. | is being provided. | |||
| skipping to change at page 22, line 39 ¶ | skipping to change at page 22, line 39 ¶ | |||
| certain countries are only served by certain servers, this | certain countries are only served by certain servers, this | |||
| should be specified as well). | should be specified as well). | |||
| 4. Specify whether the operator has any agreement in place with | 4. Specify whether the operator has any agreement in place with | |||
| law enforcement agencies, or other public and private parties | law enforcement agencies, or other public and private parties | |||
| dealing with security and intelligence, to give them access | dealing with security and intelligence, to give them access | |||
| to the servers and/or to the data. | to the servers and/or to the data. | |||
| 6.2. Current policy and privacy statements | 6.2. Current policy and privacy statements | |||
| A tabular comparison of existing policy and privacy statements from | A tabular comparison of policy and privacy statements from various | |||
| various DNS Privacy service operators based loosely on the proposed | DNS Privacy service operators based loosely on the proposed DROP | |||
| DROP structure can be found on dnsprivacy.org [12]. | structure can be found at [policy-comparison]. The analysis is based | |||
| on the data available in December 2019. | ||||
| We note that the existing set of policies vary widely in style, | We note that the existing set of policies vary widely in style, | |||
| content and detail and it is not uncommon for the full text for a | content and detail and it is not uncommon for the full text for a | |||
| given operator to equate to more than 10 pages of moderate font sized | given operator to equate to more than 10 pages of moderate font sized | |||
| A4 text. It is a non-trivial task today for a user to extract a | A4 text. It is a non-trivial task today for a user to extract a | |||
| meaningful overview of the different services on offer. | meaningful overview of the different services on offer. | |||
| It is also noted that Mozilla have published a Security/DoH-resolver | It is also noted that Mozilla have published a DoH resolver policy | |||
| policy [13], which describes the minimum set of policy requirements | [DoH-resolver-policy], which describes the minimum set of policy | |||
| that a party must satisfy to be considered as a potential partner for | requirements that a party must satisfy to be considered as a | |||
| Mozilla's Trusted Recursive Resolver (TRR) program. | potential partner for Mozilla's Trusted Recursive Resolver (TRR) | |||
| program. | ||||
| 6.3. Enforcement/accountability | 6.3. Enforcement/accountability | |||
| Transparency reports may help with building user trust that operators | Transparency reports may help with building user trust that operators | |||
| adhere to their policies and practices. | adhere to their policies and practices. | |||
| Independent monitoring or analysis could be performed where possible | Independent monitoring or analysis could be performed where possible | |||
| of: | of: | |||
| o ECS, QNAME minimization, EDNS(0) padding, etc. | o ECS, QNAME minimization, EDNS(0) padding, etc. | |||
| o Filtering | o Filtering. | |||
| o Uptime | o Uptime. | |||
| This is by analogy with e.g. several TLS or website analysis tools | This is by analogy with e.g. several TLS or website analysis tools | |||
| that are currently available e.g. SSL Labs [14] or Internet.nl [15]. | that are currently available e.g. [SSL-Labs] or [Internet.nl]. | |||
| Additionally operators could choose to engage the services of a third | Additionally operators could choose to engage the services of a third | |||
| party auditor to verify their compliance with their published DROP | party auditor to verify their compliance with their published DROP | |||
| statement. | statement. | |||
| 7. IANA considerations | 7. IANA considerations | |||
| None | None | |||
| 8. Security considerations | 8. Security considerations | |||
| Security considerations for DNS-over-TCP are given in [RFC7766], many | Security considerations for DNS-over-TCP are given in [RFC7766], many | |||
| of which are generally applicable to session based DNS. | of which are generally applicable to session based DNS. Guidance on | |||
| operational requirements for DNS-over-TCP are also available in [I- | ||||
| D.dnsop-dns-tcp-requirements]. | ||||
| 9. Acknowledgements | 9. Acknowledgements | |||
| Many thanks to Amelia Andersdotter for a very thorough review of the | Many thanks to Amelia Andersdotter for a very thorough review of the | |||
| first draft of this document and Stephen Farrell for a thorough | first draft of this document and Stephen Farrell for a thorough | |||
| review at WGLC and for suggesting the inclusion of an example DROP | review at WGLC and for suggesting the inclusion of an example DROP | |||
| statement. Thanks to John Todd for discussions on this topic, and to | statement. Thanks to John Todd for discussions on this topic, and to | |||
| Stephane Bortzmeyer, Puneet Sood and Vittorio Bertola for review. | Stephane Bortzmeyer, Puneet Sood and Vittorio Bertola for review. | |||
| Thanks to Daniel Kahn Gillmor, Barry Green, Paul Hoffman, Dan York, | Thanks to Daniel Kahn Gillmor, Barry Green, Paul Hoffman, Dan York, | |||
| John Reed, Lorenzo Colitti for comments at the mic. Thanks to | John Reed, Lorenzo Colitti for comments at the mic. Thanks to | |||
| skipping to change at page 24, line 25 ¶ | skipping to change at page 24, line 25 ¶ | |||
| Jim Hague | Jim Hague | |||
| Sinodun Internet Technologies | Sinodun Internet Technologies | |||
| Magdalen Centre | Magdalen Centre | |||
| Oxford Science Park | Oxford Science Park | |||
| Oxford OX4 4GA | Oxford OX4 4GA | |||
| United Kingdom | United Kingdom | |||
| 11. Changelog | 11. Changelog | |||
| draft-ietf-dprive-bcp-op-05 | draft-ietf-dprive-bcp-op-07 | |||
| o Editorial changes following AD review. | ||||
| o Change all URIs to Informational References. | ||||
| draft-ietf-dprive-bcp-op-06 | ||||
| o Final minor changes from second WGLC. | o Final minor changes from second WGLC. | |||
| draft-ietf-dprive-bcp-op-05 | draft-ietf-dprive-bcp-op-05 | |||
| o Remove some text on consent: | o Remove some text on consent: | |||
| * Paragraph 2 in section 5.3.3 | * Paragraph 2 in section 5.3.3 | |||
| * Item 6 in the DROP Practice statement (and example) | * Item 6 in the DROP Practice statement (and example) | |||
| skipping to change at page 26, line 32 ¶ | skipping to change at page 26, line 38 ¶ | |||
| o Initial commit of re-named document after adoption to replace | o Initial commit of re-named document after adoption to replace | |||
| draft-dickinson-dprive-bcp-op-01 | draft-dickinson-dprive-bcp-op-01 | |||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.1. Normative References | |||
| [I-D.ietf-dprive-rfc7626-bis] | [I-D.ietf-dprive-rfc7626-bis] | |||
| Bortzmeyer, S. and S. Dickinson, "DNS Privacy | Bortzmeyer, S. and S. Dickinson, "DNS Privacy | |||
| Considerations", draft-ietf-dprive-rfc7626-bis-02 (work in | Considerations", draft-ietf-dprive-rfc7626-bis-03 (work in | |||
| progress), October 2019. | progress), November 2019. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| editor.org/info/rfc2119>. | editor.org/info/rfc2119>. | |||
| [RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, | [RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, | |||
| DOI 10.17487/RFC6265, April 2011, <https://www.rfc- | DOI 10.17487/RFC6265, April 2011, <https://www.rfc- | |||
| editor.org/info/rfc6265>. | editor.org/info/rfc6265>. | |||
| skipping to change at page 28, line 20 ¶ | skipping to change at page 28, line 25 ¶ | |||
| [RFC8467] Mayrhofer, A., "Padding Policies for Extension Mechanisms | [RFC8467] Mayrhofer, A., "Padding Policies for Extension Mechanisms | |||
| for DNS (EDNS(0))", RFC 8467, DOI 10.17487/RFC8467, | for DNS (EDNS(0))", RFC 8467, DOI 10.17487/RFC8467, | |||
| October 2018, <https://www.rfc-editor.org/info/rfc8467>. | October 2018, <https://www.rfc-editor.org/info/rfc8467>. | |||
| [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>. | |||
| 12.2. Informative References | 12.2. Informative References | |||
| [Bloom-filter] | ||||
| van Rijswijk-Deij, R., Rijnders, G., Bomhoff, M., and L. | ||||
| Allodi, "Privacy-Conscious Threat Intelligence Using | ||||
| DNSBLOOM", 2019, | ||||
| <http://dl.ifip.org/db/conf/im/im2019/189282.pdf>. | ||||
| [Brenker-and-Arnes] | ||||
| Brekne, T. and A. Arnes, "CIRCUMVENTING IP-ADDRESS | ||||
| PSEUDONYMIZATION", 2005, <https://pdfs.semanticscholar.org | ||||
| /7b34/12c951cebe71cd2cddac5fda164fb2138a44.pdf>. | ||||
| [Crypto-PAn] | ||||
| CESNET, "Crypto-PAn", 2015, | ||||
| <https://github.com/CESNET/ipfixcol/tree/master/base/src/ | ||||
| intermediate/anonymization/Crypto-PAn>. | ||||
| [DNS-Privacy-not-so-private] | ||||
| Silby, S., Juarez, M., Vallina-Rodriguez, N., and C. | ||||
| Troncosol, "DNS Privacy not so private: the traffic | ||||
| analysis perspective.", 2019, | ||||
| <https://petsymposium.org/2018/files/hotpets/4-siby.pdf>. | ||||
| [dnsdist] PowerDNS, "dnsdist Overview", 2019, <https://dnsdist.org>. | ||||
| [dnstap] dnstap.info, "DNSTAP", 2019, <http://dnstap.info>. | ||||
| [DoH-resolver-policy] | ||||
| Mozilla, "Security/DOH-resolver-policy", 2019, | ||||
| <https://wiki.mozilla.org/Security/DOH-resolver-policy>. | ||||
| [Geolocation-Impact-Assessement] | ||||
| Conversion Works, "Anonymize IP Geolocation Accuracy | ||||
| Impact Assessment", 2017, | ||||
| <https://support.google.com/analytics/ | ||||
| answer/2763052?hl=en>. | ||||
| [haproxy] haproxy.org, "HAPROXY", 2019, <https://www.haproxy.org/>. | ||||
| [Harvan] Harvan, M., "Prefix- and Lexicographical-order-preserving | ||||
| IP Address Anonymization", 2006, | ||||
| <http://mharvan.net/talks/noms-ip_anon.pdf>. | ||||
| [I-D.bellis-dnsop-xpf] | [I-D.bellis-dnsop-xpf] | |||
| Bellis, R., Dijk, P., and R. Gacogne, "DNS X-Proxied-For", | Bellis, R., Dijk, P., and R. Gacogne, "DNS X-Proxied-For", | |||
| draft-bellis-dnsop-xpf-04 (work in progress), March 2018. | draft-bellis-dnsop-xpf-04 (work in progress), March 2018. | |||
| [I-D.ietf-dnsop-dns-tcp-requirements] | [I-D.ietf-dnsop-dns-tcp-requirements] | |||
| Kristoff, J. and D. Wessels, "DNS Transport over TCP - | Kristoff, J. and D. Wessels, "DNS Transport over TCP - | |||
| Operational Requirements", draft-ietf-dnsop-dns-tcp- | Operational Requirements", draft-ietf-dnsop-dns-tcp- | |||
| requirements-05 (work in progress), November 2019. | requirements-05 (work in progress), November 2019. | |||
| [I-D.ietf-httpbis-bcp56bis] | [I-D.ietf-httpbis-bcp56bis] | |||
| Nottingham, M., "Building Protocols with HTTP", draft- | Nottingham, M., "Building Protocols with HTTP", draft- | |||
| ietf-httpbis-bcp56bis-09 (work in progress), November | ietf-httpbis-bcp56bis-09 (work in progress), November | |||
| 2019. | 2019. | |||
| [Internet.nl] | ||||
| Internet.nl, "Internet.nl Is Your Internet Up To Date?", | ||||
| 2019, <https://internet.nl>. | ||||
| [IP-Anonymization-in-Analytics] | ||||
| Google, "IP Anonymization in Analytics", 2019, | ||||
| <https://support.google.com/analytics/ | ||||
| answer/2763052?hl=en>. | ||||
| [ipcipher1] | ||||
| Hubert, B., "On IP address encryption: security analysis | ||||
| with respect for privacy", 2017, | ||||
| <https://medium.com/@bert.hubert/on-ip-address-encryption- | ||||
| security-analysis-with-respect-for-privacy-dabe1201b476>. | ||||
| [ipcipher2] | ||||
| PowerDNS, "ipcipher", 2017, <https://github.com/PowerDNS/ | ||||
| ipcipher>. | ||||
| [ipcrypt] veorq, "ipcrypt: IP-format-preserving encryption", 2015, | ||||
| <https://github.com/veorq/ipcrypt>. | ||||
| [ipcrypt-analysis] | ||||
| Aumasson, J., "Analysis of ipcrypt?", 2018, | ||||
| <https://www.ietf.org/mail-archive/web/cfrg/current/ | ||||
| msg09494.html>. | ||||
| [ISC-Knowledge-database-on-cache-snooping] | ||||
| ISC Knowledge Database, "DNS Cache snooping - should I be | ||||
| concerned?", 2018, <https://kb.isc.org/docs/aa-00482>. | ||||
| [nginx] nginx.org, "NGINX", 2019, <https://nginx.org/>. | ||||
| [Passive-Observations-of-a-Large-DNS] | ||||
| de Vries, W., van Rijswijk-Deij, R., de Boer, P., and A. | ||||
| Pras, "Passive Observations of a Large DNS Service: 2.5 | ||||
| Years in the Life of Google", 2018, | ||||
| <http://tma.ifip.org/2018/wp- | ||||
| content/uploads/sites/3/2018/06/tma2018_paper30.pdf>. | ||||
| [pcap] tcpdump.org, "PCAP", 2016, <http://www.tcpdump.org/>. | [pcap] tcpdump.org, "PCAP", 2016, <http://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", 2014, <https://dl.acm.org/ | Encryption", 2014, <https://dl.acm.org/ | |||
| citation.cfm?id=2665959>. | citation.cfm?id=2665959>. | |||
| [policy-comparison] | ||||
| dnsprivacy.org, "Comparison of policy and privacy | ||||
| statements 2019", 2019, | ||||
| <https://dnsprivacy.org/wiki/display/DP/ | ||||
| Comparison+of+policy+and+privacy+statements+2019>. | ||||
| [Ramaswamy-and-Wolf] | ||||
| Ramaswamy, R. and T. Wolf, "High-Speed Prefix-Preserving | ||||
| IP Address Anonymization for Passive Measurement Systems", | ||||
| 2007, | ||||
| <http://www.ecs.umass.edu/ece/wolf/pubs/ton2007.pdf>. | ||||
| [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| Rose, "DNS Security Introduction and Requirements", | Rose, "DNS Security Introduction and Requirements", | |||
| RFC 4033, DOI 10.17487/RFC4033, March 2005, | RFC 4033, DOI 10.17487/RFC4033, March 2005, | |||
| <https://www.rfc-editor.org/info/rfc4033>. | <https://www.rfc-editor.org/info/rfc4033>. | |||
| [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>. | |||
| skipping to change at page 30, line 10 ¶ | skipping to change at page 32, line 15 ¶ | |||
| [RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. | [RFC8555] Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. | |||
| Kasten, "Automatic Certificate Management Environment | Kasten, "Automatic Certificate Management Environment | |||
| (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, | (ACME)", RFC 8555, DOI 10.17487/RFC8555, March 2019, | |||
| <https://www.rfc-editor.org/info/rfc8555>. | <https://www.rfc-editor.org/info/rfc8555>. | |||
| [RFC8618] Dickinson, J., Hague, J., Dickinson, S., Manderson, T., | [RFC8618] Dickinson, J., Hague, J., Dickinson, S., Manderson, T., | |||
| and J. Bond, "Compacted-DNS (C-DNS): A Format for DNS | and J. Bond, "Compacted-DNS (C-DNS): A Format for DNS | |||
| Packet Capture", RFC 8618, DOI 10.17487/RFC8618, September | Packet Capture", RFC 8618, DOI 10.17487/RFC8618, September | |||
| 2019, <https://www.rfc-editor.org/info/rfc8618>. | 2019, <https://www.rfc-editor.org/info/rfc8618>. | |||
| 12.3. URIs | [SSL-Labs] | |||
| SSL Labs, "SSL Server Test", 2019, | ||||
| [1] https://petsymposium.org/2018/files/hotpets/4-siby.pdf | <https://www.ssllabs.com/ssltest/>. | |||
| [2] http://tma.ifip.org/2018/wp-content/uploads/sites/3/2018/06/ | ||||
| tma2018_paper30.pdf | ||||
| [3] http://dnstap.info | ||||
| [4] https://nginx.org/ | ||||
| [5] https://www.haproxy.org/ | ||||
| [6] https://kb.isc.org/article/AA-01386/0/DNS-over-TLS.html | ||||
| [7] https://dnsdist.org | ||||
| [8] https://doi.org/10.1145/3182660 | ||||
| [9] https://pdfs.semanticscholar.org/7b34/12c951cebe71cd2cddac5fda164 | ||||
| fb2138a44.pdf | ||||
| [10] https://kb.isc.org/docs/aa-00482 | ||||
| [11] https://surf.nl/datasharing | ||||
| [12] https://dnsprivacy.org/wiki/display/DP/ | ||||
| Comparison+of+policy+and+privacy+statements | ||||
| [13] https://wiki.mozilla.org/Security/DOH-resolver-policy | ||||
| [14] https://www.ssllabs.com/ssltest/ | ||||
| [15] https://internet.nl | ||||
| [16] https://support.google.com/analytics/answer/2763052?hl=en | ||||
| [17] https://www.conversionworks.co.uk/blog/2017/05/19/anonymize-ip- | ||||
| geo-impact-test/ | ||||
| [18] https://github.com/edmonds/pdns/blob/master/pdns/dnswasher.cc | ||||
| [19] http://ita.ee.lbl.gov/html/contrib/tcpdpriv.html | ||||
| [20] http://an.kaist.ac.kr/~sbmoon/paper/intl-journal/2004-cn- | ||||
| anon.pdf | ||||
| [21] https://www.cc.gatech.edu/computing/Telecomm/projects/cryptopan/ | ||||
| [22] http://mharvan.net/talks/noms-ip_anon.pdf | ||||
| [23] http://www.ecs.umass.edu/ece/wolf/pubs/ton2007.pdf | ||||
| [24] https://medium.com/@bert.hubert/on-ip-address-encryption- | [stunnel] ISC Knowledge Database, "DNS-over-TLS", 2018, | |||
| security-analysis-with-respect-for-privacy-dabe1201b476 | <https://kb.isc.org/article/AA-01386/0/DNS-over-TLS.html>. | |||
| [25] https://github.com/PowerDNS/ipcipher | [SURFnet-policy] | |||
| SURFnet, "SURFnet Data Sharing Policy", 2016, | ||||
| <https://surf.nl/datasharing>. | ||||
| [26] https://github.com/veorq/ipcrypt | [TCPdpriv] | |||
| Ipsilon Networks, Inc., "TCPdpriv", 2005, | ||||
| <http://ita.ee.lbl.gov/html/contrib/tcpdpriv.html>. | ||||
| [27] https://www.ietf.org/mail-archive/web/cfrg/current/msg09494.html | [van-Dijkhuizen-et-al.] | |||
| Van Dijkhuizen , N. and J. Van Der Ham, "A Survey of | ||||
| Network Traffic Anonymisation Techniques and | ||||
| Implementations", 2018, <https://doi.org/10.1145/3182660>. | ||||
| [28] http://dl.ifip.org/db/conf/im/im2019/189282.pdf | [Xu-et-al.] | |||
| Fan, J., Xu, J., Ammar, M., and S. Moon, "Prefix- | ||||
| preserving IP address anonymization: measurement-based | ||||
| security evaluation and a new cryptography-based scheme", | ||||
| 2004, <http://an.kaist.ac.kr/~sbmoon/paper/ | ||||
| intl-journal/2004-cn-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 characteristic of the document. | |||
| 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 | |||
| skipping to change at page 31, line 45 ¶ | skipping to change at page 33, line 14 ¶ | |||
| o 'Specification for DNS over Transport Layer Security (TLS)' | o 'Specification for DNS over Transport Layer Security (TLS)' | |||
| [RFC7858], referred to here as 'DNS-over-TLS'. | [RFC7858], referred to here as 'DNS-over-TLS'. | |||
| o 'DNS over Datagram Transport Layer Security (DTLS)' [RFC8094], | o 'DNS over Datagram Transport Layer Security (DTLS)' [RFC8094], | |||
| referred to here as 'DNS-over-DTLS'. Note that this document has | referred to here as 'DNS-over-DTLS'. Note that this document has | |||
| the Category of Experimental. | the Category of Experimental. | |||
| o 'DNS Queries over HTTPS (DoH)' [RFC8484] referred to here as DoH. | o 'DNS Queries over HTTPS (DoH)' [RFC8484] referred to here as DoH. | |||
| o 'Usage Profiles for DNS over TLS and DNS over DTLS' [RFC8310] | o 'Usage Profiles for DNS over TLS and DNS over DTLS' [RFC8310]. | |||
| o 'The EDNS(0) Padding Option' [RFC7830] and 'Padding Policy for | o 'The EDNS(0) Padding Option' [RFC7830] and 'Padding Policy for | |||
| EDNS(0)' [RFC8467] | EDNS(0)' [RFC8467]. | |||
| These documents apply to recursive to authoritative DNS but are | These documents apply to recursive to authoritative DNS but are | |||
| relevant when considering the operation of a recursive server: | relevant when considering the operation of a recursive server: | |||
| o 'DNS Query Name minimization to Improve Privacy' [RFC7816] | o 'DNS Query Name minimization to Improve Privacy' [RFC7816] | |||
| referred to here as 'QNAME minimization' | referred to here as 'QNAME minimization'. | |||
| A.2. Potential decreases in DNS privacy | A.2. Potential decreases in DNS privacy | |||
| These documents relate to functionality that could provide increased | These documents relate to functionality that could provide increased | |||
| tracking of user activity as a side effect: | tracking of user activity as a side effect: | |||
| o 'Client Subnet in DNS Queries' [RFC7871] | o 'Client Subnet in DNS Queries' [RFC7871]. | |||
| o 'Domain Name System (DNS) Cookies' [RFC7873]) | o 'Domain Name System (DNS) Cookies' [RFC7873]). | |||
| o 'Transport Layer Security (TLS) Session Resumption without Server- | o 'Transport Layer Security (TLS) Session Resumption without Server- | |||
| Side State' [RFC5077] referred to here as simply TLS session | Side State' [RFC5077] referred to here as simply TLS session | |||
| resumption. | resumption. | |||
| o 'A DNS Packet Capture Format' [RFC8618] | o 'A DNS Packet Capture Format' [RFC8618]. | |||
| o Passive DNS [RFC8499] | o Passive DNS [RFC8499]. | |||
| Note that depending on the specifics of the implementation [RFC8484] | Note that depending on the specifics of the implementation [RFC8484] | |||
| may also provide increased tracking. | may also provide increased tracking. | |||
| A.3. Related operational documents | A.3. Related operational documents | |||
| o 'DNS Transport over TCP - Implementation Requirements' [RFC7766] | o 'DNS Transport over TCP - Implementation Requirements' [RFC7766]. | |||
| o 'Operational requirements for DNS-over-TCP' | o 'Operational requirements for DNS-over-TCP' | |||
| [I-D.ietf-dnsop-dns-tcp-requirements] | [I-D.ietf-dnsop-dns-tcp-requirements]. | |||
| o 'The edns-tcp-keepalive EDNS0 Option' [RFC7828] | o 'The edns-tcp-keepalive EDNS0 Option' [RFC7828]. | |||
| o 'DNS Stateful Operations' [RFC8490] | o 'DNS Stateful Operations' [RFC8490]. | |||
| Appendix B. IP address techniques | Appendix B. IP address techniques | |||
| Data minimization methods may be categorized by the processing used | Data minimization methods may be categorized by the processing used | |||
| and the properties of their outputs. The following builds on the | and the properties of their outputs. The following builds on the | |||
| categorization employed in [RFC6235]: | categorization employed in [RFC6235]: | |||
| o Format-preserving. Normally when encrypting, the original data | o Format-preserving. Normally when encrypting, the original data | |||
| length and patterns in the data should be hidden from an attacker. | length and patterns in the data should be hidden from an attacker. | |||
| Some applications of de-identification, such as network capture | Some applications of de-identification, such as network capture | |||
| skipping to change at page 33, line 47 ¶ | skipping to change at page 35, line 14 ¶ | |||
| o Random substitution. As replacement, but using randomly generated | o Random substitution. As replacement, but using randomly generated | |||
| replacement values. | replacement values. | |||
| o Cryptographic permutation. Using a permutation function, such as | o Cryptographic permutation. Using a permutation function, such as | |||
| a hash function or cryptographic block cipher, to generate a | a hash function or cryptographic block cipher, to generate a | |||
| replacement de-identified value. | replacement de-identified value. | |||
| B.1. Google Analytics non-prefix filtering | B.1. Google Analytics non-prefix filtering | |||
| Since May 2010, Google Analytics has provided a facility [16] that | Since May 2010, Google Analytics has provided a facility | |||
| allows website owners to request that all their users IP addresses | [IP-Anonymization-in-Analytics] that allows website owners to request | |||
| are anonymized within Google Analytics processing. This very basic | that all their users IP addresses are anonymized within Google | |||
| anonymization simply sets to zero the least significant 8 bits of | Analytics processing. This very basic anonymization simply sets to | |||
| IPv4 addresses, and the least significant 80 bits of IPv6 addresses. | zero the least significant 8 bits of IPv4 addresses, and the least | |||
| The level of anonymization this produces is perhaps questionable. | significant 80 bits of IPv6 addresses. The level of anonymization | |||
| this produces is perhaps questionable. There are some analysis | ||||
| There are some analysis results [17] which suggest that the impact of | results [Geolocation-Impact-Assessement] which suggest that the | |||
| this on reducing the accuracy of determining the user's location from | impact of this on reducing the accuracy of determining the user's | |||
| their IP address is less than might be hoped; the average discrepancy | location from their IP address is less than might be hoped; the | |||
| in identification of the user city for UK users is no more than 17%. | average discrepancy in identification of the user city for UK users | |||
| is no more than 17%. | ||||
| Anonymization: Format-preserving, Filtering (grey marking). | Anonymization: Format-preserving, Filtering (grey marking). | |||
| B.2. dnswasher | B.2. dnswasher | |||
| Since 2006, PowerDNS have included a de-identification tool dnswasher | Since 2006, PowerDNS have included a de-identification tool | |||
| [18] with their PowerDNS product. This is a PCAP filter that | Appendix B.2 with their PowerDNS product. This is a PCAP filter that | |||
| performs a one-to-one mapping of end user IP addresses with an | performs a one-to-one mapping of end user IP addresses with an | |||
| anonymized address. A table of user IP addresses and their de- | anonymized address. A table of user IP addresses and their de- | |||
| identified counterparts is kept; the first IPv4 user addresses is | identified counterparts is kept; the first IPv4 user addresses is | |||
| translated to 0.0.0.1, the second to 0.0.0.2 and so on. The de- | 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 addresses | identified address therefore depends on the order that addresses | |||
| arrive in the input, and running over a large amount of data the | arrive in the input, and running over a large amount of data the | |||
| address translation tables can grow to a significant size. | address translation tables can grow to a significant size. | |||
| Anonymization: Format-preserving, Enumeration. | Anonymization: Format-preserving, Enumeration. | |||
| B.3. Prefix-preserving map | B.3. Prefix-preserving map | |||
| Used in TCPdpriv [19], this algorithm stores a set of original and | Used in [TCPdpriv], this algorithm stores a set of original and | |||
| anonymised IP address pairs. When a new IP address arrives, it is | anonymised 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 TCPdrpiv is not deterministic; different | of a random value means that TCPdrpiv 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 allocated anonymized | memory requirements, and because of the need to allocated anonymized | |||
| addresses sequentially cannot be used in parallel processing. | addresses sequentially cannot be used in parallel processing. | |||
| Anonymization: Format-preserving, prefix preservation (general). | Anonymization: Format-preserving, prefix preservation (general). | |||
| B.4. Cryptographic Prefix-Preserving Pseudonymisation | B.4. Cryptographic Prefix-Preserving Pseudonymisation | |||
| Cryptographic prefix-preserving pseudonymisation was originally | Cryptographic prefix-preserving pseudonymisation 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. [20] and implemented in the | in TCPdpriv, described in [Xu-et-al.] and implemented in the | |||
| Crypto-PAn tool [21]. Crypto-PAn is now frequently used as an | [Crypto-PAn] tool. Crypto-PAn is now frequently used as an acronym | |||
| acronym for the algorithm. Initially it was described for IPv4 | for the algorithm. Initially it was described for IPv4 addresses | |||
| addresses only; extension for IPv6 addresses was proposed in Harvan & | only; extension for IPv6 addresses was proposed in [Harvan]. This | |||
| Schoenwaelder [22] and implemented in snmpdump. This uses a | uses a cryptographic algorithm rather than a random value, and thus | |||
| cryptographic algorithm rather than a random value, and thus | ||||
| pseudonymity is determined uniquely by the encryption key, and is | pseudonymity is determined uniquely by the encryption key, and is | |||
| deterministic. It requires a separate AES encryption for each output | deterministic. It requires a separate AES encryption for each output | |||
| bit, so has a non-trivial calculation overhead. This can be | bit, so has a non-trivial calculation overhead. This can be | |||
| mitigated to some extent (for IPv4, at least) by pre-calculating | mitigated to some extent (for IPv4, at least) by pre-calculating | |||
| results for some number of prefix bits. | results for some number of prefix bits. | |||
| Pseudonymization: Format-preserving, prefix preservation (general). | Pseudonymization: Format-preserving, prefix preservation (general). | |||
| B.5. Top-hash Subtree-replicated Anonymisation | B.5. Top-hash Subtree-replicated Anonymisation | |||
| Proposed in Ramaswamy & Wolf [23], Top-hash Subtree-replicated | Proposed in [Ramaswamy-and-Wolf], Top-hash Subtree-replicated | |||
| Anonymisation (TSA) originated in response to the requirement for | Anonymisation (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 pre-calculated binary tree | significant byte of an IPv4 address, and a pre-calculated 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 pre-calculated structures to a few Mb for IPv4 addresses. | the pre-calculated structures to a few Mb for IPv4 addresses. | |||
| Address pseudonymization is done via hash and table lookup, and so | Address pseudonymization is done via hash and table lookup, and so | |||
| requires minimal computation. However, due to the much increased | requires minimal computation. However, due to the much increased | |||
| address 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.6. ipcipher | B.6. ipcipher | |||
| A recently-released proposal from PowerDNS [24], ipcipher [25] is a | A recently-released proposal from PowerDNS, ipcipher [ipcipher1] | |||
| simple pseudonymization technique for IPv4 and IPv6 addresses. IPv6 | [ipcipher2] is a simple pseudonymization technique for IPv4 and IPv6 | |||
| addresses are encrypted directly with AES-128 using a key (which may | addresses. IPv6 addresses are encrypted directly with AES-128 using | |||
| be derived from a passphrase). IPv4 addresses are similarly | a key (which may be derived from a passphrase). IPv4 addresses are | |||
| encrypted, but using a recently proposed encryption ipcrypt [26] | similarly encrypted, but using a recently proposed encryption | |||
| suitable for 32bit block lengths. However, the author of ipcrypt has | [ipcrypt] suitable for 32bit block lengths. However, the author of | |||
| since indicated [27] that it has low security, and further analysis | ipcrypt has since indicated [ipcrypt-analysis] that it has low | |||
| has revealed it is vulnerable to attack. | security, and further analysis has revealed it is vulnerable to | |||
| attack. | ||||
| Pseudonymization: Format-preserving, cryptographic permutation. | Pseudonymization: Format-preserving, cryptographic permutation. | |||
| B.7. Bloom filters | B.7. Bloom filters | |||
| van Rijswijk-Deij et al. [28] have recently described work using | van Rijswijk-Deij et al. have recently described work using Bloom | |||
| Bloom filters to categorize query traffic and record the traffic as | filters [Bloom-filter] to categorize query traffic and record the | |||
| the state of multiple filters. The goal of this work is to allow | traffic as the state of multiple filters. The goal of this work is | |||
| operators to identify so-called Indicators of Compromise (IOCs) | to allow operators to identify so-called Indicators of Compromise | |||
| originating from specific subnets without storing information about, | (IOCs) originating from specific subnets without storing information | |||
| or be able to monitor the DNS queries of an individual user. By | about, or be able to monitor the DNS queries of an individual user. | |||
| using a Bloom filter, it is possible to determine with a high | By using a Bloom filter, it is possible to determine with a high | |||
| probability if, for example, a particular query was made, but the set | probability if, for example, a particular query was made, but the set | |||
| of queries made cannot be recovered from the filter. Similarly, by | of queries made cannot be recovered from the filter. Similarly, by | |||
| mixing queries from a sufficient number of users in a single filter, | mixing queries from a sufficient number of users in a single filter, | |||
| it becomes practically impossible to determine if a particular user | it becomes practically impossible to determine if a particular user | |||
| performed a particular query. Large numbers of queries can be | performed a particular query. Large numbers of queries can be | |||
| tracked in a memory-efficient way. As filter status is stored, this | tracked in a memory-efficient way. As filter status is stored, this | |||
| approach cannot be used to regenerate traffic, and so cannot be used | approach cannot be used to regenerate traffic, and so cannot be used | |||
| with tools used to process live traffic. | with tools used to process live traffic. | |||
| Anonymized: Generalization. | Anonymized: Generalization. | |||
| End of changes. 114 change blocks. | ||||
| 233 lines changed or deleted | 302 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/ | ||||