rfc9614.original.xml | rfc9614.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
<!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
<!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
<!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
]> | ]> | |||
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.4 (Ruby 3.2.2 | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
) --> | -iab-privacy-partitioning-05" number="9614" category="info" submissionType="IAB" | |||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | consensus="true" tocInclude="true" updates="" obsoletes="" sortRefs="true" symR | |||
-iab-privacy-partitioning-05" category="info" submissionType="IAB" tocInclude="t | efs="true" xml:lang="en" version="3"> | |||
rue" sortRefs="true" symRefs="true" version="3"> | ||||
<!-- xml2rfc v2v3 conversion 3.19.0 --> | ||||
<front> | <front> | |||
<title abbrev="Partitioning for Privacy">Partitioning as an Architecture for Privacy</title> | <title abbrev="Partitioning for Privacy">Partitioning as an Architecture for Privacy</title> | |||
<seriesInfo name="Internet-Draft" value="draft-iab-privacy-partitioning-05"/ | <seriesInfo name="RFC" value="9614"/> | |||
> | <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind"> | |||
<author fullname="Mirja Kühlewind"> | ||||
<organization>Ericsson Research</organization> | ||||
<address> | <address> | |||
<email>mirja.kuehlewind@ericsson.com</email> | <email>mirja.kuehlewind@ericsson.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Tommy Pauly"> | <author fullname="Tommy Pauly" initials="T." surname="Pauly"> | |||
<organization>Apple</organization> | ||||
<address> | <address> | |||
<email>tpauly@apple.com</email> | <email>tpauly@apple.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Christopher A. Wood"> | <author fullname="Christopher A. Wood" initials="C. A." surname="Wood"> | |||
<organization>Cloudflare</organization> | ||||
<address> | <address> | |||
<email>caw@heapingbits.net</email> | <email>caw@heapingbits.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2024" month="January" day="11"/> | ||||
<keyword>Internet-Draft</keyword> | ||||
<abstract> | ||||
<?line 33?> | ||||
<t>This document describes the principle of privacy partitioning, which selectiv | <date year="2024" month="July"/> | |||
ely spreads data and communication across | ||||
multiple parties as a means to improve privacy by separating user identity from | <keyword>MASQUE</keyword> | |||
user data. | <keyword>Privacy Pass</keyword> | |||
This document describes emerging patterns in protocols to partition what data an | <keyword>Oblivious HTTP</keyword> | |||
d metadata is | <keyword>Proxy</keyword> | |||
revealed through protocol interactions, provides common terminology, and discuss | ||||
es how | <abstract><t>This document describes the principle of privacy | |||
to analyze such models.</t> | partitioning, which selectively spreads data and communication across | |||
multiple parties as a means to improve privacy by separating user identity | ||||
from user data. This document describes emerging patterns in protocols to | ||||
partition what data and metadata is revealed through protocol | ||||
interactions, provides common terminology, and discusses how to analyze | ||||
such models.</t> | ||||
</abstract> | </abstract> | |||
<note removeInRFC="true"> | ||||
<name>Discussion Venues</name> | ||||
<t>Discussion of this document takes place on the | ||||
Internet Architecture Board Internet Engineering Task Force mailing list (ia | ||||
b@iab.org), | ||||
which is archived at <eref target=""/>.</t> | ||||
<t>Source for this draft and an issue tracker can be found at | ||||
<eref target="https://github.com/intarchboard/draft-obliviousness"/>.</t> | ||||
</note> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<?line 41?> | ||||
<section anchor="introduction"> | <section anchor="introduction"> | |||
<name>Introduction</name> | <name>Introduction</name> | |||
<t>Protocols such as TLS and IPsec provide a secure (authenticated and enc | <t>Protocols such as TLS and IPsec provide a secure (authenticated and | |||
rypted) channel | encrypted) channel between two endpoints over which endpoints transfer | |||
between two endpoints over which endpoints transfer information. Encryption and | information. Encryption and authentication of data in transit are | |||
authentication | necessary to protect information from being seen or modified by parties | |||
of data in transit are necessary to protect information from being seen or modif | other than the intended protocol participants. As such, this kind of | |||
ied by parties | security is necessary for ensuring that information transferred over | |||
other than the intended protocol participants. As such, this kind of security is | these channels remains private.</t> | |||
necessary for ensuring that | <t>However, a secure channel between two endpoints is insufficient for | |||
information transferred over these channels remains private.</t> | the privacy of the endpoints themselves. In recent years, privacy | |||
<t>However, a secure channel between two endpoints is insufficient for the | requirements have expanded beyond the need to protect data in transit | |||
privacy of the endpoints | between two endpoints. Some examples of this expansion include:</t> | |||
themselves. In recent years, privacy requirements have expanded beyond the need | ||||
to protect data in transit | ||||
between two endpoints. Some examples of this expansion include:</t> | ||||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li> | <li>A user accessing a service on a website might not consent to | |||
<t>A user accessing a service on a website might not consent to reveal | reveal their location, but if that service is able to observe the | |||
their location, | client's IP address, it can learn something about the user's | |||
but if that service is able to observe the client's IP address, it can learn som | location. This is problematic for privacy since the service can link | |||
ething | user data to the user's location.</li> | |||
about the user's location. This is problematic for privacy since the service can | <li>A user might want to be able to access content for which they are | |||
link | authorized, such as a news article; but the news service might track | |||
user data to the user's location.</t> | which users access which articles, even if the user doesn't want their | |||
</li> | activity to be tracked. This is problematic for privacy since the | |||
<li> | service can link user activity to the user's account.</li> | |||
<t>A user might want to be able to access content for which they are a | <li>A client device might need to upload metrics to an aggregation | |||
uthorized, | service and in doing so allow the service to attribute the specific | |||
such as a news article, without needing to have which specific articles they | metrics contributions to that client device. This is problematic for | |||
read on their account being recorded. This is problematic for privacy since the | privacy since the service can link client contributions to the | |||
service | specific client.</li> | |||
can link user activity to the user's account.</t> | ||||
</li> | ||||
<li> | ||||
<t>A client device that needs to upload metrics to an aggregation serv | ||||
ice might want to be | ||||
able to contribute data to the system without having their specific contribution | ||||
s | ||||
attributed to them. This is problematic for privacy since the service can link c | ||||
lient | ||||
contributions to the specific client.</t> | ||||
</li> | ||||
</ul> | </ul> | |||
<t>The commonality in these examples is that clients want to interact with or use a service | <t>The commonality in these examples is that clients want to interact with or use a service | |||
without exposing too much user-specific or identifying information to that servi ce. In particular, | without exposing too much user-specific or identifying information to that servi ce. In particular, | |||
separating the user-specific identity information from user-specific data is nec essary for | separating the user-specific identity information from user-specific data is nec essary for | |||
privacy. Thus, in order to protect user privacy, it is important to keep identit y (who) and data | privacy. Thus, in order to protect user privacy, it is important to keep identit y (who) and data | |||
(what) separate.</t> | (what) separate.</t> | |||
<t>This document defines "privacy partitioning," sometimes also referred t o as the "decoupling principle" | <t>This document defines "privacy partitioning," sometimes also referred t o as the "decoupling principle" | |||
<xref target="DECOUPLING"/>, as the general technique used to separate the data | <xref target="DECOUPLING"/>, as the general technique used to separate the data | |||
and metadata visible to various parties in network communication, with the aim o f improving | and metadata visible to various parties in network communication, with the aim o f improving | |||
user privacy. Although privacy partitioning cannot guarantee there is no link be tween user-specific | user privacy. Although privacy partitioning cannot guarantee there is no link be tween user-specific | |||
identity and user-specific data, when applied properly it helps ensure that user privacy violations | identity and user-specific data, when applied properly it helps ensure that user privacy violations | |||
become more technically difficult to achieve over time.</t> | become more technically difficult to achieve over time.</t> | |||
<t>Several IETF working groups are working on protocols or systems that ad here to the principle | <t>Several IETF working groups are working on protocols or systems that ad here to the principle | |||
of privacy partitioning, including Oblivious HTTP Application Intermediation (OH AI), Multiplexed | of privacy partitioning, including Oblivious HTTP Application Intermediation (OH AI), Multiplexed | |||
Application Substrate over QUIC Encryption (MASQUE), Privacy Pass, and Privacy P reserving Measurement (PPM). This document summarizes | Application Substrate over QUIC Encryption (MASQUE), Privacy Pass, and Privacy P reserving Measurement (PPM). This document summarizes | |||
work in those groups and describes a framework for reasoning about the resulting privacy posture of different | work in those groups and describes a framework for thinking about the resulting privacy posture of different | |||
endpoints in practice.</t> | endpoints in practice.</t> | |||
<t>Privacy partitioning is particularly relevant as a tool for data minimi | <t>Privacy partitioning is particularly relevant as a tool for data | |||
zation, which is described | minimization, which is described in <xref section="6.1" | |||
in <xref section="6.1" sectionFormat="of" target="RFC6973"/>. <xref target="RFC6 | sectionFormat="of" target="RFC6973"/>. <xref target="RFC6973"/> provides | |||
973"/> provides guidance for privacy considerations in | guidance for privacy considerations in Internet protocols, along with a | |||
Internet protocols, along with a set of questions on how to evaluate the data mi | set of questions on how to evaluate the data minimization of a protocol | |||
nimization | in <xref section="7.1" sectionFormat="of" target="RFC6973"/>. Protocols | |||
of a protocol in <xref section="7.1" sectionFormat="of" target="RFC6973"/>. Prot | that employ privacy partitioning ought to consider the questions in that | |||
ocols that employ privacy partitioning | section when evaluating their design, particularly with regard to how | |||
ought to consider the questions in that section when evaluating their design, pa | identifiers and data can be correlated by protocol participants and | |||
rticularly | observers in each context that has been partitioned. Privacy | |||
with regard to how identifiers and data can be correlated by protocol participan | partitioning can also be used as a way to separate identity providers | |||
ts and | from relying parties (see <xref section="6.1.4" sectionFormat="of" | |||
observers in each context that has been partitioned. Privacy partitioning can al | target="RFC6973"/>), as in the case of Privacy Pass (see <xref | |||
so be | target="privacypass"/>).</t> | |||
used as a way to separate identity providers from relying parties | <t>Privacy partitioning is not a panacea; applying it well requires | |||
(see <xref section="6.1.4" sectionFormat="of" target="RFC6973"/>), as in the cas | holistic analysis of the system in question to determine whether or not | |||
e of Privacy Pass | partitioning as a tool, and as implemented, offers meaningful privacy | |||
(see Section <xref target="privacypass"/>).</t> | improvements. See <xref target="limits"/> for more information.</t> | |||
<t>Privacy partitioning is not a panacea; applying it well requires holist | ||||
ic analysis of the system | ||||
in question to determine whether or not partitioning as a tool, and as implement | ||||
ed, offers | ||||
meaningful privacy improvements. See <xref target="limits"/> for more informatio | ||||
n.</t> | ||||
</section> | </section> | |||
<section anchor="privacy-partitioning"> | <section anchor="privacy-partitioning"> | |||
<name>Privacy Partitioning</name> | <name>Privacy Partitioning</name> | |||
<t>For the purposes of user privacy, this document focuses on user-specifi | <t>For the purposes of user privacy, this document focuses on | |||
c information. This | user-specific information. This might include any identifying | |||
might include any identifying information that is specific to a user, such as th | information that is specific to a user, such as their email address or | |||
eir email | IP address, or any data about the user, such as their date of | |||
address or IP address, or data about the user, such as their date of birth. Info | birth. Informally, the goal of privacy partitioning is to ensure that | |||
rmally, | each party in a system beyond the user themselves only has access to | |||
the goal of privacy partitioning is to ensure that each party in a system beyond | one type of user-specific information.</t> | |||
the user | ||||
themselves only have access to one type of user-specific information.</t> | ||||
<t>This is a simple application of the principle of least privilege, where in every party in | <t>This is a simple application of the principle of least privilege, where in every party in | |||
a system only has access to the minimum amount of information needed to fulfill their | a system only has access to the minimum amount of information needed to fulfill their | |||
function. Privacy partitioning advocates for this minimization by ensuring that protocols, | function. Privacy partitioning advocates for this minimization by ensuring that protocols, | |||
applications, and systems only reveal user-specific information to parties that need access | applications, and systems only reveal user-specific information to parties that need access | |||
to the information for their intended purpose.</t> | to the information for their intended purpose.</t> | |||
<t>Put simply, privacy partitioning aims to separate <em>who</em> someone is from <em>what</em> they do. In the | <t>Put simply, privacy partitioning aims to separate <em>who</em> someone is from <em>what</em> they do. In the | |||
rest of this section, we describe how privacy partitioning can be used to achiev e this goal.</t> | rest of this section, we describe how privacy partitioning can be used to achiev e this goal.</t> | |||
<section anchor="privacy-contexts"> | <section anchor="privacy-contexts"> | |||
<name>Privacy Contexts</name> | <name>Privacy Contexts</name> | |||
<t>Each piece of user-specific information exists within some context, w here a context | <t>Each piece of user-specific information exists within some context, w here a context | |||
is abstractly defined as a set of data, metadata, and the entities that share ac cess | is abstractly defined as a set of data, metadata, and the entities that share ac cess | |||
to that information. In order to prevent the correlation of user-specific inform ation across | to that information. In order to prevent the correlation of user-specific inform ation across | |||
contexts, partitions need to ensure that any single entity (other than the clien t itself) | contexts, partitions need to ensure that any single entity (other than the clien t itself) | |||
does not participate in more than one context where the information is visible.< /t> | does not participate in more than one context where the information is visible.< /t> | |||
<t><xref target="RFC6973"/> discusses the importance of identifiers in r educing correlation as a way | <t><xref target="RFC6973"/> discusses the importance of identifiers in r educing correlation as a way | |||
of improving privacy:</t> | of improving privacy:</t> | |||
<blockquote> | <blockquote> | |||
<t>Correlation is the combination of various pieces of information rel | <t>Correlation is the combination of various pieces of information | |||
ated to an individual | related to an individual or that obtain that characteristic when | |||
or that obtain that characteristic when combined... Correlation is closely relat | combined....</t> | |||
ed to | <t>Correlation is closely related to identification. | |||
identification. Internet protocols can facilitate correlation by allowing indiv | Internet protocols can facilitate correlation by allowing | |||
iduals' | individuals' activities to be tracked and combined over time....</t> | |||
activities to be tracked and combined over time.</t> | <t>Pseudonymity is strengthened when less personal data can be | |||
<t>Pseudonymity is strengthened when less personal data can be linked | linked to the pseudonym; when the same pseudonym is used less often | |||
to the pseudonym; when | and across fewer contexts; and when independently chosen pseudonyms | |||
the same pseudonym is used less often and across fewer contexts; and when indepe | are more frequently used for new actions (making them, from an | |||
ndently | observer's or attacker's perspective, unlinkable).</t> | |||
chosen pseudonyms are more frequently used for new actions (making them, from an | ||||
observer's or | ||||
attacker's perspective, unlinkable).</t> | ||||
</blockquote> | </blockquote> | |||
<t>Context separation is foundational to privacy partitioning and reduci | <t>Context separation is foundational to privacy partitioning and | |||
ng correlation. | reducing correlation. As an example, consider an unencrypted HTTP | |||
As an example, consider an unencrypted HTTP session over TCP, wherein the contex | session over TCP, wherein the context includes both the content of the | |||
t includes both the | transaction as well as any metadata from the transport and IP headers; | |||
content of the transaction as well as any metadata from the transport and IP hea | and the participants include the client, routers, other network | |||
ders; and the | middleboxes, intermediaries, and the server. Middleboxes or intermediar | |||
participants include the client, routers, other network middleboxes, intermediar | ies | |||
ies, and server. | might simply forward traffic or might terminate the traffic at any | |||
Middlboxes or intermediaries might simply forward traffic, or might terminate th | layer (such as terminating the TCP connection from the client and | |||
e | creating another TCP connection to the server). Regardless of how the | |||
traffic at any layer (such as terminating the TCP connection from the client and | middlebox interacts with the traffic, for the purposes of privacy | |||
creating another | partitioning, it is able to observe all of the data in the | |||
TCP connection to the server). Regardless of how the middlebox interacts with th | context.</t> | |||
e traffic, | ||||
for the purposes of privacy partitioning, it is able to observe all of the data | ||||
in the context.</t> | ||||
<figure anchor="diagram-middlebox"> | <figure anchor="diagram-middlebox"> | |||
<name>Diagram of a basic unencrypted client-to-server connection with middleboxes</name> | <name>Diagram of a Basic Unencrypted Client-to-Server Connection with Middleboxes</name> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="176" width="560" viewBox="0 0 560 176" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="176" width="560" viewBox="0 0 560 176" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,160" fill="none" stroke="black"/> | <path d="M 8,32 L 8,160" fill="none" stroke="black"/> | |||
<path d="M 32,64 L 32,128" fill="none" stroke="black"/> | <path d="M 32,64 L 32,128" fill="none" stroke="black"/> | |||
<path d="M 104,64 L 104,128" fill="none" stroke="black"/> | <path d="M 104,64 L 104,128" fill="none" stroke="black"/> | |||
<path d="M 240,64 L 240,128" fill="none" stroke="black"/> | <path d="M 240,64 L 240,128" fill="none" stroke="black"/> | |||
<path d="M 336,64 L 336,128" fill="none" stroke="black"/> | <path d="M 336,64 L 336,128" fill="none" stroke="black"/> | |||
<path d="M 456,64 L 456,128" fill="none" stroke="black"/> | <path d="M 456,64 L 456,128" fill="none" stroke="black"/> | |||
<path d="M 528,64 L 528,128" fill="none" stroke="black"/> | <path d="M 528,64 L 528,128" fill="none" stroke="black"/> | |||
<path d="M 552,32 L 552,160" fill="none" stroke="black"/> | <path d="M 552,32 L 552,160" fill="none" stroke="black"/> | |||
skipping to change at line 208 ¶ | skipping to change at line 217 ¶ | |||
| +--------+ +-----------+ +--------+ | | | +--------+ +-----------+ +--------+ | | |||
| | +------HTTP------+ +--------------+ | | | | | +------HTTP------+ +--------------+ | | | |||
| | Client | | Middlebox | | Server | | | | | Client | | Middlebox | | Server | | | |||
| | +------TCP-------+ +--------------+ | | | | | +------TCP-------+ +--------------+ | | | |||
| +--------+ flow +-----------+ +--------+ | | | +--------+ flow +-----------+ +--------+ | | |||
| | | | | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>Adding TLS encryption to the HTTP session is a simple partitioning te | ||||
chnique that splits the | <t>Adding TLS encryption to the HTTP session is a simple partitioning | |||
previous context into two separate contexts: the content of the transaction is n | technique that splits the previous context into two separate contexts. | |||
ow only visible | The content of the transaction is now only visible to the client, | |||
to the client, TLS-terminating intermediaries, and server; while the metadata in | TLS-terminating intermediaries, and server, while the metadata in | |||
transport and | transport and IP headers remain in the original context. In this | |||
IP headers remain in the original context. In this scenario, without any further | scenario, without any further partitioning, the entities that | |||
partitioning, | participate in both contexts can allow the data in both contexts to be | |||
the entities that participate in both contexts can allow the data in both contex | correlated.</t> | |||
ts to be correlated.</t> | ||||
<figure anchor="diagram-https"> | <figure anchor="diagram-https"> | |||
<name>Diagram of how adding encryption splits the context into two</na me> | <name>Diagram of How Adding Encryption Splits the Context into Two</na me> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="304" width="560" viewBox="0 0 560 304" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="304" width="560" viewBox="0 0 560 304" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,288" fill="none" stroke="black"/> | <path d="M 8,32 L 8,288" fill="none" stroke="black"/> | |||
<path d="M 32,64 L 32,128" fill="none" stroke="black"/> | <path d="M 32,64 L 32,128" fill="none" stroke="black"/> | |||
<path d="M 32,192 L 32,256" fill="none" stroke="black"/> | <path d="M 32,192 L 32,256" fill="none" stroke="black"/> | |||
<path d="M 104,64 L 104,128" fill="none" stroke="black"/> | <path d="M 104,64 L 104,128" fill="none" stroke="black"/> | |||
<path d="M 104,192 L 104,256" fill="none" stroke="black"/> | <path d="M 104,192 L 104,256" fill="none" stroke="black"/> | |||
<path d="M 240,192 L 240,256" fill="none" stroke="black"/> | <path d="M 240,192 L 240,256" fill="none" stroke="black"/> | |||
<path d="M 336,192 L 336,256" fill="none" stroke="black"/> | <path d="M 336,192 L 336,256" fill="none" stroke="black"/> | |||
<path d="M 456,64 L 456,128" fill="none" stroke="black"/> | <path d="M 456,64 L 456,128" fill="none" stroke="black"/> | |||
skipping to change at line 284 ¶ | skipping to change at line 297 ¶ | |||
| +--------+ +-----------+ +--------+ | | | +--------+ +-----------+ +--------+ | | |||
| | | | | | | | | | | | | | | | | | |||
| | Client +-------TCP------+ Middlebox +--------------+ Server | | | | | Client +-------TCP------+ Middlebox +--------------+ Server | | | |||
| | | flow | | | | | | | | | flow | | | | | | |||
| +--------+ +-----------+ +--------+ | | | +--------+ +-----------+ +--------+ | | |||
| | | | | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>Another way to create a partition is to simply use separate connectio | <t>Another way to create a partition is to simply use separate | |||
ns. For example, to | connections. For example, to split two separate HTTP requests from one | |||
split two separate HTTP requests from one another, a client could issue the requ | another, a client could issue the requests on separate TCP | |||
ests on | connections, each on a different network and at different times, and | |||
separate TCP connections, each on a different network, and at different times; a | avoid including obvious identifiers like HTTP cookies across the | |||
nd avoid | requests.</t> | |||
including obvious identifiers like HTTP cookies across the requests.</t> | ||||
<figure anchor="diagram-dualconnect"> | <figure anchor="diagram-dualconnect"> | |||
<name>Diagram of making separate connections to generate separate cont exts</name> | <name>Diagram of Making Separate Connections to Generate Separate Cont exts</name> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="304" width="560" viewBox="0 0 560 304" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="304" width="560" viewBox="0 0 560 304" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,288" fill="none" stroke="black"/> | <path d="M 8,32 L 8,288" fill="none" stroke="black"/> | |||
<path d="M 32,64 L 32,128" fill="none" stroke="black"/> | <path d="M 32,64 L 32,128" fill="none" stroke="black"/> | |||
<path d="M 32,192 L 32,256" fill="none" stroke="black"/> | <path d="M 32,192 L 32,256" fill="none" stroke="black"/> | |||
<path d="M 104,64 L 104,128" fill="none" stroke="black"/> | <path d="M 104,64 L 104,128" fill="none" stroke="black"/> | |||
<path d="M 104,192 L 104,256" fill="none" stroke="black"/> | <path d="M 104,192 L 104,256" fill="none" stroke="black"/> | |||
<path d="M 240,64 L 240,128" fill="none" stroke="black"/> | <path d="M 240,64 L 240,128" fill="none" stroke="black"/> | |||
<path d="M 240,192 L 240,256" fill="none" stroke="black"/> | <path d="M 240,192 L 240,256" fill="none" stroke="black"/> | |||
<path d="M 336,64 L 336,128" fill="none" stroke="black"/> | <path d="M 336,64 L 336,128" fill="none" stroke="black"/> | |||
skipping to change at line 379 ¶ | skipping to change at line 394 ¶ | |||
| | | | | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>Using separate connections to create separate contexts can reduce or eliminate | <t>Using separate connections to create separate contexts can reduce or eliminate | |||
the ability of specific parties to correlate activity across contexts. However, | the ability of specific parties to correlate activity across contexts. However, | |||
any identifier at any layer that is common across different contexts can be | any identifier at any layer that is common across different contexts can be | |||
used as a way to correlate activity. Beyond IP addresses, many other factors | used as a way to correlate activity. Beyond IP addresses, many other factors | |||
can be used together to create a fingerprint of a specific device (such as | can be used together to create a fingerprint of a specific device (such as | |||
MAC addresses, device properties, software properties and behavior, application state, etc).</t> | Media Access Control (MAC) addresses, device properties, software properties and behavior, application state, etc.).</t> | |||
</section> | </section> | |||
<section anchor="context-separation"> | <section anchor="context-separation"> | |||
<name>Context Separation</name> | <name>Context Separation</name> | |||
<t>In order to define and analyze how various partitioning techniques wo rk, the boundaries of what is | <t>In order to define and analyze how various partitioning techniques wo rk, the boundaries of what is | |||
being partitioned need to be established. This is the role of context separation . In particular, | being partitioned need to be established. This is the role of context separation . In particular, | |||
in order to prevent the correlation of user-specific information across contexts , partitions need | in order to prevent the correlation of user-specific information across contexts , partitions need | |||
to ensure that any single entity (other than the client itself) does not partici pate in contexts | to ensure that any single entity (other than the client itself) does not partici pate in contexts | |||
where both identifiers are visible.</t> | where both identifiers are visible.</t> | |||
<t>Context separation can be achieved in different ways, for example, ov er time, across network paths, based | <t>Context separation can be achieved in different ways, for example, ov er time, across network paths, based | |||
on (en)coding, etc. The privacy-oriented protocols described in this document ge nerally involve | on (en)coding, etc. The privacy-oriented protocols described in this document ge nerally involve | |||
more complex partitioning, but the techniques to partition communication context s still employ the | more complex partitioning, but the techniques to partition communication context s still employ the | |||
same techniques:</t> | same techniques:</t> | |||
<ol spacing="normal" type="1"><li> | <ul spacing="normal"> | |||
<t>Cryptographic protection, such as the use of encryption to specif | <li>Cryptographic protection, such as the use of encryption to | |||
ic parties, allows | specific parties, allows partitioning of contexts between different | |||
partitioning of contexts between different parties (those with the ability to re | parties (those with the ability to remove cryptographic protections, | |||
move | and those without).</li> | |||
cryptographic protections, and those without).</t> | <li>Connection separation across time or space to allow | |||
</li> | partitioning of contexts for different application transactions over | |||
<li> | the network.</li> | |||
<t>Connection separation across time or space to allow partitioning | </ul> | |||
of contexts for different | ||||
application transactions over the network.</t> | ||||
</li> | ||||
</ol> | ||||
<t>These techniques are frequently used in conjunction for context separ ation. For example, | <t>These techniques are frequently used in conjunction for context separ ation. For example, | |||
encrypting an HTTP exchange using TLS between client and TLS-terminating server might prevent | encrypting an HTTP exchange using TLS between the client and TLS-terminating ser ver might prevent | |||
a network middlebox that sees a client IP address from seeing the user account i dentifier, | a network middlebox that sees a client IP address from seeing the user account i dentifier, | |||
but it doesn't prevent the TLS-terminating server from observing both identifier s and correlating | but it doesn't prevent the TLS-terminating server from observing both identifier s and correlating | |||
them. As such, preventing correlation requires separating contexts, such as by u sing proxying to | them. As such, preventing correlation requires separating contexts, such as by u sing proxying to | |||
conceal a client's IP address that would otherwise be used as an identifier.</t> | conceal a client's IP address that would otherwise be used as an identifier.</t> | |||
</section> | </section> | |||
<section anchor="approaches-to-partitioning"> | <section anchor="approaches-to-partitioning"> | |||
<name>Approaches to Partitioning</name> | <name>Approaches to Partitioning</name> | |||
<t>While all of the partitioning protocols described in this document cr | <t>While all of the partitioning protocols described in this document | |||
eate | create separate contexts using cryptographic protection and/or | |||
separate contexts using cryptographic protection and/or connection separation, e | connection separation, each one has a unique approach that results in | |||
ach one has a | different sets of contexts. Since many of these protocols are new, it | |||
unique approach that results in different sets of contexts. Since many of | is yet to be seen how each approach will be used at scale across the | |||
these protocols are new, it is yet to be seen how each approach will be | Internet and what new models will emerge in the future.</t> | |||
used at scale across the Internet, and what new models will emerge in the | <t>There are multiple factors that lead to a diversity in approaches | |||
future.</t> | to partitioning, including:</t> | |||
<t>There are multiple factors that lead to a diversity in approaches to | ||||
partitioning, including:</t> | ||||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li> | <li>Adding privacy partitioning to existing protocol ecosystems | |||
<t>Adding privacy partitioning to existing protocol ecosystems place | places requirements and constraints on how contexts are | |||
s | constructed. CONNECT-style proxying is intended to work with servers | |||
requirements and constraints on how contexts are constructed. CONNECT-style | that are unaware of privacy contexts, requiring more intermediaries | |||
proxying is intended to work with servers that are unaware of privacy contexts, | to provide strong separation guarantees. On the other hand, | |||
requiring more intermediaries to provide strong separation guarantees. | Oblivious HTTP assumes servers that cooperate with context | |||
Oblivious HTTP, on the other hand, assumes servers that cooperate with context | separation and, thus, reduces the overall number of elements in the | |||
separation, and thus reduces the overall number of elements in the solution.</t> | solution.</li> | |||
</li> | <li>Whether or not information exchange needs to happen | |||
<li> | bidirectionally in an interactive fashion determines how contexts | |||
<t>Whether or not information exchange needs to happen bidirectional | can be separated. Some use cases, like metrics collection for PPM, | |||
ly in an | can occur whereby information only flows from clients to servers and | |||
interactive fashion determines how contexts can be separated. Some use cases, | can function even when clients are no longer connected. Privacy | |||
like metrics collection for PPM, can occur with information flowing only from | Pass is an example of a case that can be either interactive or not, | |||
clients to servers, and can function even when clients are no longer connected. | depending on whether tokens can be cached and reused. CONNECT-style | |||
Privacy Pass is an example of a case that can be either interactive or not, | proxying and Oblivious HTTP often require bidirectional and | |||
depending on whether tokens can be cached and reused. CONNECT-style proxying and | interactive communication.</li> | |||
Oblivious HTTP often requires bidirectional and interactive communication.</t> | <li>The degree to which contexts need to be partitioned depends in | |||
</li> | part on the client's threat models and level of trust in various | |||
<li> | protocol participants. For example, in Oblivious HTTP, clients allow | |||
<t>The degree to which contexts need to be partitioned depends in pa | relays to learn that clients are accessing a particular | |||
rt | application-specific gateway. If clients do not trust relays with | |||
on the client's threat models and level of trust in various protocol participant | this information, they can instead use a multi-hop CONNECT-style | |||
s. For example, | proxy approach wherein no single party learns whether specific | |||
in Oblivious HTTP, clients allow relays to learn that clients are accessing a pa | clients are accessing a specific application. This is the default | |||
rticular | trust model for systems like Tor, where multiple hops are used to | |||
application-specific gateway. If clients do not trust relays with this informati | drive down the probability of privacy violations due to collusion or | |||
on, they can | related attacks.</li> | |||
instead use a multi-hop CONNECT-style proxy approach wherein no single party lea | ||||
rns | ||||
whether specific clients are accessing a specific application. This is the defau | ||||
lt trust model | ||||
for systems like Tor, where multiple hops are used to drive down the probability | ||||
of privacy | ||||
violations due to collusion or related attacks.</t> | ||||
</li> | ||||
</ul> | </ul> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="a-survey-of-protocols-using-partitioning"> | <section anchor="a-survey-of-protocols-using-partitioning"> | |||
<name>A Survey of Protocols using Partitioning</name> | <name>A Survey of Protocols Using Partitioning</name> | |||
<t>The following section discusses current on-going work in the IETF | <t>The following section discusses current on-going work in the IETF | |||
that is applying privacy partitioning.</t> | that is applying privacy partitioning.</t> | |||
<section anchor="masque"> | <section anchor="masque"> | |||
<name>CONNECT Proxying and MASQUE</name> | <name>CONNECT Proxying and MASQUE</name> | |||
<t>HTTP forward proxies, when using encryption on the connection between | <t>When using encryption on the connection between the client and the | |||
the client and the | proxy, HTTP forward proxies provide privacy partitioning by separating | |||
proxy, provide privacy partitioning by separating a connection into multiple seg | a connection into multiple segments. When connections to targets via | |||
ments. | the proxy themselves are encrypted, the proxy cannot see the | |||
When connections to targets via the proxy themselves are encrypted, | end-to-end content. HTTP has historically supported forward proxying | |||
the proxy cannot see the end-to-end content. HTTP has historically supported for | for TCP-like streams via the CONNECT method. More recently, the | |||
ward proxying | Multiplexed Application Substrate over QUIC Encryption (MASQUE) | |||
for TCP-like streams via the CONNECT method. More recently, the Multiplexed Appl | Working Group has developed protocols to similarly proxy UDP <xref | |||
ication | target="RFC9297"/> and IP packets <xref target="RFC9484"/> based on | |||
Substrate over QUIC Encryption (MASQUE) working group has developed | tunneling.</t> | |||
protocols to similarly proxy UDP <xref target="CONNECT-UDP"/> and IP packets | <t>In a single-proxy setup, there is a tunnel connection between the | |||
<xref target="CONNECT-IP"/> based on tunneling.</t> | client and proxy and an end-to-end connection that is tunneled between | |||
<t>In a single-proxy setup, there is a tunnel connection between the cli | the client and target. This setup, as shown in <xref | |||
ent and proxy and | target="diagram-1hop"/>, partitions communication into:</t> | |||
an end-to-end connection that is tunnelled between the client and target. This s | ||||
etup, | ||||
as shown in the figure below, partitions communication into:</t> | ||||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li> | <li>a Client-to-Target encrypted context, which contains the | |||
<t>a Client-to-Target encrypted context, which contains the end-to-e | end-to-end content within the TLS session to the target, such as | |||
nd content | HTTP content;</li> | |||
within the TLS session to the target, such as HTTP content;</t> | <li>a Client-to-Target proxied context, which is the end-to-end data | |||
</li> | exchanged with the target that is also visible to the proxy, such as a | |||
<li> | TLS | |||
<t>a Client-to-Target proxied context, which is the end-to-end data | session;</li> | |||
to the target that is | <li>a Client-to-Proxy context, which contains the transport metadata | |||
also visible to the proxy, such as a TLS session;</t> | between the client and the target, and the request to the proxy to | |||
</li> | open a connection to the target; and </li> | |||
<li> | <li>a Proxy-to-Target context, which for TCP and UDP proxying | |||
<t>a Client-to-Proxy context, which contains the transport metadata | contains any packet header information that is added or modified by | |||
between the client | the proxy, e.g., the IP and TCP/UDP headers.</li> | |||
and the target, and the request to the proxy to open a connection to the target; | ||||
</t> | ||||
</li> | ||||
<li> | ||||
<t>and a Proxy-to-Target context, which for TCP and UDP proxying | ||||
contains any packet header information that is added or modified by the proxy, | ||||
e.g., the IP and TCP/UDP headers.</t> | ||||
</li> | ||||
</ul> | </ul> | |||
<figure anchor="diagram-1hop"> | <figure anchor="diagram-1hop"> | |||
<name>Diagram of one-hop proxy contexts</name> | <name>Diagram of One-Hop Proxy Contexts</name> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="560" width="560" viewBox="0 0 560 560" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="560" width="560" viewBox="0 0 560 560" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,544" fill="none" stroke="black"/> | <path d="M 8,32 L 8,544" fill="none" stroke="black"/> | |||
<path d="M 32,64 L 32,128" fill="none" stroke="black"/> | <path d="M 32,64 L 32,128" fill="none" stroke="black"/> | |||
<path d="M 32,192 L 32,256" fill="none" stroke="black"/> | <path d="M 32,192 L 32,256" fill="none" stroke="black"/> | |||
<path d="M 32,320 L 32,384" fill="none" stroke="black"/> | <path d="M 32,320 L 32,384" fill="none" stroke="black"/> | |||
<path d="M 104,64 L 104,128" fill="none" stroke="black"/> | <path d="M 104,64 L 104,128" fill="none" stroke="black"/> | |||
<path d="M 104,192 L 104,256" fill="none" stroke="black"/> | <path d="M 104,192 L 104,256" fill="none" stroke="black"/> | |||
<path d="M 104,320 L 104,384" fill="none" stroke="black"/> | <path d="M 104,320 L 104,384" fill="none" stroke="black"/> | |||
<path d="M 240,192 L 240,256" fill="none" stroke="black"/> | <path d="M 240,192 L 240,256" fill="none" stroke="black"/> | |||
skipping to change at line 611 ¶ | skipping to change at line 625 ¶ | |||
| +-----------+ +--------+ | | | +-----------+ +--------+ | | |||
| | | | | | | | | | | | | | |||
| | Proxy +--Transport---+ Target | | | | | Proxy +--Transport---+ Target | | | |||
| | | flow | | | | | | | flow | | | | |||
| +-----------+ +--------+ | | | +-----------+ +--------+ | | |||
| | | | | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>Using two (or more) proxies provides better privacy partitioning. In | <t>Using two (or more) proxies provides better privacy | |||
particular, with two proxies, | partitioning. In particular, with two proxies, each proxy sees the | |||
each proxy sees the Client metadata, but not the Target; the Target, but not the | Client metadata but not the Target, the Target but not the Client | |||
Client | metadata, or neither.</t> | |||
metadata; or neither.</t> | <t>In addition to the contexts described above for the single proxy | |||
<t>In addition to the contexts described above for the single proxy case | case, the two-hop proxy case shown in <xref target="diagram-2hop"/> | |||
, | changes the contexts in several ways:</t> | |||
the two-hop proxy case shown in the figure below changes the contexts | ||||
in several ways:</t> | ||||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li> | <li>the Client-to-Target proxied context only includes the second | |||
<t>the Client-to-Target proxied context only includes the second pro | proxy (referred to here as "Proxy B");</li> | |||
xy | <li>a new Client-to-Proxy B context is added, which is the TLS | |||
(referred to here as "Proxy B");</t> | session from the client to Proxy B that is also visible to the first | |||
</li> | proxy (referred to here as "Proxy A");</li> | |||
<li> | <li>the contexts that see transport data only (TCP or UDP over IP) | |||
<t>a new Client-to-Proxy B context is added, which is the TLS sessio | are separated out into three separate contexts, a Client-to-Proxy A | |||
n | context, a Proxy A-to-Proxy B context, and a Proxy B-to-Target | |||
from the client to Proxy B that is also visible to the first proxy | context.</li> | |||
(referred to here as "Proxy A");</t> | </ul> | |||
</li> | ||||
<li> | ||||
<t>the contexts that see transport data only (TCP or UDP over IP) | ||||
are separated out into three separate contexts, a Client-to-Proxy A | ||||
context, a Proxy A-to-Proxy B context, and a Proxy B-to-Target context.</t> | ||||
</li> | ||||
</ul> | ||||
<figure anchor="diagram-2hop"> | <figure anchor="diagram-2hop"> | |||
<name>Diagram of two-hop proxy contexts</name> | <name>Diagram of Two-Hop Proxy Contexts</name> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="816" width="560" viewBox="0 0 560 816" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="816" width="560" viewBox="0 0 560 816" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,800" fill="none" stroke="black"/> | <path d="M 8,32 L 8,800" fill="none" stroke="black"/> | |||
<path d="M 32,64 L 32,128" fill="none" stroke="black"/> | <path d="M 32,64 L 32,128" fill="none" stroke="black"/> | |||
<path d="M 32,192 L 32,256" fill="none" stroke="black"/> | <path d="M 32,192 L 32,256" fill="none" stroke="black"/> | |||
<path d="M 32,320 L 32,384" fill="none" stroke="black"/> | <path d="M 32,320 L 32,384" fill="none" stroke="black"/> | |||
<path d="M 32,448 L 32,512" fill="none" stroke="black"/> | <path d="M 32,448 L 32,512" fill="none" stroke="black"/> | |||
<path d="M 104,64 L 104,128" fill="none" stroke="black"/> | <path d="M 104,64 L 104,128" fill="none" stroke="black"/> | |||
<path d="M 104,192 L 104,256" fill="none" stroke="black"/> | <path d="M 104,192 L 104,256" fill="none" stroke="black"/> | |||
<path d="M 104,320 L 104,384" fill="none" stroke="black"/> | <path d="M 104,320 L 104,384" fill="none" stroke="black"/> | |||
skipping to change at line 814 ¶ | skipping to change at line 824 ¶ | |||
| +-------+ +--------+ | | | +-------+ +--------+ | | |||
| | | | | | | | | | | | | | |||
| | Proxy +-------+ Target | | | | | Proxy +-------+ Target | | | |||
| | B | | | | | | | B | | | | | |||
| +-------+ +--------+ | | | +-------+ +--------+ | | |||
| | | | | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>Forward proxying, such as the protocols developed in MASQUE, uses bot | ||||
h encryption (via TLS) and | <t>Forward proxying, such as the modes of proxying in the protocols | |||
separation of connections (via proxy hops that see only the next hop) to achieve | developed in MASQUE, uses both encryption (via TLS) and separation of | |||
privacy partitioning.</t> | connections (via proxy hops that see only the next hop) to achieve | |||
privacy partitioning.</t> | ||||
</section> | </section> | |||
<section anchor="oblivious-http-and-dns"> | <section anchor="oblivious-http-and-dns"> | |||
<name>Oblivious HTTP and DNS</name> | <name>Oblivious HTTP and DNS</name> | |||
<t>Oblivious HTTP <xref target="OHTTP"/>, developed in the Oblivious HTT | <t>Oblivious HTTP <xref target="RFC9458"/>, developed in the Oblivious | |||
P Application | HTTP Application Intermediation (OHAI) Working Group, adds per-message | |||
Intermediation (OHAI) working group, adds per-message | encryption to HTTP exchanges through a relay system. Clients send | |||
encryption to HTTP exchanges through a relay system. Clients send requests throu | requests through an Oblivious Relay, which cannot read message | |||
gh an Oblivious Relay, | contents, to an Oblivious Gateway, which can decrypt the messages but | |||
which cannot read message contents, to an Oblivious Gateway, which can decrypt t | cannot communicate directly with the client or observe client metadata | |||
he messages but | like an IP address. Oblivious HTTP relies on Hybrid Public Key | |||
cannot communicate directly with the client or observe client metadata like IP a | Encryption <xref target="RFC9180"/> to perform encryption.</t> | |||
ddress. | <t>Oblivious HTTP uses both encryption and separation of connections | |||
Oblivious HTTP relies on Hybrid Public Key Encryption <xref target="HPKE"/> to p | to achieve privacy partitioning.</t> | |||
erform encryption.</t> | ||||
<t>Oblivious HTTP uses both encryption and separation of connections to | ||||
achieve privacy partitioning.</t> | ||||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li> | <li>End-to-end messages are encrypted between the Client and | |||
<t>End-to-end messages are encrypted between the Client and Gateway. | Gateway. The content of these inner messages are visible to the | |||
The | Client, Gateway, and Target. This is the Client-to-Target | |||
content of these inner messages are visible to the Client, Gateway, and | context.</li> | |||
Target. This is the Client-to-Target context.</t> | <li>The encrypted messages exchanged between the Client and Gateway | |||
</li> | are visible to the Relay, but the Relay cannot decrypt the messages. | |||
<li> | This is the Client-to-Gateway context.</li> | |||
<t>The encrypted messages exchanged between the Client and Gateway | <li>The transport (such as TCP and TLS) connections between the | |||
are visible to the Relay, but the Relay cannot decrypt the messages. | Client, Relay, and Gateway form two separate contexts: a | |||
This is the Client-to-Gateway context.</t> | Client-to-Relay context and a Relay-to-Gateway context. It is | |||
</li> | important to note that the Relay-to-Gateway connection can be a | |||
<li> | single connection, even if the Relay has many separate Clients. This | |||
<t>The transport (such as TCP and TLS) connections between the Clien | provides better anonymity by making the pseudonym presented by the | |||
t, | Relay to be shared across many Clients.</li> | |||
Relay, and Gateway form two separate contexts: a Client-to-Relay | ||||
context and a Relay-to-Gateway context. It is important | ||||
to note that the Relay-to-Gateway connection can be a single connection, | ||||
even if the Relay has many separate Clients. This provides better anonymity | ||||
by making the pseudonym presented by the Relay to be shared across many Clients. | ||||
</t> | ||||
</li> | ||||
</ul> | </ul> | |||
<figure anchor="diagram-ohttp"> | <figure anchor="diagram-ohttp"> | |||
<name>Diagram of Oblivious HTTP contexts</name> | <name>Diagram of Oblivious HTTP Contexts</name> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="560" width="560" viewBox="0 0 560 560" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="560" width="560" viewBox="0 0 560 560" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,544" fill="none" stroke="black"/> | <path d="M 8,32 L 8,544" fill="none" stroke="black"/> | |||
<path d="M 32,64 L 32,128" fill="none" stroke="black"/> | <path d="M 32,64 L 32,128" fill="none" stroke="black"/> | |||
<path d="M 32,192 L 32,256" fill="none" stroke="black"/> | <path d="M 32,192 L 32,256" fill="none" stroke="black"/> | |||
<path d="M 32,320 L 32,384" fill="none" stroke="black"/> | <path d="M 32,320 L 32,384" fill="none" stroke="black"/> | |||
<path d="M 104,64 L 104,128" fill="none" stroke="black"/> | <path d="M 104,64 L 104,128" fill="none" stroke="black"/> | |||
<path d="M 104,192 L 104,256" fill="none" stroke="black"/> | <path d="M 104,192 L 104,256" fill="none" stroke="black"/> | |||
<path d="M 104,320 L 104,384" fill="none" stroke="black"/> | <path d="M 104,320 L 104,384" fill="none" stroke="black"/> | |||
<path d="M 184,192 L 184,256" fill="none" stroke="black"/> | <path d="M 184,192 L 184,256" fill="none" stroke="black"/> | |||
skipping to change at line 962 ¶ | skipping to change at line 974 ¶ | |||
| +-------+ +---------+ | | | +-------+ +---------+ | | |||
| | | | | | | | | | | | | | |||
| + Relay +---------+ Gateway | | | | + Relay +---------+ Gateway | | | |||
| | | | | | | | | | | | | | |||
| +-------+ +---------+ | | | +-------+ +---------+ | | |||
| | | | | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>Oblivious DNS over HTTPS <xref target="ODOH"/> applies the same princ | <t>Oblivious DNS over HTTPS (ODoH) <xref target="RFC9230"/> applies the | |||
iple as Oblivious HTTP, but operates on | same | |||
DNS messages only. As a precursor to the more generalized Oblivious HTTP, it rel | principle as Oblivious HTTP but operates on DNS messages only. As a | |||
ies on the same | precursor to the more generalized Oblivious HTTP, it relies on the | |||
HPKE cryptographic primitives, and can be analyzed in the same way.</t> | same HPKE cryptographic primitives and can be analyzed in the same | |||
way.</t> | ||||
</section> | </section> | |||
<section anchor="privacypass"> | <section anchor="privacypass"> | |||
<name>Privacy Pass</name> | <name>Privacy Pass</name> | |||
<t>Privacy Pass is an architecture <xref target="PRIVACYPASS"/> and a se | <t>Privacy Pass is an architecture <xref | |||
t of protocols | target="RFC9576"/> and a set of protocols | |||
being developed in the Privacy Pass working group that allows clients to present | being developed in the Privacy Pass Working Group that allows clients | |||
proof of verification in | to present proof of verification in an anonymous and unlinkable | |||
an anonymous and unlinkable fashion, via tokens. These tokens originally were de | fashion via tokens. These tokens were originally designed as a way to | |||
signed as a way to prove | prove that a client had solved a CAPTCHA, but they can be applied to oth | |||
that a client had solved a CAPTCHA, but can be applied to other types of user or | er | |||
device attestation checks | types of user or device attestation checks as well. In Privacy Pass, | |||
as well. In Privacy Pass, clients interact with an attester and issuer for the p | clients interact with an attester and issuer for the purposes of | |||
urposes of issuing a token, | issuing a token, and clients then interact with an origin server to | |||
and clients then interact with an origin server to redeem said token.</t> | redeem said token.</t> | |||
<t>In Privacy Pass, privacy partitioning is achieved with cryptographic protection (in the form of blind | <t>In Privacy Pass, privacy partitioning is achieved with cryptographic protection (in the form of blind | |||
signature protocols or similar) and separation of connections across two context s: | signature protocols or similar) and separation of connections across two context s: | |||
a "redemption context" between clients and origins (servers that request and rec eive tokens), and an | a "redemption context" between clients and origins (servers that request and rec eive tokens), and an | |||
"issuance context" between clients, attestation servers, and token issuance serv ers. The cryptographic | "issuance context" between clients, attestation servers, and token issuance serv ers. The cryptographic | |||
protection ensures that information revealed during the issuance context is sepa rated from information | protection ensures that information revealed during the issuance context is sepa rated from information | |||
revealed during the redemption context.</t> | revealed during the redemption context.</t> | |||
<figure anchor="diagram-privacypass"> | <figure anchor="diagram-privacypass"> | |||
<name>Diagram of contexts in Privacy Pass</name> | <name>Diagram of Contexts in Privacy Pass</name> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="304" width="560" viewBox="0 0 560 304" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="304" width="560" viewBox="0 0 560 304" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,288" fill="none" stroke="black"/> | <path d="M 8,32 L 8,288" fill="none" stroke="black"/> | |||
<path d="M 32,64 L 32,128" fill="none" stroke="black"/> | <path d="M 32,64 L 32,128" fill="none" stroke="black"/> | |||
<path d="M 104,64 L 104,128" fill="none" stroke="black"/> | <path d="M 104,64 L 104,128" fill="none" stroke="black"/> | |||
<path d="M 184,64 L 184,128" fill="none" stroke="black"/> | <path d="M 184,64 L 184,128" fill="none" stroke="black"/> | |||
<path d="M 184,192 L 184,256" fill="none" stroke="black"/> | <path d="M 184,192 L 184,256" fill="none" stroke="black"/> | |||
<path d="M 256,64 L 256,128" fill="none" stroke="black"/> | <path d="M 256,64 L 256,128" fill="none" stroke="black"/> | |||
<path d="M 256,192 L 256,256" fill="none" stroke="black"/> | <path d="M 256,192 L 256,256" fill="none" stroke="black"/> | |||
<path d="M 312,192 L 312,256" fill="none" stroke="black"/> | <path d="M 312,192 L 312,256" fill="none" stroke="black"/> | |||
skipping to change at line 1046 ¶ | skipping to change at line 1064 ¶ | |||
| +--------+ +----------+ +--------+ | | | +--------+ +----------+ +--------+ | | |||
| | | | | | | | | | | | | | | | | | |||
| | Client +------+ Attester +------+ Issuer | | | | | Client +------+ Attester +------+ Issuer | | | |||
| | | | | | | | | | | | | | | | | | |||
| +--------+ +----------+ +--------+ | | | +--------+ +----------+ +--------+ | | |||
| | | | | | |||
+-------------------------------------------------------------------+ | +-------------------------------------------------------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
<t>Since the redemption context and issuance context are separate connec | ||||
tions | <t>Since the redemption context and issuance context are separate | |||
that involve separate entities, they can also be further decoupled by | connections that involve separate entities, they can also be further | |||
running those parts of the protocols at different times. Clients can | decoupled by running those parts of the protocols at different times. | |||
fetch tokens through the issuance context early, and cache the tokens | Clients can fetch tokens through the issuance context early and cache | |||
to later use in redemption contexts. This can aid in partitioning identifiers | the tokens for later use in redemption contexts. This can aid in | |||
and data.</t> | partitioning identifiers and data.</t> | |||
<t><xref target="PRIVACYPASS"/> describes different deployment models fo | <t><xref target="RFC9576"/> describes | |||
r which entities operate | different deployment models for which entities operate origins, | |||
origins, attesters, and issuers; in some models, they are all separate | attesters, and issuers; in some models, they are all separate | |||
entities, but in others, they can be operated by the same entity. The | entities, and in others they can be operated by the same entity. The | |||
model impacts the effectiveness of partitioning, and some models | model impacts the effectiveness of partitioning, and some models (such | |||
(such as when all three are operated by the same entity) only provide | as when all three are operated by the same entity) only provide | |||
effective partitioning when the timing of connections on the two | effective partitioning when the timing of connections on the two | |||
contexts are not correlated, and when the client uses different | contexts are not correlated and when the client uses different | |||
identifiers (such as different IP addresses) on each context.</t> | identifiers (such as different IP addresses) on each context.</t> | |||
</section> | </section> | |||
<section anchor="privacy-preserving-measurement"> | <section anchor="privacy-preserving-measurement"> | |||
<name>Privacy Preserving Measurement</name> | <name>Privacy Preserving Measurement</name> | |||
<t>The Privacy Preserving Measurement (PPM) working group is chartered t | <t>The Privacy Preserving Measurement (PPM) Working Group is chartered | |||
o develop protocols and systems | to develop protocols and systems that help a data aggregation or | |||
that help a data aggregation or collection server (or multiple, non-colluding se | collection server (or multiple non-colluding servers) compute | |||
rvers) compute aggregate | aggregate values without learning the value of any one client's | |||
values without learning the value of any one client's individual measurement. Di | individual measurement. The Distributed Aggregation Protocol (DAP) is th | |||
stributed Aggregation | e | |||
Protocol (DAP) is the primary working item of the group.</t> | primary working item of the group.</t> | |||
<t>At a high level, DAP uses a combination of cryptographic protection ( | <t>At a high level, DAP uses a combination of cryptographic protection | |||
in the form of secret sharing amongst | (in the form of secret sharing amongst non-colluding servers) to | |||
non-colluding servers) to establish two contexts: an "upload context" between cl | establish two contexts:</t> | |||
ients and non-colluding | <ul spacing="normal"> | |||
aggregation servers (in which the servers are separated into "Helper" and "Leade | ||||
r" roles) wherein aggregation | <li>an "upload context" between clients and non-colluding | |||
servers possibly learn client identity but nothing about their individual measur | aggregation servers (in which the servers are separated into | |||
ement reports, and | "Helper" and "Leader" roles) wherein aggregation servers possibly | |||
a "collect context" wherein a collector learns aggregate measurement results and | learn client identity but nothing about their individual measurement | |||
nothing | reports; and</li> | |||
about individual client data.</t> | <li>a "collect context" wherein a collector learns | |||
aggregate measurement results and nothing about individual client | ||||
data.</li> | ||||
</ul> | ||||
<figure anchor="pa-topology"> | <figure anchor="pa-topology"> | |||
<name>Diagram of contexts in DAP</name> | <name>Diagram of Contexts in DAP</name> | |||
<artset> | <artset> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="224" width="488" viewBox="0 0 488 224" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version= "1.1" height="224" width="488" viewBox="0 0 488 224" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | |||
<path d="M 8,32 L 8,208" fill="none" stroke="black"/> | <path d="M 8,32 L 8,208" fill="none" stroke="black"/> | |||
<path d="M 24,96 L 24,160" fill="none" stroke="black"/> | <path d="M 24,96 L 24,160" fill="none" stroke="black"/> | |||
<path d="M 96,96 L 96,160" fill="none" stroke="black"/> | <path d="M 96,96 L 96,160" fill="none" stroke="black"/> | |||
<path d="M 128,80 L 128,112" fill="none" stroke="black"/> | <path d="M 128,80 L 128,112" fill="none" stroke="black"/> | |||
<path d="M 128,144 L 128,176" fill="none" stroke="black"/> | <path d="M 128,144 L 128,176" fill="none" stroke="black"/> | |||
<path d="M 184,64 L 184,96" fill="none" stroke="black"/> | <path d="M 184,64 L 184,96" fill="none" stroke="black"/> | |||
<path d="M 184,160 L 184,192" fill="none" stroke="black"/> | <path d="M 184,160 L 184,192" fill="none" stroke="black"/> | |||
<path d="M 240,104 L 240,152" fill="none" stroke="black"/> | <path d="M 240,104 L 240,152" fill="none" stroke="black"/> | |||
skipping to change at line 1145 ¶ | skipping to change at line 1176 ¶ | |||
| +----->| Leader |<-----------+ | | | +----->| Leader |<-----------+ | | |||
| +------------+ | | | | +------------+ | | | |||
+-------------------------------------+--------------------+ | +-------------------------------------+--------------------+ | |||
]]></artwork> | ]]></artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="applying-privacy-partitioning"> | <section anchor="applying-privacy-partitioning"> | |||
<name>Applying Privacy Partitioning</name> | <name>Applying Privacy Partitioning</name> | |||
<t>Applying privacy partitioning to an existing or new system or protocol | <t>Applying privacy partitioning to an existing or new system or | |||
requires the following steps:</t> | protocol requires the following steps:</t> | |||
<ol spacing="normal" type="1"><li> | <ol spacing="normal" type="1"> | |||
<t>Identify the types of information used or exposed in a system or pr | <li>Identify the types of information used or exposed in a system or | |||
otocol, some | protocol, some of which can be used to identify a user or correlate to | |||
of which can be used to identify a user or correlate to other contexts.</t> | other contexts.</li> | |||
</li> | <li>Partition data to minimize the amount of user-identifying or | |||
<li> | correlatable information in any given context to only include what is | |||
<t>Partition data to minimize the amount of user-identifying or correl | necessary for that context and prevent the sharing of data across | |||
atable | contexts wherever possible.</li> | |||
information in any given context to only include what is necessary for that | ||||
context, and prevent the sharing of data across contexts wherever possible.</t> | ||||
</li> | ||||
</ol> | </ol> | |||
<t>The most impactful types of information to partition are (a) user-ident | <t>The most impactful types of information to partition are (a) | |||
ifying information, | user-identifying information, such as user identifiers (including | |||
such as user identifiers (including account names or IP addresses) that can be | account names or IP addresses) that can be linked and (b) | |||
linked and (b) non-user-identifying information (including content a user | non-user-identifying information (including content a user generates or | |||
generates or accesses), which can be often sensitive when combined with a user i | accesses), which can be often sensitive when combined with a user | |||
dentifier.</t> | identifier.</t> | |||
<t>In this section, we discuss considerations for partitioning these types of information.</t> | <t>In this section, we discuss considerations for partitioning these types of information.</t> | |||
<section anchor="user-identifying-information"> | <section anchor="user-identifying-information"> | |||
<name>User-Identifying Information</name> | <name>User-Identifying Information</name> | |||
<t>User data can itself be user-identifying, in which case it should be | <t>User data can itself be user-identifying, in which case it should | |||
treated as an identifier. | be treated as an identifier. For example, Oblivious DoH and Oblivious | |||
For example, Oblivious DoH and Oblivious HTTP partition the client IP address an | HTTP partition the client IP address and client request data into | |||
d client request data into | separate contexts, thereby ensuring that no entity beyond the client | |||
separate contexts, thereby ensuring that no entity beyond the client can observe | can observe both. Collusion across contexts could reverse this | |||
both. Collusion across contexts | partitioning and cause non-user-identifying information to become | |||
could reverse this partitioning, but can also promote non-user-identifying infor | user-identifying information. For example, in CONNECT proxy systems tha | |||
mation to user-identifying. | t use | |||
For example, in CONNECT proxy systems that use QUIC, the QUIC connection ID is i | QUIC, the QUIC connection ID is inherently non-user-identifying since | |||
nherently non-user-identifying | it is generated randomly (<xref section="5.1" sectionFormat="of" | |||
since it is generated randomly (<xref section="5.1" sectionFormat="comma" target | target="RFC9000"/>). However, if combined with another context that | |||
="QUIC"/>). However, if combined with another context that has user-identifying | has user-identifying information such as the client IP address, the | |||
information such as the client IP address, the QUIC connection ID can become use | QUIC connection ID can become user-identifying information.</t> | |||
r-identifying information.</t> | <t>Some information is innate to client user-agents, including details | |||
<t>Some information is innate to client user-agents, including details o | of the network location and implementation of protocols in hardware | |||
f implementation of | and software. This information can be used to construct | |||
protocols in hardware and software, and network location. This information can b | user-identifying information, which is a process sometimes referred to | |||
e used to construct | as "fingerprinting". Depending on the application and system | |||
user-identifying information, which is a process sometimes referred to as finger | constraints, users may not be able to prevent fingerprinting in | |||
printing. | privacy contexts. As a result, fingerprinting information, when | |||
Depending on the application and system constraints, users may not be able to pr | combined with non-user-identifying user data, could turn that | |||
event fingerprinting | otherwise innocuous user data into user-identifying information.</t> | |||
in privacy contexts. As a result, fingerprinting information, when combined with | ||||
non-user-identifying | ||||
user data, could promote user data to user-identifying information.</t> | ||||
</section> | </section> | |||
<section anchor="selecting-client-identifiers"> | <section anchor="selecting-client-identifiers"> | |||
<name>Selecting Client Identifiers</name> | <name>Selecting Client Identifiers</name> | |||
<t>The selection of client identifiers used in the contexts used for pri | <t>The selection of client identifiers used in the contexts used for | |||
vacy partitioning has a large | privacy partitioning has a large impact on the effectiveness of | |||
impact on the effectiveness of partitioning. Identifier selection can either und | partitioning. Identifier selection can either undermine or improve the | |||
ermine or improve | value of partitioning. Generally, each context involves some form of | |||
the value of partitioning. Generally, each context involves some form of client | client identifier, which might be directly associated with a client | |||
identifier, | identity but can also be a pseudonym or a random one-time | |||
which might be directly associated with a client identity, but can also be a pse | identifier.</t> | |||
udonym | <t>Using the same client identifier across multiple contexts can | |||
or a random one-time identifier.</t> | partly or wholly undermine the effectiveness of partitioning by | |||
<t>Using the same client identifier across multiple contexts can partly | allowing the various contexts to be linked back to the same client. | |||
or wholly undermine the | For example, if a client uses proxies as described in <xref | |||
effectiveness of partitioning, by allowing the various contexts to be linked bac | target="masque"/> to separate connections but uses the same email | |||
k to the same client. | address to authenticate to two servers in different contexts, those | |||
For example, if a client uses proxies as described in <xref target="masque"/> to | actions can be linked back to the same client. While this does not | |||
separate connections, but uses | undermine all of the partitioning achieved through proxying (the | |||
the same email address to authenticate to two servers in different contexts, tho | contexts along the network path still cannot correlate the client | |||
se actions can be linked | identity and what servers are being accessed), the overall effect of | |||
back to the same client. While this does not undermine all of the partitioning a | partitioning is diminished.</t> | |||
chieved through | ||||
proxying (the contexts along the network path still cannot correlate the client | ||||
identity and | ||||
what servers are being accessed), the overall effect of partitioning is diminish | ||||
ed.</t> | ||||
<t>When possible, using per-context unique client identifiers provides b etter partitioning properties. | <t>When possible, using per-context unique client identifiers provides b etter partitioning properties. | |||
For example, a client can use a unique email address as an account identifier wi th each different | For example, a client can use a unique email address as an account identifier wi th each different | |||
server it needs to log into. The same approach can apply across many layers, as seen with | server it needs to log into. The same approach can apply across many layers, as seen with | |||
per-network MAC address randomization <xref target="I-D.ietf-madinas-mac-address -randomization"/>, use of | per-network MAC address randomization <xref target="I-D.ietf-madinas-mac-address -randomization"/>, use of | |||
multiple temporary IP addresses across connections and over time <xref target="R FC8981"/>, and use of | multiple temporary IP addresses across connections and over time <xref target="R FC8981"/>, and use of | |||
unique per-subscription identifiers for HTTP Web Push <xref target="RFC8030"/>.< /t> | unique per-subscription identifiers for HTTP Web Push <xref target="RFC8030"/>.< /t> | |||
</section> | </section> | |||
<section anchor="incorrect-or-incomplete-partitioning"> | <section anchor="incorrect-or-incomplete-partitioning"> | |||
<name>Incorrect or Incomplete Partitioning</name> | <name>Incorrect or Incomplete Partitioning</name> | |||
<t>Privacy partitioning can be applied incorrectly or incompletely. Cont | <t>Privacy partitioning can be applied incorrectly or | |||
exts may contain | incompletely. Contexts may contain more user-identifying information | |||
more user-identifying information than desired, or some information in a context | than desired, or some information in a context may be more | |||
may be more user-identifying | user-identifying than intended. Moreover, splitting user-identifying | |||
than intended. Moreover, splitting user-identifying information over multiple co | information over multiple contexts has to be done with care, as | |||
ntexts has to be done | creating more contexts can increase the number of entities that need | |||
with care, as creating more contexts can increase the number of entities that ne | to be trusted to not collude. Nevertheless, partitions can help | |||
ed to be trusted to not collude. | improve the client's privacy posture when applied carefully.</t> | |||
Nevertheless, partitions can help improve the client's privacy posture when appl | <t>Evaluating and qualifying the resulting privacy of a system or | |||
ied carefully.</t> | protocol that applies privacy partitioning depends on the contexts | |||
<t>Evaluating and qualifying the resulting privacy of a system or protoc | that exist and the types of user-identifying information in each | |||
ol that applies privacy partitioning depends | context. Such evaluation is helpful for identifying ways in which | |||
on the contexts that exist and the types of user-identifying information in each | systems or protocols can improve their privacy posture. For example, | |||
context. Such evaluation is | consider DNS over HTTPS <xref target="RFC8484"/>, which produces a | |||
helpful for identifying ways in which systems or protocols can improve their pri | single context that contains both the client IP address and client | |||
vacy posture. For example, | query. One application of privacy partitioning results in ODoH, which | |||
consider DNS-over-HTTPS <xref target="DOH"/>, which produces a single context wh | produces two contexts, one with the client IP address and the other | |||
ich contains both the client IP | with the client query.</t> | |||
address and client query. One application of privacy partitioning results in ODo | ||||
H, which produces two contexts, | ||||
one with the client IP address and the other with the client query.</t> | ||||
</section> | </section> | |||
<section anchor="selecting-information-within-a-context"> | <section anchor="selecting-information-within-a-context"> | |||
<name>Selecting Information Within a Context</name> | <name>Selecting Information within a Context</name> | |||
<t>Recognizing potential applications of privacy partitioning requires i | <t>Recognizing potential applications of privacy partitioning requires | |||
dentifying the contexts in use, the information | identifying the contexts in use, the information exposed in a context, | |||
exposed in a context, and the intent of information exposed in a context. Unfort | and the intent of information exposed in a context. Unfortunately, | |||
unately, determining what | determining what information to include in a given context is a | |||
information to include in a given context is a non-trivial task. In principle, t | non-trivial task. In principle, the information contained in a context | |||
he information contained | should be fit for purpose. As such, new systems or protocols developed | |||
in a context should be fit for purpose. As such, new systems or protocols develo | should aim to ensure that all information exposed in a context serves | |||
ped should aim to | as few purposes as possible. Designing with this principle from the | |||
ensure that all information exposed in a context serves as few purposes as possi | start helps mitigate issues that arise if users of the system or | |||
ble. Designing with this | protocol inadvertently ossify on the information available in | |||
principle from the start helps mitigate issues that arise if users of the system | contexts. Legacy systems that have ossified on information available | |||
or protocol inadvertently | in contexts may be difficult to change in practice. As an example, | |||
ossify on the information available in contexts. Legacy systems that have ossifi | many existing anti-abuse systems depend on some client identifier, | |||
ed on information available | such as the client IP address, coupled with client data to provide | |||
in contexts may be difficult to change in practice. As an example, many existing | value. Partitioning contexts in these systems such that they no longer | |||
anti-abuse systems | determine the client identity requires new solutions to the anti-abuse | |||
depend on some client identifier such as client IP address, coupled with client | problem.</t> | |||
data, to provide | ||||
value. Partitioning contexts in these systems such that they no longer determine | ||||
the client identity requires new | ||||
solutions to the anti-abuse problem.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="limits"> | <section anchor="limits"> | |||
<name>Limits of Privacy Partitioning</name> | <name>Limits of Privacy Partitioning</name> | |||
<t>Privacy partitioning aims to increase user privacy, though as stated, i | <t>Privacy partitioning aims to increase user privacy, though, as | |||
t is merely one of possibly many | stated, it is merely one of possibly many architectural tools that help | |||
architectural tools that help manage privacy risks. Understanding | manage privacy risks. Understanding the limits of its benefits requires | |||
the limits of its benefits requires a more comprehensive analysis of the system | a more comprehensive analysis of the system in question. Such analysis | |||
in question. | also helps determine whether or not the tool has been applied | |||
Such analysis also helps determine whether or not the tool has been applied corr | correctly. In particular, the value of privacy partitioning depends on | |||
ectly. In particular, | numerous factors, including, though not limited to, the following: </t> | |||
the value of privacy partitioning depends on numerous factors, including, though | <ul><li>non-collusion | |||
not limited to:</t> | across contexts and</li> <li>the type of information exposed in each | |||
<ul spacing="normal"> | context.</li></ul> | |||
<li> | <t>We elaborate on each in the following sections.</t> | |||
<t>Non-collusion across contexts; and</t> | ||||
</li> | ||||
<li> | ||||
<t>The type of information exposed in each context.</t> | ||||
</li> | ||||
</ul> | ||||
<t>We elaborate on each below.</t> | ||||
<section anchor="violations-by-collusion"> | <section anchor="violations-by-collusion"> | |||
<name>Violations by Collusion</name> | <name>Violations by Collusion</name> | |||
<t>Privacy partitions ensure that only the client, i.e., the entity whic | <t>Privacy partitions ensure that only the client, i.e., the entity | |||
h is responsible for partitioning, | that is responsible for partitioning, can independently link all | |||
can independently link all user-specific information. No other entity individual | user-specific information. No other entity individually knows how to | |||
ly | link all the user-specific information as long as they do not collude | |||
knows how to link all the user-specific information as long as they do not collu | with each other across contexts. Thus, non-collusion is a fundamental | |||
de with each other | requirement for privacy partitioning to offer meaningful privacy for | |||
across contexts. Thus, non-collusion is a fundamental requirement for privacy pa | end users. In particular, the trust relationships that users have with | |||
rtitioning | different parties affect the resulting impact on the user's | |||
to offer meaningful privacy for end-users. In particular, the trust relationship | privacy.</t> | |||
s that users have | <t>As an example, consider Oblivious HTTP (OHTTP), wherein the Oblivious | |||
with different parties affect the resulting impact on the user's privacy.</t> | Relay knows | |||
<t>As an example, consider OHTTP, wherein the Oblivious Relay knows the | the client identity but not the client data, and the Oblivious Gateway | |||
client identity but not | knows the client data but not the client identity. If the Oblivious | |||
the client data, and the Oblivious Gateway knows the client data but not the cli | Relay and Gateway collude, they can link client identity and data | |||
ent identity. | together for each request and response transaction by simply observing | |||
If the Oblivious Relay and Gateway collude, they can link client identity and da | requests in transit.</t> | |||
ta together | <t>It is not currently possible to guarantee with technical protocol | |||
for each request and response transaction by simply observing requests in transi | measures that two entities are not colluding. Even if two entities do | |||
t.</t> | not collude directly, if both entities reveal information to other | |||
<t>It is not currently possible to guarantee with technical protocol mea | parties, it will not be possible to guarantee that the information | |||
sures that two | won't be combined. However, there are some mitigations that can be | |||
entities are not colluding. Even if two entities do not collude directly, if bot | applied to reduce the risk of collusion happening in practice:</t> | |||
h entities reveal | ||||
information to other parties, it will not be possible to guarantee that the info | ||||
rmation won't | ||||
be combined. However, there are some mitigations that can be applied | ||||
to reduce the risk of collusion happening in practice:</t> | ||||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li> | <li>Policy and contractual agreements between entities involved in | |||
<t>Policy and contractual agreements between entities involved in pa | partitioning to disallow logging or sharing of data, along with | |||
rtitioning to disallow | auditing to validate that the policies are being followed. For | |||
logging or sharing of data, along with auditing to validate that the policies ar | cases where logging is required (such as for service operation), | |||
e being followed. | such logged data should be minimized and anonymized to prevent it | |||
For cases where logging is required (such as for service operation), such logged | from being useful for collusion.</li> | |||
data should | <li>Protocol requirements to make collusion or data sharing more | |||
be minimized and anonymized to prevent it from being useful for collusion.</t> | difficult.</li> | |||
</li> | <li>Adding more partitions and contexts to make it increasingly | |||
<li> | difficult to collude with enough parties to recover identities.</li> | |||
<t>Protocol requirements to make collusion or data sharing more diff | ||||
icult.</t> | ||||
</li> | ||||
<li> | ||||
<t>Adding more partitions and contexts, to make it increasingly diff | ||||
icult to collude with | ||||
enough parties to recover identities.</t> | ||||
</li> | ||||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="violations-by-insufficient-or-incorrect-partitioning"> | <section anchor="violations-by-insufficient-or-incorrect-partitioning"> | |||
<name>Violations by Insufficient or Incorrect Partitioning</name> | <name>Violations by Insufficient or Incorrect Partitioning</name> | |||
<t>Insufficient or incorrect application of privacy partitioning can les | <t>Insufficient or incorrect application of privacy partitioning can | |||
sen or negate benefits to users. | lessen or negate benefits to users. In particular, it is possible to | |||
In particular, it is possible to apply partitioning in a way that is either insu | apply partitioning in a way that is either insufficient or incorrect | |||
fficient or incorrect | for meaningful privacy. For example, partitioning at one layer in the | |||
for meaningful privacy. For example, partitioning at one layer in the stack can | stack can fail to account for linkable information at different layers | |||
fail to account for | in the stack. Privacy violations can stem from partitioning failures | |||
linkable information at different layers in the stack. Privacy violations can st | in a multitude of ways, some of which are described in the following | |||
em from partitioning | sections.</t> | |||
failures in a multitude of ways, some of which are described below.</t> | ||||
<section anchor="violations-from-application-information"> | <section anchor="violations-from-application-information"> | |||
<name>Violations from Application Information</name> | <name>Violations from Application Information</name> | |||
<t>Partitioning at the network layer can be insufficient when the appl | <t>Partitioning at the network layer can be insufficient when the | |||
ication layer fails to properly | application layer fails to properly partition. As an example, | |||
partition. As an example, consider OHTTP used for the purposes of hiding | consider OHTTP used for the purposes of hiding client-identifying | |||
client-identifying information for a browser telemetry system. It is entirely po | information for a browser telemetry system. It is entirely possible | |||
ssible for reports | for reports in such a telemetry system to contain both | |||
in such a telemetry system to contain both client-specific telemetry data, such | client-specific telemetry data, such as information about their | |||
as information | specific browser instance, as well as client-identifying | |||
about their specific browser instance, as well as client-identifying information | information, such as the client's email address, location, or IP | |||
, such as the client's | address. Even though OHTTP separates the client IP address from the | |||
email address, location, or IP address. Even though OHTTP separates the client I | server via a relay, the server can still learn this directly from | |||
P address from the | the client's telemetry report.</t> | |||
server via a relay, the server can still learn this directly from the client's t | ||||
elemetry report.</t> | ||||
</section> | </section> | |||
<section anchor="violations-from-network-information"> | <section anchor="violations-from-network-information"> | |||
<name>Violations from Network Information</name> | <name>Violations from Network Information</name> | |||
<t>It is also possible to inadequately partition at the network layer. | <t>It is also possible to inadequately partition at the network | |||
As an example, consider both TLS Encrypted Client Hello (ECH) <xref target="I-D | layer. As an example, consider both TLS Encrypted Client Hello (ECH) | |||
.ietf-tls-esni"/> | <xref target="I-D.ietf-tls-esni"/> and VPNs. ECH uses cryptographic | |||
and VPNs. ECH uses cryptographic protection (encryption) to hide information fro | protection (encryption) to hide information from unauthorized | |||
m unauthorized parties, | parties, but both clients and servers (two entities) can link | |||
but both clients and servers (two entities) can link user-specific data to user- | user-specific data to a user-specific identifier (IP address). | |||
specific identifier (IP address). | Similarly, while VPNs hide identifiers from end servers, the VPN | |||
Similarly, while VPNs hide identifiers from end servers, the VPN server can stil | server can still see the identifiers of both the client and | |||
l see the identifiers of both the | server. Applying privacy partitioning would advocate for at least | |||
client and server. Applying privacy partitioning would advocate for at least two | two additional entities to avoid revealing both identity (who) and | |||
additional entities to avoid | user actions (what) from each involved party.</t> | |||
revealing both identity (who) and user actions (what) from each involved party.< | ||||
/t> | ||||
</section> | </section> | |||
<section anchor="violations-from-side-channels"> | <section anchor="violations-from-side-channels"> | |||
<name>Violations from Side Channels</name> | <name>Violations from Side Channels</name> | |||
<t>Beyond the information that is intentionally revealed by applying p | <t>Beyond the information that is intentionally revealed by applying | |||
rivacy partitioning, it is also possible | privacy partitioning, it is also possible for the information to be | |||
for the information to be unintentionally revealed through side channels. For ex | unintentionally revealed through side channels. For example, in the | |||
ample, in the two-hop | two-hop proxy arrangement described in <xref target="masque"/>, | |||
proxy arrangement described in <xref target="masque"/>, Proxy A sees and proxies | Proxy A sees and proxies TLS data between the client and Proxy | |||
TLS data between the client and | B. While it does not directly learn information that Proxy B sees, | |||
Proxy B. While it does not directly learn information that Proxy B sees, it does | it does learn information through metadata, such as the timing and | |||
learn information through | size of encrypted data being proxied. Traffic analysis could be | |||
metadata, such as the timing and size of encrypted data being proxied. Traffic a | exploited to learn more information from such metadata, including, | |||
nalysis could be exploited | in some cases, application data that Proxy A was never meant to | |||
to learn more information from such metadata, including, in some cases, applicat | see. Although privacy partitioning does not obviate such attacks, it | |||
ion data that Proxy A was | does increase the cost necessary to carry them out in practice. See | |||
never meant to see. Although privacy partitioning does not obviate such attacks, | <xref target="security-considerations"/> for more discussion on this | |||
it does increase the cost | topic.</t> | |||
necessary to carry them out in practice. See <xref target="security-consideratio | ||||
ns"/> for more discussion on this topic.</t> | ||||
</section> | </section> | |||
<section anchor="identifying-partitions"> | <section anchor="identifying-partitions"> | |||
<name>Identifying Partitions</name> | <name>Identifying Partitions</name> | |||
<t>While straightforward violations of user privacy that stem from ins | <t>While straightforward violations of user privacy that stem from | |||
ufficient partitioning may seem straightforward | insufficient partitioning may seem straightforward to mitigate, it | |||
to mitigate, it remains an open problem to rigorously determine what information | remains an open problem to rigorously determine what information | |||
needs to be partitioned for meaningful | needs to be partitioned for meaningful privacy and to implement it | |||
privacy, and to implement it in a way that achieves the desired properties. In e | in a way that achieves the desired properties. In essence, it is | |||
ssence, it is difficult to determine | difficult to determine whether a certain set of information reveals | |||
whether a certain set of information reveals "too much" about a specific user, a | "too much" about a specific user, and it is similarly challenging to | |||
nd it is similarly challenging to determine | determine whether or not an implementation of partitioning works as | |||
whether or not an implementation of partitioning works as intended. There is amp | intended. There is ample evidence of data being assumed "private" or | |||
le evidence of data being assumed "private" | "anonymous" but, in hindsight, winds up revealing too much | |||
or "anonymous" but, in hindsight, winds up revealing too much information such t | information such that it allows one to link back to individual | |||
hat it allows one to link back to individual | clients; see <xref target="DataSetReconstruction"/> and <xref | |||
clients; see <xref target="DataSetReconstruction"/> and <xref target="CensusReco | target="CensusReconstruction"/> for more examples of this in the | |||
nstruction"/> | real world.</t> | |||
for more examples of this in the real world.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="partitioning-impacts"> | <section anchor="partitioning-impacts"> | |||
<name>Partitioning Impacts</name> | <name>Partitioning Impacts</name> | |||
<t>Applying privacy partitioning to communication protocols leads to a sub | <t>Applying privacy partitioning to communication protocols leads to a | |||
stantial change in communication patterns. | substantial change in communication patterns. For example, instead of | |||
For example, instead of sending traffic directly to a service, essentially all u | sending traffic directly to a service, essentially all user traffic is | |||
ser traffic is routed through | routed through a set of intermediaries, possibly adding more end-to-end | |||
a set of intermediaries, possibly adding more end-to-end round trips in the proc | round trips in the process (depending on the system and protocol). This | |||
ess (depending on the system | has a number of practical implications, described below.</t> | |||
and protocol). This has a number of practical implications, described below.</t> | <ol spacing="normal"> | |||
<ol spacing="normal" type="1"><li> | <li><t>Service operational or management challenges: Information that | |||
<t>Service operational or management challenges. Information that is t | is usually passively observed in the network or metadata that | |||
raditionally passively observed in the | has been unintentionally revealed to the service provider will no | |||
network or metadata that has been unintentionally revealed to the service provid | longer be available; for example, this can impact existing security | |||
er cannot be used anymore | procedures such as application rate limiting or DDoS mitigation. | |||
for e.g., existing security procedures such as application rate limiting or DDoS | Current network management techniques deployed often rely on | |||
mitigation. | information that is exposed by typical traffic that lacks guarantees | |||
However, network management techniques deployed at present often rely on informa | or accuracy.</t> | |||
tion that is exposed by | <t>Privacy partitioning provides an opportunity for improvements in | |||
most traffic but without any guarantees that the information is accurate. </t> | these management techniques by enabling active exchange of information | |||
<t> | with each entity in a privacy-preserving way and requesting exactly | |||
Privacy partitioning provides an opportunity for improvements in these managemen | the information needed for a specific task or function rather than | |||
t techniques by | relying on information derived from a limited set of unintentionally | |||
enabling active exchange of information with each entity in a privacy-preserving | revealed information that cannot be guaranteed to be available and may | |||
way and requesting | be removed in the future.</t></li> | |||
exactly the information needed for a specific task or function rather than relyi | ||||
ng on the assumption that | <li><t>Varying performance effects and costs: | |||
are derived from a limited set of unintentionally revealed information which can | Depending on how context separation is done, privacy | |||
not be guaranteed to be | partitioning may affect application performance. As an example, | |||
present and may disappear at any time in future.</t> | Privacy Pass introduces an entire end-to-end round trip to issue a | |||
</li> | token before it can be redeemed, thereby decreasing performance. In | |||
<li> | contrast, while systems like CONNECT proxying may seem like they would | |||
<t>Varying performance effects and costs. Depending on how context sep | reduce performance, oftentimes the highly optimized nature of | |||
aration is done, privacy partitioning may | proxy-to-proxy paths leads to improved performance.</t> | |||
affect application performance. As an example, Privacy Pass introduces an entire | <t>Reduced performance can be a reason that protocols and deployments | |||
end-to-end round | will not apply privacy partitioning. For example, HTTPS connection | |||
trip to issue a token before it can be redeemed, thereby decreasing performance. | reuse (<xref section="9.1.1" sectionFormat="of" target="RFC9113"/>) | |||
In contrast, while | allows clients to use an existing HTTPS session created for one origin | |||
systems like CONNECT proxying may seem like they would regress performance, ofte | to interact with different origins (provided that the original origin | |||
ntimes the highly | is authoritative for these alternative origins). Reusing connections | |||
optimized nature of proxy-to-proxy paths leads to improved performance. </t> | saves the cost of connection establishment but means that the server | |||
<t> | can now link the client's activity with these two or more origins | |||
Performance may also push back against the desire to apply privacy partitioning. | together. Applying privacy partitioning would prevent this, but | |||
For example, HTTPS | typically at the cost of performance.</t> | |||
connection reuse <xref section="9.1.1" sectionFormat="comma" target="HTTP2"/> al | <t>In general, while performance and privacy trade-offs are often cast | |||
lows clients to use an existing HTTPS session created | as a zero-sum game, in practice this is often not the case. The | |||
for one origin to interact with different origins (provided the original origin | relationship between privacy and performance varies depending on a | |||
is authoritative for | number of related factors, such as application characteristics, | |||
these alternative origins). Reusing connections saves the cost of connection est | network path properties, and so on.</t> | |||
ablishment, but means that | ||||
the server can now link the client's activity with these two or more origins tog | ||||
ether. Applying privacy | ||||
partitioning would prevent this, while typically at the cost of less performance | ||||
. </t> | ||||
<t> | ||||
In general, while performance and privacy tradeoffs are often cast as a zero-sum | ||||
game, in practice this | ||||
is often not the case. The relationship between privacy and performance varies d | ||||
epending on a number | ||||
of related factors, such as application characteristics, network path properties | ||||
, and so on.</t> | ||||
</li> | ||||
<li> | ||||
<t>Increased attack surface. Even in the event that information is ade | ||||
quately partitioned across | ||||
non-colluding parties, the resulting effects on the end-user may not always be p | ||||
ositive. For example, | ||||
using OHTTP as a basis for illustration, consider a hypothetical scenario where | ||||
the Oblivious | ||||
Gateway has an implementation flaw that causes all of its decrypt requests to be | ||||
inappropriately logged to a public or otherwise compromised location. Moreover, | ||||
assume | ||||
that the Target Resource for which these requests are destined does not have suc | ||||
h an | ||||
implementation flaw. Applications which use OHTTP with this flawed Oblivious Gat | ||||
eway to | ||||
interact with the Target Resource risk their user request information being made | ||||
public, | ||||
albeit in a way that is decoupled from user identifying information, whereas app | ||||
lications | ||||
that do not use OHTTP to interact with the Target Resource do not risk this type | ||||
of disclosure.</t> | ||||
</li> | ||||
<li> | ||||
<t>Centralization. Depending on the protocol and system, as well as th | ||||
e desired privacy properties, the | ||||
use of partitioning may inherently force centralization to a selected set of tru | ||||
sted participants. | ||||
As an example, the impact of OHTTP on end-user privacy generally increases propo | ||||
rtionally to the | ||||
number of users that exist behind a given Oblivious Relay. That is, the probabil | ||||
ity of an Oblivious | ||||
Gateway determining the client associated with a request forwarded through an Ob | ||||
livious Relay decreases | ||||
as the number of possible clients behind the Oblivious Relay increases. This tra | ||||
deoff encourages | ||||
the centralization of the Oblivious Relays.</t> | ||||
</li> | </li> | |||
<li><t>Increased attack surface: | ||||
Even in the event that information is adequately partitioned | ||||
across non-colluding parties, the resulting effects on the end user | ||||
may not always be positive. For example, using OHTTP as a basis for | ||||
illustration, consider a hypothetical scenario where the Oblivious | ||||
Gateway has an implementation flaw that causes all of its decrypt | ||||
requests to be inappropriately logged in a public or otherwise | ||||
compromised location. Moreover, assume that the Target Resource for | ||||
which these requests are destined does not have such an implementation | ||||
flaw. Applications that use OHTTP with this flawed Oblivious Gateway | ||||
to interact with the Target Resource risk their user request | ||||
information being made public, albeit in a way that is decoupled from | ||||
user identifying information, whereas applications that do not use | ||||
OHTTP to interact with the Target Resource do not risk this type of | ||||
disclosure.</t></li> | ||||
<li><t>Centralization: Depending on the protocol and system, as well | ||||
as the desired privacy properties, the use of partitioning may | ||||
inherently force centralization to a selected set of trusted | ||||
participants. As an example, the impact of OHTTP on end-user privacy | ||||
generally increases proportionally to the number of users that exist | ||||
behind a given Oblivious Relay. That is, the probability of an | ||||
Oblivious Gateway determining the client associated with a request | ||||
forwarded through an Oblivious Relay decreases as the number of | ||||
possible clients behind the Oblivious Relay increases. This trade-off | ||||
encourages the centralization of the Oblivious Relays.</t></li> | ||||
</ol> | </ol> | |||
</section> | </section> | |||
<section anchor="security-considerations"> | <section anchor="security-considerations"> | |||
<name>Security Considerations</name> | <name>Security Considerations</name> | |||
<t><xref target="limits"/> discusses some of the limitations of privacy pa | <t><xref target="limits"/> discusses some of the limitations of privacy | |||
rtitioning in practice, and advocates for holistic | partitioning in practice and advocates for holistic analysis to | |||
analysis to understand the extent to which privacy partitioning offers meaningfu | understand the extent to which privacy partitioning offers meaningful | |||
l privacy improvements. | privacy improvements. Applied correctly, partitioning helps improve an | |||
Applied correctly, partitioning helps improve an end-user's privacy posture, the | end-user's privacy posture, thereby making violations harder to do via | |||
reby making violations harder to | technical, social, or policy means. For example, side channels such as | |||
do via technical, social, or policy means. For example, side channels such as tr | traffic analysis <xref target="I-D.irtf-pearg-website-fingerprinting"/> | |||
affic analysis | or timing analysis are still possible and can allow an unauthorized | |||
<xref target="I-D.irtf-pearg-website-fingerprinting"/> or timing analysis are st | entity to learn information about a context they are not a participant | |||
ill possible and can allow | of. Proposed mitigations for these types of attacks, e.g., padding | |||
an unauthorized entity to learn information about a context they are not a parti | application traffic or generating fake traffic, can be very expensive | |||
cipant of. | and are therefore not typically applied in practice. Nevertheless, | |||
Proposed mitigations for these types of attacks, e.g., padding application traff | privacy partitioning moves the threat vector from one that has direct | |||
ic or generating | access to user-specific information to one that requires more effort, | |||
fake traffic, can be very expensive and are therefore not typically applied in p | e.g., computational resources, to violate end-user privacy.</t> | |||
ractice. | ||||
Nevertheless, privacy partitioning moves the threat vector from one that has dir | ||||
ect access to | ||||
user-specific information to one which requires more effort, e.g., computational | ||||
resources, | ||||
to violate end-user privacy.</t> | ||||
</section> | </section> | |||
<section anchor="iana-considerations"> | <section anchor="iana-considerations"> | |||
<name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t>This document has no IANA actions.</t> | <t>This document has no IANA actions.</t> | |||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<displayreference target="RFC9297" to="CONNECT-UDP"/> | ||||
<displayreference target="RFC9484" to="CONNECT-IP"/> | ||||
<displayreference target="RFC9458" to="OHTTP"/> | ||||
<displayreference target="RFC9180" to="HPKE"/> | ||||
<displayreference target="RFC9230" to="ODOH"/> | ||||
<displayreference target="RFC9000" to="QUIC"/> | ||||
<displayreference target="I-D.ietf-madinas-mac-address-randomization" to="RA | ||||
NDOM-MAC"/> | ||||
<displayreference target="RFC8484" to="DOH"/> | ||||
<displayreference target="I-D.ietf-tls-esni" to="TLS-ESNI"/> | ||||
<displayreference target="RFC9113" to="HTTP2"/> | ||||
<displayreference target="I-D.irtf-pearg-website-fingerprinting" to="FINGERP | ||||
INT"/> | ||||
<references anchor="sec-informative-references"> | <references anchor="sec-informative-references"> | |||
<name>Informative References</name> | <name>Informative References</name> | |||
<reference anchor="CensusReconstruction" target="https://www.census.gov/da ta/academy/webinars/2021/disclosure-avoidance-series/simulated-reconstruction-ab etted-re-identification-attack-on-the-2010-census.html"> | <reference anchor="CensusReconstruction" target="https://www.census.gov/da ta/academy/webinars/2021/disclosure-avoidance-series/simulated-reconstruction-ab etted-re-identification-attack-on-the-2010-census.html"> | |||
<front> | <front> | |||
<title>The Census Bureau's Simulated Reconstruction-Abetted Re-identif | <title>The Census Bureau's Simulated Reconstruction-Abetted | |||
ication Attack on the 2010 Census</title> | Re-identification Attack on the 2010 Census</title> | |||
<author> | <author> | |||
<organization/> | <organization>United States Consensus Bureau</organization> | |||
</author> | </author> | |||
<date>n.d.</date> | <date month="May" year="2021"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="DECOUPLING"> | <reference anchor="DECOUPLING"> | |||
<front> | <front> | |||
<title>The decoupling principle: a practical privacy framework</title> | <title>The decoupling principle: a practical privacy framework</title> | |||
<author fullname="Paul Schmitt" initials="P." surname="Schmitt"> | <author fullname="Paul Schmitt" initials="P." surname="Schmitt"> | |||
<organization>University of Hawai'i</organization> | <organization>University of Hawai'i</organization> | |||
</author> | </author> | |||
<author fullname="Jana Iyengar" initials="J." surname="Iyengar"> | <author fullname="Jana Iyengar" initials="J." surname="Iyengar"> | |||
<organization>Fastly</organization> | <organization>Fastly</organization> | |||
</author> | </author> | |||
<author fullname="Christopher Wood" initials="C." surname="Wood"> | <author fullname="Christopher Wood" initials="C." surname="Wood"> | |||
<organization>Cloudflare</organization> | <organization>Cloudflare</organization> | |||
</author> | </author> | |||
<author fullname="Barath Raghavan" initials="B." surname="Raghavan"> | <author fullname="Barath Raghavan" initials="B." surname="Raghavan"> | |||
<organization>USC</organization> | <organization>USC</organization> | |||
</author> | </author> | |||
<date month="November" year="2022"/> | <date month="November" year="2022"/> | |||
</front> | </front> | |||
<seriesInfo name="Proceedings of the 21st ACM Workshop on Hot Topics in" value="Networks"/> | <refcontent>Proceedings of the 21st ACM Workshop on Hot Topics in Networ ks</refcontent> | |||
<seriesInfo name="DOI" value="10.1145/3563766.3564112"/> | <seriesInfo name="DOI" value="10.1145/3563766.3564112"/> | |||
<refcontent>ACM</refcontent> | ||||
</reference> | ||||
<reference anchor="RFC6973"> | ||||
<front> | ||||
<title>Privacy Considerations for Internet Protocols</title> | ||||
<author fullname="A. Cooper" initials="A." surname="Cooper"/> | ||||
<author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/> | ||||
<author fullname="B. Aboba" initials="B." surname="Aboba"/> | ||||
<author fullname="J. Peterson" initials="J." surname="Peterson"/> | ||||
<author fullname="J. Morris" initials="J." surname="Morris"/> | ||||
<author fullname="M. Hansen" initials="M." surname="Hansen"/> | ||||
<author fullname="R. Smith" initials="R." surname="Smith"/> | ||||
<date month="July" year="2013"/> | ||||
<abstract> | ||||
<t>This document offers guidance for developing privacy consideratio | ||||
ns for inclusion in protocol specifications. It aims to make designers, implemen | ||||
ters, and users of Internet protocols aware of privacy-related design choices. I | ||||
t suggests that whether any individual RFC warrants a specific privacy considera | ||||
tions section will depend on the document's content.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6973"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6973"/> | ||||
</reference> | ||||
<reference anchor="CONNECT-UDP"> | ||||
<front> | ||||
<title>HTTP Datagrams and the Capsule Protocol</title> | ||||
<author fullname="D. Schinazi" initials="D." surname="Schinazi"/> | ||||
<author fullname="L. Pardue" initials="L." surname="Pardue"/> | ||||
<date month="August" year="2022"/> | ||||
<abstract> | ||||
<t>This document describes HTTP Datagrams, a convention for conveyin | ||||
g multiplexed, potentially unreliable datagrams inside an HTTP connection.</t> | ||||
<t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC D | ||||
ATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, H | ||||
TTP Datagrams can be sent using the Capsule Protocol, which is a more general co | ||||
nvention for conveying data in HTTP connections.</t> | ||||
<t>HTTP Datagrams and the Capsule Protocol are intended for use by H | ||||
TTP extensions, not applications.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9297"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9297"/> | ||||
</reference> | ||||
<reference anchor="CONNECT-IP"> | ||||
<front> | ||||
<title>Proxying IP in HTTP</title> | ||||
<author fullname="Tommy Pauly" initials="T." surname="Pauly"> | ||||
<organization>Apple Inc.</organization> | ||||
</author> | ||||
<author fullname="David Schinazi" initials="D." surname="Schinazi"> | ||||
<organization>Google LLC</organization> | ||||
</author> | ||||
<author fullname="Alex Chernyakhovsky" initials="A." surname="Chernyak | ||||
hovsky"> | ||||
<organization>Google LLC</organization> | ||||
</author> | ||||
<author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind"> | ||||
<organization>Ericsson</organization> | ||||
</author> | ||||
<author fullname="Magnus Westerlund" initials="M." surname="Westerlund | ||||
"> | ||||
<organization>Ericsson</organization> | ||||
</author> | ||||
<date day="28" month="April" year="2023"/> | ||||
<abstract> | ||||
<t>This document describes how to proxy IP packets in HTTP. This pr | ||||
otocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP p | ||||
ackets. More specifically, this document defines a protocol that allows an HTTP | ||||
client to create an IP tunnel through an HTTP server that acts as an IP proxy. | ||||
This document updates RFC 9298. | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-masque-connect-ip-13 | ||||
"/> | ||||
</reference> | </reference> | |||
<reference anchor="OHTTP"> | ||||
<front> | ||||
<title>Oblivious HTTP</title> | ||||
<author fullname="Martin Thomson" initials="M." surname="Thomson"> | ||||
<organization>Mozilla</organization> | ||||
</author> | ||||
<author fullname="Christopher A. Wood" initials="C. A." surname="Wood" | ||||
> | ||||
<organization>Cloudflare</organization> | ||||
</author> | ||||
<date day="25" month="August" year="2023"/> | ||||
<abstract> | ||||
<t> This document describes Oblivious HTTP, a protocol for forward | ||||
ing | ||||
encrypted HTTP messages. Oblivious HTTP allows a client to make | ||||
multiple requests to an origin server without that server being able | ||||
to link those requests to the client or to identify the requests as | ||||
having come from the same client, while placing only limited trust in | ||||
the nodes used to forward the messages. | ||||
</t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.697 | |||
</abstract> | 3.xml"/> | |||
</front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.929 | |||
<seriesInfo name="Internet-Draft" value="draft-ietf-ohai-ohttp-10"/> | 7.xml"/> | |||
</reference> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.948 | |||
<reference anchor="HPKE"> | 4.xml"/> | |||
<front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.945 | |||
<title>Hybrid Public Key Encryption</title> | 8.xml"/> | |||
<author fullname="R. Barnes" initials="R." surname="Barnes"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.918 | |||
<author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/> | 0.xml"/> | |||
<author fullname="B. Lipp" initials="B." surname="Lipp"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.923 | |||
<author fullname="C. Wood" initials="C." surname="Wood"/> | 0.xml"/> | |||
<date month="February" year="2022"/> | ||||
<abstract> | ||||
<t>This document describes a scheme for hybrid public key encryption | ||||
(HPKE). This scheme provides a variant of public key encryption of arbitrary-si | ||||
zed plaintexts for a recipient public key. It also includes three authenticated | ||||
variants, including one that authenticates possession of a pre-shared key and tw | ||||
o optional ones that authenticate possession of a key encapsulation mechanism (K | ||||
EM) private key. HPKE works for any combination of an asymmetric KEM, key deriva | ||||
tion function (KDF), and authenticated encryption with additional data (AEAD) en | ||||
cryption function. Some authenticated variants may not be supported by all KEMs. | ||||
We provide instantiations of the scheme using widely used and efficient primiti | ||||
ves, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key | ||||
derivation function (HKDF), and SHA2.</t> | ||||
<t>This document is a product of the Crypto Forum Research Group (CF | ||||
RG) in the IRTF.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9180"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9180"/> | ||||
</reference> | ||||
<reference anchor="ODOH"> | ||||
<front> | ||||
<title>Oblivious DNS over HTTPS</title> | ||||
<author fullname="E. Kinnear" initials="E." surname="Kinnear"/> | ||||
<author fullname="P. McManus" initials="P." surname="McManus"/> | ||||
<author fullname="T. Pauly" initials="T." surname="Pauly"/> | ||||
<author fullname="T. Verma" initials="T." surname="Verma"/> | ||||
<author fullname="C.A. Wood" initials="C.A." surname="Wood"/> | ||||
<date month="June" year="2022"/> | ||||
<abstract> | ||||
<t>This document describes a protocol that allows clients to hide th | ||||
eir IP addresses from DNS resolvers via proxying encrypted DNS over HTTPS (DoH) | ||||
messages. This improves privacy of DNS operations by not allowing any one server | ||||
entity to be aware of both the client IP address and the content of DNS queries | ||||
and answers.</t> | ||||
<t>This experimental protocol has been developed outside the IETF an | ||||
d is published here to guide implementation, ensure interoperability among imple | ||||
mentations, and enable wide-scale experimentation.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9230"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9230"/> | ||||
</reference> | ||||
<reference anchor="PRIVACYPASS"> | ||||
<front> | ||||
<title>The Privacy Pass Architecture</title> | ||||
<author fullname="Alex Davidson" initials="A." surname="Davidson"> | ||||
<organization>LIP</organization> | ||||
</author> | ||||
<author fullname="Jana Iyengar" initials="J." surname="Iyengar"> | ||||
<organization>Fastly</organization> | ||||
</author> | ||||
<author fullname="Christopher A. Wood" initials="C. A." surname="Wood" | ||||
> | ||||
<organization>Cloudflare</organization> | ||||
</author> | ||||
<date day="25" month="September" year="2023"/> | ||||
<abstract> | ||||
<t> This document specifies the Privacy Pass architecture and | ||||
requirements for its constituent protocols used for authorization | ||||
based on privacy-preserving authentication mechanisms. It describes | ||||
the conceptual model of Privacy Pass and its protocols, its security | ||||
and privacy goals, practical deployment models, and recommendations | ||||
for each deployment model that helps ensure the desired security and | ||||
privacy goals are fulfilled. | ||||
</t> | <!-- [I-D.ietf-privacypass-architecture] Published as RFC 9576--> | |||
</abstract> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.957 | |||
</front> | 6.xml"/> | |||
<seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-architec | ||||
ture-16"/> | ||||
</reference> | ||||
<reference anchor="QUIC"> | ||||
<front> | ||||
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title> | ||||
<author fullname="J. Iyengar" initials="J." role="editor" surname="Iye | ||||
ngar"/> | ||||
<author fullname="M. Thomson" initials="M." role="editor" surname="Tho | ||||
mson"/> | ||||
<date month="May" year="2021"/> | ||||
<abstract> | ||||
<t>This document defines the core of the QUIC transport protocol. QU | ||||
IC provides applications with flow-controlled streams for structured communicati | ||||
on, low-latency connection establishment, and network path migration. QUIC inclu | ||||
des security measures that ensure confidentiality, integrity, and availability i | ||||
n a range of deployment circumstances. Accompanying documents describe the integ | ||||
ration of TLS for key negotiation, loss detection, and an exemplary congestion c | ||||
ontrol algorithm.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9000"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9000"/> | ||||
</reference> | ||||
<reference anchor="I-D.ietf-madinas-mac-address-randomization"> | ||||
<front> | ||||
<title>Randomized and Changing MAC Address state of affairs</title> | ||||
<author fullname="Juan-Carlos Zúñiga" initials="J. C." surname="Zúñiga | ||||
"> | ||||
<organization>CISCO</organization> | ||||
</author> | ||||
<author fullname="Carlos J. Bernardos" initials="C. J." surname="Berna | ||||
rdos"> | ||||
<organization>Universidad Carlos III de Madrid</organization> | ||||
</author> | ||||
<author fullname="Amelia Andersdotter" initials="A." surname="Andersdo | ||||
tter"> | ||||
<organization>Safespring AB</organization> | ||||
</author> | ||||
<date day="11" month="January" year="2024"/> | ||||
<abstract> | ||||
<t> Internet privacy has become a major concern over the past few | ||||
years. | ||||
Users are becoming more aware that their online activity leaves a | ||||
vast digital footprint, that communications are not always properly | ||||
secured, and that their location and actions can be easily tracked. | ||||
One of the main factors for the location tracking issue is the wide | ||||
use of long-lasting identifiers, such as MAC addresses. | ||||
There have been several initiatives at the IETF and the IEEE 802 | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.900 | |||
standards committees to overcome some of these privacy issues. This | 0.xml"/> | |||
document provides an overview of these activities, with the intention | ||||
to inform the technical community about them, and help coordinate | ||||
between present and future standardization activities. | ||||
</t> | <!-- [I-D.ietf-madinas-mac-address-randomization] [QUIC] IESG state: RFC Ed | |||
</abstract> | Queue as of 7/30/24; updated to long version because missing editor role | |||
</front> | and not showing initials correctly --> | |||
<seriesInfo name="Internet-Draft" value="draft-ietf-madinas-mac-address- | <reference anchor="I-D.ietf-madinas-mac-address-randomization" target="htt | |||
randomization-10"/> | ps://datatracker.ietf.org/doc/html/draft-ietf-madinas-mac-address-randomization- | |||
</reference> | 12"> | |||
<reference anchor="RFC8981"> | <front> | |||
<front> | <title>Randomized and Changing MAC Address state of affairs</title> | |||
<title>Temporary Address Extensions for Stateless Address Autoconfigur | <author initials="JC." surname="Zuniga" fullname="Juan-Carlos Zuniga"> | |||
ation in IPv6</title> | <organization>CISCO</organization> | |||
<author fullname="F. Gont" initials="F." surname="Gont"/> | </author> | |||
<author fullname="S. Krishnan" initials="S." surname="Krishnan"/> | <author initials="CJ." surname="Bernardos" fullname="Carlos J. Bernardo | |||
<author fullname="T. Narten" initials="T." surname="Narten"/> | s" role="editor"> | |||
<author fullname="R. Draves" initials="R." surname="Draves"/> | <organization>Universidad Carlos III de Madrid</organization> | |||
<date month="February" year="2021"/> | </author> | |||
<abstract> | <author initials="A." surname="Andersdotter" fullname="Amelia Andersdot | |||
<t>This document describes an extension to IPv6 Stateless Address Au | ter"> | |||
toconfiguration that causes hosts to generate temporary addresses with randomize | <organization>Safespring AB</organization> | |||
d interface identifiers for each prefix advertised with autoconfiguration enable | </author> | |||
d. Changing addresses over time limits the window of time during which eavesdrop | <date month="February" day="28" year="2024"/> | |||
pers and other information collectors may trivially perform address-based networ | </front> | |||
k-activity correlation when the same address is employed for multiple transactio | <seriesInfo name="Internet-Draft" value="draft-ietf-madinas-mac-address-r | |||
ns by the same host. Additionally, it reduces the window of exposure of a host a | andomization-12"/> | |||
s being accessible via an address that becomes revealed as a result of active co | ||||
mmunication. This document obsoletes RFC 4941.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8981"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8981"/> | ||||
</reference> | ||||
<reference anchor="RFC8030"> | ||||
<front> | ||||
<title>Generic Event Delivery Using HTTP Push</title> | ||||
<author fullname="M. Thomson" initials="M." surname="Thomson"/> | ||||
<author fullname="E. Damaggio" initials="E." surname="Damaggio"/> | ||||
<author fullname="B. Raymor" initials="B." role="editor" surname="Raym | ||||
or"/> | ||||
<date month="December" year="2016"/> | ||||
<abstract> | ||||
<t>This document describes a simple protocol for the delivery of rea | ||||
l- time events to user agents. This scheme uses HTTP/2 server push.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8030"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8030"/> | ||||
</reference> | ||||
<reference anchor="DOH"> | ||||
<front> | ||||
<title>DNS Queries over HTTPS (DoH)</title> | ||||
<author fullname="P. Hoffman" initials="P." surname="Hoffman"/> | ||||
<author fullname="P. McManus" initials="P." surname="McManus"/> | ||||
<date month="October" year="2018"/> | ||||
<abstract> | ||||
<t>This document defines a protocol for sending DNS queries and gett | ||||
ing DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTT | ||||
P exchange.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8484"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8484"/> | ||||
</reference> | </reference> | |||
<reference anchor="I-D.ietf-tls-esni"> | ||||
<front> | ||||
<title>TLS Encrypted Client Hello</title> | ||||
<author fullname="Eric Rescorla" initials="E." surname="Rescorla"> | ||||
<organization>RTFM, Inc.</organization> | ||||
</author> | ||||
<author fullname="Kazuho Oku" initials="K." surname="Oku"> | ||||
<organization>Fastly</organization> | ||||
</author> | ||||
<author fullname="Nick Sullivan" initials="N." surname="Sullivan"> | ||||
<organization>Cloudflare</organization> | ||||
</author> | ||||
<author fullname="Christopher A. Wood" initials="C. A." surname="Wood" | ||||
> | ||||
<organization>Cloudflare</organization> | ||||
</author> | ||||
<date day="9" month="October" year="2023"/> | ||||
<abstract> | ||||
<t> This document describes a mechanism in Transport Layer Securit | ||||
y (TLS) | ||||
for encrypting a ClientHello message under a server public key. | ||||
Discussion Venues | ||||
This note is to be removed before publishing as an RFC. | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.898 | |||
1.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.803 | ||||
0.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.848 | ||||
4.xml"/> | ||||
Source for this draft and an issue tracker can be found at | <!-- [I-D.ietf-tls-esni] IESG state: I-D Exists 7/30/2024 --> | |||
https://github.com/tlswg/draft-ietf-tls-esni | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-tls- | |||
(https://github.com/tlswg/draft-ietf-tls-esni). | esni.xml"/> | |||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-17"/> | ||||
</reference> | ||||
<reference anchor="DataSetReconstruction"> | <reference anchor="DataSetReconstruction"> | |||
<front> | <front> | |||
<title>Robust De-anonymization of Large Sparse Datasets</title> | <title>Robust De-anonymization of Large Sparse Datasets</title> | |||
<author fullname="Arvind Narayanan" initials="A." surname="Narayanan"> | <author fullname="Arvind Narayanan" initials="A." surname="Narayanan"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<author fullname="Vitaly Shmatikov" initials="V." surname="Shmatikov"> | <author fullname="Vitaly Shmatikov" initials="V." surname="Shmatikov"> | |||
<organization/> | <organization/> | |||
</author> | </author> | |||
<date month="May" year="2008"/> | <date month="May" year="2008"/> | |||
</front> | </front> | |||
<seriesInfo name="2008 IEEE Symposium on Security and Privacy (sp" value ="2008)"/> | <refcontent>IEEE Symposium on Security and Privacy</refcontent> | |||
<seriesInfo name="DOI" value="10.1109/sp.2008.33"/> | <seriesInfo name="DOI" value="10.1109/sp.2008.33"/> | |||
<refcontent>IEEE</refcontent> | ||||
</reference> | ||||
<reference anchor="HTTP2"> | ||||
<front> | ||||
<title>HTTP/2</title> | ||||
<author fullname="M. Thomson" initials="M." role="editor" surname="Tho | ||||
mson"/> | ||||
<author fullname="C. Benfield" initials="C." role="editor" surname="Be | ||||
nfield"/> | ||||
<date month="June" year="2022"/> | ||||
<abstract> | ||||
<t>This specification describes an optimized expression of the seman | ||||
tics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (H | ||||
TTP/2). HTTP/2 enables a more efficient use of network resources and a reduced l | ||||
atency by introducing field compression and allowing multiple concurrent exchang | ||||
es on the same connection.</t> | ||||
<t>This document obsoletes RFCs 7540 and 8740.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="9113"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC9113"/> | ||||
</reference> | </reference> | |||
<reference anchor="I-D.irtf-pearg-website-fingerprinting"> | ||||
<front> | ||||
<title>Network-Based Website Fingerprinting</title> | ||||
<author fullname="Ian Goldberg" initials="I." surname="Goldberg"> | ||||
<organization>University of Waterloo</organization> | ||||
</author> | ||||
<author fullname="Tao Wang" initials="T." surname="Wang"> | ||||
<organization>HK University of Science and Technology</organization> | ||||
</author> | ||||
<author fullname="Christopher A. Wood" initials="C. A." surname="Wood" | ||||
> | ||||
<organization>Cloudflare</organization> | ||||
</author> | ||||
<date day="8" month="September" year="2020"/> | ||||
<abstract> | ||||
<t> The IETF is well on its way to protecting connection metadata | ||||
with | ||||
protocols such as DNS-over-TLS and DNS-over-HTTPS, and work-in- | ||||
progress towards encrypting the TLS SNI. However, more work is | ||||
needed to protect traffic metadata, especially in the context of web | ||||
traffic. In this document, we survey Website Fingerprinting attacks, | ||||
which are a class of attacks that use machine learning techniques to | ||||
attack web privacy, and highlight metadata leaks used by said | ||||
attacks. We also survey proposed mitigations for such leakage and | ||||
discuss their applicability to IETF protocols such as TLS, QUIC, and | ||||
HTTP. We endeavor to show that Website Fingerprinting attacks are a | ||||
serious problem that affect all Internet users, and we pose open | ||||
problems and directions for future research in this area. | ||||
</t> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.911 | |||
</abstract> | 3.xml"/> | |||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-irtf-pearg-website-finger | <!-- [I-D.irtf-pearg-website-fingerprinting] IESG state: Expired as of 7/3 | |||
printing-01"/> | 0/24--> | |||
</reference> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-irtf-pear | |||
g-website-fingerprinting.xml"/> | ||||
</references> | </references> | |||
<?line 834?> | <section numbered="false" anchor="iab-members"> | |||
<name>IAB Members at the Time of Approval</name> | ||||
<t>Internet Architecture Board members at the time this document was | ||||
approved for publication were:</t> | ||||
<ul empty="true" spacing="compact" bare="false" indent="3"> | ||||
<li> | ||||
<t><contact fullname="Dhruv Dhody"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Lars Eggert"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Wes Hardaker"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Cullen Jennings"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Mallory Knodel"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Suresh Krishnan"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Mirja Kühlewind"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Tommy Pauly"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Alvaro Retana"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="David Schinazi"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Christopher Wood"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Qin Wu"/></t> | ||||
</li> | ||||
<li> | ||||
<t><contact fullname="Jiankang Yao"/></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
<section numbered="false" anchor="acknowledgments"> | <section numbered="false" anchor="acknowledgments"> | |||
<name>Acknowledgments</name> | <name>Acknowledgments</name> | |||
<t>We would like to thank Martin Thomson, Eliot Lear, Mark Nottingham, Nie | <t>We would like to thank <contact fullname="Martin Thomson"/>, <contact | |||
ls ten Oever, Vittorio Bertola, | fullname="Eliot Lear"/>, <contact fullname="Mark Nottingham"/>, <contact | |||
Antoine Fressancourt, Cullen Jennings, and Dhruv Dhody for their reviews and fee | fullname="Niels ten Oever"/>, <contact fullname="Vittorio Bertola"/>, | |||
dback.</t> | <contact fullname="Antoine Fressancourt"/>, <contact fullname="Cullen | |||
Jennings"/>, and <contact fullname="Dhruv Dhody"/> for their reviews and | ||||
feedback.</t> | ||||
</section> | </section> | |||
</back> | </back> | |||
<!-- ##markdown-source: | ||||
H4sIAAAAAAAAA+1923bbRrbge30FlvohUpuk7aQviTPpbll22ppOYp3I6ax5 | ||||
mbVAokjiGATYKFAKY7u/bN7mx2Zf6wKAshTLM52ew4fEIoG67Nq175fpdGq6 | ||||
sqvsk+zoIm/hn2VTl/Uqy12W19lpu1iXnV10u9Zmy6bNLtryKl/sj0w+n7f2 | ||||
qv9W8sgi7+yqafdPsrJeNsZ1rc03T7Lz06fGFM2izjcwa9Hmy25a5vPplt+b | ||||
bqMBp49+b2CSz8xru79u2gLerjvb1rabPsMXjcl33bppn5hsajL4LHdVxQN/ | ||||
W7b/mWd/+9//a13Z67Iu6OemXeV1+XOOwz/Jnrflwrmmzr63zuawVXrGbvKy | ||||
epJt8P3Z652V9/9i5enZotkMp3vVbDb77CLfVfuRmU6328rGo3dbfPIvOX4/ | ||||
PuDZui1d12zXts1OZ9mPTTO2hbOq2RXLKm+T0Rf59V/WNt8CBOdl52YAL2Pq | ||||
pt3AW1f2iTF4IP6vLDuztdu57+2iqeGUdgsamwYU3Hi1tvJQ9hRQId994rLL | ||||
crOr4IiLLH1xejq3HX89LQtbd+WyXNBys9OuyxevM/hXBwN++ujxIxmV58rb | ||||
le2eZOuu27onDx9eX1/PFvTzbNVcPSzyLn+YL/LCbvYPr+28rPPWPfz00aeP | ||||
HxalW1SNg5VN86umLPJ6YacODsy6h06XOW3TZea8TPi6t8xpTsucwr9gmVNc | ||||
5lTWse42lTFmOp1m+RyGyhcA2Ffr0mWA0LsNjJIV1i3acm4d7RGQul6UcMhZ | ||||
s8wEw7MYwyfZ9bpcrDNnK7hmcB7VPnNbAHEBY8KO4RYWGSDIZlcrFPNF2zhn | ||||
YFsdjUzDwXx4ZbONzWuYusnKzbZtrqyfdA7jWngUxoCLugPoZLztbp8t22bD | ||||
X+GUs4M7shvbrvD1LYAIrqGDmw0TNF2zaCqa1W8NtpV3YQcb2+X0R+kM0A2b | ||||
V4Ag3bptdqu1HwFGg1FzOh43wa+vYImOto84Y9tNWTdVs9pPaFA89p1z8MS6 | ||||
uTYwe17n1f5nm7kdQHTTFLZyMz6tTVkUcAPNb5CAtE3BOGDMhV88vQMgfPXN | ||||
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 | ||||
5ohiIIr9mitKCS5q2lRL7HoQmJ1jn3jYExx5lmWjzj4fEUesaUsefITUMoS5 | ||||
sq3MezTHt8sLtjUma1KEH2V1aFHWPjcIjhDveaGoa1rgdBtSe6/Fli7GbDQL | ||||
4DQ/5Xx/e1tGLilMMWIrGD2Ah+kb3gNIqO4PRk/hYcRh20jlt/5IcDK2umAr | ||||
b6m4knunmxCAg8ibbDmueQxo649PoqFwKsUT3DHKFmjK3W5BMkQkwjPnaF0Q | ||||
C3cUi0M3+e8gYkkEJM2GrIsjKdUq6dC1lESoo1crxCb4sjwUSlrbAzWCYEUE | ||||
D3bwxPcmmnqgW6elrerOBwDVYpsZkEacBKkjcTwMbNCaSAClJQnI3vjOBY/Q | ||||
B60ZLFiul82t6arOazGuu06UWJwm6emepIok4h39TN6ba0llWZF5JJphwpeb | ||||
kwUQkzBxuiKANdtOrNhSIokLcnE7QVaaMLY2Ynxy8YpkC3yHo0PG5bGeh3GQ | ||||
JCPkKxQzu0imi4yuo13iEp5JsVs4TZQd0loML8Aa1vDjp1zE+vFnIZHli9lj | ||||
TGUZqRBGkbJRGiNHhmn76AWnQinFprABLrdDgk5c6irYXH2hJyFbEoEltcJ0 | ||||
AKR8bDdBIZDbyRFSEf3KKxQX+AcZDzjq95bjiOO4VZerfIx3KK2cEBLTN+S4 | ||||
RuqMgrjzdKNnHqvhypEwlxjCiE6Sn1vixxzp05lKYLph9QkOzSBEN4aWkJC4 | ||||
WDq12nT7rfSSF3ah26p6yMy4BldGyuXpADGJYYlEFCYQBWyzXLKXiLncAi0v | ||||
JKH8bNtmCmQ1W+Ubthqo7sdBTjAVhWfgW97PmmOE1iuSNYMT2lsFdGJaRLSo | ||||
KxLBskSKUhGJruIyk4oWIa5iTBDAchHwO1B9QN2Fm6RB8EFL0loeGSW9YLqt | ||||
qMGFaMgwegszWXWESi6KHE1PyaPGf0Mbpi9bTaJUUinBu0BTd7uSf019EV+/ | ||||
TzXKKwoFZV8p5V/2wjphIr4ObCamY5znaL0guQC9ZV0rRmZvPM2z9X6LrlkW | ||||
Qt0CpIG2bMQ3mHjJcQJ1j68lGTLV25ZVfq1+Vq45wQkNJXWL5JLsodeAMlCg | ||||
AhgwD+jBMBS3Isn5Wy7Oj7QGb9I1RslRqFCzKfHAQkJZiKNmpY9vcx43wQR6 | ||||
4Zpdu7BRlRq+vX5R4q3pKN3KW1EoQo5RrqYVD7c9i903TgZHYsqH4aMD6eGk | ||||
jqWCtGsYGDERHVs7eanZPUH4oXEGMVKy9rsBxBQIEnbkFXzfNymULiptxAbs | ||||
KIF3LOHO4mVJQlw9rCVGIOx7wBbGdiRvycZQS5E4J7QdVY3zUhOovh0VApUz | ||||
HyTw+XiHkL2XeGpSs4mw1ogwiOrDuQ1Ds1GUWAoQwQJNyYJUNcXI4SBoasA8 | ||||
+1jLbU7l62GWnsxFcrGE3CwFfFR6UOiArnelSWrefEcpMqgFqCzL+hdRHq9o | ||||
chBQFMI+t2j08HG8vWAYpOOEHRMF7DyflxVyPSpwM04W4vjh2Ag8SH9TpBXb | ||||
W2S7HrYeUfHQ0lRyipEGrf4klWJkY2MRPh5ioo0rD0RzMOAilqNVKaB3tM1o | ||||
yBB591GqYk31LLGCYgktCdp8p2ZQzSGU4ejn94SJR6xXKmCKv4Tp+rqpiN8Z | ||||
b6tGKc6HYTIv+YkiwrvGx86PzEORZ24s9CxWKWdkIkpiJntuew7C1HyEPGDw | ||||
MNsjaADSGyKy72I2MRVINUXDFWc1qgk97IBNFblKtxyHQ1JcTzBOvCDBH9Az | ||||
7Rt1DLZYmhfUttX02s6BwdppmpgLh9i0wZWgcacYakTeMY+HWl2YA3ow+yz2 | ||||
CIru7L0HSaiCGFdD9rgUQCP+H1MQOK0Z+lXY8BCHOYnbKC6a4O3+bGHZiokr | ||||
lp0UKvCyZMRzqMNrqz9NVH0DHotB3FsfqlvQEukkSdMjcTBIrT4tK3gP+slC | ||||
o4pro3I81lUDUnTFZXGIRZGdVW1RbBmU/EREmMOhnlRRxMot8CHIbOtbYiaE | ||||
wogLf6mNrRVO5SboJGAktQPKTLTg/PS70wEdeMX5nosdGWBwzXXDT4p3EvOb | ||||
ptMp6YNUiGaBUY3AkVd06cybJ0zvbPHV0RLUR4v1an60ojawptuQbeR19i1C | ||||
sQb61mwcMuznVQkH8o3F2B747XX2XUNZZusceON3Jd4NFOJfsn3s72UHUAYB | ||||
8CkcEOxzYk7rrkH3xteoPedEJwFMZzu0M2b/3VIhRJGpn63b3RX8tym0NAtK | ||||
KaDUlPaa7RpLawvc5Mz8HytzxXjzzgAA | ||||
</rfc> | </rfc> | |||
End of changes. 88 change blocks. | ||||
1451 lines changed or deleted | 717 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |