跳转到内容
搜索文档

Privacy Pass 协议

最后更新 查看 MarkdownAgent 设置

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 ──────>│

初始请求

  1. 客户端向源发送请求。
  2. 源以令牌挑战回应。如果客户端没有可兑换的令牌,它将与源信任的颁发者开始颁发协议

颁发协议

  1. 颁发协议从客户端完成特定于部署的验证流程开始。此步骤是故意开放式的,以便不同用例可以定义自己的验证方式。
  2. 一旦 Attester 验证了客户端,客户端就会向颁发者发送盲化令牌请求——即对令牌掩码版本的签名请求,防止最终版本与原始请求关联——以及验证证明。
  3. 颁发者检查验证,对盲化令牌进行签名并返回。客户端对其进行最终确定以恢复 Privacy Pass 令牌,完成颁发协议。

兑换协议

  1. 交互以兑换协议结束,客户端将令牌与其原始请求一起发送回源。
  2. 源验证签名并以 200 OK 响应,授予访问权限。

在代码中查看

要在自己的机器上运行完整的颁发和兑换流程——无需 Cloudflare 设置——请参阅快速入门中的本地示例。


相关资源

这篇文档对您有帮助吗?