<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?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-04" category="info" submissionType="IAB" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Partitioning for Privacy">Partitioning as an Architecture for Privacy</title>
    <seriesInfo name="Internet-Draft" value="draft-iab-privacy-partitioning-04"/>
    <author fullname="Mirja Kühlewind">
      <organization>Ericsson Research</organization>
      <address>
        <email>mirja.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <author fullname="Tommy Pauly">
      <organization>Apple</organization>
      <address>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author fullname="Christopher A. Wood">
      <organization>Cloudflare</organization>
      <address>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <date year="2023" month="December" day="13"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 33?>

<t>This document describes the principle of privacy 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>
    <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 (iab@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>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Protocols such as TLS and IPsec provide a secure (authenticated and encrypted) channel
between two endpoints over which endpoints transfer information. Encryption and authentication
of data in transit are necessary to protect information from being seen or modified by parties
other than the intended protocol participants. As such, this kind of security is necessary for ensuring that
information transferred over these channels remains private.</t>
      <t>However, a secure channel between two endpoints is insufficient for the privacy of the endpoints
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">
        <li>
          <t>A user accessing a service on a website might not consent to reveal their location,
but if that service is able to observe the client's IP address, it can learn something
about the user's location. This is problematic for privacy since the service can link
user data to the user's location.</t>
        </li>
        <li>
          <t>A user might want to be able to access content for which they are authorized,
such as a news article, without needing to have which specific articles they
read on their account being recorded. This is problematic for privacy since the service
can link user activity to the user's account.</t>
        </li>
        <li>
          <t>A client device that needs to upload metrics to an aggregation service might want to be
able to contribute data to the system without having their specific contributions
attributed to them. This is problematic for privacy since the service can link client
contributions to the specific client.</t>
        </li>
      </ul>
      <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 service. In particular,
separating the user-specific identity information from user-specific data is necessary for
privacy. Thus, in order to protect user privacy, it is important to keep identity (who) and data
(what) separate.</t>
      <t>This document defines "privacy partitioning," sometimes also referred to as the "decoupling principle"
<xref target="DECOUPLING"/>, as the general technique used to separate the data
and metadata visible to various parties in network communication, with the aim of improving
user privacy. Although privacy partitioning cannot guarantee there is no link between user-specific
identity and user-specific data, when applied properly it helps ensure that user privacy violations
become more technically difficult to achieve over time.</t>
      <t>Several IETF working groups are working on protocols or systems that adhere to the principle
of privacy partitioning, including Oblivious HTTP Application Intermediation (OHAI), Multiplexed Application Substrate over QUIC Encryption (MASQUE), Privacy Pass, and Privacy Preserving Measurement (PPM). This document summarizes
work in those groups and describes a framework for reasoning about the resulting privacy posture of different
endpoints in practice.</t>
      <t>Privacy partitioning is particularly relevant as a tool for data minimization, which is described
in <xref section="6.1" sectionFormat="of" target="RFC6973"/>. <xref target="RFC6973"/> provides guidance for privacy considerations in
Internet protocols, along with a set of questions on how to evaluate the data minimization
of a protocol in <xref section="7.1" sectionFormat="of" target="RFC6973"/>. Protocols that employ privacy partitioning
ought to consider the questions in that section when evaluating their design, particularly
with regard to how identifiers and data can be correlated by protocol participants and
observers in each context that has been partitioned. Privacy partitioning can also be
used as a way to separate identity providers from relying parties
(see <xref section="6.1.4" sectionFormat="of" target="RFC6973"/>), as in the case of Privacy Pass
(see Section <xref target="privacypass"/>).</t>
    </section>
    <section anchor="privacy-partitioning">
      <name>Privacy Partitioning</name>
      <t>For the purposes of user privacy, this document focuses on user-specific information. This
might include any identifying information that is specific to a user, such as their email
address or IP address, or data about the user, such as their date of birth. Informally,
the goal of privacy partitioning is to ensure that each party in a system beyond 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, wherein every party in
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,
applications, and systems only reveal user-specific information to parties that need access
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
rest of this section, we describe how privacy partitioning can be used to achieve this goal.</t>
      <section anchor="privacy-contexts">
        <name>Privacy Contexts</name>
        <t>Each piece of user-specific information exists within some context, where a context
is abstractly defined as a set of data, metadata, and the entities that share access
to that information. 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 participate in more than one context where the information is visible.</t>
        <t><xref target="RFC6973"/> discusses the importance of identifiers in reducing correlation as a way
of improving privacy:</t>
        <blockquote>
          <t>Correlation is the combination of various pieces of information related to an individual
or that obtain that characteristic when combined... Correlation is closely related to
identification.  Internet protocols can facilitate correlation by allowing individuals'
activities to be tracked and combined over time.</t>
          <t>Pseudonymity is strengthened when less personal data can be linked to the pseudonym; when
the same pseudonym is used less often and across fewer contexts; and when independently
chosen pseudonyms are more frequently used for new actions (making them, from an observer's or
attacker's perspective, unlinkable).</t>
        </blockquote>
        <t>Context separation is foundational to privacy partitioning and reducing correlation.
As an example, consider an unencrypted HTTP session over TCP, wherein the context includes both the
content of the transaction as well as any metadata from the transport and IP headers; and the
participants include the client, routers, other network middleboxes, intermediaries, and server.
Middlboxes or intermediaries might simply forward traffic, or might terminate the
traffic at any layer (such as terminating the TCP connection from the client and creating another
TCP connection to the server). Regardless of how the middlebox interacts with the traffic,
for the purposes of privacy partitioning, it is able to observe all of the data in the context.</t>
        <figure anchor="diagram-middlebox">
          <name>Diagram of a basic unencrypted client-to-server connection with middleboxes</name>
          <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">
                <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 104,64 L 104,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 456,64 L 456,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 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 32,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 240,64 L 336,64" fill="none" stroke="black"/>
                <path d="M 456,64 L 528,64" fill="none" stroke="black"/>
                <path d="M 104,80 L 152,80" fill="none" stroke="black"/>
                <path d="M 192,80 L 240,80" fill="none" stroke="black"/>
                <path d="M 336,80 L 456,80" fill="none" stroke="black"/>
                <path d="M 104,112 L 152,112" fill="none" stroke="black"/>
                <path d="M 184,112 L 240,112" fill="none" stroke="black"/>
                <path d="M 336,112 L 456,112" fill="none" stroke="black"/>
                <path d="M 32,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 240,128 L 336,128" fill="none" stroke="black"/>
                <path d="M 456,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 552,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="48" y="52">Context</text>
                  <text x="88" y="52">A</text>
                  <text x="172" y="84">HTTP</text>
                  <text x="68" y="100">Client</text>
                  <text x="288" y="100">Middlebox</text>
                  <text x="492" y="100">Server</text>
                  <text x="168" y="116">TCP</text>
                  <text x="172" y="132">flow</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
| Context A                                                         |
|  +--------+                +-----------+              +--------+  |
|  |        +------HTTP------+           +--------------+        |  |
|  | Client |                | Middlebox |              | Server |  |
|  |        +------TCP-------+           +--------------+        |  |
|  +--------+      flow      +-----------+              +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Adding TLS encryption to the HTTP session is a simple partitioning technique that splits the
previous context into two separate contexts: the content of the transaction is now only visible
to the client, TLS-terminating intermediaries, and server; while the metadata in transport and
IP headers remain in the original context. In this scenario, without any further partitioning,
the entities that participate in both contexts can allow the data in both contexts to be correlated.</t>
        <figure anchor="diagram-https">
          <name>Diagram of how adding encryption splits the context into two</name>
          <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">
                <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,192 L 32,256" 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 240,192 L 240,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,192 L 456,256" fill="none" stroke="black"/>
                <path d="M 528,64 L 528,128" fill="none" stroke="black"/>
                <path d="M 528,192 L 528,256" fill="none" stroke="black"/>
                <path d="M 552,32 L 552,288" fill="none" stroke="black"/>
                <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 32,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 456,64 L 528,64" fill="none" stroke="black"/>
                <path d="M 104,96 L 256,96" fill="none" stroke="black"/>
                <path d="M 304,96 L 456,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 456,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 552,160" fill="none" stroke="black"/>
                <path d="M 32,192 L 104,192" fill="none" stroke="black"/>
                <path d="M 240,192 L 336,192" fill="none" stroke="black"/>
                <path d="M 456,192 L 528,192" fill="none" stroke="black"/>
                <path d="M 104,224 L 160,224" fill="none" stroke="black"/>
                <path d="M 192,224 L 240,224" fill="none" stroke="black"/>
                <path d="M 336,224 L 456,224" fill="none" stroke="black"/>
                <path d="M 32,256 L 104,256" fill="none" stroke="black"/>
                <path d="M 240,256 L 336,256" fill="none" stroke="black"/>
                <path d="M 456,256 L 528,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 552,288" fill="none" stroke="black"/>
                <g class="text">
                  <text x="48" y="52">Context</text>
                  <text x="88" y="52">A</text>
                  <text x="68" y="100">Client</text>
                  <text x="280" y="100">HTTPS</text>
                  <text x="492" y="100">Server</text>
                  <text x="48" y="180">Context</text>
                  <text x="88" y="180">B</text>
                  <text x="68" y="228">Client</text>
                  <text x="176" y="228">TCP</text>
                  <text x="288" y="228">Middlebox</text>
                  <text x="492" y="228">Server</text>
                  <text x="180" y="244">flow</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
| Context A                                                         |
|  +--------+                                           +--------+  |
|  |        |                                           |        |  |
|  | Client +-------------------HTTPS-------------------+ Server |  |
|  |        |                                           |        |  |
|  +--------+                                           +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
| Context B                                                         |
|  +--------+                +-----------+              +--------+  |
|  |        |                |           |              |        |  |
|  | Client +-------TCP------+ Middlebox +--------------+ Server |  |
|  |        |       flow     |           |              |        |  |
|  +--------+                +-----------+              +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Another way to create a partition is to simply use separate connections. For example, to
split two separate HTTP requests from one another, a client could issue the requests on
separate TCP connections, each on a different network, and at different times; and avoid
including obvious identifiers like HTTP cookies across the requests.</t>
        <figure anchor="diagram-dualconnect">
          <name>Diagram of making separate connections to generate separate contexts</name>
          <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">
                <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,192 L 32,256" 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 240,64 L 240,128" 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,192 L 336,256" fill="none" stroke="black"/>
                <path d="M 456,64 L 456,128" fill="none" stroke="black"/>
                <path d="M 456,192 L 456,256" fill="none" stroke="black"/>
                <path d="M 528,64 L 528,128" fill="none" stroke="black"/>
                <path d="M 528,192 L 528,256" fill="none" stroke="black"/>
                <path d="M 552,32 L 552,288" fill="none" stroke="black"/>
                <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 32,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 240,64 L 336,64" fill="none" stroke="black"/>
                <path d="M 456,64 L 528,64" fill="none" stroke="black"/>
                <path d="M 104,96 L 160,96" fill="none" stroke="black"/>
                <path d="M 192,96 L 240,96" fill="none" stroke="black"/>
                <path d="M 336,96 L 456,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 240,128 L 336,128" fill="none" stroke="black"/>
                <path d="M 456,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 552,160" fill="none" stroke="black"/>
                <path d="M 32,192 L 104,192" fill="none" stroke="black"/>
                <path d="M 240,192 L 336,192" fill="none" stroke="black"/>
                <path d="M 456,192 L 528,192" fill="none" stroke="black"/>
                <path d="M 104,224 L 160,224" fill="none" stroke="black"/>
                <path d="M 192,224 L 240,224" fill="none" stroke="black"/>
                <path d="M 336,224 L 456,224" fill="none" stroke="black"/>
                <path d="M 32,256 L 104,256" fill="none" stroke="black"/>
                <path d="M 240,256 L 336,256" fill="none" stroke="black"/>
                <path d="M 456,256 L 528,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 552,288" fill="none" stroke="black"/>
                <g class="text">
                  <text x="48" y="52">Context</text>
                  <text x="88" y="52">A</text>
                  <text x="124" y="84">IP</text>
                  <text x="144" y="84">A</text>
                  <text x="68" y="100">Client</text>
                  <text x="176" y="100">TCP</text>
                  <text x="288" y="100">Middlebox</text>
                  <text x="492" y="100">Server</text>
                  <text x="172" y="116">flow</text>
                  <text x="200" y="116">A</text>
                  <text x="288" y="116">A</text>
                  <text x="48" y="180">Context</text>
                  <text x="88" y="180">B</text>
                  <text x="124" y="212">IP</text>
                  <text x="144" y="212">B</text>
                  <text x="68" y="228">Client</text>
                  <text x="176" y="228">TCP</text>
                  <text x="288" y="228">Middlebox</text>
                  <text x="492" y="228">Server</text>
                  <text x="172" y="244">flow</text>
                  <text x="200" y="244">B</text>
                  <text x="288" y="244">B</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
| Context A                                                         |
|  +--------+                +-----------+              +--------+  |
|  |        | IP A           |           |              |        |  |
|  | Client +-------TCP------+ Middlebox +--------------+ Server |  |
|  |        |      flow A    |     A     |              |        |  |
|  +--------+                +-----------+              +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
| Context B                                                         |
|  +--------+                +-----------+              +--------+  |
|  |        | IP B           |           |              |        |  |
|  | Client +-------TCP------+ Middlebox +--------------+ Server |  |
|  |        |      flow B    |     B     |              |        |  |
|  +--------+                +-----------+              +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Using separate connections to create separate contexts can reduce or eliminate
the ability of specific parties to correlate activity across contexts. However,
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
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>
      </section>
      <section anchor="context-separation">
        <name>Context Separation</name>
        <t>In order to define and analyze how various partitioning techniques work, the boundaries of what is
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
to ensure that any single entity (other than the client itself) does not participate in contexts
where both identifiers are visible.</t>
        <t>Context separation can be achieved in different ways, for example, over time, across network paths, based
on (en)coding, etc. The privacy-oriented protocols described in this document generally involve
more complex partitioning, but the techniques to partition communication contexts still employ the
same techniques:</t>
        <ol spacing="normal" type="1"><li>
            <t>Encryption allows partitioning of contexts within a given network path.</t>
          </li>
          <li>
            <t>Using separate connections across time or space allows partitioning of contexts for different
application transactions.</t>
          </li>
        </ol>
        <t>These techniques are frequently used in conjunction for context separation. For example,
encrypting an HTTP exchange might prevent a network middlebox that sees a client IP address
from seeing the user account identifier, but it doesn't prevent the TLS-terminating server
from observing both identifiers and correlating them. As such, preventing correlation
requires separating contexts, such as by using proxying to conceal a client's IP address
that would otherwise be used as an identifier.</t>
      </section>
      <section anchor="approaches-to-partitioning">
        <name>Approaches to Partitioning</name>
        <t>While all of the partitioning protocols described in this document create
separate contexts using encryption and/or connection separation, each one has a
unique approach that results in different sets of contexts. Since many of
these protocols are new, it is yet to be seen how each approach will be
used at scale across the Internet, and what new models will emerge in the
future.</t>
        <t>There are multiple factors that lead to a diversity in approaches to
partitioning, including:</t>
        <ul spacing="normal">
          <li>
            <t>Adding privacy partitioning to existing protocol ecosystems places
requirements and constraints on how contexts are constructed. CONNECT-style
proxying is intended to work with servers that are unaware of privacy contexts,
requiring more intermediaries to provide strong separation guarantees.
Oblivious HTTP, on the other hand, assumes servers that cooperate with context
separation, and thus reduces the overall number of elements in the solution.</t>
          </li>
          <li>
            <t>Whether or not information exchange needs to happen bidirectionally in an
interactive fashion determines how contexts can be separated. Some use cases,
like metrics collection for PPM, can occur with information flowing only from
clients to servers, and can function even when clients are no longer connected.
Privacy Pass is an example of a case that can be either interactive or not,
depending on whether tokens can be cached and reused. CONNECT-style proxying and
Oblivious HTTP often requires bidirectional and interactive communication.</t>
          </li>
          <li>
            <t>The degree to which contexts need to be partitioned depends in part
on the client's threat models and level of trust in various protocol participants. For example,
in Oblivious HTTP, clients allow relays to learn that clients are accessing a particular
application-specific gateway. If clients do not trust relays with this information, they can
instead use a multi-hop CONNECT-style proxy approach wherein no single party learns
whether specific clients are accessing a specific application. This is the default 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>
      </section>
    </section>
    <section anchor="a-survey-of-protocols-using-partitioning">
      <name>A Survey of Protocols using Partitioning</name>
      <t>The following section discusses current on-going work in the IETF
that is applying privacy partitioning.</t>
      <section anchor="masque">
        <name>CONNECT Proxying and MASQUE</name>
        <t>HTTP forward proxies, when using encryption on the connection between the client and the
proxy, provide privacy partitioning by separating a connection into multiple segments.
When connections to targets via the proxy themselves are encrypted,
the proxy cannot see the end-to-end content. HTTP has historically supported forward proxying
for TCP-like streams via the CONNECT method. More recently, the Multiplexed Application
Substrate over QUIC Encryption (MASQUE) working group has developed
protocols to similarly proxy UDP <xref target="CONNECT-UDP"/> and IP packets
<xref target="CONNECT-IP"/> based on tunneling.</t>
        <t>In a single-proxy setup, there is a tunnel connection between the client and proxy and
an end-to-end connection that is tunnelled between the client and target. This setup,
as shown in the figure below, partitions communication into:</t>
        <ul spacing="normal">
          <li>
            <t>a Client-to-Target encrypted context, which contains the end-to-end content
within the TLS session to the target, such as HTTP content;</t>
          </li>
          <li>
            <t>a Client-to-Target proxied context, which is the end-to-end data to the target that is
also visible to the proxy, such as a TLS session;</t>
          </li>
          <li>
            <t>a Client-to-Proxy context, which contains the transport metadata between the client
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>
        <figure anchor="diagram-1hop">
          <name>Diagram of one-hop proxy contexts</name>
          <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">
                <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,192 L 32,256" 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,192 L 104,256" 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,320 L 240,384" fill="none" stroke="black"/>
                <path d="M 240,448 L 240,512" fill="none" stroke="black"/>
                <path d="M 336,192 L 336,256" fill="none" stroke="black"/>
                <path d="M 336,320 L 336,384" fill="none" stroke="black"/>
                <path d="M 336,448 L 336,512" fill="none" stroke="black"/>
                <path d="M 456,64 L 456,128" fill="none" stroke="black"/>
                <path d="M 456,192 L 456,256" fill="none" stroke="black"/>
                <path d="M 456,448 L 456,512" fill="none" stroke="black"/>
                <path d="M 528,64 L 528,128" fill="none" stroke="black"/>
                <path d="M 528,192 L 528,256" fill="none" stroke="black"/>
                <path d="M 528,448 L 528,512" fill="none" stroke="black"/>
                <path d="M 552,32 L 552,544" fill="none" stroke="black"/>
                <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 32,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 456,64 L 528,64" fill="none" stroke="black"/>
                <path d="M 104,96 L 248,96" fill="none" stroke="black"/>
                <path d="M 296,96 L 456,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 456,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 552,160" fill="none" stroke="black"/>
                <path d="M 32,192 L 104,192" fill="none" stroke="black"/>
                <path d="M 240,192 L 336,192" fill="none" stroke="black"/>
                <path d="M 456,192 L 528,192" fill="none" stroke="black"/>
                <path d="M 104,224 L 136,224" fill="none" stroke="black"/>
                <path d="M 200,224 L 240,224" fill="none" stroke="black"/>
                <path d="M 336,224 L 456,224" fill="none" stroke="black"/>
                <path d="M 32,256 L 104,256" fill="none" stroke="black"/>
                <path d="M 240,256 L 336,256" fill="none" stroke="black"/>
                <path d="M 456,256 L 528,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 552,288" fill="none" stroke="black"/>
                <path d="M 32,320 L 104,320" fill="none" stroke="black"/>
                <path d="M 240,320 L 336,320" fill="none" stroke="black"/>
                <path d="M 104,352 L 128,352" fill="none" stroke="black"/>
                <path d="M 208,352 L 240,352" fill="none" stroke="black"/>
                <path d="M 32,384 L 104,384" fill="none" stroke="black"/>
                <path d="M 240,384 L 336,384" fill="none" stroke="black"/>
                <path d="M 8,416 L 552,416" fill="none" stroke="black"/>
                <path d="M 240,448 L 336,448" fill="none" stroke="black"/>
                <path d="M 456,448 L 528,448" fill="none" stroke="black"/>
                <path d="M 336,480 L 352,480" fill="none" stroke="black"/>
                <path d="M 432,480 L 456,480" fill="none" stroke="black"/>
                <path d="M 240,512 L 336,512" fill="none" stroke="black"/>
                <path d="M 456,512 L 528,512" fill="none" stroke="black"/>
                <path d="M 8,544 L 552,544" fill="none" stroke="black"/>
                <g class="text">
                  <text x="84" y="52">Client-to-Target</text>
                  <text x="192" y="52">Encrypted</text>
                  <text x="264" y="52">Context</text>
                  <text x="68" y="100">Client</text>
                  <text x="272" y="100">HTTPS</text>
                  <text x="492" y="100">Target</text>
                  <text x="272" y="116">content</text>
                  <text x="84" y="180">Client-to-Target</text>
                  <text x="184" y="180">Proxied</text>
                  <text x="248" y="180">Context</text>
                  <text x="68" y="228">Client</text>
                  <text x="168" y="228">Proxied</text>
                  <text x="288" y="228">Proxy</text>
                  <text x="492" y="228">Target</text>
                  <text x="152" y="244">TLS</text>
                  <text x="188" y="244">flow</text>
                  <text x="80" y="308">Client-to-Proxy</text>
                  <text x="176" y="308">Context</text>
                  <text x="68" y="356">Client</text>
                  <text x="168" y="356">Transport</text>
                  <text x="288" y="356">Proxy</text>
                  <text x="164" y="372">flow</text>
                  <text x="80" y="436">Proxy-to-Target</text>
                  <text x="176" y="436">Context</text>
                  <text x="288" y="484">Proxy</text>
                  <text x="392" y="484">Transport</text>
                  <text x="492" y="484">Target</text>
                  <text x="388" y="500">flow</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
| Client-to-Target Encrypted Context                                |
|  +--------+                                           +--------+  |
|  |        |                                           |        |  |
|  | Client +------------------HTTPS--------------------+ Target |  |
|  |        |                 content                   |        |  |
|  +--------+                                           +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
| Client-to-Target Proxied Context                                  |
|  +--------+                +-----------+              +--------+  |
|  |        |                |           |              |        |  |
|  | Client +----Proxied-----+   Proxy   +--------------+ Target |  |
|  |        |    TLS flow    |           |              |        |  |
|  +--------+                +-----------+              +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
| Client-to-Proxy Context                                           |
|  +--------+                +-----------+                          |
|  |        |                |           |                          |
|  | Client +---Transport----+   Proxy   |                          |
|  |        |     flow       |           |                          |
|  +--------+                +-----------+                          |
|                                                                   |
+-------------------------------------------------------------------+
| Proxy-to-Target Context                                           |
|                            +-----------+              +--------+  |
|                            |           |              |        |  |
|                            |   Proxy   +--Transport---+ Target |  |
|                            |           |    flow      |        |  |
|                            +-----------+              +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Using two (or more) proxies provides better privacy partitioning. In particular, with two proxies,
each proxy sees the Client metadata, but not the Target; the Target, but not the Client
metadata; or neither.</t>
        <t>In addition to the contexts described above for the single proxy case,
the two-hop proxy case shown in the figure below changes the contexts
in several ways:</t>
        <ul spacing="normal">
          <li>
            <t>the Client-to-Target proxied context only includes the second proxy
(referred to here as "Proxy B");</t>
          </li>
          <li>
            <t>a new Client-to-Proxy B context is added, which is the TLS session
from the client to Proxy B that is also visible to the first proxy
(referred to here as "Proxy A");</t>
          </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">
          <name>Diagram of two-hop proxy contexts</name>
          <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">
                <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,192 L 32,256" 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 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,320 L 104,384" fill="none" stroke="black"/>
                <path d="M 104,448 L 104,512" fill="none" stroke="black"/>
                <path d="M 184,320 L 184,384" fill="none" stroke="black"/>
                <path d="M 184,448 L 184,512" fill="none" stroke="black"/>
                <path d="M 184,576 L 184,640" fill="none" stroke="black"/>
                <path d="M 248,320 L 248,384" fill="none" stroke="black"/>
                <path d="M 248,448 L 248,512" fill="none" stroke="black"/>
                <path d="M 248,576 L 248,640" fill="none" stroke="black"/>
                <path d="M 328,192 L 328,256" fill="none" stroke="black"/>
                <path d="M 328,320 L 328,384" fill="none" stroke="black"/>
                <path d="M 328,576 L 328,640" fill="none" stroke="black"/>
                <path d="M 328,704 L 328,768" fill="none" stroke="black"/>
                <path d="M 392,192 L 392,256" fill="none" stroke="black"/>
                <path d="M 392,320 L 392,384" fill="none" stroke="black"/>
                <path d="M 392,576 L 392,640" fill="none" stroke="black"/>
                <path d="M 392,704 L 392,768" fill="none" stroke="black"/>
                <path d="M 456,64 L 456,128" fill="none" stroke="black"/>
                <path d="M 456,192 L 456,256" fill="none" stroke="black"/>
                <path d="M 456,704 L 456,768" fill="none" stroke="black"/>
                <path d="M 528,64 L 528,128" fill="none" stroke="black"/>
                <path d="M 528,192 L 528,256" fill="none" stroke="black"/>
                <path d="M 528,704 L 528,768" fill="none" stroke="black"/>
                <path d="M 552,32 L 552,800" fill="none" stroke="black"/>
                <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 32,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 456,64 L 528,64" fill="none" stroke="black"/>
                <path d="M 104,96 L 248,96" fill="none" stroke="black"/>
                <path d="M 296,96 L 456,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 456,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 552,160" fill="none" stroke="black"/>
                <path d="M 32,192 L 104,192" fill="none" stroke="black"/>
                <path d="M 328,192 L 392,192" fill="none" stroke="black"/>
                <path d="M 456,192 L 528,192" fill="none" stroke="black"/>
                <path d="M 104,224 L 184,224" fill="none" stroke="black"/>
                <path d="M 248,224 L 328,224" fill="none" stroke="black"/>
                <path d="M 392,224 L 456,224" fill="none" stroke="black"/>
                <path d="M 32,256 L 104,256" fill="none" stroke="black"/>
                <path d="M 328,256 L 392,256" fill="none" stroke="black"/>
                <path d="M 456,256 L 528,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 552,288" fill="none" stroke="black"/>
                <path d="M 32,320 L 104,320" fill="none" stroke="black"/>
                <path d="M 184,320 L 248,320" fill="none" stroke="black"/>
                <path d="M 328,320 L 392,320" fill="none" stroke="black"/>
                <path d="M 104,352 L 184,352" fill="none" stroke="black"/>
                <path d="M 248,352 L 328,352" fill="none" stroke="black"/>
                <path d="M 32,384 L 104,384" fill="none" stroke="black"/>
                <path d="M 184,384 L 248,384" fill="none" stroke="black"/>
                <path d="M 328,384 L 392,384" fill="none" stroke="black"/>
                <path d="M 8,416 L 552,416" fill="none" stroke="black"/>
                <path d="M 32,448 L 104,448" fill="none" stroke="black"/>
                <path d="M 184,448 L 248,448" fill="none" stroke="black"/>
                <path d="M 104,480 L 184,480" fill="none" stroke="black"/>
                <path d="M 32,512 L 104,512" fill="none" stroke="black"/>
                <path d="M 184,512 L 248,512" fill="none" stroke="black"/>
                <path d="M 8,544 L 552,544" fill="none" stroke="black"/>
                <path d="M 184,576 L 248,576" fill="none" stroke="black"/>
                <path d="M 328,576 L 392,576" fill="none" stroke="black"/>
                <path d="M 248,608 L 328,608" fill="none" stroke="black"/>
                <path d="M 184,640 L 248,640" fill="none" stroke="black"/>
                <path d="M 328,640 L 392,640" fill="none" stroke="black"/>
                <path d="M 8,672 L 552,672" fill="none" stroke="black"/>
                <path d="M 328,704 L 392,704" fill="none" stroke="black"/>
                <path d="M 456,704 L 528,704" fill="none" stroke="black"/>
                <path d="M 392,736 L 456,736" fill="none" stroke="black"/>
                <path d="M 328,768 L 392,768" fill="none" stroke="black"/>
                <path d="M 456,768 L 528,768" fill="none" stroke="black"/>
                <path d="M 8,800 L 552,800" fill="none" stroke="black"/>
                <g class="text">
                  <text x="84" y="52">Client-to-Target</text>
                  <text x="192" y="52">Encrypted</text>
                  <text x="264" y="52">Context</text>
                  <text x="68" y="100">Client</text>
                  <text x="272" y="100">HTTPS</text>
                  <text x="492" y="100">Target</text>
                  <text x="272" y="116">content</text>
                  <text x="84" y="180">Client-to-Target</text>
                  <text x="184" y="180">Proxied</text>
                  <text x="248" y="180">Context</text>
                  <text x="68" y="228">Client</text>
                  <text x="216" y="228">Proxied</text>
                  <text x="360" y="228">Proxy</text>
                  <text x="492" y="228">Target</text>
                  <text x="200" y="244">TLS</text>
                  <text x="236" y="244">flow</text>
                  <text x="360" y="244">B</text>
                  <text x="80" y="308">Client-to-Proxy</text>
                  <text x="152" y="308">B</text>
                  <text x="192" y="308">Context</text>
                  <text x="68" y="356">Client</text>
                  <text x="216" y="356">Proxy</text>
                  <text x="360" y="356">Proxy</text>
                  <text x="216" y="372">A</text>
                  <text x="360" y="372">B</text>
                  <text x="80" y="436">Client-to-Proxy</text>
                  <text x="152" y="436">A</text>
                  <text x="192" y="436">Context</text>
                  <text x="68" y="484">Client</text>
                  <text x="216" y="484">Proxy</text>
                  <text x="216" y="500">A</text>
                  <text x="40" y="564">Proxy</text>
                  <text x="108" y="564">A-to-Proxy</text>
                  <text x="160" y="564">B</text>
                  <text x="200" y="564">Context</text>
                  <text x="216" y="612">Proxy</text>
                  <text x="360" y="612">Proxy</text>
                  <text x="216" y="628">A</text>
                  <text x="360" y="628">B</text>
                  <text x="40" y="692">Proxy</text>
                  <text x="112" y="692">B-to-Target</text>
                  <text x="192" y="692">Context</text>
                  <text x="360" y="740">Proxy</text>
                  <text x="492" y="740">Target</text>
                  <text x="360" y="756">B</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
| Client-to-Target Encrypted Context                                |
|  +--------+                                           +--------+  |
|  |        |                                           |        |  |
|  | Client +------------------HTTPS--------------------+ Target |  |
|  |        |                 content                   |        |  |
|  +--------+                                           +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
| Client-to-Target Proxied Context                                  |
|  +--------+                           +-------+       +--------+  |
|  |        |                           |       |       |        |  |
|  | Client +----------Proxied----------+ Proxy +-------+ Target |  |
|  |        |          TLS flow         |   B   |       |        |  |
|  +--------+                           +-------+       +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
| Client-to-Proxy B Context                                         |
|  +--------+         +-------+         +-------+                   |
|  |        |         |       |         |       |                   |
|  | Client +---------+ Proxy +---------+ Proxy |                   |
|  |        |         |   A   |         |   B   |                   |
|  +--------+         +-------+         +-------+                   |
|                                                                   |
+-------------------------------------------------------------------+
| Client-to-Proxy A Context                                         |
|  +--------+         +-------+                                     |
|  |        |         |       |                                     |
|  | Client +---------+ Proxy |                                     |
|  |        |         |   A   |                                     |
|  +--------+         +-------+                                     |
|                                                                   |
+-------------------------------------------------------------------+
| Proxy A-to-Proxy B Context                                        |
|                     +-------+         +-------+                   |
|                     |       |         |       |                   |
|                     | Proxy +---------+ Proxy |                   |
|                     |   A   |         |   B   |                   |
|                     +-------+         +-------+                   |
|                                                                   |
+-------------------------------------------------------------------+
| Proxy B-to-Target Context                                         |
|                                       +-------+       +--------+  |
|                                       |       |       |        |  |
|                                       | Proxy +-------+ Target |  |
|                                       |   B   |       |        |  |
|                                       +-------+       +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Forward proxying, such as the protocols developed in MASQUE, uses both encryption (via TLS) and
separation of connections (via proxy hops that see only the next hop) to achieve privacy partitioning.</t>
      </section>
      <section anchor="oblivious-http-and-dns">
        <name>Oblivious HTTP and DNS</name>
        <t>Oblivious HTTP <xref target="OHTTP"/>, developed in the Oblivious HTTP Application
Intermediation (OHAI) working group, adds per-message
encryption to HTTP exchanges through a relay system. Clients send requests through an Oblivious Relay,
which cannot read message contents, to an Oblivious Gateway, which can decrypt the messages but
cannot communicate directly with the client or observe client metadata like IP address.
Oblivious HTTP relies on Hybrid Public Key Encryption <xref target="HPKE"/> to perform encryption.</t>
        <t>Oblivious HTTP uses both encryption and separation of connections to achieve privacy partitioning.</t>
        <ul spacing="normal">
          <li>
            <t>End-to-end messages are encrypted between the Client and Gateway. The
content of these inner messages are visible to the Client, Gateway, and
Target. This is the Client-to-Target context.</t>
          </li>
          <li>
            <t>The encrypted messages exchanged between the Client and Gateway
are visible to the Relay, but the Relay cannot decrypt the messages.
This is the Client-to-Gateway context.</t>
          </li>
          <li>
            <t>The transport (such as TCP and TLS) connections between the Client,
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>
        <figure anchor="diagram-ohttp">
          <name>Diagram of Oblivious HTTP contexts</name>
          <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">
                <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,192 L 32,256" 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,192 L 104,256" 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,320 L 184,384" fill="none" stroke="black"/>
                <path d="M 184,448 L 184,512" fill="none" stroke="black"/>
                <path d="M 248,192 L 248,256" fill="none" stroke="black"/>
                <path d="M 248,320 L 248,384" fill="none" stroke="black"/>
                <path d="M 248,448 L 248,512" fill="none" stroke="black"/>
                <path d="M 328,64 L 328,128" fill="none" stroke="black"/>
                <path d="M 328,192 L 328,256" fill="none" stroke="black"/>
                <path d="M 328,448 L 328,512" fill="none" stroke="black"/>
                <path d="M 408,64 L 408,128" fill="none" stroke="black"/>
                <path d="M 408,192 L 408,256" fill="none" stroke="black"/>
                <path d="M 408,448 L 408,512" 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 552,32 L 552,544" fill="none" stroke="black"/>
                <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 32,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 328,64 L 408,64" fill="none" stroke="black"/>
                <path d="M 456,64 L 528,64" fill="none" stroke="black"/>
                <path d="M 104,96 L 328,96" fill="none" stroke="black"/>
                <path d="M 408,96 L 456,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 328,128 L 408,128" fill="none" stroke="black"/>
                <path d="M 456,128 L 528,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 552,160" fill="none" stroke="black"/>
                <path d="M 32,192 L 104,192" fill="none" stroke="black"/>
                <path d="M 184,192 L 248,192" fill="none" stroke="black"/>
                <path d="M 328,192 L 408,192" fill="none" stroke="black"/>
                <path d="M 104,224 L 184,224" fill="none" stroke="black"/>
                <path d="M 248,224 L 328,224" fill="none" stroke="black"/>
                <path d="M 32,256 L 104,256" fill="none" stroke="black"/>
                <path d="M 184,256 L 248,256" fill="none" stroke="black"/>
                <path d="M 328,256 L 408,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 552,288" fill="none" stroke="black"/>
                <path d="M 32,320 L 104,320" fill="none" stroke="black"/>
                <path d="M 184,320 L 248,320" fill="none" stroke="black"/>
                <path d="M 104,352 L 184,352" fill="none" stroke="black"/>
                <path d="M 32,384 L 104,384" fill="none" stroke="black"/>
                <path d="M 184,384 L 248,384" fill="none" stroke="black"/>
                <path d="M 8,416 L 552,416" fill="none" stroke="black"/>
                <path d="M 184,448 L 248,448" fill="none" stroke="black"/>
                <path d="M 328,448 L 408,448" fill="none" stroke="black"/>
                <path d="M 248,480 L 328,480" fill="none" stroke="black"/>
                <path d="M 184,512 L 248,512" fill="none" stroke="black"/>
                <path d="M 328,512 L 408,512" fill="none" stroke="black"/>
                <path d="M 8,544 L 552,544" fill="none" stroke="black"/>
                <g class="text">
                  <text x="84" y="52">Client-to-Target</text>
                  <text x="184" y="52">Context</text>
                  <text x="68" y="100">Client</text>
                  <text x="368" y="100">Gateway</text>
                  <text x="492" y="100">Target</text>
                  <text x="88" y="180">Client-to-Gateway</text>
                  <text x="192" y="180">Context</text>
                  <text x="68" y="228">Client</text>
                  <text x="216" y="228">Relay</text>
                  <text x="368" y="228">Gateway</text>
                  <text x="80" y="308">Client-to-Relay</text>
                  <text x="176" y="308">Context</text>
                  <text x="68" y="356">Client</text>
                  <text x="216" y="356">Relay</text>
                  <text x="84" y="436">Relay-to-Gateway</text>
                  <text x="184" y="436">Context</text>
                  <text x="216" y="484">Relay</text>
                  <text x="368" y="484">Gateway</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
| Client-to-Target Context                                          |
|  +--------+                           +---------+     +--------+  |
|  |        |                           |         |     |        |  |
|  | Client +---------------------------+ Gateway +-----+ Target |  |
|  |        |                           |         |     |        |  |
|  +--------+                           +---------+     +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
| Client-to-Gateway Context                                         |
|  +--------+         +-------+         +---------+                 |
|  |        |         |       |         |         |                 |
|  | Client +---------+ Relay +---------+ Gateway |                 |
|  |        |         |       |         |         |                 |
|  +--------+         +-------+         +---------+                 |
|                                                                   |
+-------------------------------------------------------------------+
| Client-to-Relay Context                                           |
|  +--------+         +-------+                                     |
|  |        |         |       |                                     |
|  | Client +---------+ Relay |                                     |
|  |        |         |       |                                     |
|  +--------+         +-------+                                     |
|                                                                   |
+-------------------------------------------------------------------+
| Relay-to-Gateway Context                                          |
|                     +-------+         +---------+                 |
|                     |       |         |         |                 |
|                     + Relay +---------+ Gateway |                 |
|                     |       |         |         |                 |
|                     +-------+         +---------+                 |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Oblivious DNS over HTTPS <xref target="ODOH"/> applies the same principle as Oblivious HTTP, but operates on
DNS messages only. As a precursor to the more generalized Oblivious HTTP, it relies on the same
HPKE cryptographic primitives, and can be analyzed in the same way.</t>
      </section>
      <section anchor="privacypass">
        <name>Privacy Pass</name>
        <t>Privacy Pass is an architecture <xref target="PRIVACYPASS"/> and a set of protocols
being developed in the Privacy Pass working group that allows clients to present proof of verification in
an anonymous and unlinkable fashion, via tokens. These tokens originally were designed as a way to prove
that a client had solved a CAPTCHA, but can be applied to other types of user or device attestation checks
as well. In Privacy Pass, clients interact with an attester and issuer for the purposes of issuing a token,
and clients then interact with an origin server to redeem said token.</t>
        <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 contexts:
a "redemption context" between clients and origins (servers that request and receive tokens), and an
"issuance context" between clients, attestation servers, and token issuance servers. The cryptographic
protection ensures that information revealed during the issuance context is separated from information
revealed during the redemption context.</t>
        <figure anchor="diagram-privacypass">
          <name>Diagram of contexts in Privacy Pass</name>
          <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">
                <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 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,192 L 184,256" 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 312,192 L 312,256" fill="none" stroke="black"/>
                <path d="M 400,192 L 400,256" fill="none" stroke="black"/>
                <path d="M 456,192 L 456,256" fill="none" stroke="black"/>
                <path d="M 528,192 L 528,256" fill="none" stroke="black"/>
                <path d="M 552,32 L 552,288" fill="none" stroke="black"/>
                <path d="M 8,32 L 552,32" fill="none" stroke="black"/>
                <path d="M 32,64 L 104,64" fill="none" stroke="black"/>
                <path d="M 184,64 L 256,64" fill="none" stroke="black"/>
                <path d="M 104,96 L 184,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 104,128" fill="none" stroke="black"/>
                <path d="M 184,128 L 256,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 552,160" fill="none" stroke="black"/>
                <path d="M 184,192 L 256,192" fill="none" stroke="black"/>
                <path d="M 312,192 L 400,192" fill="none" stroke="black"/>
                <path d="M 456,192 L 528,192" fill="none" stroke="black"/>
                <path d="M 256,224 L 312,224" fill="none" stroke="black"/>
                <path d="M 400,224 L 456,224" fill="none" stroke="black"/>
                <path d="M 184,256 L 256,256" fill="none" stroke="black"/>
                <path d="M 312,256 L 400,256" fill="none" stroke="black"/>
                <path d="M 456,256 L 528,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 552,288" fill="none" stroke="black"/>
                <g class="text">
                  <text x="60" y="52">Redemption</text>
                  <text x="136" y="52">Context</text>
                  <text x="68" y="100">Origin</text>
                  <text x="220" y="100">Client</text>
                  <text x="52" y="180">Issuance</text>
                  <text x="120" y="180">Context</text>
                  <text x="220" y="228">Client</text>
                  <text x="356" y="228">Attester</text>
                  <text x="492" y="228">Issuer</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------------------------------------+
| Redemption Context                                                |
|  +--------+         +--------+                                    |
|  |        |         |        |                                    |
|  | Origin +---------+ Client |                                    |
|  |        |         |        |                                    |
|  +--------+         +--------+                                    |
|                                                                   |
+-------------------------------------------------------------------+
| Issuance Context                                                  |
|                     +--------+      +----------+      +--------+  |
|                     |        |      |          |      |        |  |
|                     | Client +------+ Attester +------+ Issuer |  |
|                     |        |      |          |      |        |  |
|                     +--------+      +----------+      +--------+  |
|                                                                   |
+-------------------------------------------------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>Since the redemption context and issuance context are separate connections
that involve separate entities, they can also be further decoupled by
running those parts of the protocols at different times. Clients can
fetch tokens through the issuance context early, and cache the tokens
to later use in redemption contexts. This can aid in partitioning identifiers
and data.</t>
        <t><xref target="PRIVACYPASS"/> describes different deployment models for which entities operate
origins, attesters, and issuers; in some models, they are all separate
entities, but in others, they can be operated by the same entity. The
model impacts the effectiveness of partitioning, and some models
(such as when all three are operated by the same entity) only provide
effective partitioning when the timing of connections on the two
contexts are not correlated, and when the client uses different
identifiers (such as different IP addresses) on each context.</t>
      </section>
      <section anchor="privacy-preserving-measurement">
        <name>Privacy Preserving Measurement</name>
        <t>The Privacy Preserving Measurement (PPM) working group is chartered to develop protocols and systems
that help a data aggregation or collection server (or multiple, non-colluding servers) compute aggregate
values without learning the value of any one client's individual measurement. Distributed Aggregation
Protocol (DAP) is the primary working item of the group.</t>
        <t>At a high level, DAP uses a combination of cryptographic protection (in the form of secret sharing amongst
non-colluding servers) to establish two contexts: an "upload context" between clients and non-colluding
aggregation servers (in which the servers are separated into "Helper" and "Leader" roles) wherein aggregation
servers possibly learn client identity but nothing about their individual measurement reports, and
a "collect context" wherein a collector learns aggregate measurement results and nothing
about individual client data.</t>
        <figure anchor="pa-topology">
          <name>Diagram of contexts in DAP</name>
          <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">
                <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 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,144 L 128,176" 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 240,104 L 240,152" fill="none" stroke="black"/>
                <path d="M 288,64 L 288,96" fill="none" stroke="black"/>
                <path d="M 288,160 L 288,192" fill="none" stroke="black"/>
                <path d="M 312,32 L 312,168" fill="none" stroke="black"/>
                <path d="M 312,184 L 312,208" fill="none" stroke="black"/>
                <path d="M 344,112 L 344,144" fill="none" stroke="black"/>
                <path d="M 392,144 L 392,176" fill="none" stroke="black"/>
                <path d="M 440,112 L 440,144" fill="none" stroke="black"/>
                <path d="M 480,32 L 480,208" fill="none" stroke="black"/>
                <path d="M 8,32 L 480,32" fill="none" stroke="black"/>
                <path d="M 184,64 L 288,64" fill="none" stroke="black"/>
                <path d="M 128,80 L 176,80" fill="none" stroke="black"/>
                <path d="M 24,96 L 96,96" fill="none" stroke="black"/>
                <path d="M 184,96 L 288,96" fill="none" stroke="black"/>
                <path d="M 96,112 L 128,112" fill="none" stroke="black"/>
                <path d="M 344,112 L 440,112" fill="none" stroke="black"/>
                <path d="M 96,144 L 128,144" fill="none" stroke="black"/>
                <path d="M 344,144 L 440,144" fill="none" stroke="black"/>
                <path d="M 24,160 L 96,160" fill="none" stroke="black"/>
                <path d="M 184,160 L 288,160" fill="none" stroke="black"/>
                <path d="M 128,176 L 176,176" fill="none" stroke="black"/>
                <path d="M 296,176 L 392,176" fill="none" stroke="black"/>
                <path d="M 184,192 L 288,192" fill="none" stroke="black"/>
                <path d="M 8,208 L 480,208" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="304,176 292,170.4 292,181.6" fill="black" transform="rotate(180,296,176)"/>
                <polygon class="arrowhead" points="248,152 236,146.4 236,157.6" fill="black" transform="rotate(90,240,152)"/>
                <polygon class="arrowhead" points="248,104 236,98.4 236,109.6" fill="black" transform="rotate(270,240,104)"/>
                <polygon class="arrowhead" points="184,176 172,170.4 172,181.6" fill="black" transform="rotate(0,176,176)"/>
                <polygon class="arrowhead" points="184,80 172,74.4 172,85.6" fill="black" transform="rotate(0,176,80)"/>
                <g class="text">
                  <text x="44" y="52">Upload</text>
                  <text x="104" y="52">Context</text>
                  <text x="352" y="52">Collect</text>
                  <text x="416" y="52">Context</text>
                  <text x="236" y="84">Helper</text>
                  <text x="60" y="132">Client</text>
                  <text x="392" y="132">Collector</text>
                  <text x="236" y="180">Leader</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-------------------------------------+--------------------+
| Upload Context                      | Collect Context    |
|                     +------------+  |                    |
|              +----->|   Helper   |  |                    |
| +--------+   |      +------------+  |                    |
| |        +---+             ^        |   +-----------+    |
| | Client |                 |        |   | Collector |    |
| |        +---+             v        |   +-----+-----+    |
| +--------+   |      +------------+  |         |          |
|              +----->|   Leader   |<-----------+          |
|                     +------------+  |                    |
+-------------------------------------+--------------------+
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="applying-privacy-partitioning">
      <name>Applying Privacy Partitioning</name>
      <t>Applying privacy partitioning to an existing or new system or protocol requires the following steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>Identify the types of information used or exposed in a system or protocol, some
of which can be used to identify a user or correlate to other contexts.</t>
        </li>
        <li>
          <t>Partition data to minimize the amount of user-identifying or correlatable
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>
      <t>The most impactful types of information to partition are (a) user-identifying information,
such as user identifiers (including account names or IP addresses) that can be
linked and (b) non-user-identifying information (including content a user
generates or accesses), which can be often sensitive when combined with a user identifier.</t>
      <t>In this section, we discuss considerations for partitioning these types of information.</t>
      <section anchor="user-identifying-information">
        <name>User-Identifying Information</name>
        <t>User data can itself be user-identifying, in which case it should be treated as an identifier.
For example, Oblivious DoH and Oblivious HTTP partition the client IP address and client request data into
separate contexts, thereby ensuring that no entity beyond the client can observe both. Collusion across contexts
could reverse this partitioning, but can also promote non-user-identifying information to user-identifying.
For example, in CONNECT proxy systems that use QUIC, the QUIC connection ID is inherently non-user-identifying
since it is generated randomly (<xref section="5.1" sectionFormat="comma" target="QUIC"/>). However, if combined with another context that has user-identifying
information such as the client IP address, the QUIC connection ID can become user-identifying information.</t>
        <t>Some information is innate to client user-agents, including details of implementation of
protocols in hardware and software, and network location. This information can be used to construct
user-identifying information, which is a process sometimes referred to as fingerprinting.
Depending on the application and system constraints, users may not be able to prevent fingerprinting
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 anchor="selecting-client-identifiers">
        <name>Selecting Client Identifiers</name>
        <t>The selection of client identifiers used in the contexts used for privacy partitioning has a large
impact on the effectiveness of partitioning. Identifier selection can either undermine or improve
the value of partitioning. Generally, each context involves some form of client identifier,
which might be directly associated with a client identity, but can also be a pseudonym
or a random one-time identifier.</t>
        <t>Using the same client identifier across multiple contexts can partly or wholly undermine the
effectiveness of partitioning, by allowing the various contexts to be linked back to the same client.
For example, if a client uses proxies as described in <xref target="masque"/> to separate connections, but uses
the same email address to authenticate to two servers in different contexts, those actions can be linked
back to the same client. While this does not undermine all of the partitioning achieved 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 diminished.</t>
        <t>When possible, using per-context unique client identifiers provides better partitioning properties.
For example, a client can use a unique email address as an account identifier with each different
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
multiple temporary IP addresses across connections and over time <xref target="RFC8981"/>, and use of
unique per-subscription identifiers for HTTP Web Push <xref target="RFC8030"/>.</t>
      </section>
      <section anchor="incorrect-or-incomplete-partitioning">
        <name>Incorrect or Incomplete Partitioning</name>
        <t>Privacy partitioning can be applied incorrectly or incompletely. Contexts may contain
more user-identifying information than desired, or some information in a context may be more user-identifying
than intended. Moreover, splitting user-identifying information over multiple contexts has to be done
with care, as creating more contexts can increase the number of entities that need to be trusted to not collude.
Nevertheless, partitions can help improve the client's privacy posture when applied carefully.</t>
        <t>Evaluating and qualifying the resulting privacy of a system or protocol that applies privacy partitioning depends
on the contexts that exist and the types of user-identifying information in each context. Such evaluation is
helpful for identifying ways in which systems or protocols can improve their privacy posture. For example,
consider DNS-over-HTTPS <xref target="DOH"/>, which produces a single context which contains both the client IP
address and client query. One application of privacy partitioning results in ODoH, which produces two contexts,
one with the client IP address and the other with the client query.</t>
      </section>
      <section anchor="selecting-information-within-a-context">
        <name>Selecting Information Within a Context</name>
        <t>Recognizing potential applications of privacy partitioning requires identifying the contexts in use, the information
exposed in a context, and the intent of information exposed in a context. Unfortunately, determining what
information to include in a given context is a non-trivial task. In principle, the information contained
in a context should be fit for purpose. As such, new systems or protocols developed should aim to
ensure that all information exposed in a context serves as few purposes as possible. Designing with this
principle from the start helps mitigate issues that arise if users of the system or protocol inadvertently
ossify on the information available in contexts. Legacy systems that have ossified on information available
in contexts may be difficult to change in practice. As an example, many existing anti-abuse systems
depend on some client identifier such as client IP address, coupled with client 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 anchor="limits">
      <name>Limits of Privacy Partitioning</name>
      <t>Privacy Partitioning aims to increase user privacy, though as stated, it is not a panacea.
The privacy properties depend on numerous factors, including, though not limited to:</t>
      <ul spacing="normal">
        <li>
          <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">
        <name>Violations by Collusion</name>
        <t>Privacy partitions ensure that only the client, i.e., the entity which is responsible for partitioning,
can independently link all user-specific information. No other entity individually
knows how to link all the user-specific information as long as they do not collude with each other
across contexts. Thus, non-collusion is a fundamental requirement for privacy partitioning
to offer meaningful privacy for end-users. In particular, the trust relationships that users have
with different parties affect the resulting impact on the user's privacy.</t>
        <t>As an example, consider OHTTP, wherein the Oblivious Relay knows the client identity but not
the client data, and the Oblivious Gateway knows the client data but not the client identity.
If the Oblivious Relay and Gateway collude, they can link client identity and data together
for each request and response transaction by simply observing requests in transit.</t>
        <t>It is not currently possible to guarantee with technical protocol measures that two
entities are not colluding. Even if two entities do not collude directly, if both entities reveal
information to other parties, it will not be possible to guarantee that the information 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">
          <li>
            <t>Policy and contractual agreements between entities involved in partitioning to disallow
logging or sharing of data, along with auditing to validate that the policies are being followed.
For cases where logging is required (such as for service operation), such logged data should
be minimized and anonymized to prevent it from being useful for collusion.</t>
          </li>
          <li>
            <t>Protocol requirements to make collusion or data sharing more difficult.</t>
          </li>
          <li>
            <t>Adding more partitions and contexts, to make it increasingly difficult to collude with
enough parties to recover identities.</t>
          </li>
        </ul>
      </section>
      <section anchor="violations-by-insufficient-partitioning">
        <name>Violations by Insufficient Partitioning</name>
        <t>It is possible to define contexts that contain more than one type of user-specific information,
despite efforts to do otherwise. As an example, consider OHTTP used for the purposes of hiding
client-identifying information for a browser telemetry system. It is entirely possible for reports
in such a telemetry system to contain both client-specific telemetry data, such as information
about their specific browser instance, as well as client-identifying information, such as the client's
location or IP address. Even though OHTTP separates the client IP address from the server via
a relay, the server still learns this directly from the client.</t>
        <t>Other relevant examples of insufficient partitioning include TLS Encrypted Client Hello (ECH) <xref target="I-D.ietf-tls-esni"/>
and VPNs. ECH use cryptographic protection (encryption) to hide information from unauthorized parties,
but both clients and servers (two entities) can link user-specific data to user-specific identifier (IP address).
Similarly, while VPNs hide identifiers from end servers, the VPN server can still see the identifiers of both the
client and server. Applying privacy partitioning would advocate for at least two additional entities to avoid
revealing both identity (who) and user actions (what) from each involved party.</t>
        <t>While straightforward violations of user privacy like this may seem straightforward to mitigate, it
remains an open problem to determine whether a certain set of information reveals "too much" about a
specific user. There is ample evidence of data being assumed "private" or "anonymous" but, in hindsight,
winds up revealing too much information such that it allows one to link back to individual
clients; see <xref target="DataSetReconstruction"/> and <xref target="CensusReconstruction"/>
for more examples of this in the real world.</t>
        <t>Beyond the information that is intentionally revealed by applying privacy partitioning, it is also possible
for the information to be unintentionally revealed through side channels. For example, in the two-hop
proxy arrangement described in <xref target="masque"/>, Proxy A sees and proxies TLS data between the client and
Proxy B. While it does not directly learn information that Proxy B sees, it does learn information through
metadata, such as the timing and size of encrypted data being proxied. Traffic analysis could be exploited
to learn more information from such metadata, including, in some cases, application data that Proxy A was
never meant to see. Although privacy partitioning does not obviate such attacks, it does increase the cost
necessary to carry them out in practice. See <xref target="security-considerations"/> for more discussion on this topic.</t>
      </section>
    </section>
    <section anchor="partitioning-impacts">
      <name>Partitioning Impacts</name>
      <t>Applying privacy partitioning to communication protocols leads to a substantial change in communication patterns.
For example, instead of sending traffic directly to a service, essentially all user traffic is routed through
a set of intermediaries, possibly adding more end-to-end round trips in the process (depending on the system
and protocol). This has a number of practical implications, described below.</t>
      <ol spacing="normal" type="1"><li>
          <t>Service operational or management challenges. Information that is traditionally passively observed in the
network or metadata that has been unintentionally revealed to the service provider cannot be used anymore
for e.g., existing security procedures such as application rate limiting or DDoS mitigation.
However, network management techniques deployed at present often rely on information that is exposed by
most traffic but without any guarantees that the information is accurate.  </t>
          <t>
Privacy partitioning provides an opportunity for improvements in these management techniques by
enabling active exchange of information with each entity in a privacy-preserving way and requesting
exactly the information needed for a specific task or function rather than relying on the assumption that
are derived from a limited set of unintentionally revealed information which cannot be guaranteed to be
present and may disappear at any time in future.</t>
        </li>
        <li>
          <t>Varying performance effects and costs. Depending on how context separation is done, privacy partitioning may
affect application performance. As an example, Privacy Pass introduces an entire end-to-end round
trip to issue a token before it can be redeemed, thereby decreasing performance. In contrast, while
systems like CONNECT proxying may seem like they would regress performance, oftentimes the highly
optimized nature of proxy-to-proxy paths leads to improved performance.  </t>
          <t>
Performance may also push back against the desire to apply privacy partitioning. For example, HTTPS
connection reuse <xref section="9.1.1" sectionFormat="comma" target="HTTP2"/> allows clients to use an existing HTTPS session created
for one origin to interact with different origins (provided the original origin is authoritative for
these alternative origins). Reusing connections saves the cost of connection establishment, but means that
the server can now link the client's activity with these two or more origins together. 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 depending 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 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 to 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 which 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 tradeoff encourages
the centralization of the Oblivious Relays.</t>
        </li>
      </ol>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t><xref target="limits"/> discusses some of the limitations of privacy partitioning in practice. Applied correctly,
partitioning helps improve an end-user's privacy posture, thereby making violations harder to
do via technical, social, or policy means. For example, side channels such as traffic analysis
<xref target="I-D.irtf-pearg-website-fingerprinting"/> or timing analysis are still possible and can allow
an unauthorized entity to learn information about a context they are not a participant of.
Proposed mitigations for these types of attacks, e.g., padding application traffic or generating
fake traffic, can be very expensive and are therefore not typically applied in practice.
Nevertheless, privacy partitioning moves the threat vector from one that has direct access to
user-specific information to one which requires more effort, e.g., computational resources,
to violate end-user privacy.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <reference anchor="CensusReconstruction" target="https://www.census.gov/data/academy/webinars/2021/disclosure-avoidance-series/simulated-reconstruction-abetted-re-identification-attack-on-the-2010-census.html">
        <front>
          <title>The Census Bureau's Simulated Reconstruction-Abetted Re-identification Attack on the 2010 Census</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="DECOUPLING">
        <front>
          <title>The decoupling principle: a practical privacy framework</title>
          <author fullname="Paul Schmitt" initials="P." surname="Schmitt">
            <organization>University of Hawai'i</organization>
          </author>
          <author fullname="Jana Iyengar" initials="J." surname="Iyengar">
            <organization>Fastly</organization>
          </author>
          <author fullname="Christopher Wood" initials="C." surname="Wood">
            <organization>Cloudflare</organization>
          </author>
          <author fullname="Barath Raghavan" initials="B." surname="Raghavan">
            <organization>USC</organization>
          </author>
          <date month="November" year="2022"/>
        </front>
        <seriesInfo name="Proceedings of the 21st ACM Workshop on Hot Topics in" value="Networks"/>
        <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 considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations 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 conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
            <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
            <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP 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="Chernyakhovsky">
            <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 protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets.  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 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 forwarding
   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>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ohai-ohttp-10"/>
      </reference>
      <reference anchor="HPKE">
        <front>
          <title>Hybrid Public Key Encryption</title>
          <author fullname="R. Barnes" initials="R." surname="Barnes"/>
          <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
          <author fullname="B. Lipp" initials="B." surname="Lipp"/>
          <author fullname="C. Wood" initials="C." surname="Wood"/>
          <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-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, 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 (CFRG) 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 their 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 and is published here to guide implementation, ensure interoperability among implementations, 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>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-architecture-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="Iyengar"/>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control 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</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="Bernardos">
            <organization>Universidad Carlos III de Madrid</organization>
          </author>
          <author fullname="Amelia Andersdotter" initials="A." surname="Andersdotter">
            <organization>Sky UK Group, Sky Labs</organization>
          </author>
          <date day="4" month="November" year="2023"/>
          <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
   standards committees to overcome some of these privacy issues.  This
   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>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-madinas-mac-address-randomization-09"/>
      </reference>
      <reference anchor="RFC8981">
        <front>
          <title>Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6</title>
          <author fullname="F. Gont" initials="F." surname="Gont"/>
          <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
          <author fullname="T. Narten" initials="T." surname="Narten"/>
          <author fullname="R. Draves" initials="R." surname="Draves"/>
          <date month="February" year="2021"/>
          <abstract>
            <t>This document describes an extension to IPv6 Stateless Address Autoconfiguration that causes hosts to generate temporary addresses with randomized interface identifiers for each prefix advertised with autoconfiguration enabled. Changing addresses over time limits the window of time during which eavesdroppers and other information collectors may trivially perform address-based network-activity correlation when the same address is employed for multiple transactions by the same host. Additionally, it reduces the window of exposure of a host as being accessible via an address that becomes revealed as a result of active communication. 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="Raymor"/>
          <date month="December" year="2016"/>
          <abstract>
            <t>This document describes a simple protocol for the delivery of real- 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 getting DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP exchange.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8484"/>
        <seriesInfo name="DOI" value="10.17487/RFC8484"/>
      </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 Security (TLS)
   for encrypting a ClientHello message under a server public key.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/tlswg/draft-ietf-tls-esni
   (https://github.com/tlswg/draft-ietf-tls-esni).

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-esni-17"/>
      </reference>
      <reference anchor="DataSetReconstruction">
        <front>
          <title>Robust De-anonymization of Large Sparse Datasets</title>
          <author fullname="Arvind Narayanan" initials="A." surname="Narayanan">
            <organization/>
          </author>
          <author fullname="Vitaly Shmatikov" initials="V." surname="Shmatikov">
            <organization/>
          </author>
          <date month="May" year="2008"/>
        </front>
        <seriesInfo name="2008 IEEE Symposium on Security and Privacy (sp" value="2008)"/>
        <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="Thomson"/>
          <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges 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 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>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-irtf-pearg-website-fingerprinting-01"/>
      </reference>
    </references>
    <?line 807?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank Martin Thomson, Eliot Lear, Mark Nottingham, Niels ten Oever, Vittorio Bertola,
Antoine Fressancourt, Cullen Jennings, and Dhruv Dhody for their reviews and feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19W3fb1tXg+/kVWMpDrJqk7SRtE2fSVpadWtM41hc5zZqX
WQskDkl8BgEWB5TC2O4vm7f5Y7Ov5wKAshTLM03n40NikcC57LPPvl+m06np
yq6yj7Oj87yFf5ZNXdarLHdZXmcn7WJddnbR7VqbLZs2O2/Ly3yxPzL5fN7a
y/5bySOLvLOrpt0/zsp62RjXtTbfPM7OTp4YUzSLOt/ArEWbL7tpmc+nW35v
uo0GnD78wsAkn5vXdn/VtAW8XXe2rW03fYovGpPvunXTPjbZ1GTwWe6qigd+
Ubb/mWd/+9//a13Zq7Iu6OemXeV1+UuOwz/OnrXlwrmmzn6wzuawVXrGbvKy
epxt8P3Z652V9/9i5enZotkMp3vVbDb77DzfVfuRmU6228rGo3dbfPIvOX4/
PuDpui1d12zXts1OZtlPTTO2hdOq2RXLKm+T0Rf51V/WNt8CBOdl52YAL2Pq
pt3AW5f2sTF4IP6vLDu1tdu5H+yiqeGUdgsamwYU3Hi1tvJQ9gRQId996rKL
crOr4IiLLH1xejK3HX89LQtbd+WyXNBys5OuyxevM/hXBwN+9vDRQxmV58rb
le0eZ+uu27rHDx5cXV3NFvTzbNVcPijyLn+QL/LCbvYPruy8rPPWPfjs4WeP
HhSlW1SNg5VN88umLPJ6YacODsy6B06XOW3TZea8TPi6t8xpTsucwr9gmVNc
5lTWse42lTFmOp1m+RyGyhcA2Ffr0mWA0LsNjJIV1i3acm4d7RGQul6UcMhZ
s8wEw7MYwyfZ1bpcrDNnK7hmcB7VPnNbAHEBY8KO4RYWGSDIZlcrFPNF2zhn
YFsdjUzDwXx4ZbONzWuYusnKzbZtLq2fdA7jWngUxoCLugPoZLztbp8t22bD
X+GUs4M7shvbrvD1LYAIrqGDmw0TNF2zaCqa1W8NtpV3YQcb2+X0R+kM0A2b
V4Ag3bptdqu1HwFGg1FzOh43wa8vYYmOto84Y9tNWTdVs9pPaFA89p1z8MS6
uTIwe17n1f4Xm7kdQHTTFLZyMz6tTVkUcAPNJ0hA2qZgHDDm3C+e3gEQvvru
ggY/O3d2oWsAwMJfSATvIcFBsC0I9fFJWy/a/Rb+Os4W67yubWUAta6shSVf
NfBzsW1gZy6D42jluMOXgES1W+Jp6J0EEpM94zHpuGGKaFJcNuASA7Pm18su
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
SpMzUm9ipBaRSkQQuYeKCBwaqgVkKzg7PzZoA/Gm7gxD2TmSco1G1YFvazKi
nZ0Yr/OIOpSdjIBsEitM2ZOhyvRfKsr4/NE//ktFGf/8hlSUETjc7/19O3x5
e+D/1+JLrKjIlHwvw5pugC+xouJ/e3LdWu4GLh/8+XgqypNbC52H4NKHwtg3
vVFGzmhwEiPfDEYZ4EsfO8I314wyOvPJ4Jsn2TVruRu4fPDn4+HLyUfEl/eO
ciN8ucEoB/HlVqOMriXFl/eOcjdw+eDPHau0qTx1S4Q5tKO7uUe/gr6MjnJr
+nJgLbekLyOf3zZ9GUrXv4q+3OhzN3z6vfLLDUd5j/xy47VcK7/c6PPbkV/6
JpDPxk0gPVU+MoF82/NyJ7XBkjBKcTWj9s8e6UlGdc8o7jQKJriHLnEQLKkS
aRRRJoGO3r9Pz/GCKKbDa76k6nZUDBqwHn47jis1HQ6M6EUmobL69PsL049Y
evPmzy/xH8G53azzEv7TdVssSJrsFJdxuCKlGa1ImTrqJ2hmoJIt0w1Wf11Z
kybwJ/HGFL1EFUdzDvSRgJiZsGh0XVOclqQe+qfjGKUf8MWJEV8rR0JQ0WRZ
gOqHbiJVhsKrf+XoI++ozTHKjlYrOfg0gEODlJGRg2/cZhz8BcfnK4KI6aRp
fWmPRWr84kifECfcj2lEMJRcXu/5ft6WRXa+gwcW2d/sPg6TgGN9fv63ZxTZ
8OjLh+/eURClbdETG6HnbIAPo0jMJQgOoe770XEKS/P+dQ+1JFwl8XKfhkCF
v2oA2KtBVRyHgaI1luWOR+yZn06lyoI/SryGr+Loh9KNW+GCGYcD88JS/XyK
p+9bvRlZGKOlz3OgPxU9x5BsZsZXK1MMlhssZr5KjjruiRzFJzhc/cTI+qJd
ZIQ8B+pgxHY0elWtaGImo+/G1pudpYWcMckGYCAhnR40vVc1jEETX9RqG36a
GIoxLZcReDFKiKLJ/QaEjggq9I3ceS2Ft8x8n4WyVFG5rC2WxK27EL/AE0kc
Olai87WzaGKd7/+KbfDW/qLb2zT0qQ+z9ei/bmUbjFagiHFf/r65bfAWa7kb
uHzw52Po7gq/j2/rGYPe7W09Yyd5WHfnKxl/o/s9OMpdrOVu4PLBn4+BLwzR
uwtf+Ney9fDuPtzWc8u1/NvZegZ8+9fxo5HP3dyjX3Gnx9Zye/ry8dZyJ3C5
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

-->

</rfc>
