Authorization does not require identity.

Research

5 min read

PRIVACY-PRESERVING AUTHORIZATION

How a token can prove eligibility without becoming an identifier.

Most authorization systems begin by identifying an account. A server authenticates the user, loads a profile and decides whether the requested action is allowed.

Privacy Pass supports a narrower statement. A client can present a cryptographic token showing that an issuer previously authorized an action, while the origin redeeming the token need not learn a stable client identity from the token itself.

This separation is valuable precisely because the token says less. Its privacy depends on keeping issuance, redemption and surrounding metadata from reconnecting the same client.

Issuance and redemption are different events

A client first satisfies an issuer’s policy and obtains one or more tokens. Later, it redeems a token with an origin that has issued a challenge.

Blind or oblivious issuance prevents the issuer from learning the final token value. When that value is redeemed, the origin can validate it without presenting an identifier that the issuer observed during issuance.

The cryptographic goal is unlinkability between these events. If both happen in the same connection, carry the same cookie or expose a distinctive timing pattern, the surrounding system can undo that separation.

The token proves issuance, not a person

A valid token establishes that an authorized issuer created it for a compatible challenge and key. It does not necessarily establish who obtained it, why the issuer approved it or whether the current presenter is the original client.

This makes Privacy Pass useful for rate-limiting exceptions, anti-abuse signals and access decisions that need eligibility but not identity. It also means it is unsuitable when the business rule requires non-transferable personal authorization unless another binding mechanism is added.

Adding a stable holder key can supply that binding, but it may also make presentations correlatable. The trade-off should be explicit.

Two verification models

The standardized issuance protocols include privately verifiable tokens based on an oblivious pseudorandom function and publicly verifiable tokens based on blind RSA signatures.

With private verification, the verifier needs the issuer’s secret key. This limits who can validate tokens and makes key distribution part of the trust boundary. With public verification, anyone holding the public key can validate, which simplifies federation but changes exposure and abuse possibilities.

Public verifiability is not automatically better. The intended verifier population, key lifecycle and risk of token observation should determine the model.

The challenge defines the authorized context

An origin challenges the client for a token type and identifies the issuer and redemption context. The client must obtain or select a compatible token.

If challenges are too broad, a token issued for one purpose may be redeemable for another. If they are too specific, they can become fingerprints that reduce anonymity sets or prevent useful pre-issuance.

Canonical challenge encoding, origin binding and protocol versioning are therefore security properties, not HTTP decoration.

Single use needs state

A privately issued token can still be copied after issuance. If it authorizes one action, the verifier needs to detect a second redemption.

Spent-token tracking introduces server state. The verifier may store a hash of each redeemed authenticator, partitioned by issuer key and token type. That state must be consistent across replicas and retained for the token’s usable lifetime.

A race between two redemption points can otherwise accept the same token twice. Privacy-preserving authorization does not remove the distributed-systems problem of atomic consumption.

Issuance policy remains visible to the issuer

The issuer decides whether a client qualifies. It may use an account, device attestation, proof of work, payment or another anti-abuse signal. Privacy Pass does not standardize that policy.

The issuer will normally observe the issuance interaction and whatever evidence it requires. Blind issuance hides the future token, not the fact that an issuance occurred.

A privacy review should state which party sees identity, which sees network origin, which sees the redeemed token and whether any two of them are expected not to collude.

Batching can help or hurt

Issuing several tokens at once can separate later redemptions from one exact issuance time. It also creates a stock of transferable authorization material that must be protected on the client.

Distinctive batch sizes or rare issuance schedules can become fingerprints. Very short token lifetimes can make timing correlation easier. Very long lifetimes increase exposure after device compromise.

The anonymity set is shaped by operational parameters as much as by the blind primitive.

Key rotation divides anonymity sets

Tokens are validated under issuer keys. Rotating a key limits compromise and provides algorithm agility, but every key epoch partitions the token population.

During transition, clients may hold tokens under old and new keys. Origins need a policy for accepting both without allowing downgrade or making the client’s key choice identifying.

Rotation cadence should be evaluated against token lifetime, cache behaviour, revocation needs and the size of each anonymity set.

Metadata can reassemble the client

The token protocol does not hide IP addresses, TLS fingerprints, cookies, request contents or timing. A client that redeems an unlinkable token inside an identified browser session has gained little anonymity.

Transport partitioning, such as Oblivious HTTP, can prevent one party from seeing both network identity and application content. It introduces its own relay and collusion assumptions.

Privacy Pass should be deployed as one layer in a metadata model, not as a replacement for one.

Authorization with deliberately less identity

Privacy Pass demonstrates that some decisions do not need an account. A cryptographic token can carry just enough evidence that an issuer approved a class of action.

The issuer need not see the future token, and the origin need not see the client’s issuance identity. Single-use state, challenge scope, key rotation and transport metadata still determine the result.

The design question is not how to hide an identity after collecting it. It is whether the authorization decision needed that identity at all.


References

  1. RFC 9576: The Privacy Pass Architecture
  2. RFC 9577: The Privacy Pass HTTP Authentication Scheme
  3. RFC 9578: Privacy Pass Issuance Protocols
  4. RFC 9497: Oblivious Pseudorandom Functions
  5. RFC 9474: RSA Blind Signatures

Related Articles

Two embossed paper strips emerging from a precision press while a magnifier reveals their surface detail.

Sign the same message twice.

Repeated signing reveals whether output varies. Across a population, repeated ECDSA values can expose nonce reuse, compromise and implementation anomalies.