Movatterモバイル変換


[0]ホーム

URL:


RFC 9576Privacy Pass ArchitectureJune 2024
Davidson, et al.Informational[Page]
Stream:
Internet Engineering Task Force (IETF)
RFC:
9576
Category:
Informational
Published:
ISSN:
2070-1721
Authors:
A. Davidson
NOVA LINCS, Universidade NOVA de Lisboa
J. Iyengar
Fastly
C. A. Wood
Cloudflare

RFC 9576

The Privacy Pass Architecture

Abstract

This document specifies the Privacy Pass architecture and requirements forits constituent protocols used for authorization based on privacy-preservingauthentication mechanisms. It describes the conceptual model of Privacy Passand its protocols, its security and privacy goals, practical deployment models,and recommendations for each deployment model, to help ensure that the desiredsecurity and privacy goals are fulfilled.

Status of This Memo

This document is not an Internet Standards Track specification; it is published for informational purposes.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained athttps://www.rfc-editor.org/info/rfc9576.

Copyright Notice

Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.

Table of Contents

1.Introduction

Privacy Pass is an architecture for authorization based on privacy-preservingauthentication mechanisms. In other words, relying parties authenticate Clientsin a privacy-preserving way, i.e., without learning any unique, per-Clientinformation through the authentication protocol, and then make authorizationdecisions on the basis of that authentication succeeding or failing. Possibleauthorization decisions might be to provide Clients with read access to aparticular resource or write access to a particular resource.

Typical approaches for authorizing Clients, such as through the use of long-termstate (cookies), are not privacy friendly, since they allow servers to trackClients across sessions and interactions. Privacy Pass takes a differentapproach: instead of presenting linkable state-carrying information to servers,e.g., a cookie indicating whether or not the Client is an authorized user orhas completed some prior challenge, Clients present unlinkable proofs thatattest to this information. These proofs, or tokens, are private in the sensethat a given token cannot be linked to the protocol interaction where thattoken was initially issued.

At a high level, the Privacy Pass architecture consists of two protocols:redemption and issuance. The redemption protocol, described in[AUTHSCHEME], runs between Clients andOrigins (servers). It allows Origins to challenge Clients to present tokensfor consumption. Origins verify the token to authenticate the Client -- withoutlearning any specific information about the Client -- and then make an authorizationdecision on the basis of the token verifying successfully or not. Dependingon the type of token, e.g., whether or not it can be cached, the Clienteither presents a previously obtained token or invokes an issuance protocol,e.g., the protocols described in[ISSUANCE], to acquire a token topresent as authorization.

This document describes requirements for both redemption and issuanceprotocols and how they interact. It also provides recommendations on howthe architecture should be deployed to ensure the privacy of Clients andthe security of all participating entities.

2.Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14[RFC2119][RFC8174] when, and only when, they appear in all capitals, as shown here.

The following terms are used throughout this document:

Client:

An entity that seeks authorization to an Origin. Using terminology from[RFC9334],Clients implement the Remote ATtestation procedureS (RATS) Attester role.

Token:

A cryptographic authentication message used for authorization decisions,produced as output from an issuance mechanism or protocol.

Origin:

An entity that consumes tokens presented by Clients and uses them to make authorization decisions.

Token challenge:

The mechanism by which Origins request tokens from Clients, often denoted TokenChallenge.

Token request:

A message used by Clients to request a token from an Issuer, often denoted TokenRequest.

Token response:

A message used by Issuers to send tokens to a Client, often denoted TokenResponse.

Redemption:

The mechanism by which Clients present tokens to Origins for thepurposes of authorization.

Issuer:

An entity that issues tokens to Clients for propertiesattested to by the Attester.

Issuance:

The mechanism by which an Issuer produces tokens for Clients.

Attester:

An entity that attests to properties of Clients for thepurposes of token issuance. Using terminology from[RFC9334], Attesters implement the RATS Verifier role.

Attestation procedure:

The procedure by which an Attester determines whether or not a Clienthas the specific set of properties that are necessary for token issuance.

The trust relationships between each of the entities in this list are furtherelaborated upon inSection 3.3.

3.Architecture

The Privacy Pass architecture consists of four logical entities --Client, Origin, Issuer, and Attester -- that work in concertfor token redemption and issuance. This section presents an overviewof Privacy Pass, a high-level description of the threat model andprivacy goals of the architecture, and the goals and requirements ofthe redemption and issuance protocols. Deployment variations for theOrigin, Issuer, and Attester in this architecture, includingconsiderations for implementing these entities, are further discussedinSection 4.

3.1.Overview

This section describes the typical interaction flow for Privacy Pass, as shown inFigure 1.

  1. A Client interacts with an Origin by sending a request or otherwiseinteracting with the Origin in a way that triggers a response containinga token challenge. The token challenge indicates a specific Issuer to use.
  2. If the Client already has a token available that satisfies the tokenchallenge, e.g., because the Client has a cache of previously issued tokens,it can skip tostep 6 and redeem itstoken; seeSection 7.1 for security considerations regarding cached tokens.
  3. If the Client does not have a token available and decides it wants toobtain one (or more) bound to the token challenge, it then invokes theissuance protocol. As a prerequisite to the issuance protocol, the Clientruns the deployment-specific attestation process that is required for thedesignated Issuer. Client attestation can be done via proof of solving aCAPTCHA, checking device or hardware attestation validity, etc.; seeSection 3.5.1 for more details.
  4. If the attestation process completes successfully, the Client creates atoken request to send to the designated Issuer (generally via the Attester,though it is not required to be sent through the Attester).The Attester and Issuer might be functions on the same server, depending on thedeployment model (seeSection 4). Depending on the attestation process, itis possible for attestation to run alongside the issuance protocol, e.g., whereClients send necessary attestation information to the Attester along with theirtoken request. If the attestation process fails, the Client receives an errorand issuance aborts without a token.
  5. The Issuer generates a token response based on the token request, whichis returned to the Client (generally via the Attester). Upon receiving thetoken response, the Client computes a token from the token challenge and tokenresponse. This token can be validated by anyone with the per-Issuer key butcannot be linked to the content of the token request or token response.
  6. If the Client has a token, it includes it in a subsequent request tothe Origin, as authorization. This token is sent only once in reaction to achallenge; Clients do not send tokens more than once, even if they receiveduplicate or redundant challenges. The Originvalidates that the token was generated by the expected Issuer and has notalready been redeemed for the corresponding token challenge. If the Clientdoes not have a token, perhaps because issuance failed, the Client does notreply to the Origin's challenge with a new request.

