| rfc8932xml2.original.xml | rfc8932.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM 'rfc2629.dtd' []> | ||||
| <rfc ipr="trust200902" category="bcp" docName="draft-ietf-dprive-bcp-op-14"> | ||||
| <?rfc toc="yes"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <?rfc private=""?> | ||||
| <?rfc topblock="yes"?> | ||||
| <?rfc comments="no"?> | ||||
| <front> | ||||
| <title abbrev="DNS Privacy Service Recommendations">Recommendations for DNS | ||||
| Privacy Service Operators</title> | ||||
| <author initials="S." surname="Dickinson" fullname="Sara Dickinson"> | ||||
| <organization>Sinodun IT</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <street>Magdalen Centre</street> | ||||
| <street>Oxford Science Park</street> | ||||
| <city>Oxford</city> | ||||
| <code>OX4 4GA</code> | ||||
| <country>United Kingdom</country> | ||||
| <region></region> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>sara@sinodun.com</email> | ||||
| <uri></uri> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="B." surname="Overeinder" fullname="Benno J. Overeinder"> | ||||
| <organization>NLnet Labs</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <street>Science Park 400</street> | ||||
| <city>Amsterdam</city> | ||||
| <code>1098 XH</code> | ||||
| <country>The Netherlands</country> | ||||
| <region></region> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>benno@nlnetLabs.nl</email> | ||||
| <uri></uri> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="R." surname="van Rijswijk-Deij" fullname="Roland M. van | ||||
| Rijswijk-Deij"> | ||||
| <organization>NLnet Labs</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <street>Science Park 400</street> | ||||
| <city>Amsterdam</city> | ||||
| <code>1098 XH</code> | ||||
| <country>The Netherlands</country> | ||||
| <region></region> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>roland@nlnetLabs.nl</email> | ||||
| <uri></uri> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="A." surname="Mankin" fullname="Allison Mankin"> | ||||
| <organization>Salesforce</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city></city> | ||||
| <code></code> | ||||
| <country></country> | ||||
| <region></region> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>allison.mankin@gmail.com</email> | ||||
| <uri></uri> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2020" month="July" day="13"/> | ||||
| <area>Internet</area> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <workgroup>dprive</workgroup> | ||||
| <keyword>DNS</keyword> | ||||
| <abstract> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" | |||
| <t>This document presents operational, policy, and security considerations for | docName="draft-ietf-dprive-bcp-op-14" number="8932" obsoletes="" | |||
| DNS | updates="" submissionType="IETF" category="bcp" consensus="true" | |||
| recursive resolver operators who choose to offer DNS Privacy services. With | xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" | |||
| these recommendations, the operator can make deliberate decisions regarding | version="3"> | |||
| which services to provide, and how the decisions and alternatives impact the | ||||
| privacy of users. | ||||
| </t> | ||||
| <t>This document also presents a non-normative framework to assist writers of | ||||
| a Recursive | ||||
| operator Privacy Statement (analogous to DNS Security Extensions (DNSSEC) | ||||
| Policies and DNSSEC Practice Statements described in RFC6841). | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | <!-- xml2rfc v2v3 conversion 2.46.0 --> | |||
| <front> | ||||
| <title abbrev="DNS Privacy Service Recommendations">Recommendations for DNS | ||||
| Privacy Service Operators</title> | ||||
| <seriesInfo name="RFC" value="8932"/> | ||||
| <seriesInfo name="BCP" value="232"/> | ||||
| <middle> | <author initials="S." surname="Dickinson" fullname="Sara Dickinson"> | |||
| <organization>Sinodun IT</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <extaddr>Magdalen Centre</extaddr> | ||||
| <street>Oxford Science Park</street> | ||||
| <city>Oxford</city> | ||||
| <code>OX4 4GA</code> | ||||
| <country>United Kingdom</country> | ||||
| <region/> | ||||
| </postal> | ||||
| <email>sara@sinodun.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="B." surname="Overeinder" fullname="Benno J. Overeinder"> | ||||
| <organization>NLnet Labs</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Science Park 400</street> | ||||
| <city>Amsterdam</city> | ||||
| <code>1098 XH</code> | ||||
| <country>Netherlands</country> | ||||
| <region/> | ||||
| </postal> | ||||
| <email>benno@nlnetLabs.nl</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="R." surname="van Rijswijk-Deij" fullname="Roland M. van Ri | ||||
| jswijk-Deij"> | ||||
| <organization>NLnet Labs</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Science Park 400</street> | ||||
| <city>Amsterdam</city> | ||||
| <code>1098 XH</code> | ||||
| <country>Netherlands</country> | ||||
| <region/> | ||||
| </postal> | ||||
| <email>roland@nlnetLabs.nl</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="A." surname="Mankin" fullname="Allison Mankin"> | ||||
| <organization abbrev="Salesforce">Salesforce.com, Inc.</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Salesforce Tower</street> | ||||
| <street>415 Mission Street, 3rd Floor</street> | ||||
| <city>San Francisco</city> | ||||
| <region>CA</region> | ||||
| <code>94105</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>allison.mankin@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2020" month="October"/> | ||||
| <area>Internet</area> | ||||
| <workgroup>dprive</workgroup> | ||||
| <keyword>DNS</keyword> | ||||
| <abstract> | ||||
| <section anchor="introduction" title="Introduction"> | <t>This document presents operational, policy, and security | |||
| <t>The Domain Name System (DNS) is at the core of the Internet; almost every | considerations for DNS recursive resolver operators who choose to offer | |||
| activity on the Internet starts with a DNS query (and often several). However | DNS privacy services. With these recommendations, the operator can make | |||
| deliberate decisions regarding which services to provide, as well as | ||||
| understanding how those decisions and the alternatives impact the | ||||
| privacy of users. | ||||
| </t> | ||||
| <t>This document also presents a non-normative framework to assist | ||||
| writers of a Recursive operator Privacy Statement, analogous to DNS | ||||
| Security Extensions (DNSSEC) Policies and DNSSEC Practice Statements | ||||
| described in RFC 6841. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <middle> | ||||
| <section anchor="introduction" numbered="true" toc="default"> | ||||
| <name>Introduction</name> | ||||
| <t>The Domain Name System (DNS) is at the core of the Internet; almost eve | ||||
| ry | ||||
| activity on the Internet starts with a DNS query (and often several). However, | ||||
| the DNS was not originally designed with strong security or privacy | the DNS was not originally designed with strong security or privacy | |||
| mechanisms. | mechanisms. | |||
| A number of developments have taken place in recent years which aim to | A number of developments have taken place in recent years that aim to | |||
| increase | increase | |||
| the privacy of the DNS system and these are now seeing some deployment. This | the privacy of the DNS, and these are now seeing some deployment. This | |||
| latest evolution of the DNS presents new challenges to operators and this | latest evolution of the DNS presents new challenges to operators, and this | |||
| document attempts to provide an overview of considerations for privacy focused | document attempts to provide an overview of considerations for privacy-focused | |||
| DNS services. | DNS services. | |||
| </t> | </t> | |||
| <t>In recent years there has also been an increase in the availability of | <t>In recent years, there has also been an increase in the availability of | |||
| "public | "public | |||
| resolvers" <xref target="RFC8499"/> which users may prefer to use instead | resolvers" <xref target="RFC8499" format="default"/>, which users may prefer | |||
| of the default | to use instead of the default | |||
| network resolver either because they offer a specific feature (e.g., good | network resolver, either because they offer a specific feature (e.g., good | |||
| reachability or encrypted transport) or because the network resolver lacks a | reachability or encrypted transport) or because the network resolver lacks a | |||
| specific feature (e.g., strong privacy policy or unfiltered responses). These | specific feature (e.g., strong privacy policy or unfiltered responses). These | |||
| public resolvers have tended to be at the forefront of adoption of | public resolvers have tended to be at the forefront of adoption of | |||
| privacy-related | privacy-related | |||
| enhancements but it is anticipated that operators of other resolver services | enhancements, but it is anticipated that operators of other resolver services | |||
| will follow. | will follow. | |||
| </t> | </t> | |||
| <t>Whilst protocols that encrypt DNS messages on the wire provide protection | <t>Whilst protocols that encrypt DNS messages on the wire provide protecti on | |||
| against certain attacks, the resolver operator still has (in principle) full | against certain attacks, the resolver operator still has (in principle) full | |||
| visibility of the query data and transport identifiers for each | visibility of the query data and transport identifiers for each | |||
| user. Therefore, | user. Therefore, | |||
| a trust relationship (whether explicit or implicit) is assumed to exist | a trust relationship (whether explicit or implicit) is assumed to exist | |||
| between | between | |||
| each user and the operator of the resolver(s) used by that user. The ability | each user and the operator of the resolver(s) used by that user. The ability | |||
| of | of | |||
| the operator to provide a transparent, well documented, and secure privacy | the operator to provide a transparent, well-documented, and secure privacy | |||
| service will likely serve as a major differentiating factor for privacy | service will likely serve as a major differentiating factor for | |||
| conscious users if they make an active selection of which resolver to use. | privacy-conscious users if they make an active selection of which resolver to | |||
| use. | ||||
| </t> | </t> | |||
| <t>It should also be noted that the choice of a user to configure a single | <t>It should also be noted that there are both advantages and | |||
| resolver | disadvantages to a user choosing to configure a single resolver | |||
| (or a fixed set of resolvers) and an encrypted transport to use in all network | (or a fixed set of resolvers) and an encrypted transport to use in all network | |||
| environments has both advantages and disadvantages. For example, the user has | environments. For example, the user has a | |||
| a | ||||
| clear expectation of which resolvers have visibility of their query data. | clear expectation of which resolvers have visibility of their query data. | |||
| However, this resolver/transport selection may provide an added mechanism to | However, this resolver/transport selection may provide an added mechanism for | |||
| track them as they move across network environments. Commitments from resolver | tracking them as they move across network environments. Commitments from | |||
| resolver | ||||
| operators to minimize such tracking as users move between networks are also | operators to minimize such tracking as users move between networks are also | |||
| likely to play a role in user selection of resolvers. | likely to play a role in user selection of resolvers. | |||
| </t> | </t> | |||
| <t>More recently the global legislative landscape with regard to personal data | <t>More recently, the global legislative landscape with regard to personal data | |||
| collection, retention, and pseudonymization has seen significant activity. | collection, retention, and pseudonymization has seen significant activity. | |||
| Providing detailed practice advice about these areas to the operator is out of | Providing detailed practice advice about these areas to the operator is out of | |||
| scope, but <xref target="data-sharing"/> describes some mitigations of data | scope, but <xref target="data-sharing" format="default"/> describes some mitigat | |||
| sharing risk. | ions of data-sharing risk. | |||
| </t> | </t> | |||
| <t>This document has two main goals: | <t>This document has two main goals: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li>To provide operational and policy guidance related to DNS over encry | |||
| <t>To provide operational and policy guidance related to DNS over encrypted | pted | |||
| transports and to outline recommendations for data handling for operators of | transports and to outline recommendations for data handling for operators of | |||
| DNS privacy services.</t> | DNS privacy services.</li> | |||
| <t>To introduce the Recursive operator Privacy Statement (RPS) and present a | <li>To introduce the Recursive operator Privacy Statement (RPS) and pres | |||
| ent a | ||||
| framework to assist writers of an RPS. An RPS is a | framework to assist writers of an RPS. An RPS is a | |||
| document that an operator should publish which outlines their operational | document that an operator should publish that outlines their operational | |||
| practices and commitments with regard to privacy, thereby providing a means | practices and commitments with regard to privacy, thereby providing a means | |||
| for clients to evaluate both the measurable and claimed privacy properties of | for clients to evaluate both the measurable and claimed privacy properties of | |||
| a given DNS privacy service. The framework identifies a set of elements and | a given DNS privacy service. The framework identifies a set of elements and | |||
| specifies an outline order for them. This document does not, however, define a | specifies an outline order for them. This document does not, however, define a | |||
| particular privacy statement, nor does it seek to provide legal advice as to | particular privacy statement, nor does it seek to provide legal advice as to | |||
| the contents.</t> | the contents of an RPS.</li> | |||
| </list> | </ul> | |||
| </t> | <t>A desired operational impact is that all operators (both those providin | |||
| <t>A desired operational impact is that all operators (both those providing | g | |||
| resolvers within networks and those operating large public services) can | resolvers within networks and those operating large public services) can | |||
| demonstrate their commitment to user privacy thereby driving all DNS | demonstrate their commitment to user privacy, thereby driving all DNS | |||
| resolution | resolution | |||
| services to a more equitable footing. Choices for users would (in this ideal | services to a more equitable footing. Choices for users would (in this ideal | |||
| world) be driven by other factors, e.g., differing security policies or minor | world) be driven by other factors -- e.g., differing security policies or minor | |||
| difference in operator policy, rather than gross disparities in privacy | differences in operator policy -- rather than gross disparities in privacy | |||
| concerns. | concerns. | |||
| </t> | </t> | |||
| <t>Community insight [or judgment?] about operational practices can change | ||||
| <t>Community insight (or judgment?) about operational practices can change | ||||
| quickly, and experience shows that a Best Current Practice (BCP) document | quickly, and experience shows that a Best Current Practice (BCP) document | |||
| about | about | |||
| privacy and security is a point-in-time statement. Readers are advised to seek | privacy and security is a point-in-time statement. Readers are advised to seek | |||
| out any updates that apply to this document. | out any updates that apply to this document. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="scope" numbered="true" toc="default"> | ||||
| <section anchor="scope" title="Scope"> | <name>Scope</name> | |||
| <t>"DNS Privacy Considerations" <xref target="RFC7626"/> describes | <t>"DNS Privacy Considerations" <xref target="RFC7626" format="default"/> | |||
| describes | ||||
| the general privacy issues | the general privacy issues | |||
| and threats associated with the use of the DNS by Internet users and much of | and threats associated with the use of the DNS by Internet users; much of | |||
| the | the threat analysis here is lifted from that document and <xref | |||
| threat analysis here is lifted from that document and from <xref | target="RFC6973" format="default"/>. However, | |||
| target="RFC6973"/>. However | this document is limited in scope to best-practice considerations for the | |||
| this document is limited in scope to best practice considerations for the | ||||
| provision of DNS privacy services by servers (recursive resolvers) to clients | provision of DNS privacy services by servers (recursive resolvers) to clients | |||
| (stub resolvers or forwarders). Choices that are made exclusively by | (stub resolvers or forwarders). Choices that are made exclusively by | |||
| the end user, or those for operators of authoritative nameservers are out | the end user, or those for operators of authoritative nameservers, are out | |||
| of scope. | of scope. | |||
| </t> | </t> | |||
| <t>This document includes (but is not limited to) considerations in the | <t>This document includes (but is not limited to) considerations in the | |||
| following | following | |||
| areas: | areas: | |||
| </t> | </t> | |||
| <t> | <ol spacing="normal" type="1"> | |||
| <list style="numbers"> | <li>Data "on the wire" between a client and a server.</li> | |||
| <t>Data "on the wire" between a client and a server.</t> | <li>Data "at rest" on a server (e.g., in logs).</li> | |||
| <t>Data "at rest" on a server (e.g., in logs).</t> | <li>Data "sent onwards" from the server (either on the wire or shared | |||
| <t>Data "sent onwards" from the server (either on the wire or shared | ||||
| with a | with a | |||
| third party).</t> | third party).</li> | |||
| </list> | </ol> | |||
| </t> | <t>Whilst the issues raised here are targeted at those operators who choos | |||
| <t>Whilst the issues raised here are targeted at those operators who choose to | e to | |||
| offer a DNS privacy service, considerations for areas 2 and 3 could equally | offer a DNS privacy service, considerations for areas 2 and 3 could equally | |||
| apply to operators who only offer DNS over unencrypted transports but who | apply to operators who only offer DNS over unencrypted transports but who | |||
| would | would | |||
| otherwise like to align with privacy best practice. | otherwise like to align with privacy best practice. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="privacyrelated-documents" numbered="true" toc="default"> | ||||
| <section anchor="privacyrelated-documents" title="Privacy-related documents"> | <name>Privacy-Related Documents</name> | |||
| <t>There are various documents that describe protocol changes that have the | <t>There are various documents that describe protocol changes that have th | |||
| e | ||||
| potential to either increase or decrease the privacy properties of the DNS in | potential to either increase or decrease the privacy properties of the DNS in | |||
| various ways. Note this does not imply that some documents are good or bad, | various ways. Note that this does not imply that some documents are good or bad, | |||
| better or worse, just that (for example) some features may bring functional | better or worse, just that (for example) some features may bring functional | |||
| benefits at the price of a reduction in privacy and conversely some features | benefits at the price of a reduction in privacy, and conversely some features | |||
| increase privacy with an accompanying increase in complexity. A selection of | increase privacy with an accompanying increase in complexity. A selection of | |||
| the | the | |||
| most relevant documents are listed in <xref target="documents"/> for | most relevant documents is listed in <xref target="documents" format="default"/> for | |||
| reference. | reference. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="terminology" numbered="true" toc="default"> | ||||
| <section anchor="terminology" title="Terminology"> | <name>Terminology</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 | |||
| "SHALL", "SHALL NOT", "SHOULD", | >REQUIRED</bcp14>", | |||
| "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
| "MAY", and "OPTIONAL" in this | "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMEND | |||
| document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> | ED</bcp14>", | |||
| <xref target="RFC8174"/> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this | |||
| document are to be interpreted as described in BCP 14 <xref target="RFC2119" for | ||||
| mat="default"/> | ||||
| <xref target="RFC8174" format="default"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | when, and only when, they appear in all capitals, as shown here. | |||
| </t> | </t> | |||
| <t>DNS terminology is as described in <xref target="RFC8499"/> with one | <t> | |||
| modification: we restate | DNS terminology is as described in <xref target="RFC8499"/>, except with | |||
| the clause in the original definition of Privacy-enabling DNS server in | regard to the definition of privacy-enabling DNS server in <xref | |||
| <xref target="RFC8310"/> to include the requirement that a DNS over (D)TLS | target="RFC8499" section="6" sectionFormat="of" />. In this document we use | |||
| server should also | the full definition of a DNS over (D)TLS privacy-enabling DNS server as given | |||
| offer at least one of the credentials described in Section 8 of <xref | in <xref target="RFC8310"/>, i.e., that such a server should also offer at | |||
| target="RFC8310"/> and | least one of the credentials described in <xref target="RFC8310" section="8" | |||
| implement the (D)TLS profile described in Section 9 of <xref | sectionFormat="of"/> and implement the (D)TLS profile described in <xref | |||
| target="RFC8310"/>. | target="RFC8310" section="9" sectionFormat="of"/>. | |||
| </t> | </t> | |||
| <t>Other Terms: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>RPS: Recursive operator Privacy Statement, see | ||||
| <xref target="recursive-operator-privacy-statement-rps"/>.</t> | ||||
| <t>DNS privacy service: The service that is offered via a privacy-enabling DNS | ||||
| server and is documented either in an informal statement of policy and | ||||
| practice with regard to users privacy or a formal RPS.</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="recommendations-for-dns-privacy-services" | <t>Other Terms: | |||
| title="Recommendations for DNS privacy services"> | </t> | |||
| <t>In the following sections we first outline the threats relevant to the | <dl> | |||
| <dt>RPS:</dt><dd>Recursive operator Privacy Statement; see | ||||
| <xref target="recursive-operator-privacy-statement-rps" | ||||
| format="default"/>.</dd> | ||||
| <dt>DNS privacy service:</dt><dd>The service that is offered via a | ||||
| privacy-enabling DNS | ||||
| server and is documented either in an informal statement of policy and | ||||
| practice with regard to users privacy or a formal RPS.</dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section anchor="recommendations-for-dns-privacy-services" numbered="true" t | ||||
| oc="default"> | ||||
| <name>Recommendations for DNS Privacy Services</name> | ||||
| <t>In the following sections, we first outline the threats relevant to the | ||||
| specific topic and then discuss the potential actions that can be taken to | specific topic and then discuss the potential actions that can be taken to | |||
| mitigate them. | mitigate them. | |||
| </t> | </t> | |||
| <t>We describe two classes of threats: | <t>We describe two classes of threats: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li> | |||
| <t>Threats described in <xref target="RFC6973"/> 'Privacy Considerations for | <t>Threats described in <xref target="RFC6973" format="default"/>, | |||
| Internet Protocols' | "Privacy Considerations for Internet Protocols" | |||
| <list style="symbols"> | ||||
| <t>Privacy terminology, threats to privacy, and mitigations as described in | ||||
| Sections 3, 5, and 6 of <xref target="RFC6973"/>.</t> | ||||
| </list></t> | ||||
| <t>DNS Privacy Threats | ||||
| <list style="symbols"> | ||||
| <t>These are threats to the users and operators of DNS privacy services that | ||||
| are not directly covered by <xref target="RFC6973"/>. These may be more | ||||
| operational in | ||||
| nature such as certificate management or service availability issues.</t> | ||||
| </list></t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>We describe three classes of actions that operators of DNS privacy | <ul spacing="normal"> | |||
| <li>Privacy terminology, threats to privacy, and mitigations as | ||||
| described in Sections <xref target="RFC6973" section="3" | ||||
| sectionFormat="bare"/>, <xref target="RFC6973" section="5" | ||||
| sectionFormat="bare"/>, and <xref target="RFC6973" section="6" | ||||
| sectionFormat="bare"/> of <xref target="RFC6973"/>.</li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>DNS Privacy Threats | ||||
| </t> | ||||
| <ul spacing="normal"> | ||||
| <li>These are threats to the users and operators of DNS privacy | ||||
| services that | ||||
| are not directly covered by <xref target="RFC6973" | ||||
| format="default"/>. These may be more | ||||
| operational in | ||||
| nature, such as certificate-management or service-availability issues | ||||
| .</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| <t>We describe three classes of actions that operators of DNS privacy | ||||
| services can take: | services can take: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li>Threat mitigation for well-understood and documented privacy threats | |||
| <t>Threat mitigation for well understood and documented privacy threats to the | to the | |||
| users of the service and in some cases to the operators of the service.</t> | users of the service and, in some cases, the operators of the service.</li> | |||
| <t>Optimization of privacy services from an operational or management | <li>Optimization of privacy services from an operational or management | |||
| perspective.</t> | perspective.</li> | |||
| <t>Additional options that could further enhance the privacy and usability of | <li>Additional options that could further enhance the privacy and usabil | |||
| ity of | ||||
| the | the | |||
| service.</t> | service.</li> | |||
| </list> | </ul> | |||
| </t> | <t>This document does not specify policy, only best practice. However, for | |||
| <t>This document does not specify policy - only best practice, however for DNS | DNS | |||
| Privacy services to be considered compliant with these best practice | privacy services to be considered compliant with these best-practice | |||
| guidelines | guidelines, | |||
| they SHOULD implement (where appropriate) all: | they <bcp14>SHOULD</bcp14> implement (where appropriate) all: | |||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Threat mitigations to be minimally compliant.</t> | ||||
| <t>Optimizations to be moderately compliant.</t> | ||||
| <t>Additional options to be maximally compliant.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>The rest of this document does not use normative language but instead | <ul spacing="normal"> | |||
| <li>Threat mitigations to be minimally compliant.</li> | ||||
| <li>Optimizations to be moderately compliant.</li> | ||||
| <li>Additional options to be maximally compliant.</li> | ||||
| </ul> | ||||
| <t>The rest of this document does not use normative language but instead | ||||
| refers | refers | |||
| only to the three differing classes of action which correspond to the three | only to the three differing classes of action that correspond to the three | |||
| named levels of compliance stated above. However, compliance (to the indicated | named levels of compliance stated above. However, compliance (to the indicated | |||
| level) remains a normative requirement. | level) remains a normative requirement. | |||
| </t> | </t> | |||
| <section anchor="on-the-wire-between-client-and-server" numbered="true" to | ||||
| c="default"> | ||||
| <name>On the Wire between Client and Server</name> | ||||
| <t>In this section, we consider both data on the wire and the service pr | ||||
| ovided | ||||
| to the client. | ||||
| </t> | ||||
| <section anchor="on-the-wire-between-client-and-server" title="On the wire | <section anchor="transport-recommendations" numbered="true" toc="default | |||
| between client and server"> | "> | |||
| <t>In this section we consider both data on the wire and the service provided | <name>Transport Recommendations</name> | |||
| to | ||||
| the client. | ||||
| </t> | ||||
| <section anchor="transport-recommendations" title="Transport recommendations"> | <dl newline="true"> | |||
| <t><xref target="RFC6973"/> Threats: | <dt>Threats described in <xref target="RFC6973" format="default"/>:</dt | |||
| </t> | > | |||
| <t> | <dd> | |||
| <list style="symbols"> | <dl newline="true"> | |||
| <t>Surveillance: | <dt>Surveillance:</dt> | |||
| <list style="symbols"> | <dd>Passive surveillance of traffic on the wire.</dd> | |||
| <t>Passive surveillance of traffic on the wire</t> | </dl> | |||
| </list></t> | </dd> | |||
| </list> | ||||
| </t> | <dt>DNS Privacy Threats:</dt> | |||
| <t>DNS Privacy Threats: | ||||
| </t> | <dd>Active injection of spurious data or traffic.</dd> | |||
| <t> | ||||
| <list style="symbols"> | <dt>Mitigations:</dt> | |||
| <t>Active injection of spurious data or traffic.</t> | ||||
| </list> | <dd><t>A DNS privacy service can mitigate these threats by providing | |||
| </t> | service over one | |||
| <t>Mitigations: | or more of the following transports:</t> | |||
| </t> | ||||
| <t>A DNS privacy service can mitigate these threats by providing service over | <ul spacing="normal"> | |||
| one | <li>DNS over TLS (DoT) <xref target="RFC7858" format="default"/> | |||
| or more of the following transports | <xref target="RFC8310" format="default"/>.</li> | |||
| </t> | <li>DNS over HTTPS (DoH) <xref target="RFC8484" format="default"/>.< | |||
| <t> | /li> | |||
| <list style="symbols"> | </ul> | |||
| <t>DNS over TLS (DoT) <xref target="RFC7858"/> and <xref | </dd> | |||
| target="RFC8310"/>.</t> | </dl> | |||
| <t>DNS over HTTPS (DoH) <xref target="RFC8484"/>.</t> | ||||
| </list> | <t>It is noted that a DNS privacy service can also be provided over DN | |||
| </t> | S over | |||
| <t>It is noted that a DNS privacy service can also be provided over DNS over | ||||
| DTLS | DTLS | |||
| <xref target="RFC8094"/>, however this is an Experimental specification and | <xref target="RFC8094" format="default"/>; however, this is an Experimental | |||
| specification, and | ||||
| there are no known | there are no known | |||
| implementations at the time of writing. | implementations at the time of writing. | |||
| </t> | </t> | |||
| <t>It is also noted that DNS privacy service might be provided over IPSec, | ||||
| DNSCrypt, or VPNs. However, there are no specific RFCs that cover the use of | ||||
| these transports for DNS and any discussion of best practice for providing | ||||
| such | ||||
| a service is out of scope for this document. | ||||
| </t> | ||||
| <t>Whilst encryption of DNS traffic can protect against active injection on | ||||
| the | ||||
| paths traversed by the encrypted connection this does not diminish the need | ||||
| for | ||||
| DNSSEC, see <xref target="dnssec"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="authentication-of-dns-privacy-services" title="Authentication | <t>It is also noted that DNS privacy service might be | |||
| of DNS privacy services"> | provided over DNSCrypt <xref target="DNSCrypt"/>, IPsec, or VPNs. Howe | |||
| <t><xref target="RFC6973"/> Threats: | ver, there are | |||
| </t> | no specific RFCs that cover the use of these transports for | |||
| <t> | DNS, and any discussion of best practice for providing such a | |||
| <list style="symbols"> | service is out of scope for this document. | |||
| <t>Surveillance: | ||||
| <list style="symbols"> | ||||
| <t>Active attacks on client resolver configuration</t> | ||||
| </list></t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Mitigations: | ||||
| </t> | ||||
| <t>DNS privacy services should ensure clients can authenticate the | ||||
| server. Note | ||||
| that this, in effect, commits the DNS privacy service to a public identity | ||||
| users | ||||
| will trust. | ||||
| </t> | ||||
| <t>When using DoT, clients that select a 'Strict Privacy' usage profile <xref | ||||
| target="RFC8310"/> | ||||
| (to mitigate the threat of active attack on the client) require the ability to | ||||
| authenticate the DNS server. To enable this, DNS privacy services that offer | ||||
| DNS over TLS need to provide credentials that will be accepted by the client's | ||||
| trust model, in the form of either X.509 certificates <xref target="RFC5280"/> | ||||
| or Subject | ||||
| Public Key Info (SPKI) pin sets <xref target="RFC8310"/>. | ||||
| </t> | ||||
| <t>When offering DoH <xref target="RFC8484"/>, HTTPS requires authentication | ||||
| of the server as | ||||
| part of the protocol. | ||||
| </t> | </t> | |||
| <t>Server operators should also follow the best practices with regard to | <t>Whilst encryption of DNS traffic can protect against active | |||
| certificate revocation as described in <xref target="RFC7525"/>. | injection on the paths traversed by the encrypted connection, this | |||
| does not diminish the need | ||||
| for DNSSEC; see <xref target="dnssec" format="default"/>. | ||||
| </t> | </t> | |||
| </section> | ||||
| <section anchor="authentication-of-dns-privacy-services" numbered="true" | ||||
| toc="default"> | ||||
| <name>Authentication of DNS Privacy Services</name> | ||||
| <section anchor="certificate-management" title="Certificate management"> | <dl newline="true"> | |||
| <t>Anecdotal evidence to date highlights the management of certificates as one | <dt>Threats described in <xref target="RFC6973" format="default"/>:</ | |||
| dt> | ||||
| <dd> | ||||
| <dl newline="true"> | ||||
| <dt>Surveillance:</dt> | ||||
| <dd>Active attacks on client resolver configuration.</dd> | ||||
| </dl> | ||||
| </dd> | ||||
| <dt>Mitigations:</dt> | ||||
| <dd> | ||||
| <t>DNS privacy services should ensure clients can authenticate the | ||||
| server. Note that this, in effect, commits the DNS privacy service | ||||
| to a public identity users will trust. | ||||
| </t> | ||||
| <t>When using DoT, clients that select a "Strict Privacy" usage | ||||
| profile <xref target="RFC8310" format="default"/> (to mitigate the | ||||
| threat of active attack on the client) require the ability to | ||||
| authenticate the DNS server. To enable this, DNS privacy services | ||||
| that offer DoT need to provide credentials that will be | ||||
| accepted by the client's trust model, in the form of either X.509 | ||||
| certificates <xref target="RFC5280" format="default"/> or Subject | ||||
| Public Key Info (SPKI) pin sets <xref target="RFC8310" | ||||
| format="default"/>. | ||||
| </t> | ||||
| <t>When offering DoH <xref target="RFC8484" format="default"/>, | ||||
| HTTPS requires authentication of the server as part of the protocol. | ||||
| </t> | ||||
| </dd> | ||||
| </dl> | ||||
| <section anchor="certificate-management" numbered="true" toc="default" | ||||
| > | ||||
| <name>Certificate Management</name> | ||||
| <t>Anecdotal evidence to date highlights the management of certifica | ||||
| tes as one | ||||
| of | of | |||
| the more challenging aspects for operators of traditional DNS resolvers that | the more challenging aspects for operators of traditional DNS resolvers that | |||
| choose to additionally provide a DNS privacy service as management of such | choose to additionally provide a DNS privacy service, as management of such | |||
| credentials is new to those DNS operators. | credentials is new to those DNS operators. | |||
| </t> | </t> | |||
| <t>It is noted that SPKI pin set management is described in <xref | <t>It is noted that SPKI pin set management is described in <xref ta | |||
| target="RFC7858"/> but that key | rget="RFC7858" format="default"/> but that key-pinning mechanisms in general hav | |||
| pinning mechanisms in general have fallen out of favor operationally for | e fallen out of favor operationally for | |||
| various reasons such as the logistical overhead of rolling keys. | various reasons, such as the logistical overhead of rolling keys. | |||
| </t> | </t> | |||
| <t>DNS Privacy Threats: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Invalid certificates, resulting in an unavailable service which might force | ||||
| a | ||||
| user to fallback to cleartext.</t> | ||||
| <t>Mis-identification of a server by a client e.g., typos in DoH URL templates | ||||
| <xref target="RFC8484"/> or authentication domain names <xref | ||||
| target="RFC8310"/> which accidentally direct | ||||
| clients to attacker controlled servers.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Mitigations: | ||||
| </t> | ||||
| <t>It is recommended that operators: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Follow the guidance in Section 6.5 of <xref target="RFC7525"/> with regards | ||||
| to certificate | ||||
| revocation.</t> | ||||
| <t>Automate the generation, publication, and renewal of certificates. For | ||||
| example, | ||||
| ACME <xref target="RFC8555"/> provides a mechanism to actively manage | ||||
| certificates through | ||||
| automation and has been implemented by a number of certificate | ||||
| authorities.</t> | ||||
| <t>Monitor certificates to prevent accidental expiration of certificates.</t> | ||||
| <t>Choose a short, memorable authentication domain name for the service.</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="protocol-recommendations" title="Protocol recommendations"> | <dl newline="true"> | |||
| <dt>DNS Privacy Threats:</dt> | ||||
| <section anchor="dot" title="DoT"> | <dd> | |||
| <t>DNS Privacy Threats: | <ul spacing="normal"> | |||
| </t> | <li>Invalid certificates, resulting in an unavailable service, whi | |||
| <t> | ch might force a | |||
| <list style="symbols"> | user to fall back to cleartext.</li> | |||
| <t>Known attacks on TLS such as those described in <xref | <li>Misidentification of a server by a client -- e.g., typos in Do | |||
| target="RFC7457"/>.</t> | H URL templates | |||
| <t>Traffic analysis, for example: <xref | <xref target="RFC8484" format="default"/> or authentication domain | |||
| target="Pitfalls-of-DNS-Encryption"/>.</t> | names <xref target="RFC8310" format="default"/> that accidentally direct | |||
| <t>Potential for client tracking via transport identifiers.</t> | clients to attacker-controlled servers.</li> | |||
| <t>Blocking of well known ports (e.g., 853 for DoT).</t> | </ul> | |||
| </list> | </dd> | |||
| </t> | ||||
| <t>Mitigations: | <dt>Mitigations:</dt> | |||
| <dd> | ||||
| <t>It is recommended that operators: | ||||
| </t> | </t> | |||
| <t>In the case of DoT, TLS profiles from Section 9 of <xref target="RFC8310"/> | <ul spacing="normal"> | |||
| and the | <li>Follow the guidance in <xref target="RFC7525" section="6.5" | |||
| Countermeasures to DNS Traffic Analysis from section 11.1 of <xref | sectionFormat="of"/> with regard to certificate revocation.</li> | |||
| target="RFC8310"/> | <li>Automate the generation, publication, and renewal of certifica | |||
| provide strong mitigations. This includes but is not limited to: | tes. For | |||
| example, Automatic Certificate Management Environment (ACME) | ||||
| <xref target="RFC8555" format="default"/> provides a | ||||
| mechanism to actively manage certificates through | ||||
| automation and has been implemented by a number of certificate | ||||
| authorities.</li> | ||||
| <li>Monitor certificates to prevent accidental expiration of certi | ||||
| ficates.</li> | ||||
| <li>Choose a short, memorable authentication domain name for the s | ||||
| ervice.</li> | ||||
| </ul> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="protocol-recommendations" numbered="true" toc="default" | ||||
| > | ||||
| <name>Protocol Recommendations</name> | ||||
| <section anchor="dot" numbered="true" toc="default"> | ||||
| <name>DoT</name> | ||||
| <dl newline="true"> | ||||
| <dt>DNS Privacy Threats:</dt> | ||||
| <dd> | ||||
| <ul spacing="normal"> | ||||
| <li>Known attacks on TLS, such as those described in <xref | ||||
| target="RFC7457" format="default"/>.</li> | ||||
| <li>Traffic analysis, for example: <xref | ||||
| target="Pitfalls-of-DNS-Encryption" format="default"/> (focused | ||||
| on DoT).</li> | ||||
| <li>Potential for client tracking via transport identifiers.</li> | ||||
| <li>Blocking of well-known ports (e.g., 853 for DoT).</li> | ||||
| </ul> | ||||
| </dd> | ||||
| <dt>Mitigations:</dt> | ||||
| <dd> <t>In the case of DoT, TLS profiles from <xref | ||||
| target="RFC8310" section="9" sectionFormat="of"/> and the | ||||
| "Countermeasures to DNS Traffic Analysis" from <xref | ||||
| target="RFC8310" section="11.1" sectionFormat="of"/> | ||||
| provide strong mitigations. This includes but is not | ||||
| limited to: | ||||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li>Adhering to <xref target="RFC7525" format="default"/>.</li> | |||
| <t>Adhering to <xref target="RFC7525"/>.</t> | <li>Implementing only (D)TLS 1.2 or later, as specified in <xref t | |||
| <t>Implementing only (D)TLS 1.2 or later as specified in <xref | arget="RFC8310" format="default"/>.</li> | |||
| target="RFC8310"/>.</t> | <li>Implementing Extension Mechanisms for DNS (EDNS(0)) Padding | |||
| <t>Implementing EDNS(0) Padding <xref target="RFC7830"/> using the guidelines | <xref target="RFC7830" format="default"/> using the guidelines | |||
| in | in | |||
| <xref target="RFC8467"/> or a successor specification.</t> | <xref target="RFC8467" format="default"/> or a successor specification.</li> | |||
| <t>Servers should not degrade in any way the query service level provided to | ||||
| clients that do not use any form of session resumption mechanism, such as TLS | ||||
| session resumption <xref target="RFC5077"/> with TLS 1.2, section 2.2 of <xref | ||||
| target="RFC8446"/>, or Domain | ||||
| Name System (DNS) Cookies <xref target="RFC7873"/>.</t> | ||||
| <t>A DoT privacy service on both port 853 and 443. If the operator deploys DoH | ||||
| on the same IP address this requires the use of the 'dot' ALPN value <xref | ||||
| target="dot-ALPN"/>.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Optimizations: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Concurrent processing of pipelined queries, returning responses as soon as | ||||
| available, potentially out of order as specified in <xref | ||||
| target="RFC7766"/>. This is often | ||||
| called 'OOOR' - out-of-order responses (providing processing performance | ||||
| similar to HTTP multiplexing).</t> | ||||
| <t>Management of TLS connections to optimize performance for clients using | ||||
| <xref target="RFC7766"/> and EDNS(0) Keepalive <xref target="RFC7828"/></t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Additional Options: | ||||
| </t> | ||||
| <t>Management of TLS connections to optimize performance for clients using DNS | ||||
| Stateful Operations <xref target="RFC8490"/>. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="doh" title="DoH"> | <li>Servers should not degrade in any way the query service | |||
| <t>DNS Privacy Threats: | level provided to | |||
| </t> | clients that do not use any form of session resumption | |||
| <t> | mechanism, such as TLS | |||
| <list style="symbols"> | session resumption <xref target="RFC5077" format="default"/> with T | |||
| <t>Known attacks on TLS such as those described in <xref | LS 1.2 | |||
| target="RFC7457"/>.</t> | (<xref target="RFC8446" section="2.2" sectionFormat="of"/>) or Doma | |||
| <t>Traffic analysis, for example: <xref | in | |||
| target="DNS-Privacy-not-so-private"/>.</t> | Name System (DNS) Cookies <xref target="RFC7873" format="default"/> | |||
| <t>Potential for client tracking via transport identifiers.</t> | .</li> | |||
| </list> | ||||
| </t> | ||||
| <t>Mitigations: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Clients must be able to forgo the use of HTTP Cookies <xref | ||||
| target="RFC6265"/> and still | ||||
| use the service.</t> | ||||
| <t>Use of HTTP/2 padding and/or EDNS(0) padding as described in Section 9 of | ||||
| <xref target="RFC8484"/></t> | ||||
| <t>Clients should not be required to include any headers beyond the absolute | ||||
| minimum to obtain service from a DoH server. (See Section 6.1 of | ||||
| <xref target="I-D.ietf-httpbis-bcp56bis"/>.)</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="dnssec" title="DNSSEC"> | <li>A DoT privacy service on both port 853 and 443. If the | |||
| <t>DNS Privacy Threats: | operator deploys DoH | |||
| </t> | on the same IP address, this requires the use of the "dot" | |||
| <t> | Application-Layer Protocol Negotiation (ALPN) value <xref | |||
| <list style="symbols"> | target="dot-ALPN" format="default"/>.</li> | |||
| <t>Users may be directed to bogus IP addresses which, depending on the | </ul> | |||
| application, protocol and authentication method, might lead users to reveal | </dd> | |||
| personal information to attackers. One example is a website that doesn't use | ||||
| TLS or its TLS authentication can somehow be subverted.</t> | <dt>Optimizations:</dt> | |||
| </list> | <dd> | |||
| </t> | <ul spacing="normal"> | |||
| <t>Mitigations: | <li>Concurrent processing of pipelined queries, returning | |||
| </t> | responses as soon as | |||
| <t> | available, potentially out of order, as specified in <xref target=" | |||
| <list style="symbols"> | RFC7766" | |||
| <t>All DNS privacy services must offer a DNS privacy service that performs | format="default"/>. This is often | |||
| Domain | called "OOOR" -- out-of-order responses (providing processing perfo | |||
| Name System Security Extensions (DNSSEC) validation. In addition they must be | rmance | |||
| able to provide the DNSSEC RRs to the client so that it can perform its own | similar to HTTP multiplexing).</li> | |||
| validation.</t> | <li>Management of TLS connections to optimize performance for clie | |||
| </list> | nts using | |||
| </t> | <xref target="RFC7766" format="default"/> and EDNS(0) Keepalive | |||
| <t>The addition of encryption to DNS does not remove the need for DNSSEC | <xref target="RFC7828" format="default"/></li> | |||
| <xref target="RFC4033"/> - they are independent and fully compatible | </ul> | |||
| </dd> | ||||
| <dt>Additional Options:</dt> | ||||
| <dd>Management of TLS connections to optimize performance for client | ||||
| s using DNS | ||||
| Stateful Operations <xref target="RFC8490" format="default"/>. | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section anchor="doh" numbered="true" toc="default"> | ||||
| <name>DoH</name> | ||||
| <dl newline="true"> | ||||
| <dt>DNS Privacy Threats:</dt> | ||||
| <dd> | ||||
| <ul spacing="normal"> | ||||
| <li>Known attacks on TLS, such as those described in <xref target= | ||||
| "RFC7457" format="default"/>.</li> | ||||
| <li>Traffic analysis, for example: <xref | ||||
| target="DNS-Privacy-not-so-private" format="default"/> (focused | ||||
| on DoH).</li> | ||||
| <li>Potential for client tracking via transport identifiers.</li> | ||||
| </ul> | ||||
| </dd> | ||||
| <dt>Mitigations:</dt> | ||||
| <dd> | ||||
| <ul spacing="normal"> | ||||
| <li>Clients must be able to forgo the use of HTTP cookies <xref | ||||
| target="RFC6265" format="default"/> and still | ||||
| use the service.</li> | ||||
| <li>Use of HTTP/2 padding and/or EDNS(0) padding, as described in | ||||
| <xref target="RFC8484" section="9" sectionFormat="of"/>.</li> | ||||
| <li>Clients should not be required to include any headers beyond t | ||||
| he absolute | ||||
| minimum to obtain service from a DoH server. (See | ||||
| <xref target="I-D.ietf-httpbis-bcp56bis" section="6.1" sectionFormat="of"/>.)</l | ||||
| i> | ||||
| </ul> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="dnssec" numbered="true" toc="default"> | ||||
| <name>DNSSEC</name> | ||||
| <dl newline="true"> | ||||
| <dt>DNS Privacy Threats:</dt> | ||||
| <dd>Users may be directed to bogus IP addresses that, depending on t | ||||
| he | ||||
| application, protocol, and authentication method, might lead users to | ||||
| reveal | ||||
| personal information to attackers. One example is a website that does | ||||
| n't use | ||||
| TLS or whose TLS authentication can somehow be subverted.</dd> | ||||
| <dt>Mitigations:</dt> | ||||
| <dd>All DNS privacy services must offer a DNS privacy service that per | ||||
| forms | ||||
| Domain Name System Security Extensions (DNSSEC) validation. In | ||||
| addition, they must be | ||||
| able to provide the DNSSEC Resource Records (RRs) to the client so that | ||||
| it can perform its own | ||||
| validation.</dd> | ||||
| </dl> | ||||
| <t>The addition of encryption to DNS does not remove the need for DNSS | ||||
| EC | ||||
| <xref target="RFC4033" format="default"/>; they are independent and fully compat | ||||
| ible | ||||
| protocols, | protocols, | |||
| each solving different problems. The use of one does not diminish the need nor | each solving different problems. The use of one does not diminish the need nor | |||
| the usefulness of the other. | the usefulness of the other. | |||
| </t> | </t> | |||
| <t>While the use of an authenticated and encrypted transport protects origin | <t>While the use of an authenticated and encrypted transport protects | |||
| authentication and data integrity between a client and a DNS privacy service | origin | |||
| it | authentication and data integrity between a client and a DNS privacy se | |||
| provides no proof (for a non-validating client) that the data provided by the | rvice, | |||
| DNS privacy service was actually DNSSEC authenticated. As with cleartext DNS | it provides no proof (for a nonvalidating client) that the data provide | |||
| the | d by the | |||
| user is still solely trusting the AD bit (if present) set by the resolver. | DNS privacy service was actually DNSSEC authenticated. As with cleartex | |||
| t DNS, | ||||
| the user is still solely trusting the Authentic Data (AD) bit (if | ||||
| present) set by the resolver. | ||||
| </t> | </t> | |||
| <t>It should also be noted that the use of an encrypted transport for DNS | <t>It should also be noted that the use of an encrypted transport for | |||
| actually | DNS | |||
| solves many of the practical issues encountered by DNS validating clients e.g. | actually solves many of the practical issues encountered by DNS validat | |||
| interference by middleboxes with cleartext DNS payloads is completely avoided. | ing clients -- e.g., | |||
| In this sense a validating client that uses a DNS privacy service which | interference by middleboxes with cleartext DNS payloads is completely a | |||
| supports | voided. | |||
| DNSSEC has a far simpler task in terms of DNSSEC Roadblock avoidance <xref | In this sense, a validating client that uses a DNS privacy service that | |||
| target="RFC8027"/>. | supports DNSSEC has a far simpler task in terms of DNSSEC roadblock avo | |||
| idance | ||||
| <xref target="RFC8027" format="default"/>. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="availability" numbered="true" toc="default"> | ||||
| <name>Availability</name> | ||||
| <dl newline="true"> | ||||
| <dt>DNS Privacy Threats:</dt> | ||||
| <section anchor="availability" title="Availability"> | <dd> | |||
| <t>DNS Privacy Threats: | A failing DNS privacy service could force the user to switch | |||
| </t> | providers, fall back to cleartext, or accept no DNS service for | |||
| <t> | the duration of the outage. | |||
| <list style="symbols"> | </dd> | |||
| <t>A failed DNS privacy service could force the user to switch providers, | ||||
| fallback to cleartext or accept no DNS service for the outage.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Mitigations: | ||||
| </t> | ||||
| <t>A DNS privacy service should strive to engineer encrypted services to the | ||||
| same | ||||
| availability level as any unencrypted services they provide. Particular care | ||||
| should to be taken to protect DNS privacy services against denial-of-service | ||||
| attacks, as experience has shown that unavailability of DNS resolving because | ||||
| of | ||||
| attacks is a significant motivation for users to switch services. See, for | ||||
| example Section IV-C of <xref target="Passive-Observations-of-a-Large-DNS"/>. | ||||
| </t> | ||||
| <t>Techniques such as those described in Section 10 of <xref | ||||
| target="RFC7766"/> can be of use to operators to defend against such attacks. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="service-options" title="Service options"> | <dt>Mitigations:</dt> | |||
| <t>DNS Privacy Threats: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Unfairly disadvantaging users of the privacy service with respect to the | ||||
| services available. This could force the user to switch providers, fallback to | ||||
| cleartext or accept no DNS service for the outage.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Mitigations: | ||||
| </t> | ||||
| <t>A DNS privacy service should deliver the same level of service as offered | ||||
| on | ||||
| un-encrypted channels in terms of options such as filtering (or lack thereof), | ||||
| DNSSEC validation, etc. | ||||
| </t> | ||||
| </section> | ||||
| <section | <dd><t>A DNS privacy service should strive to engineer encrypted servi | |||
| anchor="impact-of-encryption-on-monitoring-by-dns-privacy-service-operators" | ces to the | |||
| title="Impact of Encryption on Monitoring by DNS Privacy Service | same | |||
| Operators"> | availability level as any unencrypted services they provide. Particular | |||
| <t>DNS Privacy Threats: | care | |||
| </t> | should to be taken to protect DNS privacy services against denial-of-se | |||
| <t> | rvice | |||
| <list style="symbols"> | (DoS) attacks, as experience has shown that unavailability of DNS resol | |||
| <t>Increased use of encryption can impact DNS privacy service operator ability | ving because | |||
| to | of attacks is a significant motivation for users to switch services. Se | |||
| monitor traffic and therefore manage their DNS servers <xref | e, for | |||
| target="RFC8404"/>.</t> | example, Section IV-C of <xref | |||
| </list> | target="Passive-Observations-of-a-Large-DNS" format="default"/>.</t> | |||
| </t> | ||||
| <t>Many monitoring solutions for DNS traffic rely on the plain text nature of | <t>Techniques such as those described in <xref target="RFC7766" sectio | |||
| this | n="10" sectionFormat="of"/> can be of use to operators to defend against such at | |||
| traffic and work by intercepting traffic on the wire, either using a separate | tacks. | |||
| view on the connection between clients and the resolver, or as a separate | </t> | |||
| process on the resolver system that inspects network traffic. Such solutions | </dd> | |||
| will no longer function when traffic between clients and resolvers is | </dl> | |||
| encrypted. | </section> | |||
| Many DNS privacy service operators still have need to inspect DNS traffic, | <section anchor="service-options" numbered="true" toc="default"> | |||
| e.g., | <name>Service Options</name> | |||
| to monitor for network security threats. Operators may therefore need to | <dl newline="true"> | |||
| invest | ||||
| in alternative means of monitoring that relies on either the resolver software | <dt>DNS Privacy Threats:</dt> | |||
| directly, or exporting DNS traffic from the resolver using e.g., <xref | ||||
| target="dnstap"/>. | <dd>Unfairly disadvantaging users of the privacy service with respect | |||
| </t> | to the | |||
| <t>Optimization: | services available. This could force the user to switch providers, | |||
| </t> | fall back to | |||
| <t>When implementing alternative means for traffic monitoring, operators of a | cleartext, or accept no DNS service for the duration of the outage.</dd | |||
| > | ||||
| <dt>Mitigations:</dt> | ||||
| <dd>A DNS privacy service should deliver the same level of service as | ||||
| offered | ||||
| on unencrypted channels in terms of options such as filtering (or lack | ||||
| thereof), | ||||
| DNSSEC validation, etc. | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section anchor="impact-of-encryption-on-monitoring-by-dns-privacy-servi | ||||
| ce-operators" numbered="true" toc="default"> | ||||
| <name>Impact of Encryption on Monitoring by DNS Privacy Service Operat | ||||
| ors</name> | ||||
| <dl newline="true"> | ||||
| <dt>DNS Privacy Threats:</dt> | ||||
| <dd>Increased use of encryption can impact a DNS privacy service opera | ||||
| tor's ability | ||||
| to monitor traffic and therefore manage their DNS servers <xref | ||||
| target="RFC8404" format="default"/>.</dd> | ||||
| </dl> | ||||
| <t>Many monitoring solutions for DNS traffic rely on the plaintext nat | ||||
| ure of | ||||
| this | ||||
| traffic and work by intercepting traffic on the wire, either using a se | ||||
| parate | ||||
| view on the connection between clients and the resolver, or as a separa | ||||
| te | ||||
| process on the resolver system that inspects network traffic. Such solu | ||||
| tions | ||||
| will no longer function when traffic between clients and resolvers is | ||||
| encrypted. | ||||
| Many DNS privacy service operators still need to inspect DNS traffic -- | ||||
| e.g., to monitor for network security threats. Operators may therefore | ||||
| need to | ||||
| invest in an alternative means of monitoring that relies on either the | ||||
| resolver software | ||||
| directly, or exporting DNS traffic from the resolver using, for | ||||
| example, <xref target="dnstap" format="default"/>. | ||||
| </t> | ||||
| <dl newline="true"> | ||||
| <dt>Optimization:</dt> | ||||
| <dd>When implementing alternative means for traffic monitoring, operat | ||||
| ors of a | ||||
| DNS | DNS | |||
| privacy service should consider using privacy conscious means to do so (see | privacy service should consider using privacy-conscious means to do so. See | |||
| section <xref target="data-at-rest-on-the-server"/> for more details on data | <xref target="data-at-rest-on-the-server" format="default"/> for more details on | |||
| handling and also | data | |||
| the discussion on the use of Bloom Filters in <xref | handling and the discussion on the use of Bloom Filters in <xref | |||
| target="ip-address-techniques"/>. | target="ip-address-techniques" format="default"/>. | |||
| </t> | </dd> | |||
| </section> | </dl> | |||
| </section> | ||||
| <section anchor="limitations-of-fronting-a-dns-privacy-service-with-a-pu | ||||
| re-tls-proxy" numbered="true" toc="default"> | ||||
| <name>Limitations of Fronting a DNS Privacy Service with a Pure TLS Pr | ||||
| oxy</name> | ||||
| <dl newline="true"> | ||||
| <section | <dt>DNS Privacy Threats:</dt> | |||
| anchor="limitations-of-fronting-a-dns-privacy-service-with-a-pure-tls-proxy" | <dd> | |||
| title="Limitations of fronting a DNS privacy service with a pure TLS | <ul spacing="normal"> | |||
| proxy"> | <li>Limited ability to manage or monitor incoming connections using | |||
| <t>DNS Privacy Threats: | DNS-specific | |||
| </t> | techniques.</li> | |||
| <t> | <li>Misconfiguration (e.g., of the target-server address in the | |||
| <list style="symbols"> | proxy configuration) could lead to data leakage if the | |||
| <t>Limited ability to manage or monitor incoming connections using DNS | proxy-to-target-server path | |||
| specific | is not encrypted.</li> | |||
| techniques.</t> | </ul> | |||
| <t>Misconfiguration (e.g., of the target server address in the proxy | </dd> | |||
| configuration) could lead to data leakage if the proxy to target server path | <dt>Optimization:</dt> | |||
| is not encrypted.</t> | ||||
| </list> | <dd><t>Some operators may choose to implement DoT using a TLS proxy (e | |||
| </t> | .g., | |||
| <t>Optimization: | <xref target="nginx" format="default"/>, <xref target="haproxy" format="default" | |||
| </t> | />, or | |||
| <t>Some operators may choose to implement DoT using a TLS proxy (e.g. | <xref target="stunnel" format="default"/>) in front of | |||
| <xref target="nginx"/>, <xref target="haproxy"/>, or | ||||
| <xref target="stunnel"/>) in front of | ||||
| a DNS nameserver because of proven robustness and capacity when handling large | a DNS nameserver because of proven robustness and capacity when handling large | |||
| numbers of client connections, load balancing capabilities and good tooling. | numbers of client connections, load-balancing capabilities, and good tooling. | |||
| Currently, however, because such proxies typically have no specific handling | Currently, however, because such proxies typically have no specific handling | |||
| of | of DNS as a protocol over TLS or DTLS, using them can restrict traffic managemen | |||
| DNS as a protocol over TLS or DTLS using them can restrict traffic management | t | |||
| at | at the proxy layer and the DNS server. For example, all traffic received by a | |||
| the proxy layer and at the DNS server. For example, all traffic received by a | nameserver behind such a proxy will appear to originate from the proxy, and DNS | |||
| nameserver behind such a proxy will appear to originate from the proxy and DNS | techniques such as Access Control Lists (ACLs), Response Rate Limiting (RRL), | |||
| techniques such as ACLs, RRL, or DNS64 will be hard or impossible to implement | or DNS64 <xref target="RFC6147"/> will be hard or impossible to implement | |||
| in | in | |||
| the nameserver. | the nameserver. | |||
| </t> | </t> | |||
| <t>Operators may choose to use a DNS aware proxy such as | <t>Operators may choose to use a DNS-aware proxy, such as | |||
| <xref target="dnsdist"/> which offers custom options (similar to that | <xref target="dnsdist" format="default"/>, that offers custom options (similar t | |||
| proposed in <xref target="I-D.bellis-dnsop-xpf"/>) to add source information | o those | |||
| proposed in <xref target="I-D.bellis-dnsop-xpf" format="default"/>) to add sourc | ||||
| e information | ||||
| to packets | to packets | |||
| to address this shortcoming. It should be noted that such options potentially | to address this shortcoming. It should be noted that such options potentially | |||
| significantly increase the leaked information in the event of a | significantly increase the leaked information in the event of a | |||
| misconfiguration. | misconfiguration. | |||
| </t> | </t> | |||
| </section> | </dd> | |||
| </section> | </dl> | |||
| </section> | ||||
| </section> | ||||
| <section anchor="data-at-rest-on-the-server" numbered="true" toc="default" | ||||
| > | ||||
| <name>Data at Rest on the Server</name> | ||||
| <section anchor="data-handling" numbered="true" toc="default"> | ||||
| <name>Data Handling</name> | ||||
| <dl newline="true"> | ||||
| <dt>Threats described in <xref target="RFC6973" format="default"/>:</d | ||||
| t> | ||||
| <dd> | ||||
| <ul spacing="normal"> | ||||
| <li>Surveillance.</li> | ||||
| <li>Stored-data compromise.</li> | ||||
| <li>Correlation.</li> | ||||
| <li>Identification.</li> | ||||
| <li>Secondary use.</li> | ||||
| <li>Disclosure.</li> | ||||
| </ul> | ||||
| </dd> | ||||
| <section anchor="data-at-rest-on-the-server" title="Data at rest on the | <dt>Other Threats</dt> | |||
| server"> | <dd> | |||
| <ul spacing="normal"> | ||||
| <li>Contravention of legal requirements not to process user data.</l | ||||
| i> | ||||
| </ul> | ||||
| </dd> | ||||
| <dt>Mitigations:</dt> | ||||
| <section anchor="data-handling" title="Data handling"> | <dd><t>The following are recommendations relating to common activities | |||
| <t><xref target="RFC6973"/> Threats: | for DNS | |||
| </t> | service operators; in all cases, data retention should be minimized or | |||
| <t> | completely | |||
| <list style="symbols"> | avoided if possible for DNS privacy services. If data is retained, it s | |||
| <t>Surveillance.</t> | hould be | |||
| <t>Stored data compromise.</t> | encrypted and either aggregated, pseudonymized, or anonymized whenever | |||
| <t>Correlation.</t> | possible. | |||
| <t>Identification.</t> | In general, the principle of data minimization described in <xref | |||
| <t>Secondary use.</t> | target="RFC6973" format="default"/> should be applied.</t> | |||
| <t>Disclosure.</t> | ||||
| </list> | <ul spacing="normal"> | |||
| </t> | <li>Transient data (e.g., data used for real-time monitoring and thr | |||
| <t>Other Threats | eat | |||
| </t> | analysis, which might be held only in memory) should be retained for | |||
| <t> | the shortest | |||
| <list style="symbols"> | possible period deemed operationally feasible.</li> | |||
| <t>Contravention of legal requirements not to process user data.</t> | <li>The retention period of DNS traffic logs should be only as | |||
| </list> | long as is required to sustain operation of the service and meet | |||
| </t> | regulatory requirements, to the extent that they exist.</li> | |||
| <t>Mitigations: | <li>DNS privacy services should not track users except for the parti | |||
| </t> | cular | |||
| <t>The following are recommendations relating to common activities for DNS | ||||
| service | ||||
| operators and in all cases data retention should be minimized or completely | ||||
| avoided if possible for DNS privacy services. If data is retained it should be | ||||
| encrypted and either aggregated, pseudonymized, or anonymized whenever | ||||
| possible. | ||||
| In general the principle of data minimization described in <xref | ||||
| target="RFC6973"/> should be | ||||
| applied. | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Transient data (e.g., that is used for real time monitoring and threat | ||||
| analysis | ||||
| which might be held only in memory) should be retained for the shortest | ||||
| possible period deemed operationally feasible.</t> | ||||
| <t>The retention period of DNS traffic logs should be only those required to | ||||
| sustain operation of the service and, to the extent that such exists, meet | ||||
| regulatory requirements.</t> | ||||
| <t>DNS privacy services should not track users except for the particular | ||||
| purpose | purpose | |||
| of detecting and remedying technically malicious (e.g., DoS) or anomalous use | of detecting and remedying technically malicious (e.g., DoS) or anomalous use | |||
| of the service.</t> | of the service.</li> | |||
| <t>Data access should be minimized to only those personnel who require access | <li>Data access should be minimized to only those personnel who requ | |||
| ire access | ||||
| to | to | |||
| perform operational duties. It should also be limited to anonymized or | perform operational duties. It should also be limited to anonymized or | |||
| pseudonymized data where operationally feasible, with access to full logs (if | pseudonymized data where operationally feasible, with access to full logs (if | |||
| any are held) only permitted when necessary.</t> | any are held) only permitted when necessary.</li> | |||
| </list> | </ul> | |||
| </t> | </dd> | |||
| <t>Optimizations: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Consider use of full disk encryption for logs and data capture storage.</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="data-minimization-of-network-traffic" title="Data | <dt>Optimizations:</dt> | |||
| minimization of network traffic"> | <dd> | |||
| <t>Data minimization refers to collecting, using, disclosing, and storing the | <ul spacing="normal"> | |||
| <li>Consider use of full-disk encryption for logs and data-capture s | ||||
| torage.</li> | ||||
| </ul> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section anchor="data-minimization-of-network-traffic" numbered="true" t | ||||
| oc="default"> | ||||
| <name>Data Minimization of Network Traffic</name> | ||||
| <t>Data minimization refers to collecting, using, disclosing, and stor | ||||
| ing the | ||||
| minimal data necessary to perform a task, and this can be achieved by | minimal data necessary to perform a task, and this can be achieved by | |||
| removing or obfuscating privacy-sensitive information in network traffic logs. | removing or obfuscating privacy-sensitive information in network traffic logs. | |||
| This is typically personal data, or data that can be used to link a record to | This is typically personal data or data that can be used to link a record to | |||
| an | an individual, but it may also include other confidential information -- for | |||
| individual, but may also include revealing other confidential information, for | example, on the structure of an internal corporate network. | |||
| example on the structure of an internal corporate network. | ||||
| </t> | </t> | |||
| <t>The problem of effectively ensuring that DNS traffic logs contain no or | <t>The problem of effectively ensuring that DNS traffic logs contain n o or | |||
| minimal | minimal | |||
| privacy-sensitive information is not one that currently has a generally agreed | privacy-sensitive information is not one that currently has a generally agreed | |||
| solution or any standards to inform this discussion. This section presents an | solution or any standards to inform this discussion. This section presents an | |||
| overview of current techniques to simply provide reference on the current | overview of current techniques to simply provide reference on the current | |||
| status of this work. | status of this work. | |||
| </t> | </t> | |||
| <t>Research into data minimization techniques (and particularly IP address | <t>Research into data minimization techniques (and particularly IP add | |||
| pseudonymization/anonymization) was sparked in the late 1990s/early 2000s, | ress | |||
| pseudonymization/anonymization) was sparked in the late 1990s / early 2000s, | ||||
| partly driven by the desire to share significant corpuses of traffic captures | partly driven by the desire to share significant corpuses of traffic captures | |||
| for research purposes. Several techniques reflecting different requirements in | for research purposes. Several techniques reflecting different requirements in | |||
| this area and different performance/resource tradeoffs emerged over the course | this area and different performance/resource trade-offs emerged over the course | |||
| of the decade. Developments over the last decade have been both a blessing and | of the decade. Developments over the last decade have been both a blessing and | |||
| a | a | |||
| curse; the large increase in size between an IPv4 and an IPv6 address, for | curse; the large increase in size between an IPv4 and an IPv6 address, for | |||
| example, renders some techniques impractical, but also makes available a much | example, renders some techniques impractical, but also makes available a much | |||
| larger amount of input entropy, the better to resist brute force | larger amount of input entropy, the better to resist brute-force | |||
| re-identification attacks that have grown in practicality over the period. | re-identification attacks that have grown in practicality over the period. | |||
| </t> | </t> | |||
| <t>Techniques employed may be broadly categorized as either anonymization or | <t>Techniques employed may be broadly categorized as either anonymizat ion or | |||
| pseudonymization. The following discussion uses the definitions from <xref | pseudonymization. The following discussion uses the definitions from <xref | |||
| target="RFC6973"/> | target="RFC6973" section="3" sectionFormat="comma"/>, with additional | |||
| Section 3, with additional observations from <xref | observations from <xref target="van-Dijkhuizen-et-al" format="default"/>. | |||
| target="van-Dijkhuizen-et-al."/> | </t> | |||
| </t> | <ul spacing="normal"> | |||
| <t> | <li>Anonymization. To enable anonymity of an individual, there must | |||
| <list style="symbols"> | exist a set | |||
| <t>Anonymization. To enable anonymity of an individual, there must exist a set | ||||
| of | of | |||
| individuals that appear to have the same attribute(s) as the individual. To | individuals that appear to have the same attribute(s) as the individual. To | |||
| the attacker or the observer, these individuals must appear indistinguishable | the attacker or the observer, these individuals must appear indistinguishable | |||
| from each other.</t> | from each other.</li> | |||
| <t>Pseudonymization. The true identity is deterministically replaced with an | <li>Pseudonymization. The true identity is deterministically replace | |||
| d with an | ||||
| alternate identity (a pseudonym). When the pseudonymization schema is known, | alternate identity (a pseudonym). When the pseudonymization schema is known, | |||
| the process can be reversed, so the original identity becomes known again.</t> | the process can be reversed, so the original identity becomes known again.</li> | |||
| </list> | </ul> | |||
| </t> | <t>In practice, there is a fine line between the two; for example, | |||
| <t>In practice there is a fine line between the two; for example, how to | it is difficult to categorize a deterministic algorithm for data | |||
| categorize | minimization of IP addresses that produces a group of pseudonyms for | |||
| a deterministic algorithm for data minimization of IP addresses that produces | a single given address. | |||
| a | ||||
| group of pseudonyms for a single given address. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="ip-address-pseudonymization-and-anonymization-methods" | ||||
| <section anchor="ip-address-pseudonymization-and-anonymization-methods" | numbered="true" toc="default"> | |||
| title="IP address pseudonymization and anonymization methods"> | <name>IP Address Pseudonymization and Anonymization Methods</name> | |||
| <t>A major privacy risk in DNS is connecting DNS queries to an individual and | <t>A major privacy risk in DNS is connecting DNS queries to an individ | |||
| the | ual, and | |||
| major vector for this in DNS traffic is the client IP address. | the major vector for this in DNS traffic is the client IP address. | |||
| </t> | </t> | |||
| <t>There is active discussion in the space of effective pseudonymization of IP | <t>There is active discussion in the space of effective pseudonymizati | |||
| addresses in DNS traffic logs, however there seems to be no single solution | on of IP | |||
| that | addresses in DNS traffic logs; however, there seems to be no single sol | |||
| is widely recognized as suitable for all or most use cases. There are also as | ution | |||
| yet no standards for this that are unencumbered by patents. | that is widely recognized as suitable for all or most use cases. There | |||
| are also as | ||||
| yet no standards for this that are unencumbered by patents. | ||||
| </t> | </t> | |||
| <t><xref target="ip-address-techniques"/> provides a more detailed survey of | <t><xref target="ip-address-techniques" format="default"/> provides a more detailed survey of | |||
| various techniques | various techniques | |||
| employed or under development in 2019. | employed or under development in 2020. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="pseudonymization-anonymization-or-discarding-of-other-c | ||||
| orrelation-data" numbered="true" toc="default"> | ||||
| <name>Pseudonymization, Anonymization, or Discarding of Other Correlat | ||||
| ion Data</name> | ||||
| <dl newline="true"> | ||||
| <dt>DNS Privacy Threats:</dt> | ||||
| <dd> | ||||
| <ul spacing="normal"> | ||||
| <li>Fingerprinting of the client OS via various means, including: IP | ||||
| TTL/Hoplimit, | ||||
| TCP parameters (e.g., window size, Explicit Congestion | ||||
| Notification (ECN) support, selective acknowledgment (SACK)), | ||||
| OS-specific DNS query | ||||
| patterns (e.g., for network connectivity, captive portal detection, o | ||||
| r | ||||
| OS-specific updates).</li> | ||||
| <li>Fingerprinting of the client application or TLS library by, | ||||
| for example, HTTP headers (e.g., User-Agent, Accept, | ||||
| Accept-Encoding), TLS version/Cipher-suite | ||||
| combinations, or other connection parameters.</li> | ||||
| <li>Correlation of queries on multiple TCP sessions originating from | ||||
| the same | ||||
| IP address.</li> | ||||
| <li>Correlating of queries on multiple TLS sessions originating from | ||||
| the same | ||||
| client, including via session-resumption mechanisms.</li> | ||||
| <section | <li>Resolvers <em>might</em> receive client identifiers -- e.g., | |||
| anchor="pseudonymization-anonymization-or-discarding-of-other-correlation-da | Media Access Control (MAC) addresses in EDNS(0) | |||
| ta" | options. Some customer premises equipment (CPE) devices are known | |||
| title="Pseudonymization, anonymization, or discarding of other correlation | to add them | |||
| data"> | <xref target="MAC-address-EDNS" format="default"/>.</li> | |||
| <t>DNS Privacy Threats: | </ul> | |||
| </t> | </dd> | |||
| <t> | <dt>Mitigations:</dt> | |||
| <list style="symbols"> | <dd> | |||
| <t>Fingerprinting of the client OS via various means including: IP | <ul spacing="normal"> | |||
| TTL/Hoplimit, | <li>Data minimization or discarding of such correlation data.</li> | |||
| TCP parameters (e.g., window size, ECN support, SACK), OS specific DNS query | </ul> | |||
| patterns (e.g., for network connectivity, captive portal detection, or OS | </dd> | |||
| specific updates).</t> | </dl> | |||
| <t>Fingerprinting of the client application or TLS library by, e.g., HTTP | </section> | |||
| headers | ||||
| (e.g., User-Agent, Accept, Accept-Encoding), TLS version/Cipher suite | ||||
| combinations, or other connection parameters.</t> | ||||
| <t>Correlation of queries on multiple TCP sessions originating from the same | ||||
| IP | ||||
| address.</t> | ||||
| <t>Correlating of queries on multiple TLS sessions originating from the same | ||||
| client, including via session resumption mechanisms.</t> | ||||
| <t>Resolvers <spanx style="emph">might</spanx> receive client identifiers, | ||||
| e.g., MAC addresses in EDNS(0) | ||||
| options - some Customer-premises equipment (CPE) devices are known to add them | ||||
| <xref target="MAC-address-EDNS"/>.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Mitigations: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Data minimization or discarding of such correlation data.</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="cache-snooping" title="Cache snooping"> | <section anchor="cache-snooping" numbered="true" toc="default"> | |||
| <t><xref target="RFC6973"/> Threats: | <name>Cache Snooping</name> | |||
| </t> | ||||
| <t> | <dl newline="true"> | |||
| <list style="symbols"> | ||||
| <t>Surveillance: | <dt>Threats described in <xref target="RFC6973" format="default"/>:</dt> | |||
| <list style="symbols"> | <dd> | |||
| <t>Profiling of client queries by malicious third parties.</t> | ||||
| </list></t> | <dl newline="true"> | |||
| </list> | ||||
| </t> | <dt>Surveillance:</dt> | |||
| <t>Mitigations: | <dd>Profiling of client queries by malicious third parties.</dd> | |||
| </t> | </dl> | |||
| <t> | </dd> | |||
| <list style="symbols"> | ||||
| <t>See <xref target="ISC-Knowledge-database-on-cache-snooping"/> for an | <dt>Mitigations:</dt> | |||
| <dd>See <xref target="ISC-Knowledge-database-on-cache-snooping" form | ||||
| at="default"/> for an | ||||
| example discussion on | example discussion on | |||
| defending against cache snooping. Options proposed include limiting access to | defending against cache snooping. Options proposed include limiting access to | |||
| a server and limiting non-recursive queries.</t> | a server and limiting nonrecursive queries.</dd> | |||
| </list> | </dl> | |||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="data-sent-onwards-from-the-server" title="Data sent onwards | </section> | |||
| from the server"> | </section> | |||
| <t>In this section we consider both data sent on the wire in upstream queries | <section anchor="data-sent-onwards-from-the-server" numbered="true" toc="d | |||
| efault"> | ||||
| <name>Data Sent Onwards from the Server</name> | ||||
| <t>In this section, we consider both data sent on the wire in upstream q | ||||
| ueries | ||||
| and | and | |||
| data shared with third parties. | data shared with third parties. | |||
| </t> | </t> | |||
| <section anchor="protocol-recommendations-1" numbered="true" toc="defaul | ||||
| t"> | ||||
| <name>Protocol Recommendations</name> | ||||
| <dl newline="true"> | ||||
| <section anchor="protocol-recommendations-1" title="Protocol recommendations"> | <dt>Threats described in <xref target="RFC6973" format="default"/>:</d | |||
| <t><xref target="RFC6973"/> Threats: | t> | |||
| </t> | <dd> | |||
| <t> | <dl newline="true"> | |||
| <list style="symbols"> | ||||
| <t>Surveillance: | <dt>Surveillance:</dt> | |||
| <list style="symbols"> | ||||
| <t>Transmission of identifying data upstream.</t> | <dd>Transmission of identifying data upstream.</dd> | |||
| </list></t> | </dl> | |||
| </list> | </dd> | |||
| </t> | <dt>Mitigations:</dt> | |||
| <t>Mitigations: | ||||
| </t> | <dd><t>The server should:</t> | |||
| <t>As specified in <xref target="RFC8310"/> for DoT but applicable to any DNS | ||||
| Privacy | <ul spacing="normal"> | |||
| services the server should: | ||||
| </t> | <li>implement QNAME minimization <xref target="RFC7816" | |||
| <t> | format="default"/>.</li> | |||
| <list style="symbols"> | <li>honor a SOURCE PREFIX-LENGTH set to 0 in a query containing the | |||
| <t>Implement QNAME minimization <xref target="RFC7816"/>.</t> | EDNS(0) | |||
| <t>Honor a SOURCE PREFIX-LENGTH set to 0 in a query containing the EDNS(0) | Client Subnet (ECS) option (<xref target="RFC7871" section="7.1.2" | |||
| Client Subnet (ECS) option (<xref target="RFC7871"/> Section 7.1.2).</t> | sectionFormat="comma"/>). This is as specified in <xref target="RFC8310"/> for | |||
| </list> | DoT but | |||
| </t> | applicable to any DNS | |||
| <t>Optimizations: | privacy service.</li> | |||
| </t> | </ul> | |||
| <t> | </dd> | |||
| <list style="symbols"> | ||||
| <t>As per Section 2 of <xref target="RFC7871"/> the server should either: | <dt>Optimizations:</dt> | |||
| <list style="symbols"> | ||||
| <t>not use the ECS option in upstream queries at all, or</t> | <dd><t>As per <xref target="RFC7871" section="2" | |||
| <t>offer alternative services, one that sends ECS and one that does not.</t> | sectionFormat="of"/>, the server should either:</t> | |||
| </list></t> | <ul spacing="normal"> | |||
| </list> | <li>not use the ECS option in upstream queries at all, or</li> | |||
| </t> | <li>offer alternative services, one that sends ECS and one that | |||
| <t>If operators do offer a service that sends the ECS options upstream they | does not.</li> | |||
| </ul> | ||||
| </dd> | ||||
| </dl> | ||||
| <t>If operators do offer a service that sends the ECS options upstream | ||||
| , they | ||||
| should | should | |||
| use the shortest prefix that is operationally feasible and ideally | use the shortest prefix that is operationally feasible and ideally | |||
| use a policy of allowlisting upstream servers to send ECS to in order to | use a policy of allowlisting upstream servers to which to send ECS in order to | |||
| reduce data leakage. Operators should make clear in any policy statement what | reduce data leakage. Operators should make clear in any policy statement what | |||
| prefix length they actually send and the specific policy used. | prefix length they actually send and the specific policy used. | |||
| </t> | </t> | |||
| <t>Allowlisting has the benefit that not only does the operator know which | <t>Allowlisting has the benefit that not only does the operator know w | |||
| upstream | hich | |||
| servers can use ECS but also allows the operator to decide which upstream | upstream | |||
| servers apply privacy policies that the operator is happy with. However some | servers can use ECS, but also the operator can decide which upstream | |||
| operators consider allowlisting to incur significant operational overhead | servers apply privacy policies that the operator is happy with. However | |||
| compared to dynamic detection of ECS support on authoritative servers. | , some | |||
| </t> | operators consider allowlisting to incur significant operational overhe | |||
| <t>Additional options: | ad | |||
| compared to dynamic detection of ECS support on authoritative servers. | ||||
| </t> | </t> | |||
| <t> | <t>Additional options: | |||
| <list style="symbols"> | ||||
| <t>Aggressive Use of DNSSEC-Validated Cache <xref target="RFC8198"/> and <xref | ||||
| target="RFC8020"/> | ||||
| (NXDOMAIN: There Really Is Nothing Underneath) to reduce the number of queries | ||||
| to authoritative servers to increase privacy.</t> | ||||
| <t>Run a copy of the root zone on loopback <xref target="RFC8806"/> to avoid | ||||
| making queries to | ||||
| the root servers that might leak information.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| </section> | <ul spacing="normal"> | |||
| <li>"Aggressive Use of DNSSEC-Validated Cache" <xref | ||||
| <section anchor="client-query-obfuscation" title="Client query obfuscation"> | target="RFC8198" format="default"/> and "NXDOMAIN: There Really Is | |||
| <t>Additional options: | Nothing Underneath" <xref target="RFC8020" | |||
| format="default"/> to reduce the number of queries | ||||
| to authoritative servers to increase privacy.</li> | ||||
| <li>Run a local copy of the root zone <xref target="RFC8806" | ||||
| format="default"/> to avoid making queries to the root servers | ||||
| that might leak information.</li> | ||||
| </ul> | ||||
| </section> | ||||
| <section anchor="client-query-obfuscation" numbered="true" toc="default" | ||||
| > | ||||
| <name>Client Query Obfuscation</name> | ||||
| <t>Additional options: | ||||
| </t> | </t> | |||
| <t>Since queries from recursive resolvers to authoritative servers are | <t>Since queries from recursive resolvers to authoritative servers are | |||
| performed | performed | |||
| using cleartext (at the time of writing), resolver services need to consider | using cleartext (at the time of writing), resolver services need to consider | |||
| the | the | |||
| extent to which they may be directly leaking information about their client | extent to which they may be directly leaking information about their client | |||
| community via these upstream queries and what they can do to mitigate this | community via these upstream queries and what they can do to mitigate this | |||
| further. Note, that even when all the relevant techniques described above are | further. Note that, even when all the relevant techniques described above are | |||
| employed there may still be attacks possible, e.g. | employed, there may still be attacks possible -- e.g., | |||
| <xref target="Pitfalls-of-DNS-Encryption"/>. For example, a resolver with a | <xref target="Pitfalls-of-DNS-Encryption" format="default"/>. For example, a res | |||
| olver with a | ||||
| very small | very small | |||
| community of users risks exposing data in this way and ought to obfuscate this | community of users risks exposing data in this way and ought to obfuscate this | |||
| traffic by mixing it with 'generated' traffic to make client characterization | traffic by mixing it with "generated" traffic to make client characterization | |||
| harder. The resolver could also employ aggressive pre-fetch techniques as a | harder. The resolver could also employ aggressive prefetch techniques as a | |||
| further measure to counter traffic analysis. | further measure to counter traffic analysis. | |||
| </t> | </t> | |||
| <t>At the time of writing there are no standardized or widely recognized | <t>At the time of writing, there are no standardized or widely recogni zed | |||
| techniques | techniques | |||
| to perform such obfuscation or bulk pre-fetches. | to perform such obfuscation or bulk prefetches. | |||
| </t> | </t> | |||
| <t>Another technique that particularly small operators may consider is | <t>Another technique that particularly small operators may consider is | |||
| forwarding | forwarding | |||
| local traffic to a larger resolver (with a privacy policy that aligns with | local traffic to a larger resolver (with a privacy policy that aligns with | |||
| their | their | |||
| own practices) over an encrypted protocol so that the upstream queries are | own practices) over an encrypted protocol, so that the upstream queries are | |||
| obfuscated among those of the large resolver. | obfuscated among those of the large resolver. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="data-sharing" numbered="true" toc="default"> | ||||
| <name>Data Sharing</name> | ||||
| <dl newline="true"> | ||||
| <dt>Threats described in <xref target="RFC6973" format="default"/>:</ | ||||
| dt> | ||||
| <dd> | ||||
| <ul spacing="normal"> | ||||
| <li>Surveillance.</li> | ||||
| <li>Stored-data compromise.</li> | ||||
| <li>Correlation.</li> | ||||
| <li>Identification.</li> | ||||
| <li>Secondary use.</li> | ||||
| <li>Disclosure.</li> | ||||
| </ul> | ||||
| </dd> | ||||
| <dt>DNS Privacy Threats:</dt> | ||||
| <section anchor="data-sharing" title="Data sharing"> | <dd>Contravention of legal requirements not to process user data.</dd> | |||
| <t><xref target="RFC6973"/> Threats: | ||||
| </t> | <dt>Mitigations:</dt> | |||
| <t> | ||||
| <list style="symbols"> | <dd> <t>Operators should not share identifiable data with third parties | |||
| <t>Surveillance.</t> | . | |||
| <t>Stored data compromise.</t> | ||||
| <t>Correlation.</t> | ||||
| <t>Identification.</t> | ||||
| <t>Secondary use.</t> | ||||
| <t>Disclosure.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>DNS Privacy Threats: | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Contravention of legal requirements not to process user data.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Mitigations: | ||||
| </t> | ||||
| <t>Operators should not share identifiable data with third-parties. | ||||
| </t> | </t> | |||
| <t>If operators choose to share identifiable data with third-parties in | <t>If operators choose to share identifiable data with third parties i | |||
| specific | n | |||
| circumstance they should publish the terms under which data is shared. | specific circumstances, they should publish the terms under which data | |||
| is shared. | ||||
| </t> | </t> | |||
| <t>Operators should consider including specific guidelines for the collection | <t>Operators should consider including specific guidelines for the col lection | |||
| of | of | |||
| aggregated and/or anonymized data for research purposes, within or outside of | aggregated and/or anonymized data for research purposes, within or outside of | |||
| their own organization. This can benefit not only the operator (through | their own organization. This can benefit not only the operator (through | |||
| inclusion in novel research) but also the wider Internet community. See the | inclusion in novel research) but also the wider Internet community. See the | |||
| policy published by SURFnet <xref target="SURFnet-policy"/> on data sharing | policy published by SURFnet <xref target="SURFnet-policy" format="default"/> on data sharing | |||
| for research as | for research as | |||
| an example. | an example. | |||
| </t> | </t> | |||
| </section> | </dd> | |||
| </section> | </dl> | |||
| </section> | </section> | |||
| </section> | ||||
| <section anchor="recursive-operator-privacy-statement-rps" title="Recursive | </section> | |||
| operator Privacy Statement (RPS)"> | <section anchor="recursive-operator-privacy-statement-rps" numbered="true" t | |||
| <t>To be compliant with this Best Common Practices document, a DNS recursive | oc="default"> | |||
| operator SHOULD publish a Recursive operator Privacy Statement (RPS). Adopting | <name>Recursive Operator Privacy Statement (RPS)</name> | |||
| <t>To be compliant with this Best Current Practice document, a DNS recursi | ||||
| ve | ||||
| operator <bcp14>SHOULD</bcp14> publish a Recursive operator Privacy Statement (R | ||||
| PS). Adopting | ||||
| the | the | |||
| outline, and including the headings in the order provided, is a benefit to | outline, and including the headings in the order provided, is a benefit to | |||
| persons comparing RPSs from multiple operators. | persons comparing RPSs from multiple operators. | |||
| </t> | </t> | |||
| <t><xref target="current-policy-and-privacy-statements"/> provides a | <t><xref target="current-policy-and-privacy-statements" format="default"/> provides a | |||
| comparison of some existing | comparison of some existing | |||
| policy and privacy statements. | policy and privacy statements. | |||
| </t> | </t> | |||
| <section anchor="outline-of-an-rps" numbered="true" toc="default"> | ||||
| <section anchor="outline-of-an-rps" title="Outline of an RPS"> | <name>Outline of an RPS</name> | |||
| <t>The contents of <xref target="policy"/> and <xref target="practice"/> are | <t>The contents of Sections <xref target="policy" format="counter"/> and | |||
| <xref | ||||
| target="practice" format="counter"/> are | ||||
| non-normative, other than the | non-normative, other than the | |||
| order of the headings. Material under each topic is present to assist the | order of the headings. Material under each topic is present to assist the | |||
| operator developing their own RPS and: | operator developing their own RPS. This material: | |||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Relates <spanx style="emph">only</spanx> to matters around to the technical | ||||
| operation of DNS privacy services, and not on any other matters.</t> | ||||
| <t>Does not attempt to offer an exhaustive list for the contents of an | ||||
| RPS.</t> | ||||
| <t>Is not intended to form the basis of any legal/compliance | ||||
| documentation.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t><xref target="example-rps"/> provides an example (also non-normative) of an | <ul spacing="normal"> | |||
| <li>Relates <em>only</em> to matters around the technical | ||||
| operation of DNS privacy services, and no other matters.</li> | ||||
| <li>Does not attempt to offer an exhaustive list for the contents of a | ||||
| n | ||||
| RPS.</li> | ||||
| <li>Is not intended to form the basis of any legal/compliance | ||||
| documentation.</li> | ||||
| </ul> | ||||
| <t><xref target="example-rps" format="default"/> provides an example (al | ||||
| so non-normative) of an | ||||
| RPS | RPS | |||
| statement for a specific operator scenario. | statement for a specific operator scenario. | |||
| </t> | </t> | |||
| <section anchor="policy" numbered="true" toc="default"> | ||||
| <section anchor="policy" title="Policy"> | <name>Policy</name> | |||
| <t> | <ol spacing="normal" type="1"> | |||
| <list style="numbers"> | <li>Treatment of IP addresses. Make an explicit statement that IP ad | |||
| <t>Treatment of IP addresses. Make an explicit statement that IP addresses are | dresses are | |||
| treated as personal data.</t> | treated as personal data.</li> | |||
| <t>Data collection and sharing. Specify clearly what data (including IP | <li> | |||
| addresses) | <t>Data collection and sharing. Specify clearly what data (includi | |||
| is: | ng IP | |||
| <list style="symbols"> | addresses) is: | |||
| <t>Collected and retained by the operator, and for what period it is | </t> | |||
| retained.</t> | <ul spacing="normal"> | |||
| <t>Shared with partners.</t> | <li>Collected and retained by the operator, and for what period | |||
| <t>Shared, sold, or rented to third-parties. | it is | |||
| retained.</li> | ||||
| <vspace/></t> | <li>Shared with partners.</li> | |||
| </list> | <li> | |||
| and in each case whether it is aggregated, pseudonymized, or anonymized and | <t>Shared, sold, or rented to third parties. | |||
| the conditions of data transfer. Where possible provide details of the | </t> | |||
| techniques used for the above data minimizations.</t> | <t/> | |||
| <t>Exceptions. Specify any exceptions to the above, for example, technically | </li> | |||
| malicious or anomalous behavior.</t> | </ul> | |||
| <t>Associated entities. Declare and explicitly enumerate any partners, | <t> | |||
| third-party affiliations, or sources of funding.</t> | In each case, specify whether data is aggregated, pseudonymized, | |||
| <t>Correlation. Whether user DNS data is correlated or combined with any other | or anonymized and | |||
| personal information held by the operator.</t> | the conditions of data transfer. Where possible provide details o | |||
| <t>Result filtering. This section should explain whether the operator filters, | f the | |||
| edits or alters in any way the replies that it receives from the authoritative | techniques used for the above data minimizations.</t> | |||
| servers for each DNS zone, before forwarding them to the clients. For each | </li> | |||
| <li>Exceptions. Specify any exceptions to the above -- for example, | ||||
| technically | ||||
| malicious or anomalous behavior.</li> | ||||
| <li>Associated entities. Declare and explicitly enumerate any partne | ||||
| rs, | ||||
| third-party affiliations, or sources of funding.</li> | ||||
| <li>Correlation. Whether user DNS data is correlated or combined wit | ||||
| h any other | ||||
| personal information held by the operator.</li> | ||||
| <li> | ||||
| <t>Result filtering. This section should explain whether the opera | ||||
| tor filters, | ||||
| edits, or alters in any way the replies that it receives from the authoritative | ||||
| servers for each DNS zone before forwarding them to the clients. For each | ||||
| category listed below, the operator should also specify how the filtering | category listed below, the operator should also specify how the filtering | |||
| lists | lists | |||
| are created and managed, whether it employs any third-party sources for such | are created and managed, whether it employs any third-party sources for such | |||
| lists, and which ones. | lists, and which ones. | |||
| <list style="symbols"> | </t> | |||
| <t>Specify if any replies are being filtered out or altered for network and | <ul spacing="normal"> | |||
| computer security reasons (e.g., preventing connections to | <li>Specify if any replies are being filtered out or altered for | |||
| malware-spreading websites or botnet control servers).</t> | network- and | |||
| <t>Specify if any replies are being filtered out or altered for mandatory | computer-security reasons (e.g., preventing connections to | |||
| malware-spreading websites or botnet control servers).</li> | ||||
| <li>Specify if any replies are being filtered out or altered for | ||||
| mandatory | ||||
| legal reasons, due to applicable legislation or binding orders by courts | legal reasons, due to applicable legislation or binding orders by courts | |||
| and other public authorities.</t> | and other public authorities.</li> | |||
| <t>Specify if any replies are being filtered out or altered for voluntary | <li>Specify if any replies are being filtered out or altered for | |||
| voluntary | ||||
| legal reasons, due to an internal policy by the operator aiming at | legal reasons, due to an internal policy by the operator aiming at | |||
| reducing potential legal risks.</t> | reducing potential legal risks.</li> | |||
| <t>Specify if any replies are being filtered out or altered for any other | <li>Specify if any replies are being filtered out or altered for | |||
| reason, including commercial ones.</t> | any other | |||
| </list></t> | reason, including commercial ones.</li> | |||
| </list> | </ul> | |||
| </t> | </li> | |||
| </section> | </ol> | |||
| </section> | ||||
| <section anchor="practice" numbered="true" toc="default"> | ||||
| <name>Practice</name> | ||||
| <section anchor="practice" title="Practice"> | ||||
| <t>[NOTE FOR RFC EDITOR: Please update this section to use letters for the | ||||
| sub-bullet points instead of numbers. This was not done during review because | ||||
| the markdown tool used to write the document did not support it.] | ||||
| </t> | ||||
| <t>Communicate the current operational practices of the service. | <t>Communicate the current operational practices of the service. | |||
| </t> | </t> | |||
| <t> | ||||
| <list style="numbers"> | ||||
| <t>Deviations. Specify any temporary or permanent deviations from the policy | ||||
| for | ||||
| operational reasons.</t> | ||||
| <t>Client facing capabilities. With reference to each subsection of | ||||
| <xref target="on-the-wire-between-client-and-server"/> provide specific | ||||
| details of which | ||||
| capabilities (transport, DNSSEC, padding, etc.) are provided on which client | ||||
| facing addresses/port combination or DoH URI template. For | ||||
| <xref target="authentication-of-dns-privacy-services"/>, clearly specify which | ||||
| specific | ||||
| authentication mechanisms are supported for each endpoint that offers DoT: | ||||
| <list style="numbers"> | ||||
| <t>The authentication domain name to be used (if any).</t> | ||||
| <t>The SPKI pin sets to be used (if any) and policy for rolling keys. | ||||
| <vspace/></t> | <ol spacing="normal"> | |||
| </list></t> | <li>Deviations. Specify any temporary or permanent deviations from the policy | |||
| <t>Upstream capabilities. With reference to section | for operational reasons.</li> | |||
| <xref target="data-sent-onwards-from-the-server"/> provide specific details of | <li> | |||
| which | <t>Client-facing capabilities. With reference to each subsection o | |||
| capabilities are provided upstream for data sent to authoritative servers.</t> | f | |||
| <t>Support. Provide contact/support information for the service.</t> | <xref target="on-the-wire-between-client-and-server" format="defaul | |||
| <t>Data Processing. This section can optionally communicate links to and the | t"/>, provide specific | |||
| high level contents of any separate statements the operator has published | details of which | |||
| which | capabilities (transport, DNSSEC, padding, etc.) are provided on | |||
| cover applicable data processing legislation or agreements with regard to the | which client-facing addresses/port combination or DoH URI | |||
| location(s) of service provision.</t> | template. For | |||
| </list> | <xref target="authentication-of-dns-privacy-services" | |||
| format="default"/>, clearly specify which specific | ||||
| authentication mechanisms are supported for each endpoint that offe | ||||
| rs DoT: | ||||
| </t> | </t> | |||
| </section> | <ol spacing="normal" type="a"> | |||
| </section> | <li>The authentication domain name to be used (if any).</li> | |||
| <li> | ||||
| <section anchor="enforcementaccountability" | <t>The SPKI pin sets to be used (if any) and policy for rollin | |||
| title="Enforcement/accountability"> | g keys. | |||
| <t>Transparency reports may help with building user trust that operators | </t> | |||
| <t/> | ||||
| </li> | ||||
| </ol> | ||||
| </li> | ||||
| <li>Upstream capabilities. With reference to | ||||
| <xref target="data-sent-onwards-from-the-server" | ||||
| format="default"/>, provide specific details of | ||||
| which capabilities are provided upstream for data sent to authoritati | ||||
| ve servers.</li> | ||||
| <li>Support. Provide contact/support information for the service.</l | ||||
| i> | ||||
| <li>Data Processing. This section can optionally communicate links t | ||||
| o, and the | ||||
| high-level contents of, any separate statements the operator has publ | ||||
| ished | ||||
| that cover applicable data-processing legislation or agreements with | ||||
| regard to the | ||||
| location(s) of service provision.</li> | ||||
| </ol> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="enforcementaccountability" numbered="true" toc="default"> | ||||
| <name>Enforcement/Accountability</name> | ||||
| <t>Transparency reports may help with building user trust that operators | ||||
| adhere to | adhere to | |||
| their policies and practices. | their policies and practices. | |||
| </t> | </t> | |||
| <t>Independent monitoring or analysis could be performed where possible of: | <t>Where possible, independent monitoring or analysis could be performed | |||
| </t> | of: | |||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>ECS, QNAME minimization, EDNS(0) padding, etc.</t> | ||||
| <t>Filtering.</t> | ||||
| <t>Uptime.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>This is by analogy with several TLS or website analysis tools that are | <ul spacing="normal"> | |||
| currently available e.g., <xref target="SSL-Labs"/> or | <li>ECS, QNAME minimization, EDNS(0) padding, etc.</li> | |||
| <xref target="Internet.nl"/>. | <li>Filtering.</li> | |||
| <li>Uptime.</li> | ||||
| </ul> | ||||
| <t>This is by analogy with several TLS or website-analysis tools that ar | ||||
| e | ||||
| currently available -- e.g., <xref target="SSL-Labs" format="default"/> or | ||||
| <xref target="Internet.nl" format="default"/>. | ||||
| </t> | </t> | |||
| <t>Additionally operators could choose to engage the services of a third party | <t>Additionally, operators could choose to engage the services of a thir d-party | |||
| auditor to verify their compliance with their published RPS. | auditor to verify their compliance with their published RPS. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="iana-considerations" numbered="true" toc="default"> | ||||
| <section anchor="iana-considerations" title="IANA considerations"> | <name>IANA Considerations</name> | |||
| <t>None | <t>This document has no IANA actions.</t> | |||
| </t> | </section> | |||
| </section> | <section anchor="security-considerations" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | ||||
| <section anchor="security-considerations" title="Security considerations"> | <t>Security considerations for DNS over TCP are given in <xref target="RFC | |||
| <t>Security considerations for DNS over TCP are given in <xref | 7766" format="default"/>, many of which | |||
| target="RFC7766"/>, many of which | are generally applicable to session-based DNS. Guidance on operational | |||
| are generally applicable to session based DNS. Guidance on operational | requirements for DNS over TCP are also available in <xref | |||
| requirements for DNS over TCP are also available in | target="I-D.ietf-dnsop-dns-tcp-requirements"/>. Security considerations for | |||
| [I-D.dnsop-dns-tcp-requirements]. Security considerations for DoT are given in | DoT are given in <xref target="RFC7858" /> and <xref target="RFC8310" | |||
| [RFC7858] and <xref target="RFC8310"/>, those for DoH in [RFC8484]. | format="default"/>, and those for DoH in <xref target="RFC8484"/>. | |||
| </t> | </t> | |||
| <t>Security considerations for DNSSEC are given in <xref target="RFC4033"/>, | <t>Security considerations for DNSSEC are given in <xref target="RFC4033" | |||
| <xref target="RFC4034"/> and <xref target="RFC4035"/>. | format="default"/>, | |||
| <xref target="RFC4034" format="default"/>, and <xref target="RFC4035" format="de | ||||
| fault"/>. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <section anchor="acknowledgements" title="Acknowledgements"> | <displayreference target="I-D.bellis-dnsop-xpf" to="DNS-XPF"/> | |||
| <t>Many thanks to Amelia Andersdotter for a very thorough review of the first | <displayreference target="I-D.ietf-dnsop-dns-tcp-requirements" to="DNS-OVER-TCP" | |||
| draft | /> | |||
| of this document and Stephen Farrell for a thorough review at WGLC and for | <displayreference target="I-D.ietf-httpbis-bcp56bis" to="BUILD-W-HTTP"/> | |||
| suggesting the inclusion of an example RPS. Thanks to John Todd for | ||||
| discussions on this topic, and to Stephane Bortzmeyer, Puneet Sood and | ||||
| Vittorio | ||||
| Bertola for review. Thanks to Daniel Kahn Gillmor, Barry Green, Paul Hoffman, | ||||
| Dan York, Jon Reed, Lorenzo Colitti for comments at the mic. Thanks to | ||||
| Loganaden Velvindron for useful updates to the text. | ||||
| </t> | ||||
| <t>Sara Dickinson thanks the Open Technology Fund for a grant to support the | ||||
| work | ||||
| on this document. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="contributors" title="Contributors"> | <references> | |||
| <t>The below individuals contributed significantly to the document: | <name>References</name> | |||
| </t> | <references> | |||
| <t>John Dickinson | <name>Normative References</name> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Sinodun Internet Technologies | FC.2119.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Magdalen Centre | FC.4033.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Oxford Science Park | FC.5280.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Oxford OX4 4GA | FC.6973.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| United Kingdom | FC.7457.xml"/> | |||
| </t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <t>Jim Hague | FC.7525.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Sinodun Internet Technologies | FC.7766.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Magdalen Centre | FC.7816.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Oxford Science Park | FC.7828.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| Oxford OX4 4GA | FC.7830.xml"/> | |||
| <vspace/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| United Kingdom | FC.7858.xml"/> | |||
| </t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </section> | FC.7871.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8020.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8198.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8310.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8467.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8484.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8490.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8499.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8806.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <section anchor="changelog" title="Changelog"> | <reference anchor="Bloom-filter" target="http://dl.ifip.org/db/conf/im/i | |||
| <t>draft-ietf-dprive-bcp-op-13 | m2019/189282.pdf"> | |||
| </t> | <front> | |||
| <t> | <title>Privacy-Conscious Threat Intelligence Using DNSBLOOM</title> | |||
| <list style="symbols"> | <author initials="R." surname="van Rijswijk-Deij"> </author> | |||
| <t>Minor edits</t> | <author initials="G." surname="Rijnders"> </author> | |||
| </list> | <author initials="M." surname="Bomhoff"> </author> | |||
| </t> | <author initials="L." surname="Allodi"> </author> | |||
| <t>draft-ietf-dprive-bcp-op-12 | <date year="2019"/> | |||
| </t> | </front> | |||
| <t> | <refcontent>IFIP/IEEE International Symposium on Integrated Network | |||
| <list style="symbols"> | Management (IM2019)</refcontent> | |||
| <t>Change DROP to RPS throughout</t> | </reference> | |||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-11 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Improve text around use of normative language</t> | ||||
| <t>Fix section 5.1.3.2 bullets</t> | ||||
| <t>Improve text in 6.1.2. item 2.</t> | ||||
| <t>Rework text of 6.1.2. item 5 and update example DROP</t> | ||||
| <t>Various editorial improvements</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-10 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Remove direct references to draft-ietf-dprive-rfc7626-bis, instead have one | ||||
| general reference RFC7626</t> | ||||
| <t>Clarify that the DROP statement outline is non-normative and add some | ||||
| further | ||||
| qualifications about content</t> | ||||
| <t>Update wording on data sharing to remove explicit discussion of consent</t> | ||||
| <t>Move table in section 5.2.3 to an appendix</t> | ||||
| <t>Move section 6.2 to an appendix</t> | ||||
| <t>Corrections to references, typos and editorial updates from initial IESG | ||||
| comments.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-09 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Fix references so they match the correct section numbers in | ||||
| draft-ietf-dprive-rfc7626-bis-05</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-08 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Address IETF Last call comments.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-07 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Editorial changes following AD review.</t> | ||||
| <t>Change all URIs to Informational References.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-06 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Final minor changes from second WGLC.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-05 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Remove some text on consent: | ||||
| <list style="symbols"> | ||||
| <t>Paragraph 2 in section 5.3.3</t> | ||||
| <t>Item 6 in the DROP Practice statement (and example)</t> | ||||
| </list></t> | ||||
| <t>Remove .onion and TLSA options</t> | ||||
| <t>Include ACME as a reference for certificate management</t> | ||||
| <t>Update text on session resumption usage</t> | ||||
| <t>Update section 5.2.4 on client fingerprinting</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-04 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Change DPPPS to DROP (DNS Recursive Operator Privacy) statement</t> | ||||
| <t>Update structure of DROP slightly</t> | ||||
| <t>Add example DROP statement</t> | ||||
| <t>Add text about restricting access to full logs</t> | ||||
| <t>Move table in section 5.2.3 from SVG to inline table</t> | ||||
| <t>Fix many editorial and reference nits</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-03 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Add paragraph about operational impact</t> | ||||
| <t>Move DNSSEC requirement out of the Appendix into main text as a privacy | ||||
| threat | ||||
| that should be mitigated</t> | ||||
| <t>Add TLS version/Cipher suite as tracking threat</t> | ||||
| <t>Add reference to Mozilla TRR policy</t> | ||||
| <t>Remove several TODOs and QUESTIONS.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-02 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Change 'open resolver' for 'public resolver'</t> | ||||
| <t>Minor editorial changes</t> | ||||
| <t>Remove recommendation to run a separate TLS 1.3 service</t> | ||||
| <t>Move TLSA to purely a optimization in Section 5.2.1</t> | ||||
| <t>Update reference on minimal DoH headers.</t> | ||||
| <t>Add reference on user switching provider after service issues in Section | ||||
| 5.1.4</t> | ||||
| <t>Add text in Section 5.1.6 on impact on operators.</t> | ||||
| <t>Add text on additional threat to TLS proxy use (Section 5.1.7)</t> | ||||
| <t>Add reference in Section 5.3.1 on example policies.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-01 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Many minor editorial fixes</t> | ||||
| <t>Update DoH reference to RFC8484 and add more text on DoH</t> | ||||
| <t>Split threat descriptions into ones directly referencing RFC6973 and other | ||||
| DNS Privacy threats</t> | ||||
| <t>Improve threat descriptions throughout</t> | ||||
| <t>Remove reference to the DNSSEC TLS Chain Extension draft until new version | ||||
| submitted.</t> | ||||
| <t>Clarify use of allowlisting for ECS</t> | ||||
| <t>Re-structure the DPPPS, add Result filtering section.</t> | ||||
| <t>Remove the direct inclusion of privacy policy comparison, now just | ||||
| reference dnsprivacy.org and an example of such work.</t> | ||||
| <t>Add an appendix briefly discussing DNSSEC</t> | ||||
| <t>Update affiliation of 1 author</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>draft-ietf-dprive-bcp-op-00 | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>Initial commit of re-named document after adoption to replace | ||||
| draft-dickinson-dprive-bcp-op-01</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| </t> | <reference anchor="Brekne-and-Arnes" | |||
| </section> | target="https://pdfs.semanticscholar.org/7b34/12c951cebe71cd2c | |||
| ddac5fda164fb2138a44.pdf"> | ||||
| <front> | ||||
| <title>Circumventing IP-address pseudonymization</title> | ||||
| <author initials="T." surname="Brekne"> </author> | ||||
| <author initials="A." surname="Årnes"> </author> | ||||
| <date year="2005"/> | ||||
| </front> | ||||
| <seriesInfo name="Communications and" value="Computer Networks" /> | ||||
| </reference> | ||||
| </middle> | <reference anchor="Crypto-PAn" | |||
| <back> | target="https://github.com/CESNET/ipfixcol/tree/master/base/sr | |||
| <references title="Normative References"> | c/intermediate/anonymization/Crypto-PAn"> | |||
| <?rfc | <front> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.x | <title>Crypto-PAn</title> | |||
| ml"?> | <author> | |||
| <?rfc | <organization>CESNET</organization> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4033.x | </author> | |||
| ml"?> | <date year="2015" month="March"/> | |||
| <?rfc | </front> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5280.x | <seriesInfo name="commit" value="636b237"/> | |||
| ml"?> | </reference> | |||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6973.x | <reference anchor="DNS-Privacy-not-so-private" target="https://petsympos | |||
| ml"?> | ium.org/2018/files/hotpets/4-siby.pdf"> | |||
| <?rfc | <front> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7457.x | <title>DNS Privacy not so private: the traffic analysis | |||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7525.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7766.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7816.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7828.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7830.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7858.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7871.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8020.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8198.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8310.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8467.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8484.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8490.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8499.x | ||||
| ml"?> | ||||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8806.x | ||||
| ml"?> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <reference anchor='Bloom-filter' | ||||
| target='http://dl.ifip.org/db/conf/im/im2019/189282.pdf'> | ||||
| <front> | ||||
| <title>Privacy-Conscious Threat Intelligence Using DNSBLOOM</title> | ||||
| <author initials='R.' surname='van Rijswijk-Deij'> </author> | ||||
| <author initials='G.' surname='Rijnders'> </author> | ||||
| <author initials='M.' surname='Bomhoff'> </author> | ||||
| <author initials='L.' surname='Allodi'> </author> | ||||
| <date year='2019'/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor='Brenker-and-Arnes' | ||||
| target='https://pdfs.semanticscholar.org/7b34/12c951cebe71cd2cddac5fd | ||||
| a164fb2138a44.pdf'> | ||||
| <front> | ||||
| <title>CIRCUMVENTING IP-ADDRESS PSEUDONYMIZATION</title> | ||||
| <author initials='T.' surname='Brekne'> </author> | ||||
| <author initials='A.' surname='Arnes'> </author> | ||||
| <date year='2005'/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor='Crypto-PAn' | ||||
| target='https://github.com/CESNET/ipfixcol/tree/master/base/src/interm | ||||
| ediate/anonymization/Crypto-PAn'> | ||||
| <front> | ||||
| <title>Crypto-PAn</title> | ||||
| <author> | ||||
| <organization>CESNET</organization> | ||||
| </author> | ||||
| <date year='2015'/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor='DNS-Privacy-not-so-private' | ||||
| target='https://petsymposium.org/2018/files/hotpets/4-siby.pdf'> | ||||
| <front> | ||||
| <title>DNS Privacy not so private: the traffic analysis | ||||
| perspective.</title> | perspective.</title> | |||
| <author initials='S.' surname='Silby'> </author> | <author initials="S." surname="Silby"> </author> | |||
| <author initials='M.' surname='Juarez'> </author> | <author initials="M." surname="Juarez"> </author> | |||
| <author initials='N.' surname='Vallina-Rodriguez'> </author> | <author initials="N." surname="Vallina-Rodriguez"> </author> | |||
| <author initials='C.' surname='Troncosol'> </author> | <author initials="C." surname="Troncoso"> </author> | |||
| <date year='2019'/> | <date year="2018"/> | |||
| </front> | </front> | |||
| </reference> | <seriesInfo name="Privacy Enhancing Technologies" value="Symposium"/> | |||
| <reference anchor='DoH-resolver-policy' | </reference> | |||
| target='https://wiki.mozilla.org/Security/DOH-resolver-policy'> | ||||
| <front> | <reference anchor="DoH-resolver-policy" target="https://wiki.mozilla.org | |||
| <title>Security/DOH-resolver-policy</title> | /Security/DOH-resolver-policy"> | |||
| <author> | <front> | |||
| <organization>Mozilla</organization> | <title>Security/DOH-resolver-policy</title> | |||
| </author> | <author> | |||
| <date year='2019'/> | <organization>Mozilla</organization> | |||
| </front> | </author> | |||
| </reference> | <date year="2019"/> | |||
| <reference anchor='Geolocation-Impact-Assessement' | </front> | |||
| target='https://support.google.com/analytics/answer/2763052?hl=en'> | </reference> | |||
| <front> | ||||
| <title>Anonymize IP Geolocation Accuracy Impact Assessment</title> | <reference anchor="Geolocation-Impact-Assessment" target="https://www.co | |||
| <author> | nversionworks.co.uk/blog/2017/05/19/anonymize-ip-geo-impact-test/"> | |||
| <organization>Conversion Works</organization> | <front> | |||
| </author> | <title>Anonymize IP Geolocation Accuracy Impact Assessment</title> | |||
| <date year='2017'/> | <author> | |||
| </front> | <organization>Conversion Works</organization> | |||
| </reference> | </author> | |||
| <reference anchor='Harvan' | <date day="19" month="May" year="2017"/> | |||
| target='http://mharvan.net/talks/noms-ip_anon.pdf'> | </front> | |||
| <front> | </reference> | |||
| <title>Prefix- and Lexicographical-order-preserving IP Address | ||||
| <reference anchor="Harvan" target="http://mharvan.net/talks/noms-ip_anon | ||||
| .pdf"> | ||||
| <front> | ||||
| <title>Prefix- and Lexicographical-order-preserving IP Address | ||||
| Anonymization</title> | Anonymization</title> | |||
| <author initials='M.' surname='Harvan'> </author> | <author initials="M." surname="Harvan"> </author> | |||
| <date year='2006'/> | <date year="2006"/> | |||
| </front> | </front> | |||
| </reference> | <refcontent>IEEE/IFIP Network Operations and Management | |||
| <?rfc | Symposium</refcontent> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.belli | <seriesInfo name="DOI" value="10.1109/NOMS.2006.1687580"/> | |||
| s-dnsop-xpf.xml"?> | </reference> | |||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf- | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| dnsop-dns-tcp-requirements.xml"?> | .bellis-dnsop-xpf.xml"/> | |||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf- | <!-- [I-D.ietf-dnsop-dns-tcp-requirements] IESG state I-D Exists --> | |||
| httpbis-bcp56bis.xml"?> | ||||
| <reference anchor='IP-Anonymization-in-Analytics' | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| target='https://support.google.com/analytics/answer/2763052?hl=en'> | .ietf-dnsop-dns-tcp-requirements.xml"/> | |||
| <front> | ||||
| <title>IP Anonymization in Analytics</title> | <!-- [I-D.ietf-httpbis-bcp56bis] IESG state Expired --> | |||
| <author> | ||||
| <organization>Google</organization> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| </author> | .ietf-httpbis-bcp56bis.xml"/> | |||
| <date year='2019'/> | ||||
| </front> | <reference anchor="IP-Anonymization-in-Analytics" target="https://suppor | |||
| </reference> | t.google.com/analytics/answer/2763052?hl=en"> | |||
| <reference anchor='ISC-Knowledge-database-on-cache-snooping' | <front> | |||
| target='https://kb.isc.org/docs/aa-00482'> | <title>IP Anonymization in Analytics</title> | |||
| <front> | <author> | |||
| <title>DNS Cache snooping - should I be concerned?</title> | <organization>Google</organization> | |||
| <author> | </author> | |||
| <organization>ISC Knowledge Database</organization> | <date year="2019"/> | |||
| </author> | </front> | |||
| <date year='2018'/> | </reference> | |||
| </front> | ||||
| </reference> | <reference anchor="ISC-Knowledge-database-on-cache-snooping" target="htt | |||
| <reference anchor='Internet.nl' target='https://internet.nl'> | ps://kb.isc.org/docs/aa-00482"> | |||
| <front> | <front> | |||
| <title>Internet.nl Is Your Internet Up To Date?</title> | <title>DNS Cache snooping - should I be concerned?</title> | |||
| <author> | <author initials="S" surname="Goldlust" /> | |||
| <organization>Internet.nl</organization> | <author initials="C" surname="Almond" /> | |||
| </author> | <date year="2018" month="October" day="15"/> | |||
| <date year='2019'/> | </front> | |||
| </front> | <seriesInfo name="ISC" value="Knowledge Database"/> | |||
| </reference> | </reference> | |||
| <reference anchor='MAC-address-EDNS' | ||||
| target='https://lists.dns-oarc.net/pipermail/dns-operations/2016-Janua | <reference anchor="Internet.nl" target="https://internet.nl"> | |||
| ry/014143.html'> | <front> | |||
| <front> | <title>Internet.nl Is Your Internet Up To Date?</title> | |||
| <title>Embedding MAC address in DNS requests for selective filtering | <author> | |||
| IDs</title> | <organization>Internet.nl</organization> | |||
| <author> | </author> | |||
| <organization>DNS-OARC mailing list</organization> | <date year="2019"/> | |||
| </author> | </front> | |||
| <date year='2016'/> | </reference> | |||
| </front> | ||||
| </reference> | <reference anchor="DNSCrypt" target="https://www.dnscrypt.org"> | |||
| <reference anchor='Passive-Observations-of-a-Large-DNS' | <front> | |||
| target='http://tma.ifip.org/2018/wp-content/uploads/sites/3/2018/06/t | <title>DNSCrypt - Official Project Home Page</title> | |||
| ma2018_paper30.pdf'> | <author/> | |||
| <front> | <date/> | |||
| <title>Passive Observations of a Large DNS Service: 2.5 Years in the | </front> | |||
| </reference> | ||||
| <reference anchor="MAC-address-EDNS" target="https://lists.dns-oarc.net/ | ||||
| pipermail/dns-operations/2016-January/014143.html"> | ||||
| <front> | ||||
| <title>Embedding MAC address in DNS requests for selective filtering | ||||
| </title> | ||||
| <author initials="B" surname="Hubert"/> | ||||
| <date year="2016" month="January" day="25"/> | ||||
| </front> | ||||
| <seriesInfo name="DNS-OARC" value="mailing list" /> | ||||
| </reference> | ||||
| <reference anchor="Passive-Observations-of-a-Large-DNS" target="http://tma.ifip. | ||||
| org/2018/wp-content/uploads/sites/3/2018/06/tma2018_paper30.pdf"> | ||||
| <front> | ||||
| <title>Passive Observations of a Large DNS Service: 2.5 Years in the | ||||
| Life of Google</title> | Life of Google</title> | |||
| <author initials='W. B.' surname='de Vries'> </author> | <author initials="W. B." surname="de Vries"> </author> | |||
| <author initials='R.' surname='van Rijswijk-Deij'> </author> | <author initials="R." surname="van Rijswijk-Deij"> </author> | |||
| <author initials='P.' surname='de Boer'> </author> | <author initials="P-T" surname="de Boer"> </author> | |||
| <author initials='A.' surname='Pras'> </author> | <author initials="A." surname="Pras"> </author> | |||
| <date year='2018'/> | <date year="2018"/> | |||
| </front> | </front> | |||
| </reference> | <seriesInfo name="DOI" value="10.23919/TMA.2018.8506536"/> | |||
| <reference anchor='Pitfalls-of-DNS-Encryption' | </reference> | |||
| target='https://dl.acm.org/citation.cfm?id=2665959'> | ||||
| <front> | <reference anchor="Pitfalls-of-DNS-Encryption" target="https://dl.acm.or | |||
| <title>Pretty Bad Privacy: Pitfalls of DNS Encryption</title> | g/citation.cfm?id=2665959"> | |||
| <author initials='H.' surname='Shulman' fullname='Haya Shulman'> | <front> | |||
| <organization>Fachbereich Informatik, Technische Universität | <title>Pretty Bad Privacy: Pitfalls of DNS Encryption</title> | |||
| <author initials="H." surname="Shulman" fullname="Haya Shulman"> | ||||
| <organization>Fachbereich Informatik, Technische Universität | ||||
| Darmstadt</organization> | Darmstadt</organization> | |||
| </author> | </author> | |||
| <date year='2014'/> | <date year="2014" month="November"/> | |||
| </front> | </front> | |||
| </reference> | <seriesInfo name="DOI" value="10.1145/2665943.2665959"/> | |||
| <reference anchor='PowerDNS-dnswasher' | <refcontent>Proceedings of the 13th Workshop on Privacy in the | |||
| target='https://github.com/PowerDNS/pdns/blob/master/pdns/dnswasher.cc | Electronic Society, pp. 191-200</refcontent> | |||
| '> | </reference> | |||
| <front> | ||||
| <title>dnswasher</title> | <reference anchor="PowerDNS-dnswasher" target="https://github.com/PowerD | |||
| <author> | NS/pdns/blob/master/pdns/dnswasher.cc"> | |||
| <organization>PowerDNS</organization> | <front> | |||
| </author> | <title>dnswasher</title> | |||
| <date year='2019'/> | <author> | |||
| </front> | <organization>PowerDNS</organization> | |||
| </reference> | </author> | |||
| <?rfc | <date day="24" month="April" year="2020"/> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4034.x | </front> | |||
| ml"?> | <seriesInfo name="commit" value="050e687" /> | |||
| <?rfc | </reference> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4035.x | ||||
| ml"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc | FC.4034.xml"/> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5077.x | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| ml"?> | FC.4035.xml"/> | |||
| <?rfc | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6235.x | FC.5077.xml"/> | |||
| ml"?> | <xi:include | |||
| <?rfc | href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6147.x | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6265.x | ml"/> | |||
| ml"?> | <xi:include | |||
| <?rfc | href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6235.x | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7626.x | ml"/> | |||
| ml"?> | ||||
| <?rfc | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7873.x | FC.6265.xml"/> | |||
| ml"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc | FC.7626.xml"/> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8027.x | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| ml"?> | FC.7873.xml"/> | |||
| <?rfc | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8094.x | FC.8027.xml"/> | |||
| ml"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc | FC.8094.xml"/> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8404.x | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| ml"?> | FC.8404.xml"/> | |||
| <?rfc | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8446.x | FC.8446.xml"/> | |||
| ml"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| <?rfc | FC.8555.xml"/> | |||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8555.x | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| ml"?> | FC.8618.xml"/> | |||
| <?rfc | ||||
| include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8618.x | <reference anchor="Ramaswamy-and-Wolf" target="http://www.ecs.umass.edu/ | |||
| ml"?> | ece/wolf/pubs/ton2007.pdf"> | |||
| <reference anchor='Ramaswamy-and-Wolf' | <front> | |||
| target='http://www.ecs.umass.edu/ece/wolf/pubs/ton2007.pdf'> | <title>High-Speed Prefix-Preserving IP Address Anonymization for | |||
| <front> | ||||
| <title>High-Speed Prefix-Preserving IP Address Anonymization for | ||||
| Passive Measurement Systems</title> | Passive Measurement Systems</title> | |||
| <author initials='R.' surname='Ramaswamy'> </author> | <author initials="R." surname="Ramaswamy"> </author> | |||
| <author initials='T.' surname='Wolf'> </author> | <author initials="T." surname="Wolf"> </author> | |||
| <date year='2007'/> | <date year="2007"/> | |||
| </front> | </front> | |||
| </reference> | <seriesInfo name="DOI" value="10.1109/TNET.2006.890128"/> | |||
| <reference anchor='SSL-Labs' target='https://www.ssllabs.com/ssltest/'> | </reference> | |||
| <front> | ||||
| <title>SSL Server Test</title> | <reference anchor="SSL-Labs" target="https://www.ssllabs.com/ssltest/"> | |||
| <author> | <front> | |||
| <organization>SSL Labs</organization> | <title>SSL Server Test</title> | |||
| </author> | <author> | |||
| <date year='2019'/> | <organization>SSL Labs</organization> | |||
| </front> | </author> | |||
| </reference> | <date year="2019"/> | |||
| <reference anchor='SURFnet-policy' | </front> | |||
| target='https://surf.nl/datasharing'> | </reference> | |||
| <front> | ||||
| <title>SURFnet Data Sharing Policy</title> | <reference anchor="SURFnet-policy" target="https://surf.nl/datasharing"> | |||
| <author> | <front> | |||
| <organization>SURFnet</organization> | <title>SURFnet Data Sharing Policy</title> | |||
| </author> | <author initials ="C" surname="Baartmans" /> | |||
| <date year='2016'/> | <author initials ="A" surname="van Wynsberghe" /> | |||
| </front> | <author initials ="R" surname="van Rijswijk-Deij" /> | |||
| </reference> | <author initials ="F" surname="Jorna" /> | |||
| <reference anchor='TCPdpriv' | <date year="2016" month="June"/> | |||
| target='http://ita.ee.lbl.gov/html/contrib/tcpdpriv.html'> | </front> | |||
| <front> | </reference> | |||
| <title>TCPdpriv</title> | ||||
| <author> | <reference anchor="tcpdpriv" | |||
| <organization>Ipsilon Networks, Inc.</organization> | target="http://fly.isti.cnr.it/software/tcpdpriv/"> | |||
| </author> | <front> | |||
| <date year='2005'/> | <title>TCPDRIV - Program for Eliminating Confidential Information fr | |||
| </front> | om Traces</title> | |||
| </reference> | <author> | |||
| <reference anchor='Xu-et-al.' | <organization>Ipsilon Networks, Inc.</organization> | |||
| target='http://an.kaist.ac.kr/~sbmoon/paper/intl-journal/2004-cn-anon | </author> | |||
| .pdf'> | <date year="2004"/> | |||
| <front> | </front> | |||
| <title>Prefix-preserving IP address anonymization: measurement-based | </reference> | |||
| <reference anchor="Xu-et-al" target="http://an.kaist.ac.kr/~sbmoon/paper | ||||
| /intl-journal/2004-cn-anon.pdf"> | ||||
| <front> | ||||
| <title>Prefix-preserving IP address anonymization: measurement-based | ||||
| security evaluation and a new cryptography-based scheme</title> | security evaluation and a new cryptography-based scheme</title> | |||
| <author initials='J.' surname='Fan'> </author> | <author initials="J." surname="Fan"> </author> | |||
| <author initials='J.' surname='Xu'> </author> | <author initials="J." surname="Xu"> </author> | |||
| <author initials='M. H.' surname='Ammar'> </author> | <author initials="M.H." surname="Ammar"> </author> | |||
| <author initials='S. B.' surname='Moon'> </author> | <author initials="S.B." surname="Moon"> </author> | |||
| <date year='2004'/> | <date year="2004"/> | |||
| </front> | </front> | |||
| </reference> | <seriesInfo name="DOI" value="10.1016/j.comnet.2004.03.033"/> | |||
| <reference anchor='dnsdist' target='https://dnsdist.org'> | </reference> | |||
| <front> | ||||
| <title>dnsdist Overview</title> | <reference anchor="dnsdist" target="https://dnsdist.org"> | |||
| <author> | <front> | |||
| <organization>PowerDNS</organization> | <title>dnsdist Overview</title> | |||
| </author> | <author> | |||
| <date year='2019'/> | <organization>PowerDNS</organization> | |||
| </front> | </author> | |||
| </reference> | </front> | |||
| <reference anchor='dnstap' target='http://dnstap.info'> | </reference> | |||
| <front> | ||||
| <title>DNSTAP</title> | <reference anchor="dnstap" target="https://dnstap.info"> | |||
| <author> | <front> | |||
| <organization>dnstap.info</organization> | <title>dnstap</title> | |||
| </author> | <author /> | |||
| <date year='2019'/> | </front> | |||
| </front> | </reference> | |||
| </reference> | ||||
| <reference anchor='dot-ALPN' | <reference anchor="dot-ALPN" target="https://www.iana.org/assignments/tl | |||
| target='https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiont | s-extensiontype-values"> | |||
| ype-values.xhtml#alpn-protocol-ids'> | <front> | |||
| <front> | <title>Transport Layer Security (TLS) Extensions: TLS Application-La | |||
| <title>TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs</title> | yer Protocol Negotiation (ALPN) Protocol IDs</title> | |||
| <author> | <author> | |||
| <organization>IANA (iana.org)</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date year='2020'/> | </front> | |||
| </front> | </reference> | |||
| </reference> | ||||
| <reference anchor='haproxy' target='https://www.haproxy.org/'> | <reference anchor="haproxy" target="https://www.haproxy.org/"> | |||
| <front> | <front> | |||
| <title>HAPROXY</title> | <title>HAProxy - The Reliable, High Performance TCP/HTTP Load Balanc | |||
| <author> | er</title> | |||
| <organization>haproxy.org</organization> | <author> | |||
| </author> | <organization/> | |||
| <date year='2019'/> | </author> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor='ipcipher1' | ||||
| target='https://medium.com/@bert.hubert/on-ip-address-encryption-secu | <reference anchor="ipcipher1" target="https://medium.com/@bert.hubert/on | |||
| rity-analysis-with-respect-for-privacy-dabe1201b476'> | -ip-address-encryption-security-analysis-with-respect-for-privacy-dabe1201b476"> | |||
| <front> | <front> | |||
| <title>On IP address encryption: security analysis with respect for | <title>On IP address encryption: security analysis with respect for | |||
| privacy</title> | privacy</title> | |||
| <author initials='B.' surname='Hubert'> </author> | <author initials="B." surname="Hubert"> </author> | |||
| <date year='2017'/> | <date year="2017" month="May" day="7"/> | |||
| </front> | </front> | |||
| </reference> | <refcontent>Medium</refcontent> | |||
| <reference anchor='ipcipher2' | </reference> | |||
| target='https://github.com/PowerDNS/ipcipher'> | ||||
| <front> | <reference anchor="ipcipher2" target="https://github.com/PowerDNS/ipciph | |||
| <title>ipcipher</title> | er"> | |||
| <author> | <front> | |||
| <organization>PowerDNS</organization> | <title>ipcipher</title> | |||
| </author> | <author> | |||
| <date year='2017'/> | <organization>PowerDNS</organization> | |||
| </front> | </author> | |||
| </reference> | <date year="2018" month="February" day="13"/> | |||
| <reference anchor='ipcrypt' | </front> | |||
| target='https://github.com/veorq/ipcrypt'> | <seriesInfo name="commit" value="fd47abe"/> | |||
| <front> | </reference> | |||
| <title>ipcrypt: IP-format-preserving encryption</title> | ||||
| <author> | <reference anchor="ipcrypt" target="https://github.com/veorq/ipcrypt"> | |||
| <organization>veorq</organization> | <front> | |||
| </author> | <title>ipcrypt: IP-format-preserving encryption</title> | |||
| <date year='2015'/> | <author> | |||
| </front> | <organization>veorq</organization> | |||
| </reference> | </author> | |||
| <reference anchor='ipcrypt-analysis' | <date year="2015" month="July" day="6"/> | |||
| target='https://www.ietf.org/mail-archive/web/cfrg/current/msg09494.h | </front> | |||
| tml'> | <seriesInfo name="commit" value="8cc12f9" /> | |||
| <front> | </reference> | |||
| <title>Analysis of ipcrypt?</title> | ||||
| <author initials='J.' surname='Aumasson'> </author> | <reference anchor="ipcrypt-analysis" target="https://mailarchive.ietf.or | |||
| <date year='2018'/> | g/arch/msg/cfrg/cFx5WJo48ZEN-a5cj_LlyrdN8-0/"> | |||
| </front> | <front> | |||
| </reference> | <title>Subject: Re: [Cfrg] Analysis of ipcrypt?</title> | |||
| <reference anchor='nginx' target='https://nginx.org/'> | <author initials="J-P" surname="Aumasson"> </author> | |||
| <front> | <date year="2018" month="February" day="22"/> | |||
| <title>NGINX</title> | </front> | |||
| <author> | <refcontent>message to the Cfrg mailing list</refcontent> | |||
| <organization>nginx.org</organization> | </reference> | |||
| </author> | ||||
| <date year='2019'/> | <reference anchor="nginx" target="https://nginx.org/"> | |||
| </front> | <front> | |||
| </reference> | <title>nginx news</title> | |||
| <reference anchor='pcap' target='http://www.tcpdump.org/'> | <author> | |||
| <front> | <organization>nginx.org</organization> | |||
| <title>PCAP</title> | </author> | |||
| <author> | <date year="2019"/> | |||
| <organization>tcpdump.org</organization> | </front> | |||
| </author> | </reference> | |||
| <date year='2016'/> | ||||
| </front> | <reference anchor="pcap" target="https://www.tcpdump.org/"> | |||
| </reference> | <front> | |||
| <reference anchor='policy-comparison' | <title>Tcpdump & Libpcap</title> | |||
| target='https://dnsprivacy.org/wiki/display/DP/Comparison+of+policy+and+priva | <author> | |||
| cy+statements+2019'> | <organization>The Tcpdump Group</organization> | |||
| <front> | </author> | |||
| <title>Comparison of policy and privacy statements 2019</title> | <date year="2020"/> | |||
| <author> | </front> | |||
| <organization>dnsprivacy.org</organization> | </reference> | |||
| </author> | ||||
| <date year='2019'/> | <reference anchor="policy-comparison" target="https://dnsprivacy.org/wik | |||
| </front> | i/display/DP/Comparison+of+policy+and+privacy+statements+2019"> | |||
| </reference> | <front> | |||
| <reference anchor='stunnel' | <title>Comparison of policy and privacy statements 2019</title> | |||
| target='https://kb.isc.org/article/AA-01386/0/DNS-over-TLS.html'> | <author initials="S" surname="Dickinson" /> | |||
| <front> | <date day="18" month="December" year="2019" /> | |||
| <title>DNS-over-TLS</title> | </front> | |||
| <author> | <refcontent>DNS Privacy Project</refcontent> | |||
| <organization>ISC Knowledge Database</organization> | </reference> | |||
| </author> | ||||
| <date year='2018'/> | <reference anchor="stunnel" target="https://kb.isc.org/article/AA-01386/ | |||
| </front> | 0/DNS-over-TLS.html"> | |||
| </reference> | <front> | |||
| <reference anchor='van-Dijkhuizen-et-al.' | <title>DNS over TLS</title> | |||
| target='https://doi.org/10.1145/3182660'> | <author initials="S" surname="Goldlust" /> | |||
| <front> | <author initials="C" surname="Almond" /> | |||
| <title>A Survey of Network Traffic Anonymisation Techniques and | <author initials="F" surname="Dupont" /> | |||
| <date year="2018" month="November" day="1"/> | ||||
| </front> | ||||
| <refcontent>ISC Knowledge Database"</refcontent> | ||||
| </reference> | ||||
| <reference anchor="van-Dijkhuizen-et-al" target="https://doi.org/10.1145 | ||||
| /3182660"> | ||||
| <front> | ||||
| <title>A Survey of Network Traffic Anonymisation Techniques and | ||||
| Implementations</title> | Implementations</title> | |||
| <author initials='N.' surname='Van Dijkhuizen '> </author> | <author initials="N." surname="Van Dijkhuizen "> </author> | |||
| <author initials='J.' surname='Van Der Ham'> </author> | <author initials="J." surname="Van Der Ham"> </author> | |||
| <date year='2018'/> | <date year="2018" month="May"/> | |||
| </front> | </front> | |||
| </reference> | <seriesInfo name="DOI" value="10.1145/3182660"/> | |||
| </references> | <refcontent>ACM Computing Surveys</refcontent> | |||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="documents" title="Documents"> | <section anchor="documents" numbered="true" toc="default"> | |||
| <t>This section provides an overview of some DNS privacy-related documents, | <name>Documents</name> | |||
| however, this is neither an exhaustive list nor a definitive statement on the | <t> | |||
| characteristic of the document. | ||||
| </t> | This section provides an overview of some DNS privacy-related | |||
| documents. However, this is neither an exhaustive list nor a | ||||
| definitive statement on the characteristics of any document with | ||||
| regard to potential increases or decreases in DNS privacy. | ||||
| <section anchor="potential-increases-in-dns-privacy" title="Potential | ||||
| increases in DNS privacy"> | ||||
| <t>These documents are limited in scope to communications between stub | ||||
| clients and recursive resolvers: | ||||
| </t> | </t> | |||
| <t> | <section anchor="potential-increases-in-dns-privacy" numbered="true" toc=" | |||
| <list style="symbols"> | default"> | |||
| <t>'Specification for DNS over Transport Layer Security (TLS)' <xref | <name>Potential Increases in DNS Privacy</name> | |||
| target="RFC7858"/>.</t> | <t>These documents are limited in scope to communications between stub | |||
| <t>'DNS over Datagram Transport Layer Security (DTLS)' <xref | clients and recursive resolvers: | |||
| target="RFC8094"/>. Note that this | ||||
| document has the Category of Experimental.</t> | ||||
| <t>'DNS Queries over HTTPS (DoH)' <xref target="RFC8484"/>.</t> | ||||
| <t>'Usage Profiles for DNS over TLS and DNS over DTLS' <xref | ||||
| target="RFC8310"/>.</t> | ||||
| <t>'The EDNS(0) Padding Option' <xref target="RFC7830"/> and 'Padding Policy | ||||
| for EDNS(0)' | ||||
| <xref target="RFC8467"/>.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <t>These documents apply to recursive and authoritative DNS but are relevant | <ul spacing="normal"> | |||
| <li>"Specification for DNS over Transport Layer Security (TLS)" <xref | ||||
| target="RFC7858" format="default"/>.</li> | ||||
| <li>"DNS over Datagram Transport Layer Security (DTLS)" <xref target=" | ||||
| RFC8094" format="default"/>. Note that this | ||||
| document has the category of Experimental.</li> | ||||
| <li>"DNS Queries over HTTPS (DoH)" <xref target="RFC8484" format="defa | ||||
| ult"/>.</li> | ||||
| <li>"Usage Profiles for DNS over TLS and DNS over DTLS" <xref target=" | ||||
| RFC8310" format="default"/>.</li> | ||||
| <li>"The EDNS(0) Padding Option" <xref target="RFC7830" | ||||
| format="default"/> and "Padding Policies for Extension Mechanisms | ||||
| for DNS (EDNS(0))" <xref target="RFC8467" format="default"/>.</li> | ||||
| </ul> | ||||
| <t>These documents apply to recursive and authoritative DNS but are rele | ||||
| vant | ||||
| when | when | |||
| considering the operation of a recursive server: | considering the operation of a recursive server: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li>"DNS Query Name Minimisation to Improve Privacy" <xref target="RFC | |||
| <t>'DNS Query Name minimization to Improve Privacy' <xref | 7816" format="default"/>.</li> | |||
| target="RFC7816"/>.</t> | </ul> | |||
| </list> | </section> | |||
| </t> | <section anchor="potential-decreases-in-dns-privacy" numbered="true" toc=" | |||
| </section> | default"> | |||
| <name>Potential Decreases in DNS Privacy</name> | ||||
| <section anchor="potential-decreases-in-dns-privacy" title="Potential | <t>These documents relate to functionality that could provide increased | |||
| decreases in DNS privacy"> | ||||
| <t>These documents relate to functionality that could provide increased | ||||
| tracking of | tracking of | |||
| user activity as a side effect: | user activity as a side effect: | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li>"Client Subnet in DNS Queries" <xref target="RFC7871" | |||
| <t>'Client Subnet in DNS Queries' <xref target="RFC7871"/>.</t> | format="default"/>.</li> | |||
| <t>'Domain Name System (DNS) Cookies' <xref target="RFC7873"/>).</t> | <li>"Domain Name System (DNS) Cookies" <xref target="RFC7873" | |||
| <t>'Transport Layer Security (TLS) Session Resumption without Server-Side | format="default"/>).</li> | |||
| State' | <li>"Transport Layer Security (TLS) Session Resumption without Server- | |||
| <xref target="RFC5077"/> referred to here as simply TLS session | Side | |||
| resumption.</t> | State" <xref target="RFC5077" format="default"/>, referred to here | |||
| <t><xref target="RFC8446"/> Appendix C.4 describes Client Tracking Prevention | as simply TLS session resumption.</li> | |||
| in TLS 1.3</t> | <li> | |||
| <t>'A DNS Packet Capture Format' <xref target="RFC8618"/>.</t> | <xref target="RFC8446" section="C.4" sectionFormat="comma"/> | |||
| <t>Passive DNS <xref target="RFC8499"/>.</t> | describes client tracking prevention in TLS 1.3</li> | |||
| <t>Section 8 of <xref target="RFC8484"/> outlines the privacy considerations | <li>"Compacted-DNS (C-DNS): A Format for DNS Packet Capture" <xref | |||
| target="RFC8618" format="default"/>.</li> | ||||
| <li>Passive DNS <xref target="RFC8499" format="default"/>.</li> | ||||
| <li><xref target="RFC8484" sectionFormat="of" | ||||
| section="8"/> outlines the privacy considerations | ||||
| of DoH. Note that | of DoH. Note that | |||
| (while that document advises exposing the minimal set of data needed to | (while that document advises exposing the minimal set of data needed to | |||
| achieve the desired feature set) depending on the specifics of a DoH | achieve the desired feature set), depending on the specifics of a DoH | |||
| implementation there may be increased identification and tracking compared to | implementation, there may be increased identification and tracking compared to | |||
| other DNS transports.</t> | other DNS transports.</li> | |||
| </list> | </ul> | |||
| </t> | </section> | |||
| </section> | <section anchor="related-operational-documents" numbered="true" toc="defau | |||
| lt"> | ||||
| <section anchor="related-operational-documents" title="Related operational | <name>Related Operational Documents</name> | |||
| documents"> | <ul spacing="normal"> | |||
| <t> | <li>"DNS Transport over TCP - Implementation Requirements" <xref targe | |||
| <list style="symbols"> | t="RFC7766" format="default"/>.</li> | |||
| <t>'DNS Transport over TCP - Implementation Requirements' <xref | <li>"DNS Transport over TCP - Operational Requirements" | |||
| target="RFC7766"/>.</t> | <xref target="I-D.ietf-dnsop-dns-tcp-requirements" format="default"/>.</li> | |||
| <t>'Operational requirements for DNS over TCP' | <li>"The edns-tcp-keepalive EDNS0 Option" <xref target="RFC7828" forma | |||
| <xref target="I-D.ietf-dnsop-dns-tcp-requirements"/>.</t> | t="default"/>.</li> | |||
| <t>'The edns-tcp-keepalive EDNS0 Option' <xref target="RFC7828"/>.</t> | <li>"DNS Stateful Operations" <xref target="RFC8490" format="default"/ | |||
| <t>'DNS Stateful Operations' <xref target="RFC8490"/>.</t> | >.</li> | |||
| </list> | </ul> | |||
| </t> | </section> | |||
| </section> | </section> | |||
| </section> | <section anchor="ip-address-techniques" numbered="true" toc="default"> | |||
| <name>IP Address Techniques</name> | ||||
| <section anchor="ip-address-techniques" title="IP address techniques"> | <t>The following table presents a high-level comparison of various techniq | |||
| <t>The following table presents a high level comparison of various techniques | ues | |||
| employed or under development in 2019, and classifies them according to | employed or under development in 2019 and classifies them according to | |||
| categorization of technique and other properties. Both the specific techniques | categorization of technique and other properties. Both the specific techniques | |||
| and the categorisations are described in more detail in the following | and the categorizations are described in more detail in the following | |||
| sections. | sections. | |||
| The list of techniques includes the main techniques in current use, but does | The list of techniques includes the main techniques in current use but does | |||
| not | not | |||
| claim to be comprehensive. | claim to be comprehensive. | |||
| </t> | </t> | |||
| <texttable title="Table 1: Classification of techniques | <table align="center"> | |||
| "> | <name>Classification of Techniques</name> | |||
| <ttcol align="left">Categorization/Property</ttcol> | <thead> | |||
| <ttcol align="center">GA</ttcol> | <tr> | |||
| <ttcol align="center">d</ttcol> | <th align="left">Categorization/Property</th> | |||
| <ttcol align="center">TC</ttcol> | <th align="center">GA</th> | |||
| <ttcol align="center">C</ttcol> | <th align="center">d</th> | |||
| <ttcol align="center">TS</ttcol> | <th align="center">TC</th> | |||
| <ttcol align="center">i</ttcol> | <th align="center">C</th> | |||
| <ttcol align="center">B</ttcol> | <th align="center">TS</th> | |||
| <th align="center">i</th> | ||||
| <th align="center">B</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="left">Anonymization</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Pseudonymization</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Format | ||||
| preserving</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Prefix preserving</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Replacement</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Filtering</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Generalization</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Enumeration</td> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Reordering/Shuffling</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Random substitution</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Cryptographic | ||||
| permutation</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">IPv6 issues</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">CPU intensive</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Memory intensive</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| <tr> | ||||
| <td align="left">Security concerns</td> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center"/> | ||||
| <td align="center">X</td> | ||||
| <td align="center"/> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>Legend of techniques:</t> | ||||
| <dl spacing="compact" indent="5"> | ||||
| <dt>GA</dt><dd>= Google Analytics</dd> | ||||
| <dt>d</dt><dd>= dnswasher</dd> | ||||
| <dt>TC</dt><dd>= TCPdpriv</dd> | ||||
| <dt>C</dt><dd>= CryptoPAn</dd> | ||||
| <dt>TS</dt><dd>= TSA</dd> | ||||
| <dt>i</dt><dd>= ipcipher</dd> | ||||
| <dt>B</dt><dd>= Bloom filter</dd> | ||||
| </dl> | ||||
| <c>Anonymization</c><c>X</c><c>X</c><c>X</c><c></c><c></c><c></c><c>X</c> | <t>The choice of which method to use for a particular application will dep | |||
| <c>Pseudoanonymization</c><c></c><c></c><c></c><c>X</c><c>X</c><c>X</c><c></c> | end | |||
| <c>Format | ||||
| preserving</c><c>X</c><c>X</c><c>X</c><c>X</c><c>X</c><c>X</c><c></c> | ||||
| <c>Prefix preserving</c><c></c><c></c><c>X</c><c>X</c><c>X</c><c></c><c></c> | ||||
| <c>Replacement</c><c></c><c></c><c>X</c><c></c><c></c><c></c><c></c> | ||||
| <c>Filtering</c><c>X</c><c></c><c></c><c></c><c></c><c></c><c></c> | ||||
| <c>Generalization</c><c></c><c></c><c></c><c></c><c></c><c></c><c>X</c> | ||||
| <c>Enumeration</c><c></c><c>X</c><c></c><c></c><c></c><c></c><c></c> | ||||
| <c>Reordering/Shuffling</c><c></c><c></c><c>X</c><c></c><c></c><c></c><c></c> | ||||
| <c>Random substitution</c><c></c><c></c><c>X</c><c></c><c></c><c></c><c></c> | ||||
| <c>Cryptographic | ||||
| permutation</c><c></c><c></c><c></c><c>X</c><c>X</c><c>X</c><c></c> | ||||
| <c>IPv6 issues</c><c></c><c></c><c></c><c></c><c>X</c><c></c><c></c> | ||||
| <c>CPU intensive</c><c></c><c></c><c></c><c>X</c><c></c><c></c><c></c> | ||||
| <c>Memory intensive</c><c></c><c></c><c>X</c><c></c><c></c><c></c><c></c> | ||||
| <c>Security concerns</c><c></c><c></c><c></c><c></c><c></c><c>X</c><c></c> | ||||
| </texttable> | ||||
| <t>Legend of techniques: GA = Google Analytics, d = dnswasher, TC = TCPdpriv, | ||||
| C = CryptoPAn, TS = TSA, i = ipcipher, B = Bloom filter | ||||
| </t> | ||||
| <t>The choice of which method to use for a particular application will depend | ||||
| on | on | |||
| the requirements of that application and consideration of the threat analysis | the requirements of that application and consideration of the threat analysis | |||
| of | of | |||
| the particular situation. | the particular situation. | |||
| </t> | </t> | |||
| <t>For example, a common goal is that distributed packet captures must be in | ||||
| an | ||||
| existing data format such as PCAP <xref target="pcap"/> or C-DNS <xref | ||||
| target="RFC8618"/> that can be used | ||||
| as input to existing analysis tools. In that case, use of a format-preserving | ||||
| technique is essential. This, though, is not cost-free - several authors | ||||
| (e.g., | ||||
| <xref target="Brenker-and-Arnes"/> have observed that, as the entropy in an | ||||
| IPv4 address is | ||||
| limited, if an attacker can | ||||
| </t> | ||||
| <t> | ||||
| <list style="symbols"> | ||||
| <t>ensure packets are captured by the target and</t> | ||||
| <t>send forged traffic with arbitrary source and destination addresses to that | ||||
| target and</t> | ||||
| <t>obtain a de-identified log of said traffic from that target</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>any format-preserving pseudonymization is vulnerable to an attack along the | ||||
| lines of a cryptographic chosen plaintext attack. | ||||
| </t> | ||||
| <section anchor="categorization-of-techniques" title="Categorization of | <t>For example, a common goal is that distributed packet captures must be | |||
| techniques"> | in | |||
| <t>Data minimization methods may be categorized by the processing used and the | an existing data format, such as PCAP <xref target="pcap" | |||
| format="default"/> or Compacted-DNS (C-DNS) <xref target="RFC8618" | ||||
| format="default"/>, that can be used | ||||
| as input to existing analysis tools. In that case, use of a format-preserv | ||||
| ing | ||||
| technique is essential. This, though, is not cost free; several authors | ||||
| (e.g., <xref target="Brekne-and-Arnes" format="default"/>) have observed | ||||
| that, as the entropy in an IPv4 address is limited, if an attacker can | ||||
| </t> | ||||
| <ul spacing="normal"> | ||||
| <li>ensure packets are captured by the target and</li> | ||||
| <li>send forged traffic with arbitrary source and destination addresses | ||||
| to that | ||||
| target and</li> | ||||
| <li>obtain a de-identified log of said traffic from that target,</li> | ||||
| </ul> | ||||
| <t>any format-preserving pseudonymization is vulnerable to an attack along | ||||
| the | ||||
| lines of a cryptographic chosen-plaintext attack. | ||||
| </t> | ||||
| <section anchor="categorization-of-techniques" numbered="true" toc="defaul | ||||
| t"> | ||||
| <name>Categorization of Techniques</name> | ||||
| <t>Data minimization methods may be categorized by the processing used a | ||||
| nd the | ||||
| properties of their outputs. The following builds on the categorization | properties of their outputs. The following builds on the categorization | |||
| employed in <xref target="RFC6235"/>: | employed in <xref target="RFC6235" format="default"/>: | |||
| </t> | </t> | |||
| <t> | <dl spacing="normal"> | |||
| <list style="symbols"> | <dt>Format-preserving.</dt><dd> Normally, when encrypting, the origina | |||
| <t>Format-preserving. Normally when encrypting, the original data length and | l data length and | |||
| patterns in the data should be hidden from an attacker. Some applications of | patterns in the data should be hidden from an attacker. Some applications of | |||
| de-identification, such as network capture de-identification, require that the | de-identification, such as network capture de-identification, require that the | |||
| de-identified data is of the same form as the original data, to allow the data | de-identified data is of the same form as the original data, to allow the data | |||
| to be parsed in the same way as the original.</t> | to be parsed in the same way as the original.</dd> | |||
| <t>Prefix preservation. Values such as IP addresses and MAC addresses contain | <dt>Prefix preservation.</dt><dd> Values such as IP addresses and MAC | |||
| prefix information that can be valuable in analysis, e.g., manufacturer ID in | addresses contain | |||
| MAC addresses, subnet in IP addresses. Prefix preservation ensures that | prefix information that can be valuable in analysis -- e.g., manufacturer ID in | |||
| prefixes are de-identified consistently; e.g., if two IP addresses are from | MAC addresses, or subnet in IP addresses. Prefix preservation ensures that | |||
| prefixes are de-identified consistently; for example, if two IP addresses are fr | ||||
| om | ||||
| the | the | |||
| same subnet, a prefix preserving de-identification will ensure that their | same subnet, a prefix preserving de-identification will ensure that their | |||
| de-identified counterparts will also share a subnet. Prefix preservation may | de-identified counterparts will also share a subnet. Prefix preservation may | |||
| be fixed (i.e. based on a user selected prefix length identified in advance to | be fixed (i.e., based on a user-selected prefix length identified in advance to | |||
| be preserved ) or general.</t> | be preserved ) or general.</dd> | |||
| <t>Replacement. A one-to-one replacement of a field to a new value of the same | <dt>Replacement.</dt><dd> A one-to-one replacement of a field to a new value of | |||
| type, for example, using a regular expression.</t> | the same | |||
| <t>Filtering. Removing or replacing data in a field. Field | type -- for example, using a regular expression.</dd> | |||
| <dt>Filtering.</dt><dd> Removing or replacing data in a field. Field | ||||
| data can be overwritten, often with zeros, either partially (truncation or | data can be overwritten, often with zeros, either partially (truncation or | |||
| reverse truncation) or | reverse truncation) or | |||
| completely (black-marker anonymization).</t> | completely (black-marker anonymization).</dd> | |||
| <t>Generalization. Data is replaced by more general data with reduced | <dt>Generalization.</dt><dd> Data is replaced by more general data wit | |||
| h reduced | ||||
| specificity. One example would be to replace all TCP/UDP port numbers with one | specificity. One example would be to replace all TCP/UDP port numbers with one | |||
| of two fixed values indicating whether the original port was ephemeral | of two fixed values indicating whether the original port was ephemeral | |||
| (>=1024) or non-ephemeral (>1024). Another example, precision | (>=1024) or nonephemeral (>1024). Another example, precision | |||
| degradation, | degradation, | |||
| reduces the accuracy of e.g., a numeric value or a timestamp.</t> | reduces the accuracy of, for example, a numeric value or a timestamp.</dd> | |||
| <t>Enumeration. With data from a well-ordered set, replace the first data item | ||||
| data using a random initial value and then allocate ordered values for | <dt>Enumeration.</dt><dd> With data from a well-ordered set, replace | |||
| subsequent data items. When used with timestamp data, this preserves ordering | the first data item's data using a random initial value and then | |||
| but loses precision and distance.</t> | allocate ordered values for | |||
| <t>Reordering/shuffling. Preserving the original data, but rearranging its | subsequent data items. When used with timestamp data, this preserves or | |||
| dering | ||||
| but loses precision and distance.</dd> | ||||
| <dt>Reordering/shuffling.</dt><dd> Preserving the original data, but r | ||||
| earranging its | ||||
| order, | order, | |||
| often in a random manner.</t> | often in a random manner.</dd> | |||
| <t>Random substitution. As replacement, but using randomly generated | <dt>Random substitution.</dt><dd> As replacement, but using randomly g | |||
| enerated | ||||
| replacement | replacement | |||
| values.</t> | values.</dd> | |||
| <t>Cryptographic permutation. Using a permutation function, such as a hash | <dt>Cryptographic permutation.</dt><dd> Using a permutation function, | |||
| such as a hash | ||||
| function or cryptographic block cipher, to generate a replacement | function or cryptographic block cipher, to generate a replacement | |||
| de-identified value.</t> | de-identified value.</dd> | |||
| </list> | </dl> | |||
| </t> | </section> | |||
| </section> | <section anchor="specific-techniques" numbered="true" toc="default"> | |||
| <name>Specific Techniques</name> | ||||
| <section anchor="specific-techniques" title="Specific techniques"> | <section anchor="google-analytics-nonprefix-filtering" numbered="true" t | |||
| oc="default"> | ||||
| <section anchor="google-analytics-nonprefix-filtering" title="Google Analytics | <name>Google Analytics Non-Prefix Filtering</name> | |||
| non-prefix filtering"> | <t>Since May 2010, Google Analytics has provided a facility <xref targ | |||
| <t>Since May 2010, Google Analytics has provided a facility <xref | et="IP-Anonymization-in-Analytics" format="default"/> that allows website | |||
| target="IP-Anonymization-in-Analytics"/> that allows website | owners to request that all their users' IP addresses are anonymized within | |||
| owners to request that all their users IP addresses are anonymized within | ||||
| Google Analytics processing. This very basic anonymization simply sets to zero | Google Analytics processing. This very basic anonymization simply sets to zero | |||
| the least significant 8 bits of IPv4 addresses, and the least significant 80 | the least significant 8 bits of IPv4 addresses, and the least significant 80 | |||
| bits of IPv6 addresses. The level of anonymization this produces is perhaps | bits of IPv6 addresses. The level of anonymization this produces is perhaps | |||
| questionable. There are some analysis results <xref | questionable. There are some analysis results <xref | |||
| target="Geolocation-Impact-Assessement"/> | target="Geolocation-Impact-Assessment" format="default"/> that suggest that the | |||
| which suggest that the impact of | impact of | |||
| this on reducing the accuracy of determining the user's location from their IP | this on reducing the accuracy of determining the user's location from their IP | |||
| address is less than might be hoped; the average discrepancy in identification | address is less than might be hoped; the average discrepancy in identification | |||
| of the user city for UK users is no more than 17%. | of the user city for UK users is no more than 17%. | |||
| </t> | </t> | |||
| <t>Anonymization: Format-preserving, Filtering (trucation). | <dl> | |||
| </t> | <dt>Anonymization:</dt><dd> Format-preserving, Filtering (truncation). | |||
| </section> | </dd> | |||
| </dl> | ||||
| <section anchor="dnswasher" title="dnswasher"> | </section> | |||
| <t>Since 2006, PowerDNS have included a de-identification tool dnswasher | <section anchor="dnswasher" numbered="true" toc="default"> | |||
| <xref target="PowerDNS-dnswasher"/> with their PowerDNS product. This is a | <name>dnswasher</name> | |||
| <t>Since 2006, PowerDNS has included a de-identification tool, dnswash | ||||
| er | ||||
| <xref target="PowerDNS-dnswasher" format="default"/>, with their PowerDNS | ||||
| product. This is a | ||||
| PCAP filter that | PCAP filter that | |||
| performs a one-to-one mapping of end user IP addresses with an anonymized | performs a one-to-one mapping of end-user IP addresses with an anonymized | |||
| address. A table of user IP addresses and their de-identified counterparts is | address. A table of user IP addresses and their de-identified counterparts is | |||
| kept; the first IPv4 user addresses is translated to 0.0.0.1, the second to | 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-identified address therefore depends on the order | 0.0.0.2, and so on. The de-identified address therefore depends on the order | |||
| that | that | |||
| addresses arrive in the input, and running over a large amount of data the | addresses arrive in the input, and when 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. | |||
| </t> | </t> | |||
| <t>Anonymization: Format-preserving, Enumeration. | <dl> | |||
| </t> | <dt>Anonymization:</dt><dd> Format-preserving, Enumeration.</dd> | |||
| </section> | </dl> | |||
| </section> | ||||
| <section anchor="prefixpreserving-map" title="Prefix-preserving map"> | <section anchor="prefixpreserving-map" numbered="true" toc="default"> | |||
| <t>Used in <xref target="TCPdpriv"/>, | <name>Prefix-Preserving Map</name> | |||
| this algorithm stores a set of original and anonymised IP | <t>Used in <xref target="tcpdpriv" format="default"/>, | |||
| this algorithm stores a set of original and anonymized IP | ||||
| address pairs. When a new IP address arrives, it is compared with previous | address pairs. When a new IP address arrives, it is compared with previous | |||
| addresses to determine the longest prefix match. The new address is anonymized | addresses to determine the longest prefix match. The new address is anonymized | |||
| by using the same prefix, with the remainder of the address anonymized with a | by using the same prefix, with the remainder of the address anonymized with a | |||
| random value. The use of a random value means that TCPdpriv is not | random value. The use of a random value means that TCPdpriv is not | |||
| deterministic; different anonymized values will be generated on each run. The | deterministic; different anonymized values will be generated on each run. | |||
| need to store previous addresses means that TCPdpriv has significant and | ||||
| unbounded memory requirements, and because of the need to allocated anonymized | ||||
| addresses sequentially cannot be used in parallel processing. | ||||
| </t> | ||||
| <t>Anonymization: Format-preserving, prefix preservation (general). | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="cryptographic-prefixpreserving-pseudonymization" | The need to store previous addresses means that TCPdpriv has significant and | |||
| title="Cryptographic Prefix-Preserving Pseudonymization"> | unbounded memory requirements. The need to allocate anonymized addresses | |||
| <t>Cryptographic prefix-preserving pseudonymization was originally proposed as | sequentially means that TCPdpriv cannot be used in parallel processing. | |||
| </t> | ||||
| <dl> | ||||
| <dt>Anonymization:</dt><dd> Format-preserving, prefix preservation (ge | ||||
| neral).</dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section anchor="cryptographic-prefixpreserving-pseudonymization" number | ||||
| ed="true" toc="default"> | ||||
| <name>Cryptographic Prefix-Preserving Pseudonymization</name> | ||||
| <t>Cryptographic prefix-preserving pseudonymization was originally pro | ||||
| posed as | ||||
| an | an | |||
| improvement to the prefix-preserving map implemented in TCPdpriv, described in | improvement to the prefix-preserving map implemented in TCPdpriv, described in | |||
| <xref target="Xu-et-al."/> and implemented in the <xref target="Crypto-PAn"/> | <xref target="Xu-et-al" format="default"/> and implemented in the <xref target=" Crypto-PAn" format="default"/> | |||
| tool. | tool. | |||
| Crypto-PAn is now frequently | Crypto-PAn is now frequently | |||
| used as an acronym for the algorithm. Initially it was described for IPv4 | used as an acronym for the algorithm. Initially, it was described for IPv4 | |||
| addresses only; extension for IPv6 addresses was proposed in <xref | addresses only; extension for IPv6 addresses was proposed in <xref target="Harva | |||
| target="Harvan"/>. This uses a cryptographic algorithm | n" format="default"/>. This uses a cryptographic algorithm | |||
| rather than a random value, and thus pseudonymity is determined uniquely by | rather than a random value, and thus pseudonymity is determined uniquely by | |||
| the | the | |||
| encryption key, and is deterministic. It requires a separate AES encryption | encryption key, and is deterministic. It requires a separate AES encryption | |||
| for | for | |||
| each output bit, so has a non-trivial calculation overhead. This can be | each output bit and so has a nontrivial calculation overhead. This can be | |||
| mitigated to some extent (for IPv4, at least) by pre-calculating results for | mitigated to some extent (for IPv4, at least) by precalculating results for | |||
| some number of prefix bits. | some number of prefix bits. | |||
| </t> | </t> | |||
| <t>Pseudonymization: Format-preserving, prefix preservation (general). | <dl> | |||
| </t> | <dt>Pseudonymization:</dt><dd> Format-preserving, prefix preservation | |||
| </section> | (general).</dd> | |||
| </dl> | ||||
| <section anchor="tophash-subtreereplicated-anonymization" title="Top-hash | </section> | |||
| Subtree-replicated Anonymization"> | <section anchor="tophash-subtreereplicated-anonymization" numbered="true | |||
| <t>Proposed in <xref target="Ramaswamy-and-Wolf"/>, | " toc="default"> | |||
| <name>Top-Hash Subtree-Replicated Anonymization</name> | ||||
| <t>Proposed in <xref target="Ramaswamy-and-Wolf" format="default"/>, | ||||
| Top-hash Subtree-replicated Anonymization (TSA) | Top-hash Subtree-replicated Anonymization (TSA) | |||
| originated in response to the requirement for faster processing than | originated in response to the requirement for faster processing than | |||
| Crypto-PAn. | Crypto-PAn. | |||
| It used hashing for the most significant byte of an IPv4 address, and a | It used hashing for the most significant byte of an IPv4 address and a | |||
| pre-calculated binary tree structure for the remainder of the address. To save | precalculated binary-tree structure for the remainder of the address. | |||
| To save | ||||
| memory space, replication is used within the tree structure, reducing the size | memory space, replication is used within the tree structure, reducing the size | |||
| of the pre-calculated structures to a few Mb for IPv4 addresses. Address | of the precalculated structures to a few megabytes for IPv4 addresses. Address | |||
| pseudonymization is done via hash and table lookup, and so requires minimal | pseudonymization is done via hash and table lookup and so requires minimal | |||
| computation. However, due to the much increased address space for IPv6, TSA is | computation. However, due to the much-increased address space for IPv6, TSA is | |||
| not memory efficient for IPv6. | not memory efficient for IPv6. | |||
| </t> | </t> | |||
| <t>Pseudonymization: Format-preserving, prefix preservation (general). | <dl> | |||
| </t> | <dt>Pseudonymization:</dt><dd> Format-preserving, prefix preservation | |||
| </section> | (general).</dd> | |||
| </dl> | ||||
| <section anchor="ipcipher" title="ipcipher"> | </section> | |||
| <t>A recently-released proposal from PowerDNS, ipcipher | <section anchor="ipcipher" numbered="true" toc="default"> | |||
| <xref target="ipcipher1"/> <xref target="ipcipher2"/> is a simple | <name>ipcipher</name> | |||
| <t>A recently released proposal from PowerDNS, ipcipher | ||||
| <xref target="ipcipher1" format="default"/> <xref target="ipcipher2" | ||||
| format="default"/>, is a simple | ||||
| pseudonymization technique for IPv4 and IPv6 addresses. IPv6 addresses are | pseudonymization technique for IPv4 and IPv6 addresses. IPv6 addresses are | |||
| encrypted directly with AES-128 using a key (which may be derived from a | encrypted directly with AES-128 using a key (which may be derived from a | |||
| passphrase). IPv4 addresses are similarly encrypted, but using a recently | passphrase). IPv4 addresses are similarly encrypted, but using a recently | |||
| proposed encryption <xref target="ipcrypt"/> suitable for 32bit | proposed encryption <xref target="ipcrypt" format="default"/> suitable for | |||
| block lengths. However, the author of ipcrypt has since indicated <xref | 32-bit block lengths. However, the author of ipcrypt has since indicated <xref | |||
| target="ipcrypt-analysis"/> that it has | target="ipcrypt-analysis" format="default"/> that it has | |||
| low security, and further analysis has revealed it is vulnerable to attack. | low security, and further analysis has revealed it is vulnerable to attack. | |||
| </t> | </t> | |||
| <t>Pseudonymization: Format-preserving, cryptographic permutation. | <dl> | |||
| </t> | <dt>Pseudonymization:</dt><dd>Format-preserving, cryptographic permuta | |||
| </section> | tion.</dd> | |||
| </dl> | ||||
| <section anchor="bloom-filters" title="Bloom filters"> | </section> | |||
| <t>van Rijswijk-Deij et al. | <section anchor="bloom-filters" numbered="true" toc="default"> | |||
| have recently described work using Bloom filters <xref target="Bloom-filter"/> | <name>Bloom Filters</name> | |||
| <t>van Rijswijk-Deij et al. | ||||
| have recently described work using Bloom Filters <xref target="Bloom-filter" for | ||||
| mat="default"/> | ||||
| to | to | |||
| categorize query traffic and record the traffic as the state of multiple | categorize query traffic and record the traffic as the state of multiple | |||
| filters. The goal of this work is to allow operators to identify so-called | filters. The goal of this work is to allow operators to identify so-called | |||
| Indicators of Compromise (IOCs) originating from specific subnets without | Indicators of Compromise (IOCs) originating from specific subnets without | |||
| storing information about, or be able to monitor the DNS queries of an | storing information about, or being able to monitor, the DNS queries of an | |||
| individual user. By using a Bloom filter, it is possible to determine with a | individual user. 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 of | high probability if, for example, a particular query was made, but the set of | |||
| queries made cannot be recovered from the filter. Similarly, by mixing queries | queries made cannot be recovered from the filter. Similarly, by mixing queries | |||
| from a sufficient number of users in a single filter, it becomes practically | from a sufficient number of users in a single filter, it becomes practically | |||
| impossible to determine if a particular user performed a particular | impossible to determine if a particular user performed a particular | |||
| query. Large | query. Large | |||
| numbers of queries can be tracked in a memory-efficient way. As filter status | numbers of queries can be tracked in a memory-efficient way. As filter status | |||
| is | is | |||
| stored, this approach cannot be used to regenerate traffic, and so cannot be | stored, this approach cannot be used to regenerate traffic and so cannot be | |||
| used with tools used to process live traffic. | used with tools used to process live traffic. | |||
| </t> | ||||
| <dl> | ||||
| <dt>Anonymized:</dt><dd> Generalization.</dd> | ||||
| </dl> | ||||
| </section> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="current-policy-and-privacy-statements" numbered="true" toc= | ||||
| "default"> | ||||
| <name>Current Policy and Privacy Statements</name> | ||||
| <t>A tabular comparison of policy and privacy statements from various DNS | ||||
| privacy service operators based loosely on the proposed RPS structure can | ||||
| be found at <xref target="policy-comparison" format="default"/>. The | ||||
| analysis is based on the data available in December 2019. | ||||
| </t> | </t> | |||
| <t>Anonymized: Generalization. | <t>We note that the existing policies vary widely in style, content, and | |||
| </t> | detail, and it is not uncommon for the full text for a given operator to | |||
| </section> | equate to more than 10 pages (A4 size) of text in a moderate-sized font. It is a | |||
| </section> | nontrivial task today for a user to extract a meaningful overview of the | |||
| </section> | ||||
| <section anchor="current-policy-and-privacy-statements" title="Current policy | ||||
| and privacy statements"> | ||||
| <t>A tabular comparison of policy and privacy statements from various DNS | ||||
| Privacy service operators based loosely on the proposed RPS structure can | ||||
| be found at <xref target="policy-comparison"/>. The analysis is based on the | ||||
| data | ||||
| available in December 2019. | ||||
| </t> | ||||
| <t>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 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 meaningful overview of the | ||||
| different services on offer. | different services on offer. | |||
| </t> | </t> | |||
| <t>It is also noted that Mozilla have published a DoH resolver policy | <t>It is also noted that Mozilla has published a DoH resolver policy | |||
| <xref target="DoH-resolver-policy"/>, which describes the minimum set of | <xref target="DoH-resolver-policy" format="default"/> that describes the minimum | |||
| set of | ||||
| policy | policy | |||
| requirements that a party must satisfy to be considered as a potential | requirements that a party must satisfy to be considered as a potential | |||
| partner for Mozilla’s Trusted Recursive Resolver (TRR) program. | partner for Mozilla's Trusted Recursive Resolver (TRR) program. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="example-rps" numbered="true" toc="default"> | ||||
| <section anchor="example-rps" title="Example RPS"> | <name>Example RPS</name> | |||
| <t>The following example RPS is very loosely based on some elements of | <t>The following example RPS is very loosely based on some elements of | |||
| published privacy statements for some public resolvers, with additional fields | published privacy statements for some public resolvers, with additional fields | |||
| populated to illustrate the what the full contents of an RPS might | populated to illustrate what the full contents of an RPS might | |||
| look like. This should not be interpreted as | look like. This should not be interpreted as | |||
| </t> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <list style="symbols"> | <li>having been reviewed or approved by any operator in any way</li> | |||
| <t>having been reviewed or approved by any operator in any way</t> | <li>having any legal standing or validity at all</li> | |||
| <t>having any legal standing or validity at all</t> | <li>being complete or exhaustive</li> | |||
| <t>being complete or exhaustive</t> | </ul> | |||
| </list> | <t>This is a purely hypothetical example of an RPS to outline example | |||
| </t> | contents -- in this case, for a public resolver operator providing a basic DNS | |||
| <t>This is a purely hypothetical example of an RPS to outline example | Privacy service via one IP address and one DoH URI with security-based | |||
| contents - in this case for a public resolver operator providing a basic DNS | ||||
| Privacy service via one IP address and one DoH URI with security based | ||||
| filtering. It does aim to meet minimal compliance as specified in | filtering. It does aim to meet minimal compliance as specified in | |||
| <xref target="recommendations-for-dns-privacy-services"/>. | <xref target="recommendations-for-dns-privacy-services" format="default"/>. | |||
| </t> | </t> | |||
| <section anchor="policy-1" title="Policy"> | <section anchor="policy-1" numbered="true" toc="default"> | |||
| <t> | <name>Policy</name> | |||
| <list style="numbers"> | <ol spacing="normal" type="1"> | |||
| <t>Treatment of IP addresses. Many nations classify IP addresses as personal | <li>Treatment of IP addresses. Many nations classify IP addresses as p | |||
| ersonal | ||||
| data, and we take a conservative approach in treating IP addresses as personal | data, and we take a conservative approach in treating IP addresses as personal | |||
| data in all jurisdictions in which our systems reside.</t> | data in all jurisdictions in which our systems reside.</li> | |||
| <t>Data collection and sharing. | <li> | |||
| <list style="numbers"> | <t>Data collection and sharing. | |||
| <t>IP addresses. Our normal course of data management does | </t> | |||
| <ol spacing="normal" type="a"> | ||||
| <li>IP addresses. Our normal course of data management does | ||||
| not have any IP address information or other personal data logged to disk or | not have any IP address information or other personal data logged to disk or | |||
| transmitted out of the location in which the query was received. We may | transmitted out of the location in which the query was received. We may | |||
| aggregate certain counters to larger network block levels for statistical | aggregate certain counters to larger network block levels for | |||
| collection purposes, but those counters do not maintain specific IP address | statistical collection purposes, but those counters do not maintain specific | |||
| data nor is the format or model of data stored capable of being | IP address data, nor is the format or model of data stored capable of being | |||
| reverse-engineered to ascertain what specific IP addresses made what | reverse-engineered to ascertain what specific IP addresses made what | |||
| queries.</t> | queries.</li> | |||
| <t>Data collected in logs. We do keep some generalized location information | <li> | |||
| (at the city/metropolitan area level) so that we can conduct debugging and | <t>Data collected in logs. We do keep some generalized | |||
| analyze abuse phenomena. We also use the collected information for the | location information | |||
| creation and sharing of telemetry (timestamp, geolocation, number of hits, | (at the city / metropolitan-area level) so that we can conduct de | |||
| first seen, last seen) for contributors, public publishing of general | bugging and | |||
| statistics of system use (protections, threat types, counts, etc.) | analyze abuse phenomena. We also use the collected information fo | |||
| When you use our DNS Services, here is the full list of items that are | r the | |||
| included in our logs: | creation and sharing of telemetry (timestamp, geolocation, number | |||
| <list style="symbols"> | of hits, | |||
| <t>Request domain name, e.g., example.net</t> | first seen, last seen) for contributors, public publishing of gen | |||
| <t>Record type of requested domain, e.g., A, AAAA, NS, MX, TXT, etc.</t> | eral | |||
| <t>Transport protocol on which the request arrived, i.e. UDP, TCP, DoT, | statistics of system use (protections, threat types, counts, etc. | |||
| <vspace/> | ). | |||
| DoH</t> | When you use our DNS services, here is the full list of items tha | |||
| <t>Origin IP general geolocation information: i.e. geocode, region ID, | t are | |||
| city ID, and metro code</t> | included in our logs: | |||
| <t>IP protocol version – IPv4 or IPv6</t> | </t> | |||
| <t>Response code sent, e.g., SUCCESS, SERVFAIL, NXDOMAIN, etc.</t> | <ul spacing="normal"> | |||
| <t>Absolute arrival time using a precision in ms</t> | <li>Requested domain name -- e.g., example.net</li> | |||
| <t>Name of the specific instance that processed this request</t> | <li>Record type of requested domain -- e.g., A, AAAA, NS, | |||
| <t>IP address of the specific instance to which this request was | MX, TXT, etc.</li> | |||
| addressed (no relation to the requestor’s IP address)</t> | <li> | |||
| </list> | <t>Transport protocol on which the request arrived -- | |||
| i.e., UDP, TCP, DoT, DoH</t> | ||||
| </li> | ||||
| <li>Origin IP general geolocation information -- i.e., geocode | ||||
| , region ID, | ||||
| city ID, and metro code</li> | ||||
| <li>IP protocol version -- IPv4 or IPv6</li> | ||||
| <li>Response code sent -- e.g., SUCCESS, SERVFAIL, NXDOMAIN, e | ||||
| tc.</li> | ||||
| <li>Absolute arrival time using a precision in ms</li> | ||||
| <li>Name of the specific instance that processed this request< | ||||
| /li> | ||||
| <li>IP address of the specific instance to which this request | ||||
| was | ||||
| addressed (no relation to the requestor's IP address)</li> | ||||
| </ul> | ||||
| <t> | ||||
| We may keep the following data as summary information, including all the | We may keep the following data as summary information, including all the | |||
| above EXCEPT for data about the DNS record requested: | above EXCEPT for data about the DNS record requested: | |||
| <list style="symbols"> | </t> | |||
| <t>Currently-advertised BGP-summarized IP prefix/netmask of apparent | <ul spacing="normal"> | |||
| client origin</t> | <li>Currently advertised BGP-summarized IP prefix/netmask of a | |||
| <t>Autonomous system number (BGP ASN) of apparent client origin</t> | pparent | |||
| </list> | client origin</li> | |||
| <li>Autonomous system number (BGP ASN) of apparent client orig | ||||
| in</li> | ||||
| </ul> | ||||
| <t> | ||||
| All the above data may be kept in full or partial form in permanent | All the above data may be kept in full or partial form in permanent | |||
| archives.</t> | archives.</t> | |||
| <t>Sharing of data. | </li> | |||
| <li>Sharing of data. | ||||
| Except as described in this document, we do not intentionally share, | Except as described in this document, we do not intentionally share, | |||
| sell, or rent individual personal information associated with the | sell, or rent individual personal information associated with the | |||
| requestor (i.e. source IP address or any other information that can | requestor (i.e., source IP address or any other information that can | |||
| positively identify the client using our infrastructure) with anyone | positively identify the client using our infrastructure) with anyone | |||
| without your consent. | without your consent. | |||
| We generate and share high level anonymized aggregate statistics | We generate and share high-level anonymized aggregate statistics, | |||
| including threat metrics on threat type, geolocation, and if available, | including threat metrics on threat type, geolocation, and if available, | |||
| sector, as well as other vertical metrics including performance metrics | sector, as well as other vertical metrics, including performance metrics | |||
| on our DNS Services (i.e. number of threats blocked, infrastructure | on our DNS Services (i.e., number of threats blocked, infrastructure | |||
| uptime) when available with our threat intelligence (TI) partners, | uptime) when available with our Threat Intelligence (TI) partners, | |||
| academic researchers, or the public. | academic researchers, or the public. | |||
| Our DNS Services share anonymized data on specific domains queried | Our DNS services share anonymized data on specific domains queried | |||
| (records such as domain, timestamp, geolocation, number of hits, first | (records such as domain, timestamp, geolocation, number of hits, first | |||
| seen, last seen) with our threat intelligence partners. Our DNS Services | seen, last seen) with our Threat Intelligence partners. Our DNS service | |||
| also builds, stores, and may share certain DNS data streams which store | also builds, stores, and may share certain DNS data streams which store | |||
| high level information about domain resolved, query types, result codes, | high level information about domain resolved, query types, result codes, | |||
| and timestamp. These streams do not contain IP address information of | and timestamp. These streams do not contain the IP address information of | |||
| requestor and cannot be correlated to IP address or other personal data. | the requestor and cannot be correlated to IP address or other personal data. | |||
| We do not and never will share any of its data with marketers, nor will | We do not and never will share any of the requestor's data with marketers, nor w | |||
| it use this data for demographic analysis.</t> | ill | |||
| </list></t> | we use this data for demographic analysis.</li> | |||
| <t>Exceptions. There are exceptions to this storage model: In the event of | </ol> | |||
| actions or observed behaviors which we deem malicious or anomalous, we may | </li> | |||
| <li>Exceptions. There are exceptions to this storage model: In the eve | ||||
| nt of | ||||
| actions or observed behaviors that we deem malicious or anomalous, we may | ||||
| utilize more detailed logging to collect more specific IP address data in the | utilize more detailed logging to collect more specific IP address data in the | |||
| process of normal network defence and mitigation. This collection and | process of normal network defense and mitigation. This collection and | |||
| transmission off-site will be limited to IP addresses that we determine are | transmission off-site will be limited to IP addresses that we determine are | |||
| involved in the event.</t> | involved in the event.</li> | |||
| <t>Associated entities. Details of our Threat Intelligence partners can be | <li>Associated entities. Details of our Threat Intelligence partners c | |||
| an be | ||||
| found | found | |||
| at our website page (insert link).</t> | at our website page (insert link).</li> | |||
| <t>Correlation of Data. We do not correlate or combine information from our | <li>Correlation of Data. We do not correlate or combine information fr | |||
| om our | ||||
| logs | logs | |||
| with any personal information that you have provided us for other services, or | with any personal information that you have provided us for other services, or | |||
| with your specific IP address.</t> | with your specific IP address.</li> | |||
| <t>Result filtering. | <li> | |||
| <list style="numbers"> | <t>Result filtering. | |||
| <t>Filtering. We utilise cyber threat intelligence about malicious domains | </t> | |||
| from a variety of public and private sources and blocks access to those | <ol spacing="normal" type="a"> | |||
| malicious domains when your system attempts to contact them. An NXDOMAIN is | <li> | |||
| returned for blocked sites. | <t>Filtering. We utilize cyber-threat intelligence about | |||
| <list style="numbers"> | malicious domains | |||
| <t>Censorship. We will not provide a censoring component and will limit our | from a variety of public and private sources and block access to | |||
| those | ||||
| malicious domains when your system attempts to contact | ||||
| them. An NXDOMAIN is | ||||
| returned for blocked sites. | ||||
| </t> | ||||
| <ol spacing="normal" type="i"> | ||||
| <li>Censorship. We will not provide a censoring component and | ||||
| will limit our | ||||
| actions solely to the blocking of malicious domains around phishing, | actions solely to the blocking of malicious domains around phishing, | |||
| malware, and exploit kit domains.</t> | malware, and exploit-kit domains.</li> | |||
| <t>Accidental blocking. We implement allowlisting algorithms to make sure | <li>Accidental blocking. We implement allowlisting algorithms | |||
| to make sure | ||||
| legitimate domains are not blocked by accident. However, in the rare case of | legitimate domains are not blocked by accident. However, in the rare case of | |||
| blocking a legitimate domain, we work with the users to quickly allowlist | blocking a legitimate domain, we work with the users to quickly allowlist | |||
| that domain. Please use our support form (insert link) if you believe we are | that domain. Please use our support form (insert link) if you believe we are | |||
| blocking a domain in error.</t> | blocking a domain in error.</li> | |||
| </list></t> | </ol> | |||
| </list></t> | </li> | |||
| </list> | </ol> | |||
| </t> | </li> | |||
| </section> | </ol> | |||
| </section> | ||||
| <section anchor="practice-1" title="Practice"> | <section anchor="practice-1" numbered="true" toc="default"> | |||
| <t> | <name>Practice</name> | |||
| <list style="numbers"> | <ol spacing="normal" type="1"> | |||
| <t>Deviations from Policy. None in place since (insert date).</t> | <li>Deviations from Policy. None in place since (insert date).</li> | |||
| <t>Client facing capabilities. | <li> | |||
| <list style="numbers"> | <t>Client-facing capabilities. | |||
| <t>We offer UDP and TCP DNS on port 53 on (insert IP address)</t> | </t> | |||
| <t>We offer DNS over TLS as specified in RFC7858 on (insert IP address). It | <ol spacing="normal" type="a"> | |||
| is available on port 853 and port 443. We also implement RFC7766. | <li>We offer UDP and TCP DNS on port 53 on (insert IP address)</li | |||
| <list style="numbers"> | > | |||
| <t>The DoT authentication domain name used is (insert domain name).</t> | <li> | |||
| <t>We do not publish SPKI pin sets.</t> | <t>We offer DNS over TLS as specified in RFC 7858 on (insert | |||
| </list></t> | IP address). It | |||
| <t>We offer DNS over HTTPS as specified in RFC8484 on (insert URI | is available on port 853 and port 443. We also implement RFC 7766 | |||
| template).</t> | . | |||
| <t>Both services offer TLS 1.2 and TLS 1.3.</t> | </t> | |||
| <t>Both services pad DNS responses according to RFC8467.</t> | <ol spacing="normal" type="i"> | |||
| <t>Both services provide DNSSEC validation. | <li>The DoT authentication domain name used is (insert domain | |||
| name).</li> | ||||
| <li>We do not publish SPKI pin sets.</li> | ||||
| </ol> | ||||
| </li> | ||||
| <li>We offer DNS over HTTPS as specified in RFC 8484 on (insert UR | ||||
| I | ||||
| template).</li> | ||||
| <li>Both services offer TLS 1.2 and TLS 1.3.</li> | ||||
| <li>Both services pad DNS responses according to RFC 8467.</li> | ||||
| <li> | ||||
| <t>Both services provide DNSSEC validation. | ||||
| <vspace/></t> | </t> | |||
| </list></t> | <t/> | |||
| <t>Upstream capabilities. | </li> | |||
| <list style="numbers"> | </ol> | |||
| <t>Our servers implement QNAME minimization.</t> | </li> | |||
| <t>Our servers do not send ECS upstream.</t> | <li> | |||
| </list></t> | <t>Upstream capabilities. | |||
| <t>Support. Support information for this service is available at (insert | </t> | |||
| link).</t> | <ol spacing="normal" type="a"> | |||
| <t>Data Processing. We operate as the legal entity (insert entity) registered | <li>Our servers implement QNAME minimization.</li> | |||
| <li>Our servers do not send ECS upstream.</li> | ||||
| </ol> | ||||
| </li> | ||||
| <li>Support. Support information for this service is available at (ins | ||||
| ert | ||||
| link).</li> | ||||
| <li>Data Processing. We operate as the legal entity (insert entity) re | ||||
| gistered | ||||
| in | in | |||
| (insert country); as such we operate under (insert country/region) law. Our | (insert country); as such, we operate under (insert country/region) law. Our | |||
| separate statement regarding the specifics of our data processing policy, | separate statement regarding the specifics of our data processing policy, | |||
| practice, and agreements can be found here (insert link).</t> | practice, and agreements can be found here (insert link).</li> | |||
| </list> | </ol> | |||
| </section> | ||||
| </section> | ||||
| <section anchor="acknowledgements" numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>Many thanks to <contact fullname="Amelia Andersdotter"/> for a very | ||||
| thorough review of the first draft of this document and <contact | ||||
| fullname="Stephen Farrell"/> for a thorough review at Working Group Last | ||||
| Call and for | ||||
| suggesting the inclusion of an example RPS. Thanks to <contact | ||||
| fullname="John Todd"/> for discussions on this topic, and to <contact | ||||
| fullname="Stéphane Bortzmeyer"/>, <contact fullname="Puneet Sood"/>, and | ||||
| <contact fullname="Vittorio Bertola"/> for review. Thanks to <contact | ||||
| fullname="Daniel Kahn Gillmor"/>, <contact fullname="Barry Green"/>, | ||||
| <contact fullname="Paul Hoffman"/>, <contact fullname="Dan York"/>, | ||||
| <contact fullname="Jon Reed"/>, and <contact fullname="Lorenzo | ||||
| Colitti"/> for comments at the mic. Thanks to <contact | ||||
| fullname="Loganaden Velvindron"/> for useful updates to the text. | ||||
| </t> | </t> | |||
| </section> | <t><contact fullname="Sara Dickinson"/> thanks the Open Technology Fund fo | |||
| </section> | r a grant to support the | |||
| work | ||||
| on this document. | ||||
| </t> | ||||
| </section> | ||||
| <section anchor="contributors" numbered="false" toc="default"> | ||||
| <name>Contributors</name> | ||||
| </back> | <t>The below individuals contributed significantly to the document: | |||
| </t> | ||||
| <contact fullname="John Dickinson"> | ||||
| <organization>Sinodun IT</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street/> | ||||
| <extaddr>Magdalen Centre</extaddr> | ||||
| <street>Oxford Science Park</street> | ||||
| <city>Oxford</city><code>OX4 4GA</code> | ||||
| <country>United Kingdom</country> | ||||
| <region/> | ||||
| </postal> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Jim Hague"> | ||||
| <organization>Sinodun IT</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street/> | ||||
| <extaddr>Magdalen Centre</extaddr> | ||||
| <street>Oxford Science Park</street> | ||||
| <city>Oxford</city><code>OX4 4GA</code> | ||||
| <country>United Kingdom</country> | ||||
| <region/> | ||||
| </postal> | ||||
| </address> | ||||
| </contact> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 222 change blocks. | ||||
| 2038 lines changed or deleted | 2319 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/ | ||||