<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.14 (Ruby 3.0.2) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dss-star-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.8.0 -->
  <front>
    <title abbrev="STAR">STAR: Distributed Secret Sharing for Private Threshold Aggregation Reporting</title>
    <seriesInfo name="Internet-Draft" value="draft-dss-star-01"/>
    <author initials="A." surname="Davidson" fullname="Alex Davidson">
      <organization>Brave Software</organization>
      <address>
        <email>alex.davidson92@gmail.com</email>
      </address>
    </author>
    <author initials="S. K." surname="Sahib" fullname="Shivan Kaul Sahib">
      <organization>Brave Software</organization>
      <address>
        <email>shivankaulsahib@gmail.com</email>
      </address>
    </author>
    <author initials="P." surname="Snyder" fullname="Peter Snyder">
      <organization>Brave Software</organization>
      <address>
        <email>pes@brave.com</email>
      </address>
    </author>
    <date year="2022" month="July" day="11"/>
    <area>SEC</area>
    <abstract>
      <t>Servers often need to collect data from clients that can be privacy-sensitive if the server is able to associate the collected data with a particular user. In this document we describe STAR, an efficient and secure threshold aggregation protocol for collecting measurements from clients by an untrusted aggregation server, while maintaining K-anonymity guarantees.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Collecting user data is often fraught with privacy issues because without adequate protections it is trivial for the server to learn sensitive information about the client contributing data. Even when the client's identity is separated from the data (for example, if the client is using the <xref target="Tor"/> network or <xref target="OHTTP"/>), it's possible for the collected data to be unique enough that the user's identity is leaked. A common solution to this problem of the measurement being user-identifying/sensitive is to make sure that the measurement is only revealed to the server if there are at least K clients that have contributed the same data, thus providing K-anonymity to participating clients. Such privacy-preserving systems are referred to as threshold aggregation systems.</t>
      <t>In this document we describe one such system, namely Distributed Secret Sharing for Private Threshold Aggregation Reporting (STAR) <xref target="STAR"/>, that is currently deployed in production by the <xref target="Brave"/> browser.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <t>The following terms are used:</t>
      <dl>
        <dt>Aggregation Server:</dt>
        <dd>
          <t>An entity that provides some tool/software, that would like to learn aggregated data points from their user-base.</t>
        </dd>
        <dt>Randomness Server:</dt>
        <dd>
          <t>An entity that runs an oblivious pseudorandom function (<xref target="OPRF"/>) service that allows clients to receive pseudorandom function evaluations on their measurement and the server OPRF key, without the Randomness Server learning anything about their measurement. The clients use the output as randomness to produce the message that is then sent to the Aggregation Server.</t>
        </dd>
        <dt>Client:</dt>
        <dd>
          <t>The entity that uses the tool.</t>
        </dd>
        <dt>Measurement:</dt>
        <dd>
          <t>The unencrypted, potentially-sensitive data point that the client is asked to report.</t>
        </dd>
        <dt>Message:</dt>
        <dd>
          <t>The encrypted measurement being sent by the client.</t>
        </dd>
        <dt>Auxiliary Data:</dt>
        <dd>
          <t>Arbitrary data that clients may send as part of their message, but which is only revealed when at least K encrypted measurements of the same value are received.</t>
        </dd>
      </dl>
    </section>
    <section anchor="system-overview">
      <name>System Overview</name>
      <section anchor="objective">
        <name>Objective</name>
        <t>In STAR, clients generate <tt>encrypted</tt> measurements, that they send to a single untrusted Aggregation Server. In a given amount of time, if the Aggregation Server receives the same encrypted value from K clients (i.e. K values), the server is able to decrypt the value. This ensures that clients only have their measurements revealed if they are part of a larger crowd. This allows the client to maintain K-anonymity, when paired with mechanisms for removing client-identifying information from their requests.</t>
      </section>
      <section anchor="system-architecture">
        <name>System Architecture</name>
        <t>The overall system architecture is shown in <xref target="arch"/>, where x is the measurement and aux is auxiliary data.</t>
        <figure anchor="arch">
          <name>System Architecture</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="656" width="616" viewBox="0 0 616 656" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,128 L 8,160" fill="none" stroke="black"/>
                <path d="M 8,288 L 8,320" fill="none" stroke="black"/>
                <path d="M 8,368 L 8,400" fill="none" stroke="black"/>
                <path d="M 48,32 L 48,96" fill="none" stroke="black"/>
                <path d="M 80,96 L 80,128" fill="none" stroke="black"/>
                <path d="M 80,160 L 80,288" fill="none" stroke="black"/>
                <path d="M 80,320 L 80,368" fill="none" stroke="black"/>
                <path d="M 80,400 L 80,624" fill="none" stroke="black"/>
                <path d="M 128,32 L 128,96" fill="none" stroke="black"/>
                <path d="M 160,128 L 160,160" fill="none" stroke="black"/>
                <path d="M 160,288 L 160,320" fill="none" stroke="black"/>
                <path d="M 160,368 L 160,400" fill="none" stroke="black"/>
                <path d="M 216,368 L 216,400" fill="none" stroke="black"/>
                <path d="M 232,32 L 232,96" fill="none" stroke="black"/>
                <path d="M 288,96 L 288,368" fill="none" stroke="black"/>
                <path d="M 288,400 L 288,432" fill="none" stroke="black"/>
                <path d="M 288,472 L 288,624" fill="none" stroke="black"/>
                <path d="M 352,32 L 352,96" fill="none" stroke="black"/>
                <path d="M 368,368 L 368,400" fill="none" stroke="black"/>
                <path d="M 448,496 L 448,544" fill="none" stroke="black"/>
                <path d="M 464,32 L 464,96" fill="none" stroke="black"/>
                <path d="M 520,96 L 520,496" fill="none" stroke="black"/>
                <path d="M 520,544 L 520,560" fill="none" stroke="black"/>
                <path d="M 576,32 L 576,96" fill="none" stroke="black"/>
                <path d="M 600,496 L 600,544" fill="none" stroke="black"/>
                <path d="M 48,32 L 128,32" fill="none" stroke="black"/>
                <path d="M 232,32 L 352,32" fill="none" stroke="black"/>
                <path d="M 464,32 L 576,32" fill="none" stroke="black"/>
                <path d="M 48,96 L 128,96" fill="none" stroke="black"/>
                <path d="M 232,96 L 352,96" fill="none" stroke="black"/>
                <path d="M 464,96 L 576,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 160,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 160,160" fill="none" stroke="black"/>
                <path d="M 80,208 L 280,208" fill="none" stroke="black"/>
                <path d="M 88,256 L 288,256" fill="none" stroke="black"/>
                <path d="M 8,288 L 160,288" fill="none" stroke="black"/>
                <path d="M 8,320 L 160,320" fill="none" stroke="black"/>
                <path d="M 8,368 L 160,368" fill="none" stroke="black"/>
                <path d="M 216,368 L 368,368" fill="none" stroke="black"/>
                <path d="M 8,400 L 160,400" fill="none" stroke="black"/>
                <path d="M 216,400 L 368,400" fill="none" stroke="black"/>
                <path d="M 80,464 L 512,464" fill="none" stroke="black"/>
                <path d="M 448,496 L 600,496" fill="none" stroke="black"/>
                <path d="M 448,544 L 600,544" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="520,464 508,458.4 508,469.6 " fill="black" transform="rotate(0,512,464)"/>
                <polygon class="arrowhead" points="288,208 276,202.4 276,213.6 " fill="black" transform="rotate(0,280,208)"/>
                <polygon class="arrowhead" points="96,256 84,250.4 84,261.6 " fill="black" transform="rotate(180,88,256)"/>
                <g class="text">
                  <text x="84" y="52">Client</text>
                  <text x="292" y="52">Randomness</text>
                  <text x="520" y="52">Aggregation</text>
                  <text x="68" y="68">(x</text>
                  <text x="100" y="68">aux)</text>
                  <text x="292" y="68">Server</text>
                  <text x="516" y="68">Server</text>
                  <text x="60" y="148">Randomness</text>
                  <text x="128" y="148">Phase</text>
                  <text x="168" y="196">request(blinded(x))</text>
                  <text x="172" y="244">response(randomness)</text>
                  <text x="64" y="308">Message</text>
                  <text x="120" y="308">Phase</text>
                  <text x="52" y="388">Generate</text>
                  <text x="120" y="388">Message</text>
                  <text x="256" y="388">Key</text>
                  <text x="308" y="388">rotation</text>
                  <text x="248" y="452">encrypted</text>
                  <text x="320" y="452">message</text>
                  <text x="520" y="516">Aggregation</text>
                  <text x="520" y="532">Phase</text>
                  <text x="500" y="580">Reveal</text>
                  <text x="560" y="580">(x,aux)</text>
                  <text x="492" y="596">from</text>
                  <text x="532" y="596">each</text>
                  <text x="584" y="596">message</text>
                  <text x="484" y="612">if</text>
                  <text x="504" y="612">x</text>
                  <text x="532" y="612">sent</text>
                  <text x="564" y="612">by</text>
                  <text x="588" y="612">&gt;=</text>
                  <text x="480" y="628">k</text>
                  <text x="524" y="628">clients.</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
     +---------+            +--------------+             +-------------+
     | Client  |            |  Randomness  |             | Aggregation |
     | (x aux) |            |    Server    |             |   Server    |
     |         |            |              |             |             |
     +---+-----+            +------+-------+             +------+------+
         |                         |                            |