OriginClientAttesterIssuerRequestTokenChallengeAttestationTokenRequestTokenResponseRequest+Token
Figure 1:Privacy Pass Redemption and Issuance Protocol Interaction

3.2.Use Cases

Use cases for Privacy Pass are broad and depend greatly on the deployment modelas discussed inSection 4. The initial motivating use case for Privacy Pass[PrivacyPassCloudflare] was to help rate-limit malicious or otherwise abusivetraffic from services such as Tor[DMS2004]. The generalized and evolvedarchitecture described in this document also works for this use case. However,for added clarity, some more possible use cases are described below.

  • Low-quality, anti-fraud signal for open Internet services. Tokens can attest thatthe Client behind the user agent is likely not a bot attempting to perform someform of automated attack such as credential stuffing. Example attestation proceduresfor this use case might be solving some form of CAPTCHA or presenting evidence of avalid, unlocked device in good standing.
  • Privacy-preserving authentication for proprietary services. Tokens can attest thatthe Client is a valid subscriber for a proprietary service, such as a deployment ofOblivious HTTP[OHTTP].

3.3.Privacy Goals and Threat Model

The end-to-end flow for Privacy Pass described inSection 3.1 involves threedifferent types of contexts:

Redemption context:

The interactions and set of information sharedbetween the Client and Origin, i.e., the information that is provided orotherwise available to the Origin during redemption that might be usedto identify a Client and construct a token challenge. This context includes allinformation associated with redemption, such as the timestamp of the event,Client-visible information (including the IP address), and the Origin name.

Issuance context:

The interactions and set of information shared between the Client, Attester,and Issuer, i.e., the information that is provided or otherwise availableto the Attester and Issuer during issuance that might be used to identify a Client.This context includes all information associated with issuance, such as thetimestamp of the event, any Client-visible information (including the IPaddress), and the Origin name (if revealed during issuance). This does notinclude the token challenge in its entirety, as that is kept secret from theIssuer during the issuance protocol.

Attestation context:

The interactions and set of information shared betweenthe Client and Attester only, for the purposes of attesting the validity ofthe Client, that is provided or otherwise available during attestation thatmight be used to identify the Client. This context includes all informationassociated with attestation, such as the timestamp of the event and anyClient-visible information, including information needed for the attestationprocedure to complete.

The privacy goals of Privacy Pass assume a threat model in which Origins trustspecific Issuers to produce tokens, and Issuers in turn trust one or moreAttesters to correctly run the attestation procedure with Clients. Thisarrangement ensures that tokens that validate for a given Issuer were onlyissued to a Client that successfully completed attestation with an Attesterthat the Issuer trusts. Moreover, this arrangement means that if an Originaccepts tokens issued by an Issuer that trusts multiple Attesters, then aClient can use any one of these Attesters to issue and redeem tokens for theOrigin. Whether or not these different entities in the architecture colludefor learning redemption, issuance, or attestation contexts, as well as thenecessary preconditions for context unlinkability, depends on the deploymentmodel; seeSection 4 for more details.

The mechanisms for establishing trust between each entity in this arrangementare deployment specific. For example, in settings where Clients interact withIssuers through an Attester, Attesters and Issuers might usemutually authenticated TLS to authenticate one another. In settings whereClients do not communicate with Issuers through an Attester, the Attestersmight convey this trust via a digital signature that Issuers can verify.

Clients explicitly trust Attesters to perform attestation correctly and in away that does not violate their privacy. In particular, this means that Attestersthat may be privy to private information about Clients are trusted to not disclosethis information to non-colluding parties. Colluding parties are assumed to haveaccess to the same information; seeSection 4 for more about differentdeployment models and non-collusion assumptions. However, Clients assume that Issuers andOrigins are malicious.

Given this threat model, the privacy goals of Privacy Pass are oriented aroundunlinkability based on redemption, issuance, and attestation contexts, asdescribed below.

  1. Origin-Client unlinkability. This means that given two redemption contexts,the Origin cannot determine if both redemption contexts correspond to the sameClient or two different Clients. Informally, this means that a Client in aredemption context is indistinguishable from any other Client that might usethe same redemption context. The set of Clients that share the same redemptioncontext is referred to as a redemption anonymity set.
  2. Issuer-Client unlinkability. This is similar to Origin-Client unlinkabilityin that a Client in an issuance context is indistinguishable from any otherClient that might use the same issuance context. The set of Clients that sharethe same issuance context is referred to as an issuance anonymity set.
  3. Attester-Origin unlinkability. This is similar to Origin-Client andIssuer-Client unlinkability. It means that given two attestation contexts,the Attester cannot determine if both contexts correspond to the same Originor two different Origins. The set of Origins that share the same attestationcontext is referred to as an attestation anonymity set.
  4. Redemption context unlinkability. Given two redemption contexts, the Origincannot determine which issuance and attestation contexts each redemptioncorresponds to, even with the collaboration of the Issuer and Attester (shouldthese be different parties). This means that any information that may be learnedabout the Client during the issuance and attestation flows cannot be used by theOrigin to compromise Client privacy.

These unlinkability properties ensure that only the Clients are able to correlateinformation that might be used to identify them with activity on the Origin.The Attester, Issuer, and Origin only receive the information necessary to performtheir respective functions.

The manner in which these unlinkability properties are achieved depends on thedeployment model, type of attestation, and issuance protocol details. For example,as discussed inSection 4, in some cases it is necessary to use an anonymizationservice that hides Client IP addresses, such as Tor[DMS2004]. In general,anonymization services ensure that all Clients that use the service are indistinguishablefrom one another, though in practice there may be small distinguishing features(TLS fingerprints, HTTP headers, etc.). Moreover, Clients generally trust these servicesto not disclose private Client information (such as IP addresses) to untrusted parties.Failure to use an anonymization service when interacting with Attesters, Issuers, orOrigins can allow the set of possible Clients to be partitioned by the Client's IP addressand can therefore lead to unlinkability violations. Similarly, malicious Originsmay attempt to link two redemption contexts together by using Client-specificIssuer Public Keys. See Sections 5 and6 for moreinformation.

