Privacy Pass 将责任分配给四个角色,确保没有任何一方单独了解用户的全部身份和活动信息。本页面解释了协议的信息流。有关各角色的运营者以及此设计提供的隐私属性,请参阅部署模型。
| 角色 | 职责 |
|---|---|
| Client(客户端) | 请求访问,进行颁发和兑换协议。 |
| Origin(源) | 颁发令牌挑战并验证已兑换的令牌。 |
| Attester(验证者) | 运行特定于部署的验证流程以验证客户端。 |
| Issuer(颁发者) | 为经过验证的客户端对盲化令牌请求进行签名。Cloudflare 的颁发者使用公开可验证的 Blind RSA(令牌类型 2)。 |
如 RFC 9576 中所定义,该流程跨两个协议运行:颁发(获取令牌)和兑换(将其用于访问)。
┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐
│ Origin │ │ Client │ │ Attester │ │ Issuer │
└────────┘ └────────┘ └──────────┘ └────────┘
│ │ │ │
│<───── Request ──────│ │ │
│ │ │ │
│── TokenChallenge ──>│ │ │
│ │ │ │
│ │<== Attestation ==>│ │
│ │ │
│ │─── TokenRequest+Attestation Proof ───>│
│ │ │[Verifies Attestation]
│ │<──────────── TokenResponse ───────────│
│ │[Finalises Token]
│<── Request+Token ───│
│ │
│────── 200 OK ──────>│初始请求
- 客户端向源发送请求。
- 源以令牌挑战回应。如果客户端没有可兑换的令牌,它将与源信任的颁发者开始颁发协议。
颁发协议
- 颁发协议从客户端完成特定于部署的验证流程开始。此步骤是故意开放式的,以便不同用例可以定义自己的验证方式。
- 一旦 Attester 验证了客户端,客户端就会向颁发者发送盲化令牌请求——即对令牌掩码版本的签名请求,防止最终版本与原始请求关联——以及验证证明。
- 颁发者检查验证,对盲化令牌进行签名并返回。客户端对其进行最终确定以恢复 Privacy Pass 令牌,完成颁发协议。
兑换协议
- 交互以兑换协议结束,客户端将令牌与其原始请求一起发送回源。
- 源验证签名并以
200 OK响应,授予访问权限。
要在自己的机器上运行完整的颁发和兑换流程——无需 Cloudflare 设置——请参阅快速入门中的本地示例。