+--------+---------+               |                            |
| Randomness Phase |               |                            |
+---+----+---------+               |                            |
         |                         |                            |
         | request(blinded(x))     |                            |
         +------------------------>|                            |
         |                         |                            |
         | response(randomness)    |                            |
         |<------------------------+                            |
         |                         |                            |
+--------+---------+               |                            |
|   Message Phase  |               |                            |
+---+----+---------+               |                            |
         |                         |                            |
         |                         |                            |
+--------+---------+      +--------+---------+                  |
| Generate Message |      |   Key rotation   |                  |
+---+----+---------+      +---+----+---------+                  |
         |                         |                            |
         |                         |                            |
         |                encrypted message                     |
         +----------------------------------------------------->|
         |                         |                            |
         |                         |                   +--------+---------+
         |                         |                   |   Aggregation    |
         |                         |                   |      Phase       |
         |                         |                   +--------+---------+
         |                         |                            |
         |                         |                       Reveal (x,aux)
         |                         |                       from each message
         |                         |                       if x sent by >=
         |                         |                       k clients.

]]></artwork>
          </artset>
        </figure>
        <t>The main goal in the STAR protocol is to have the aggregation performed by a single untrusted server, without requiring communication with any other non-colluding entities. In order for the aggregation to succeed, clients must send messages that are consistent with other client messages. This requires sampling randomness that is equivalent when clients share the same measurement.</t>
      </section>
      <section anchor="randomness-sampling">
        <name>Randomness sampling</name>
        <t>The randomness <tt>rand</tt> sampled for each message <bcp14>MUST</bcp14> be a deterministic function of the measurement. The client <bcp14>MUST</bcp14> sample randomness as the output of an exchange with a separate server that implements a oblivious pseudorandom function protocol <xref target="OPRF"/> (running in verifiable mode, i.e. a VOPRF). The original client input (i.e. the measurement) <bcp14>MUST</bcp14> be kept secret from the Randomness Server.</t>
        <t>Note that the Randomness Server in STAR does not need to be purposely configured, providing that clients all have a consistent service that operates a VOPRF-as-a-service, in line with the functionality explained in <xref target="OPRF"/>.</t>
        <t>The client randomness sampling process involves the following steps:</t>
        <ul spacing="normal">
          <li>The client blinds the input measurement, stores state <tt>blind</tt> and sends the blinded element to the Randomness Server as <tt>rq</tt>.</li>
          <li>Randomness Server evaluates the blinded measurement (without learning the original measurement) and returns the evaluated element <tt>rp</tt> back to client.</li>
          <li>Client completes the OPRF evaluation by finalizing using original measurement <tt>x</tt>, the state <tt>blind</tt> and the evaluated element <tt>rp</tt>.</li>
        </ul>
      </section>
      <section anchor="auxiliary-data">
        <name>Auxiliary data</name>
        <t>In <xref target="arch"/>, <tt>aux</tt> refers to auxiliary or additional data that may be sent by clients, and is distinct from the measurement data protected by the K-anonymity guarantee. Auxiliary data is only revealed when the k-condition is met but, importantly, is not part of the k-condition itself. This data might be unique to some or all of the submissions, or omitted entirely. This can even be the actual measured value itself. For example: if we're measuring tabs open on a client, then the measurement being sent can be "city: Vancouver" and the aux data can be "7" for a particular client. The idea being, that we only reveal all the measurements once we know that there are at least K clients with city: Vancouver.</t>
      </section>
      <section anchor="client-message">
        <name>Measurement Encryption</name>
        <t>The client measurement encryption process involves the following steps:</t>
        <ul spacing="normal">
          <li>Sample 48-bytes of randomness <tt>rand</tt> deterministically from their measurement <tt>x</tt> (as described in <xref target="sec-randomness-sampling"/>) in epoch <tt>t</tt>.</li>
          <li>The client parses <tt>rand</tt> as three 16-byte chunks: <tt>r1</tt>, <tt>r2</tt>, and <tt>r3</tt>.</li>
          <li>The client samples a share <tt>s</tt> of <tt>r1</tt> from a K-out-of-N secret sharing scheme based on Lagrange interpolation, such as <xref target="ADSS"/>. This process involves <tt>r2</tt> as consistent randomness for generating the coefficients for the polynomial. The client must then use independent local randomness for determining the point at which to evaluate the polynomial, and generate their share.</li>
          <li>The client derives a symmetric encryption key, <tt>key</tt>, from <tt>r1</tt>.</li>
          <li>The client encrypts the concatenation of <tt>x</tt> and <tt>aux</tt> into a ciphertext <tt>c</tt>.</li>
          <li>The client then generates the message to send to the server as the tuple <tt>(c,s,r3)</tt>.</li>
          <li>The client sends the message to the Aggregation Server via an anonymizing proxy in epoch <tt>t+1</tt>, after Randomness Server has rotated their secret key (see <xref target="sec-randomness-sampling"/>).</li>
        </ul>
      </section>
      <section anchor="server-aggregation">
        <name>Server Aggregation</name>
        <t>The server computes the output of the aggregation by performing the following steps.</t>
        <ul spacing="normal">
          <li>Group client messages together depending on whether they share the same value <tt>r3</tt>.</li>
          <li>
            <t>For any subset of client messages greater that is smaller than <tt>K</tt>:
            </t>
            <ul spacing="normal">
              <li>Abort.</li>
            </ul>
          </li>
          <li>
            <t>Otherwise:
            </t>
            <ul spacing="normal">
              <li>Run secret share recovery on the set of client-received shares <tt>s</tt> to reveal <tt>r1</tt>.</li>
              <li>Derive <tt>key</tt> from <tt>r1</tt>.</li>
              <li>Decrypt each ciphertext <tt>c</tt> to retrieve <tt>x</tt> and <tt>aux</tt>.</li>
              <li>Check that each decrypted <tt>x</tt> value is equivalent.</li>
              <li>Output <tt>x</tt> and the set of all auxiliary data.</li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="comparisons-with-other-systems">
      <name>Comparisons with other Systems</name>
      <t>(for information/discussion: consider removing before publication)</t>
      <section anchor="private-heavy-hitter-discovery">
        <name>Private Heavy-Hitter Discovery</name>
        <t>STAR is similar in nature to private heavy-hitter discovery protocols, such as Poplar <xref target="Poplar"/>. In such systems, the Aggregation Server reveals the set of client measurements that are shared by at least K clients. STAR allows a single untrusted server to perform the aggregation process, as opposed to Poplar which requires two non-colluding servers that communicate with each other.</t>
        <t>As a consequence, the STAR protocol is orders of magnitude more efficient than the Poplar approach, with respect to computational, network-usage, and financial metrics. Therefore, STAR scales much better for large numbers of client submissions. See the <xref target="STAR"/> paper for more details on efficiency comparisons with the Poplar approach.</t>
      </section>
      <section anchor="general-aggregation">
        <name>General Aggregation</name>
        <t>In comparison to general aggregation protocols like Prio <xref target="Prio"/>, the STAR protocol provides a more constrained set of functionality. However, STAR is significantly more efficient for the threshold aggregation functionality, requires only a single Aggregation Server, and is not limited to only processing numerical data types.</t>
      </section>
      <section anchor="protocol-leakage">
        <name>Protocol Leakage</name>
        <t>As we discuss in <xref target="leakage"/>, STAR leaks deterministic tags derived from the client measurement that reveal which (and how many) clients share the same measurements, even if the measurements themselves are not revealed. This also enables an online dictionary attack to be launched by the Aggregation Server by sending repeated VOPRF queries to the Randomness Server as discussed in <xref target="dictionary-attacks"/>.</t>
        <t>The leakage of Prio is defined as whatever is leaked by the function that the aggregation computes. The leakage in Poplar allows the two Aggregation Servers to learn all heavy-hitting prefixes of the eventual heavy-hitting strings that are output. Note that in Poplar it is also possible to launch dictionary attacks of a similar nature to STAR by launching a Sybil attack <xref target="Sybil"/> that explicitly injects multiple measurements that share the same prefix into the aggregation. This attack would result in the aggregation process learning more about client inputs that share those prefixes.</t>
        <t>Finally, note that under collusion, the STAR security model requires the adversary to launch an offline dictionary attack against client measurements. In Prio and Poplar, security is immediately lost when collusion occurs.</t>
      </section>
      <section anchor="support-for-auxiliary-data">
        <name>Support for auxiliary data</name>
        <t>It should be noted that clients can send auxiliary data (<xref target="auxiliary-data"/>) that is revealed only when the aggregation including their measurement succeeds (i.e. K-1 other clients send the same value). Such data is supported by neither Prio, nor Poplar.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="sec-randomness-sampling">
        <name>Randomness Sampling</name>
        <t>Deterministic randomness <bcp14>MUST</bcp14> be sampled by clients to construct their STAR message, as discussed in <xref target="client-message"/>. This randomness CANNOT be derived locally, and <bcp14>MUST</bcp14> be sampled from the Randomness Server (that runs an <xref target="OPRF"/> service).</t>
        <t>For best-possible security, the Randomness Server <bcp14>SHOULD</bcp14> sample and use a new OPRF key for each time epoch <tt>t</tt>, where the length of epochs is determined by the application. The previous OPRF key that was used in epoch <tt>t-1</tt> can be safely deleted. As discussed in <xref target="leakage"/>, shorter epochs provide more client security, but also reduce the window in which data collection occurs.</t>
        <t>In this model, for further security, clients <bcp14>SHOULD</bcp14> sample their randomness in epoch <tt>t</tt> and then send it to the Aggregation Server in <tt>t+1</tt> (after the Randomness Server has rotated their secret key). This prevents the Aggregation Server from launching queries after receiving the client messages (<xref target="leakage"/>). It is also <bcp14>RECOMMENDED</bcp14> that the Randomness Server runs in verifiable mode, which allows clients to verify the randomness that they are being served <xref target="OPRF"/>.</t>
      </section>
      <section anchor="cryptographic-choices">
        <name>Cryptographic Choices</name>
        <ul spacing="normal">
          <li>All encryption operations <bcp14>MUST</bcp14> be carried out using a secure symmetric authenticated encryption scheme.</li>
          <li>The secret sharing scheme <bcp14>MUST</bcp14> be information-theoretically secure, and <bcp14>SHOULD</bcp14> based upon traditional K-out-of-N Shamir secret sharing.</li>
          <li>For functionality reasons, secret sharing operations <bcp14>SHOULD</bcp14> be implemented in a finite field where collisions are unlikely (e.g. of size 128-bits). This is to ensure that clients do not sample identical shares of the same value.</li>
          <li>Client messages <bcp14>MUST</bcp14> be sent over a secure, authenticated channel, such as TLS.</li>
        </ul>
      </section>
      <section anchor="oblivious-submission">
        <name>Oblivious Submission</name>
        <t>The messages being submitted to an Aggregation Server in STAR <bcp14>MUST</bcp14> be detached from client identity. This is to ensure that the Aggregation Server does not learn exactly what each client submits, in the event that their measurement is revealed. This can be achieved by having the clients submit their messages via an <xref target="OHTTP"/> relay. In this flow, the Aggregation Server is configured as both the Gateway and Target Resource (the entity decrypting the message, using it, generating a response to the Encapsulated Request and encrypting the response). A separate Relay Resource is then used as to hide the client identity. Note that collusion between the Aggregation Server and the Relay Resource is expressly forbidden. All the client responsibilities mentioned in section 7.1 of <xref target="OHTTP"/> apply.</t>
        <t>The OHTTP Relay Resource and Randomness Server <bcp14>MAY</bcp14> be combined into a single entity, since client messages are protected by a TLS connection between the client and the Aggregation Server. Therefore, OHTTP support can be enabled without requiring any additional non-colluding parties. In this mode, the Randomness Server <bcp14>SHOULD</bcp14> allow two endpoints: (1) to evaluate the VOPRF functionality that provides clients with randomness, and (2) to proxy client messages to the Aggregation Server. However, this increases the privacy harm in case of collusion; see <xref target="collusion-aggregation-proxy"/>.</t>
        <t>It should also be noted that client messages CAN be sent via existing anonymizing proxies, such as <xref target="Tor"/>, but the OHTTP solution is likely to be the most efficient way to achieve oblivious submission.</t>
      </section>
      <section anchor="malicious-aggregation-server">
        <name>Malicious Aggregation Server</name>
        <section anchor="dictionary-attacks">
          <name>Dictionary Attacks</name>
          <t>The Aggregation Server may attempt to launch a dictionary attack against the client measurement, by repeatedly launching queries against the Randomness Server for measurements of its choice. This is mitigated by the fact that the Randomness Server regularly rotates the VOPRF key that they use, which reduces the window in which this attack can be launched (<xref target="sec-randomness-sampling"/>). Note that such attacks can also be limited in scope by maintaining out-of-band protections against entities that attempt to launch large numbers of queries in short time periods.</t>
        </section>
        <section anchor="sybil-attacks">
          <name>Sybil Attacks</name>
          <t>By their very nature, attacks where a malicious Aggregation Server injects clients into the system that send messages to try and reveal data from honest clients are an unavoidable consequence of building any threshold aggregation system. This system cannot provide comprehensive protection against such attacks. The time window in which such attacks can occur is restricted by rotating the VOPRF key (<xref target="sec-randomness-sampling"/>). Such attacks can also be limited in scope by using higher-layer defences such as identity-based certification <xref target="Sybil"/>, which STAR is compatible with.</t>
        </section>
      </section>
      <section anchor="leakage">
        <name>Leakage and Failure Model</name>
        <section anchor="size-of-anonymity-set">
          <name>Size of Anonymity Set</name>
          <t>Client messages immediately leak deterministic tags that are derived from the VOPRF output that is evaluated over client measurement. This has the immediate impact that the size of the anonymity set for each received measurement (i.e. which clients share the same measurement) is revealed, even if the measurement is not revealed. As long as client messages are sent via an <xref target="OHTTP"/> Relay Resource, then the leakage derived from the anonymity sets themselves is significantly reduced. However, it may still be possible to use this leakage to reduce a client's privacy, and so care should be taken to not construct situations where counts of measurement subsets are likely to lead to deanonymization of clients or their data.</t>
        </section>
        <section anchor="collusion-aggregation-randomness-servers">
          <name>Collusion between Aggregation and Randomness Servers</name>
          <t>Finally, note that if the Aggregation and Randomness Servers collude and jointly learn the VOPRF key, then the attack above essentially becomes an offline dictionary attack. As such, client security is not completely lost when collusion occurs, which represents a safer mode of failure when compared with Prio and Poplar.</t>
        </section>
        <section anchor="collusion-aggregation-proxy">
          <name>Collusion between Aggregation Server and Anonymizing Proxy</name>
          <t>As mentioned in <xref target="oblivious-submission"/>, systems that depend on a relaying server to remove linkage between client messages and client identity rely on the assumption of non-collusion between the relay and the server processing the client messages. Given that STAR depends on such a system for guaranteeing that the Aggregation Server does not come to know which client submitted the STAR message (once decrypted), the same collusion risk applies.</t>
          <t>It's worth mentioning here for completeness sake that if the OHTTP Relay Resource and Randomness Server are combined into a single entity as mentioned in <xref target="oblivious-submission"/>, then this worsens the potential leakage in case of collusion: if the entities responsible for the Aggregation Server and the Randomness Server collude as described in <xref target="collusion-aggregation-randomness-servers"/>, this results in the Aggregation Server in effect colluding with the anonymizing proxy.</t>
        </section>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="OPRF">
          <front>
            <title>Oblivious Pseudorandom Functions (OPRFs) using Prime-Order Groups</title>
            <author fullname="Alex Davidson">
              <organization>Brave Software</organization>
            </author>
            <author fullname="Armando Faz-Hernandez">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author fullname="Nick Sullivan">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author fullname="Christopher A. Wood">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <date day="6" month="July" year="2022"/>
            <abstract>
              <t>   An Oblivious Pseudorandom Function (OPRF) is a two-party protocol
   between client and server for computing the output of a Pseudorandom
   Function (PRF).  The server provides the PRF secret key, and the
   client provides the PRF input.  At the end of the protocol, the
   client learns the PRF output without learning anything about the PRF
   secret key, and the server learns neither the PRF input nor output.
   An OPRF can also satisfy a notion of 'verifiability', called a VOPRF.
   A VOPRF ensures clients can verify that the server used a specific
   private key during the execution of the protocol.  A VOPRF can also
   be partially-oblivious, called a POPRF.  A POPRF allows clients and
   servers to provide public input to the PRF computation.  This
   document specifies an OPRF, VOPRF, and POPRF instantiated within
   standard prime-order groups, including elliptic curves.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-voprf-11"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="STAR" target="https://arxiv.org/abs/2109.10074">
          <front>
            <title>STAR: Distributed Secret Sharing for Private Threshold Aggregation Reporting</title>
            <author initials="A." surname="Davidson">
              <organization/>
            </author>
            <author initials="P." surname="Snyder">
              <organization/>
            </author>
            <author initials="E." surname="Quirk">
              <organization/>
            </author>
            <author initials="J." surname="Genereux">
              <organization/>
            </author>
            <author initials="H." surname="Haddadi">
              <organization/>
            </author>
            <author initials="B." surname="Livshits">
              <organization/>
            </author>
            <date year="2022" month="April" day="10"/>
          </front>
        </reference>
        <reference anchor="Tor" target="https://svn-archive.torproject.org/svn/projects/design-paper/tor-design.pdf">
          <front>
            <title>Tor: The Second-Generation Onion Router</title>
            <author initials="R." surname="Dingledine">
              <organization/>
            </author>
            <author initials="N." surname="Mathewson">
              <organization/>
            </author>
            <author initials="P." surname="Syverson">
              <organization/>
            </author>
            <date year="2004"/>
          </front>
        </reference>
        <reference anchor="Brave" target="https://brave.com">
          <front>
            <title>Brave Browser</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ADSS" target="https://eprint.iacr.org/2020/800">
          <front>
            <title>Reimagining Secret Sharing: Creating a Safer and More Versatile Primitive by Adding Authenticity, Correcting Errors, and Reducing Randomness Requirements</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="W." surname="Dai">
              <organization/>
            </author>
            <author initials="P." surname="Rogaway">
              <organization/>
            </author>
            <date year="2020" month="June" day="27"/>
          </front>
        </reference>
        <reference anchor="Poplar" target="https://eprint.iacr.org/2021/017">
          <front>
            <title>Lightweight Techniques for Private Heavy Hitters</title>
            <author initials="D." surname="Boneh">
              <organization/>
            </author>
            <author initials="E." surname="Boyle">
              <organization/>
            </author>
            <author initials="H." surname="Corrigan-Gibbs">
              <organization/>
            </author>
            <author initials="N." surname="Gilboa">
              <organization/>
            </author>
            <author initials="Y." surname="Ishai">
              <organization/>
            </author>
            <date year="2022" month="January" day="04"/>
          </front>
        </reference>
        <reference anchor="Sybil" target="https://link.springer.com/chapter/10.1007/3-540-45748-8_24">
          <front>
            <title>The Sybil Attack</title>
            <author initials="J." surname="Douceur">
              <organization/>
            </author>
            <date year="2002" month="October" day="10"/>
          </front>
        </reference>
        <reference anchor="OHTTP">
          <front>
            <title>Oblivious HTTP</title>
            <author fullname="Martin Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Christopher A. Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="24" month="August" year="2021"/>
            <abstract>
              <t>   This document describes a system for the forwarding of encrypted HTTP
   messages.  This allows a client to make multiple requests of a server
   without the server being able to link those requests to the client or
   to identify the requests as having come from the same client.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-thomson-http-oblivious-02"/>
        </reference>
        <reference anchor="Prio">
          <front>
            <title>Privacy Preserving Measurement</title>
            <author fullname="Tim Geoghegan">
              <organization>ISRG</organization>
            </author>
            <author fullname="Christopher Patton">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Eric Rescorla">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Christopher A. Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="7" month="March" year="2022"/>
            <abstract>
              <t>   There are many situations in which it is desirable to take
   measurements of data which people consider sensitive.  In these
   cases, the entity taking the measurement is usually not interested in
   people's individual responses but rather in aggregated data.
   Conventional methods require collecting individual responses and then
   aggregating them, thus representing a threat to user privacy and
   rendering many such measurements difficult and impractical.  This
   document describes a multi-party privacy preserving measurement (PPM)
   protocol which can be used to collect aggregate data without
   revealing any individual user's data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-gpew-priv-ppm-01"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the authors of the original <xref target="STAR"/> paper, which forms the basis for this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
/gdKtsurPlcAAA==

-->

</rfc>