Sections3.4 and3.5 describe the functional properties and securityrequirements of the redemption and issuance protocols in more detail.Section 3.6describes how information flows between the Issuer, Origin, Client, and Attesterthrough these protocols.

3.4.Redemption Protocol

The Privacy Pass redemption protocol, described in[AUTHSCHEME], is an authorization protocolwherein Clients present tokens to Origins for authorization. Normally,redemption is preceded by a challenge, wherein the Origin challengesClients for a token with a TokenChallenge ([AUTHSCHEME],Section 2.1) and,if possible, Clients present a valid token ([AUTHSCHEME],Section 2.2)in reaction to the challenge. This interaction is shown below.

OriginClientRequestTokenChallengeIssuanceprotocolRequest+Token
Figure 2:Challenge and Redemption Protocol Interaction

Alternatively, when configured to do so, Clients may opportunistically presenttoken values to Origins without a corresponding TokenChallenge.

The structure and semantics of the TokenChallenge and token messages dependon the issuance protocol and token type being used; see[AUTHSCHEME] formore information.

The challenge provides the Client with the information necessary to obtaintokens that the server might subsequently accept in the redemption context.There are a number of ways in which the token may vary based on this challenge,including the following:

  • Issuance protocol. The challenge identifies the type of issuance protocolrequired for producing the token. Different issuance protocols have differentsecurity properties, e.g., some issuance protocols may produce tokens thatare publicly verifiable, whereas others may not have this property.
  • Issuer identity. Token challenges identify which Issuers are trusted for agiven issuance protocol. As described inSection 3.3, the choiceof Issuer determines the type of Attesters and attestation procedures possiblefor a token from the specified Issuer, but the Origin does not learn exactlywhich Attester was used for a given token issuance event.
  • Redemption context. Challenges can be bound to a given redemption context,which influences a Client's ability to pre-fetch and cache tokens. Forexample, an empty redemption context always allows tokens to be issued andredeemed non-interactively, whereas a fresh and random redemption contextmeans that the redeemed token must be issued only after the Client receivesthe challenge. SeeSection 2.1.1 of [AUTHSCHEME] for more details.
  • Per-Origin or cross-Origin. Challenges can be constrained to the Origin forwhich the challenge originated (referred to as per-Origin tokens) orcan be used across multiple Origins (referred to as cross-Origin tokens).The set of Origins for which a cross-Origin token is applicable is referredto as the cross-Origin set. Opting into this set is done by explicitly agreeingon the contents of the set. Every Origin in a cross-Origin set, by opting in,agrees to admit tokens for any other Origin in the set. SeeSection 2.1.1 of [AUTHSCHEME] for more information on how this set is created.

Origins that admit cross-Origin tokens bear some risk of allowing tokensissued for one Origin to be spent in an interaction with another Origin.In particular, cross-Origin tokens issued based on a challenge forone Origin can be redeemed at another Origin in the cross-Origin set,which can make it difficult to regulate token consumption. Depending on theuse case, Origins may need to maintain state to track redeemed tokens. Forexample, Origins that accept cross-Origin tokens across shared redemptioncontextsSHOULD track which tokens have already been redeemed in thoseredemption contexts, since these tokens can be issued and then spent multipletimes for any such challenge. Note that Clients that redeem thesame token to multiple Origins do risk those Origins being able to linkClient activity together, which can disincentivize this behavior. SeeSection 2.1.1 of [AUTHSCHEME] for discussion.

How Clients respond to token challenges can have privacy implications.For example, if an Origin allows the Client to choose an Issuer, then the choiceof Issuer can reveal information about the Client used to partition anonymitysets; seeSection 6.2 for more information about these privacyconsiderations.

3.5.Issuance Protocol

The Privacy Pass issuance protocols, such as those described in[ISSUANCE], are two-messageprotocols that take as input a TokenChallenge from the redemption protocol([AUTHSCHEME],Section 2.1) and produce a token([AUTHSCHEME],Section 2.2), as shown inFigure 1.

The structure and semantics of the TokenRequest and TokenResponse messagesdepend on the issuance protocol and token type being used; see[ISSUANCE]for more information.

Clients interact with the Attester and Issuer to produce a token fora challenge. The context in which an Attester vouches for a Client duringissuance is referred to as the attestation context. This context includes allinformation associated with the issuance event, such as the timestamp of theevent and Client-visible information, including the IP address or otherinformation specific to the type of attestation done.

Each issuance protocol may be different, e.g., in the number and types ofparticipants, underlying cryptographic constructions used when issuing tokens,and even privacy properties.

Clients initiate the issuance protocol using the token challenge, a randomlygenerated nonce, and a public key for the Issuer, all of which are the Client'sprivate input to the protocol and ultimately bound to an output token;seeSection 2.2 of [AUTHSCHEME] for details. Future specificationsmay change or extend the Client's input to the issuance protocol to producetokens with a different structure.

Token properties vary based on the issuance protocol. Important propertiessupported in this architecture are described below.

  1. Public verifiability. This means that the token can be verified using the IssuerPublic Key. A token that does not have public verifiability can only be verifiedusing the Issuer secret key.
  2. Public metadata. This means that the token can be cryptographically bound toarbitrary public information. SeeSection 6.1 for privacy considerationsregarding public metadata.
  3. Private metadata. This means that the token can be cryptographically bound toarbitrary private information, i.e., information that the Client does not observeduring token issuance or redemption. SeeSection 6.1 for privacyconsiderations regarding private metadata.

The issuance protocol itself can be any interactive protocol between the Client,Issuer, or other parties that produces a valid token bound to the Client'sprivate input, subject to the following security requirements.

  1. Unconditional input secrecy. The issuance protocolMUST NOT reveal anythingabout the Client's private input, including the challenge and nonce, to theAttester or Issuer, regardless of the hardness assumptions of the underlyingcryptographic protocol(s). This property is sometimes also referred to asblindness.
  2. One-more forgery security. The issuance protocolMUST NOT allow maliciousClients or Attesters (acting as Clients) to forge tokens offline or otherwisewithout interacting with the Issuer directly.
  3. Concurrent security. The issuance protocolMUST be safe to run concurrentlywith arbitrarily many Clients, Attesters, and Issuers.

SeeSection 3.5.4 for requirements on new issuance protocol variants andrelated extensions.

In the sections below, we describe the Attester and Issuer roles in moredetail.

3.5.1.Attester Role

In Privacy Pass, attestation is the process by which an Attester bearswitness to, confirms, or authenticates a Client so as to verify propertiesabout the Client that are required for issuance. Issuers trust Attestersto perform attestation correctly, i.e., to implement attestation proceduresin such a way that those procedures are not subverted or bypassed by malicious Clients.

[RFC9334] describes an architecture for attestation procedures. Usingthat architecture as a conceptual basis, Clients are RATS Attesters thatproduce attestation evidence, and Attesters are RATS Verifiers thatappraise the validity of attestation evidence.

The type of attestation procedure is a deployment-specific option and outsidethe scope of the issuance protocol. Example attestation procedures are below.

  • Solving a CAPTCHA. Clients that solve CAPTCHA challenges can be attested tohave this capability for the purpose of being ruled out as a bot or otherwiseautomated Client.
  • Presenting evidence of Client device validity. Some Clients run on trustedhardware that is capable of producing device-level attestation evidence.
  • Proving properties about Client state. Clients can be associated with state,and the Attester can verify this state. Examples of state include theClient's geographic region and whether the Client has a validapplication-layer account.

Attesters may support different types of attestation procedures.

Each attestation procedure has different security properties. Forexample, attesting to having a valid account is different from attesting torunning on trusted hardware. Supporting multiple attestation procedures isan important step towards ensuring equitable access for Clients; seeSection 5.1.

The role of the Attester in the issuance protocol and its impact on privacydepend on the type of attestation procedure, issuance protocol, and deploymentmodel. For instance, increasing the number of required attestation procedurescould decrease the overall anonymity set size. As an example, the number of Clientsthat have solved a CAPTCHA in the past day, that have a valid account, and thatare running on a trusted device is less than the number of Clients that havesolved a CAPTCHA in the past day. SeeSection 6.2 for more discussionof how the variety of attestation procedures can negatively impact Client privacy.

Depending on the issuance protocol, the Issuer might learninformation about the Origin. To ensure Issuer-Client unlinkability, the Issuershould be unable to link that information to a specific Client. For suchissuance protocols where the Attester has access to Client-specificinformation, such as is the case for attestation procedures that involveClient-specific information (such as application-layer account information)or for deployment models where the Attester learns Client-specific information(such as Client IP addresses), Clients trust the Attester to not share anyClient-specific information with the Issuer. In deployments where the Attesterdoes not learn Client-specific information or where the Attester and Issuer areoperated by the same entity (such as in the Joint Attester and Issuer modeldescribed inSection 4.2), the Client does not need to explicitlytrust the Attester in this regard.

Issuers trust Attesters to correctly and reliably perform attestation. However,certain types of attestation procedures can vary in value over time, e.g., if theattestation procedure is compromised. Brokenattestation procedures are considered exceptional events and requireconfiguration changes to address the underlying cause. For example, ifan attestation procedure is compromised or subverted because of a zero-dayexploit on devices that implement the attestation procedure, then thecorresponding attestation procedure should be untrusted until the exploit ispatched. Addressing changes in attestation quality is therefore adeployment-specific task. In Split Origin, Attester, and Issuer deployments (seeSection 4.4), Issuers can choose to remove compromised Attesters fromtheir trusted set until the compromise is patched.

From the perspective of an Origin, tokens produced by an Issuer with at leastone compromised Attester cannot be trusted, assuming that the Origin does not knowwhich attestation procedure was used for issuance. This is because the Origincannot distinguish between tokens that were issued via compromised Attestersand tokens that were issued via uncompromised Attesters, absent somedistinguishing information in the tokens themselves or from the Issuer. As aresult, until the attestation procedure is fixed, the Issuer cannot be trustedby Origins. Moreover, as a consequence, any tokens issued by an Issuer with acompromised Attester may no longer be trusted by Origins, even if those tokenswere issued to Clients interacting with an uncompromised Attester.

3.5.2.Issuer Role

In Privacy Pass, the Issuer is responsible for completing the issuance protocolfor Clients that complete attestation through a trusted Attester. As describedinSection 3.5.1, Issuers explicitly trust Attesters to correctly and reliablyperform attestation. Origins explicitly trust Issuers to only issue tokensfrom trusted Attesters. Clients do not explicitly trust Issuers.

Depending on the deployment model case, issuance may require some form ofClient anonymization service, similar to an IP-hiding proxy, so that Issuerscannot learn information about Clients. This can be provided by an explicitparticipant in the issuance protocol, or it can be provided via external means,such as through the use of an IP-hiding proxy service like Tor[DMS2004].In general, ClientsSHOULD minimize or remove identifyinginformation where possible when invoking the issuance protocol.

Issuers are uniquely identifiable by all Clients with a consistentidentifier. In a web context, this identifier might be the Issuer hostname.Issuers maintain one or more configurations, including issuance key pairs, foruse in the issuance protocol. Each configuration is assumed to have a uniqueand canonical identifier, sometimes referred to as a key identifier or key ID.Issuers can rotate these configurations as needed to mitigate the risk of compromise;seeSection 6.2 for more considerations around configurationrotation. The Issuer Public Key for each active configuration is made availableto Origins and Clients for use in the issuance and redemption protocols.

3.5.3.Issuance Metadata

Certain instantiations of the issuance protocol may permit public or privatemetadata to be cryptographically bound to a token. As an example, onetrivial way to include public metadata is to assign a unique IssuerPublic Key for each value of metadata, such that N keys yieldlog2(N) bits of metadata. Metadata may be public or private.

Public metadata is metadata that Clients can observe as part of the tokenissuance flow. Public metadata can be either transparent or opaque. Forexample, transparent public metadata is a value that either the Clientgenerates itself or the Issuer provides during the issuance flow and that theClient can check for correctness. Opaque public metadata is metadatathe Client can see but cannot check for correctness. As an example, theopaque public metadata might be a "fraud detection signal", computed onbehalf of the Issuer, during token issuance. Generally speaking, Clientscannot determine if this value is generated in a way that permits tracking.

Private metadata is metadata that Clients cannot observe as part of the tokenissuance flow. Such instantiations can be built on the private metadata bitconstruction from Kreuter et al. [KLOR20]or the attribute-based Verifiable Oblivious Pseudorandom Function (VOPRF) from Huang et al. [HIJK21].

Metadata can be arbitrarily long or bounded in length. The amount of permittedmetadata may be determined by an application or by the underlying cryptographicprotocol. The total amount of metadata bits included in a token is the sum ofpublic and private metadata bits. Every bit of metadata can be used topartition the Client issuance or redemption anonymity sets; seeSection 6.1 for more information.

3.5.4.Future Issuance Protocol Requirements

The Privacy Pass architecture and ecosystem are both intended to be receptiveto extensions that expand the current set of functionalities through newissuance protocols. Each new issuance protocol and extensionMUST adhereto the following requirements:

  1. Include a detailed analysis of the privacy impacts of the extension, whythese impacts are justified, and guidelines on how to use the protocolto mitigate or minimize negative deployment or privacy consequencesdiscussed in Sections 5 and6, respectively.
  2. Adhere to the guidelines specified inSection 3.5.2 for managing IssuerPublic Key data.
  3. Clearly specify how to interpret and validate TokenChallenge and tokenmessages that are exchanged during the redemption protocol.

3.6.Information Flow

The end-to-end process of redemption and issuance protocols involves informationflowing between the Issuer, Origin, Client, and Attester. That information canhave implications on the privacy goals that Privacy Pass aims to provideas outlined inSection 3.3. In this section, we describe the flowof information between each party. How this information affects the privacygoals in particular deployment models is further discussed inSection 4.

3.6.1.Token Challenge Flow

To use Privacy Pass, Origins choose an Issuer from which they are willing toaccept tokens. Origins then construct a token challenge using this specifiedIssuer and information from the redemption context it shares with the Client.This token challenge is then delivered to a Client. The token challenge conveysinformation about the Issuer and the redemption context, such as whether theOrigin desires a per-Origin or cross-Origin token. Any entity that seesthe token challenge might learn things about the Client as known to the Origin.This is why input secrecy is a requirement for issuance protocols, as itensures that the challenge is not directly available to the Issuer.

3.6.2.Attestation Flow

Clients interact with the Attester to prove that they meet some requiredset of properties. In doing so, Clients contribute information to theattestation context, which might include sensitive information such asapplication-layer identities, IP addresses, and so on. Clients can choosewhether or not to contribute this information based on local policy orpreference.

3.6.3.Issuance Flow

Clients use the issuance protocol to produce a token bound to a tokenchallenge. In doing so, there are several ways in which the issuance protocolcontributes information to the attestation or issuance contexts. For example, atoken request may contribute information to the attestation or issuancecontexts as described below.

  • Issuance protocol. The type of issuance protocol can contribute informationabout the Issuer's capabilities to the attestation or issuance contexts, aswell as the capabilities of a given Client. For example, if a Client ispresented with multiple issuance protocol options, then the choice of whichissuance protocol to use can contribute information about the Client'scapabilities.
  • Issuer configuration. Information about the Issuer configuration, such asits identity or the public key used to validate tokens it creates, can berevealed during issuance and contribute to the attestation or issuancecontexts.
  • Attestation information. The issuance protocol can contribute information tothe attestation or issuance contexts based on what attestation procedure theIssuer uses to trust a token request. In particular, a token request that isvalidated by a given Attester means that the Client that generated the tokenrequest must be capable of completing the designated attestation procedure.
  • Origin information. The issuance protocol can contribute information aboutthe Origin that challenged the Client; seeSection 3.6.1. In particular,a token request designated for a specific Issuer might imply that the resultingtoken is for an Origin that trusts the specified Issuer. However, this is notalways true, as some token requests can correspond to cross-Origin tokens,i.e., they are tokens that would be accepted at any Origin that accepts thecross-Origin token.

Moreover, a token may contribute information to the issuance attestation orcontexts as described below.

  • Origin information. The issuance protocol can contribute information aboutthe Origin in how it responds to a token request. For example, if an Issuerlearns the Origin during issuance and is also configured to respond in some wayon the basis of that information, and the Client interacts with the Issuertransitively through the Attester, that response can reveal information to theAttester.
  • Token. The token produced by the issuance protocol can contain informationfrom the issuance context. In particular, depending on the issuance protocol,tokens can contain public or private metadata, and Issuers can choose thatmetadata on the basis of information in the issuance context.

Exceptional cases in the issuance protocol, such as when either theAttester or Issuer aborts the protocol, can contribute information to theattestation or issuance contexts. The extent to which information in thiscontext harms the Issuer-Client or Attester-Origin unlinkability goals as discussed inSection 3.3 depends on the deployment model; seeSection 4.Clients can choose whether or not to contribute information to these contextsbased on local policy or preference.

3.6.4.Token Redemption Flow

Clients send tokens to Origins during the redemption protocol. Any informationthat is added to the token during issuance can therefore be sent to the Origin.Information can be either (1) explicitly passed in a token or (2) implicitin the way the Client responds to a token challenge. For example, if a Clientfails to complete issuance and consequently fails to redeem a token fora token challenge, this can reveal information to the Origin thatit might not otherwise have access to. However, an Origin cannot necessarilydistinguish between a Client that fails to complete issuance and one thatignores the token challenge altogether.

4.Deployment Models

The Origin, Attester, and Issuer portrayed inFigure 1 can beinstantiated and deployed in a number of ways. The deployment model directlyinfluences the manner in which attestation, issuance, and redemption contextsare separated to achieve Origin-Client, Issuer-Client, and Attester-Originunlinkability.

This section covers some expected deployment models and their correspondingsecurity and privacy considerations. Each deployment model is described interms of the trust relationships and communication patterns between the Client,Attester, Issuer, and Origin. Entities drawn within the same bounding box areassumed to be operated by the same party and are therefore able to collude.Collusion can enable linking of attestation, issuance, and redemption contexts.Entities not drawn within the same bounding box (i.e., operated by separate parties) are assumed to not collude. Mechanisms for enforcing non-collusion are out of scope for this architecture.

4.1.Shared Origin, Attester, Issuer

In this model, the Origin, Attester, and Issuer are all operated by the sameentity, as shown inFigure 3.

ClientAttesterIssuerOriginTokenChallengeAttestationTokenRequestTokenResponseToken|
Figure 3:Shared Deployment Model

This model represents the initial deployment of Privacy Pass, as described in[PrivacyPassCloudflare]. In this model, the Attester, Issuer, and Originshare the attestation, issuance, and redemption contexts. As a result,attestation mechanisms that can uniquely identify a Client, e.g., requiringthat Clients authenticate with some type of application-layer account, arenot appropriate, as they could lead to unlinkability violations.

Origin-Client, Issuer-Client, and Attester-Origin unlinkability requires thatissuance and redemption events be separated over time, such as through the useof tokens that correspond to token challenges with an empty redemption context(seeSection 3.4), or that they be separated over space, such as through the use of ananonymizing service when connecting to the Origin.

4.2.Joint Attester and Issuer

In this model, the Attester and Issuer are operated by the same entity,separate from the Origin. The Origin trusts the joint Attesterand Issuer to perform attestation and issue tokens. Clients interactwith the joint Attester and Issuer for attestation and issuance. Thisarrangement is shown inFigure 4.

ClientAttesterIssuerOriginTokenChallengeAttestationTokenRequestTokenResponseToken|
Figure 4:Joint Attester and Issuer Deployment Model

This model is useful if an Origin wants to offload attestation and issuance toa trusted entity. In this model, the Attester and Issuer share an attestationand issuance context for the Client, separate from the Origin'sredemption context.

Similar to the shared Origin, Attester, Issuer model, Issuer-Client andOrigin-Client unlinkability in this model requires that issuance and redemptionevents, respectively, be separated over time or space. Attester-Originunlinkability requires that the Attester and Issuer do not learn the Originfor a particular token request. For this reason, issuance protocols thatrequire the Issuer to learn information about the Origin, such as the issuance protocol described in[RATE-LIMITED], are notappropriate, since they could lead to Attester-Origin unlinkability violationsthrough the Origin name.

4.3.Joint Origin and Issuer

In this model, the Origin and Issuer are operated by the same entity, separatefrom the Attester, as shown inFigure 5. The Issuer accepts tokenrequests that come from trusted Attesters. Since the Attester and Issuer areseparate entities, this model requires some mechanism by which Issuersestablish trust in the Attester (as described inSection 3.3).For example, in settings where the Attester is a Client-trusted service thatdirectly communicates with the Issuer, one way to establish this trust is viamutually authenticated TLS. However, alternative authentication mechanisms arepossible. In this model, the Origin and Issuer are operated by the same entity, separate from the Attester, as shown in the figure below.

ClientAttesterIssuerOriginTokenChallengeAttestationTokenRequestTokenResponseToken|
Figure 5:Joint Origin and Issuer Deployment Model

This model is useful for Origins that require Client-identifying attestation,e.g., through the use of application-layer account information, but do nototherwise want to learn information about individual Clients beyond what isobserved during the token redemption, such as Client IP addresses.

In this model, attestation contexts are separate from Issuer and redemptioncontexts. As a result, any type of attestation is suitable in this model.

Moreover, assuming that there is more than one Origin involved, any type of token challenge is suitable, since no single party will have access to the identifyingClient information and unique Origin information. Issuers that produce tokensfor a single Origin are not suitable in this model, since an Attester caninfer the Origin from a token request, as described inSection 3.6.3. However,since the issuance protocol provides input secrecy, the Attester does not learndetails about the corresponding token challenge, such as whether the tokenchallenge is per Origin or across Origins.

4.4.Split Origin, Attester, Issuer

In this model, the Origin, Attester, and Issuer are all operated by differententities. As with the Joint Origin and Issuer model (Section 4.3), the Issuer accepts tokenrequests that come from trusted Attesters, and the details of that trustestablishment depend on the issuance protocol and relationship between theAttester and Issuer; seeSection 3.3. This arrangement is showninFigure 1.

This is the most general deployment model and is necessary for sometypes of issuance protocols where the Attester plays a role in tokenissuance; see[RATE-LIMITED] for one such type of issuance protocol.

In this model, the Attester, Issuer, and Origin have a separate viewof the Client: the Attester sees potentially sensitive Client-identifyinginformation, such as account identifiers or IP addresses; the Issuersees only the information necessary for issuance; and the Origin seestoken challenges, corresponding tokens, and Client source information,such as their IP address. As a result, attestation, issuance, and redemptioncontexts are separate, and therefore any type of token challenge is suitable inthis model as long as there is more than a single Origin.

As with the Joint Origin and Issuer model (Section 4.3), and asdescribed inSection 3.6.3, if the Issuer produces tokens for a single Origin,then per-Origin tokens are not appropriate, since the Attester can infer theOrigin from a token request.

5.Deployment Considerations

Section 4 discusses deployment models that are possible in practice.Beyond possible implications on security and privacy properties of theresulting system, Privacy Pass deployments can impact the overall ecosystemin two important ways: (1) discriminatory treatment of Clients and the gatedaccess to otherwise open services and (2) centralization. This sectiondescribes considerations relevant to these topics.

5.1.Discriminatory Treatment

Origins can use tokens as a signal for distinguishing between (1) Clientsthat are capable of completing attestation with one Attester trusted by theOrigin's chosen Issuer and (2) Clients that are not capable of doing the same. Aconsequence of this is that Privacy Pass could enable discriminatory treatmentof Clients based on attestation support. For example, an Origin could onlyauthorize Clients that successfully authenticate with a token, prohibiting accessto all other Clients.

The types of attestation procedures supported for a particular deployment dependgreatly on the use case. For example, consider a proprietary deployment of Privacy Passthat authorizes Clients to access a resource such as an anonymization service. In thiscontext, it is reasonable to support specific types of attestation procedures thatdemonstrate that Clients can access the resource, such as with an account or specifictype of device. However, in open deployments of Privacy Pass that are used tosafeguard access to otherwise open or publicly accessible resources, diversityin attestation procedures is critically important so as to not discriminate againstClients that choose certain software, hardware, or identity providers.

In principle, Issuers should strive to mitigate discriminatory behavior byproviding equitable access to all Clients. This can be done by working with aset of Attesters that are suitable for all Clients. In practice, this may requiretrade-offs in what type of attestation Issuers are willing to trust so as toenable more widespread support. In other words, trusting a variety of Attesterswith a diverse set of attestation procedures would presumably increase supportamong Clients, though most likely at the expense of decreasing the overall valueof tokens issued by the Issuer.

For example, to disallow discriminatory behavior between Clients with andwithout device attestation support, an Issuer may wish to support Attestersthat support CAPTCHA-based attestation. This means that the overall attestationvalue of a Privacy Pass token is bound by the difficulty in spoofing orbypassing either one of these attestation procedures.

5.2.Centralization

A consequence of limiting the number of participants (Attesters or Issuers) inPrivacy Pass deployments for meaningful privacy is that it forces concentratedcentralization among those participants.[CENTRALIZATION] discussesseveral ways in which this might be mitigated. For example, a multi-stakeholdergovernance model could be established to determine what candidate participantsare fit to operate as participants in a Privacy Pass deployment. This isprecisely the system used to control the Web's trust model.

Alternatively, Privacy Pass deployments might mitigate this problem throughimplementation. For example, rather than centralize the role of attestationin one or a few entities, attestation could be a distributed function performedby a quorum of many parties, provided that neither Issuers nor Origins learnwhich Attester implementations were chosen. As a result, Clients could havemore opportunities to switch between attestation participants.

6.Privacy Considerations

The previous section discusses the impact of deployment details onOrigin-Client, Issuer-Client, and Attester-Origin unlinkability.The value these properties afford to end users depends onthe size of anonymity sets in which Clients or Origins areunlinkable. For example, consider two different deployments, one whereinthere exists a redemption anonymity set of size two and anotherwherein there exists a redemption anonymity set of size 232. AlthoughOrigin-Client unlinkability guarantees that the Origin cannot link any tworequests to the same Client based on these contexts, respectively, thesmaller these sets become, the higher the probability of determining the "true" Client.

In practice, there are a number of ways in which the size of anonymity setsmay be reduced or partitioned, though they all center around the concept ofconsistency. In particular, by definition, all Clients in an anonymity setshare a consistent view of information needed to run the issuance andredemption protocols. The Issuer Public Key is an example of the type of information needed to run these protocols. When two Clients have inconsistentinformation, these Clients effectively have different redemption contexts andtherefore belong in different anonymity sets.

The following subsections discuss issues that can influence anonymity set size.For each issue, we discuss mitigations or safeguards to protect against theunderlying problem.

6.1.Partitioning by Issuance Metadata

Any public or private metadata bits of information can be used to furthersegment the size of the Client anonymity set. Any Issuer that wanted totrack a single Client could add a single metadata bit to Client tokens. Forthe tracked Client, it would set the bit to1, and0 otherwise. Addingadditional bits provides an exponential increase in tracking granularityin a manner similar to introducing more Issuers (though with more potential targeting).

For this reason, deployments should take the amount of metadata used by an Issuerin creating tokens, together with the bits of information that Issuers may learn about Clients through other means, into account. Since thismetadata may be useful for practical deployments of Privacy Pass, Issuersmust balance this against the reduction in Client privacy.

The number of permitted metadata values often depends on deployment-specificdetails. In general, limiting the amount of metadata permitted helps limit theextent to which metadata can uniquely identify individual Clients. Failure tobound the number of possible metadata values can therefore lead to a reduction inClient privacy. Most token types do not admit any metadata, so this bound isimplicitly enforced.

6.2.Partitioning by Issuance Consistency

Anonymity sets can be partitioned by information used for the issuanceprotocol, including metadata, Issuer configuration (keys), and Issuerselection.

Any issuance metadata bits of information can be used to partition the Clientanonymity set. For example, any Issuer that wanted to track a single Clientcould add a single metadata bit to Client tokens. For the tracked Client, itwould set the bit to1, and0 otherwise. Adding additional bits provides anexponential increase in tracking granularity in a manner similar to introducing moreIssuers (though with more potential targeting).

The number of active Issuer configurations also contributes to anonymity setpartitioning. In particular, when an Issuer updates their configuration andthe corresponding key pair, any Client that invokes the issuance protocol withthis configuration becomes part of a set of Clients that also ran theissuance protocol using the same configuration. Issuer configuration updates,e.g., due to key rotation, are an important part of hedging against long-termprivate key compromise. In general, key rotations represent a trade-off betweenClient privacy and Issuer security. Therefore, it is important that keyrotations occur on a regular cycle to reduce the harm of an Issuer keycompromise.

Lastly, if Clients are willing to issue and redeem tokens from a large numberof Issuers for a specific Origin and that Origin accepts tokens from allIssuers, partitioning can occur. As an example, if a Client obtains tokens frommany Issuers and an Origin later challenges that Client for a token from eachIssuer, the Origin can learn information about the Client. This arrangementmight happen if Clients request tokens from different Issuers, each of whichhas different Attester preferences. Each per-Issuer token that a Client holdsessentially corresponds to a bit of information about the Client that the Originlearns. Therefore, there is an exponential loss in privacy relative to thenumber of Issuers.

The fundamental problem here is that the number of possible issuanceconfigurations, including the keys in use and the Issuer identities themselves,can partition the Client anonymity set. To mitigate this problem, ClientsSHOULD bound the number of active issuance configurations per Origin as well asacross Origins. Moreover, ClientsSHOULD employ some form of consistencymechanism to ensure that they receive the same configuration information andare not being actively partitioned into smaller anonymity sets. See[CONSISTENCY] for possible consistencymechanisms. Depending on the deployment, the Attester might assist the Clientin applying these consistency checks across Clients. Failure to apply aconsistency check can allow Client-specific keys to violate Origin-Clientunlinkability.

6.3.Partitioning by Side Channels

Side-channel attacks, such as those based on timing correlation, could beused to reduce anonymity set size. In particular,for interactive tokens that are bound to a Client-specific redemptioncontext, the anonymity set of Clients during the issuance protocol consistsof those Clients that started issuance between the time of the Origin'schallenge and the corresponding token redemption. Depending on the numberof Clients using a particular Issuer during that time window, the set canbe small. Applications should take such side channels into consideration beforechoosing a particular deployment model and type of token challenge andredemption context.

7.Security Considerations

This document describes security and privacy requirements for the Privacy Passredemption and issuance protocols. It also describes deployment models builtaround non-collusion assumptions and privacy considerations for using PrivacyPass within those models. Ensuring Client privacy -- separation of attestationand redemption contexts -- requires active work on behalf of the Client,especially in the presence of malicious Issuers and Origins. Implementing themitigations discussed in Sections 4 and6 is therefore necessaryto ensure that Privacy Pass offers meaningful privacy improvements to end users.

7.1.Token Caching

Depending on the Origin's token challenge, Clients can request and cache morethan one token using an issuance protocol. Cached tokens help improve privacy byseparating the time of token issuance from the time of token redemption; theyalso allow Clients to reduce the overhead of receiving new tokens via theissuance protocol.

As a consequence, Origins that send token challenges that are compatible withcached tokens need to take precautions to ensure that tokens are not replayed.This is typically done via keeping track of tokens that are redeemed for theperiod of time in which cached tokens would be accepted for particularchallenges.

Moreover, since tokens are not intrinsically bound to Clients, it is possiblefor malicious Clients to collude and share tokens in a so-called "hoardingattack". As an example of this attack, many distributed Clients could obtaincacheable tokens and then share them with a single Client to redeem the tokens in a waythat would violate an Origin's attempt to limit tokens to any one particularClient. In general, mechanisms for mitigating hoarding attacks depend on thedeployment model and use case. For example, in the Joint Origin and Issuer model,comparing the issuance and redemption contexts can help detect hoarding attacks,i.e., if the distribution of redemption contexts is noticeably different from thedistribution of issuance contexts. Rate-limiting issuance, at either the Client,Attester, or Issuer, can also help mitigate these attacks.

8.IANA Considerations

This document has no IANA actions.

9.References

9.1.Normative References

[AUTHSCHEME]
Pauly, T.,Valdez, S., andC. A. Wood,"The Privacy Pass HTTP Authentication Scheme",RFC 9577,DOI 10.17487/RFC9577,,<https://www.rfc-editor.org/info/rfc9577>.
[RFC2119]
Bradner, S.,"Key words for use in RFCs to Indicate Requirement Levels",BCP 14,RFC 2119,DOI 10.17487/RFC2119,,<https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B.,"Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words",BCP 14,RFC 8174,DOI 10.17487/RFC8174,,<https://www.rfc-editor.org/info/rfc8174>.

9.2.Informative References

[CENTRALIZATION]
Nottingham, M.,"Centralization, Decentralization, and Internet Standards",RFC 9518,DOI 10.17487/RFC9518,,<https://www.rfc-editor.org/info/rfc9518>.
[CONSISTENCY]
Davidson, A.,Finkel, M.,Thomson, M., andC. A. Wood,"Key Consistency and Discovery",Work in Progress,Internet-Draft, draft-ietf-privacypass-key-consistency-01,,<https://datatracker.ietf.org/doc/html/draft-ietf-privacypass-key-consistency-01>.
[DMS2004]
Dingledine, R.,Mathewson, N., andP. Syverson,"Tor: The Second-Generation Onion Router",,<https://svn.torproject.org/svn/projects/design-paper/tor-design.html>.
[HIJK21]
Huang, S.,Iyengar, S.,Jeyaraman, S.,Kushwah, S.,Lee, C-K.,Luo, Z.,Mohassel, P.,Raghunathan, A.,Shaikh, S.,Sung, Y-C., andA. Zhang,"DIT: De-Identified Authenticated Telemetry at Scale",,<https://research.fb.com/privatestats>.
[ISSUANCE]
Celi, S.,Davidson, A.,Valdez, S., andC. A. Wood,"Privacy Pass Issuance Protocols",RFC 9578,DOI 10.17487/RFC9578,,<https://www.rfc-editor.org/info/rfc9578>.
[KLOR20]
Kreuter, B.,Lepoint, T.,Orrù, M.,Raykova, M., andSpringer International Publishing,"Anonymous Tokens with Private Metadata Bit",Advances in Cryptology - CRYPTO 2020, pp. 308-336,DOI 10.1007/978-3-030-56784-2_11,,<https://doi.org/10.1007/978-3-030-56784-2_11>.
[OHTTP]
Thomson, M. andC. A. Wood,"Oblivious HTTP",RFC 9458,DOI 10.17487/RFC9458,,<https://www.rfc-editor.org/info/rfc9458>.
[PrivacyPassCloudflare]
Sullivan, N.,"Cloudflare supports Privacy Pass",,<https://blog.cloudflare.com/cloudflare-supports-privacy-pass/>.
[RATE-LIMITED]
Hendrickson, S.,Iyengar, J.,Pauly, T.,Valdez, S., andC. A. Wood,"Rate-Limited Token Issuance Protocol",Work in Progress,Internet-Draft, draft-ietf-privacypass-rate-limit-tokens-06,,<https://datatracker.ietf.org/doc/html/draft-ietf-privacypass-rate-limit-tokens-06>.
[RFC9334]
Birkholz, H.,Thaler, D.,Richardson, M.,Smith, N., andW. Pan,"Remote ATtestation procedureS (RATS) Architecture",RFC 9334,DOI 10.17487/RFC9334,,<https://www.rfc-editor.org/info/rfc9334>.

Acknowledgements

The authors would like to thankEric Kinnear,Scott Hendrickson,Tommy Pauly,Christopher Patton,Benjamin Schwartz,Martin Thomson,Steven Valdez, and othercontributors of the Privacy Pass Working Group for many helpful contributionsto this document.

Authors' Addresses

Alex Davidson
NOVA LINCS, Universidade NOVA de Lisboa
Largo da Torre
Caparica
Portugal
Email:alex.davidson92@gmail.com
Jana Iyengar
Fastly
Email:jri@fastly.com
Christopher A. Wood
Cloudflare
101 Townsend St
San Francisco,CA94107
United States of America
Email:caw@heapingbits.net

[8]ページ先頭

©2009-2025 Movatter.jp