跳转到内容
搜索文档

快速入门

最后更新 查看 MarkdownAgent 设置

有两种自助方式来体验 Privacy Pass 的实际运作:

  • 使用演示工具获取真实令牌: 利用浏览器工具和 Cloudflare 提供的演示颁发者,这是获取真实的、由颁发者签名的令牌的最快方式。
  • 查看本地示例: 使用真实的 Blind RSA 密码学,在几分钟内在你自己的机器上运行完整的颁发和兑换流程。

要了解协议本身,请参阅 Privacy Pass 协议。当你准备好验证真实的、由 Cloudflare 运营的部署时,请参阅生产部署测试联系我们开始设置必要的基础设施。


使用演示工具获取真实令牌

查看由颁发者签名的令牌的最快方式是使用 Cloudflare 的 Privacy Pass 演示工具。指向颁发者后,它会在你的浏览器中运行完整的颁发流程并返回已验证的令牌。

先决条件

如何获取令牌

  1. 打开 Privacy Pass 演示工具
  2. Fetch from issuer URL(从颁发者 URL 获取) 中,粘贴演示颁发者目录 URL 并提交。该工具将显示颁发者目录——令牌类型为 2(Blind RSA)的 token-keys 列表——并自动填充以下步骤的字段。
  3. Create challenge(创建质询) 中,提交预填写的表单。该工具从颁发者的密钥构建 WWW-Authenticate 令牌挑战。
  4. Send Token Request(发送令牌请求) 中,提交预填写的表单。该工具对请求进行盲化处理,将其发送给颁发者,对响应进行去盲化处理,并验证结果。

成功运行后显示:

Draft 16 Valid: true
PrivateToken token=...

Draft 16 Valid: true 表示颁发者返回了一个真实的令牌,该令牌可以对照其公钥进行验证。PrivateToken token=... 值是客户端将在 Authorization 标头中发送给源的最终令牌。


查看本地示例

你可以在几分钟内在你的机器上运行颁发和兑换流程,无需 Cloudflare 设置。它使用真实的 Blind RSA 密码学,但所有内容都在单个进程中进行:颁发者密钥在本地生成,验证则被模拟跳过。这是一种快速了解协议运作方式的方法。

先决条件

运行示例

@cloudflare/privacypass-ts 库附带可运行的示例。克隆存储库并安装依赖项:

git clone https://github.com/cloudflare/privacypass-ts.git
cd privacypass-ts
npm ci

公开可验证的示例(pub_verif.example.ts)仅导出其函数,因此添加一个小型运行器来调用该函数。创建 examples/run-pub-verif.ts

import { publicVerifiableTokensPSS } from "./pub_verif.example.js";

await publicVerifiableTokensPSS();

编译示例并运行你的运行器:

npx tsc -b examples
node ./lib/examples/run-pub-verif.js

它会打印:

Public-Verifiable tokens
    Suite: ...
    Valid token: true

Valid token: true 表示令牌已成功颁发、去盲化并验证。

示例如何映射到四个角色

示例在单个进程中创建了一个颁发者、一个客户端和一个源(颁发者密钥对在 setup() 中使用 Issuer.generateKey 预先生成),然后通过协议运行它们。

该示例遵循图中描述的流程,且仅测试源、客户端和颁发者。Attester 被模拟省略,因为此处不运行真实的验证。

 ┌────────┐              ┌────────┐                ┌────────┐
 │ Origin │              │ Client │                │ Issuer │
 └────────┘              └────────┘                └────────┘
      │                       │                         │
      │<────── Request ───────│                         │
      │─── TokenChallenge ───>│                         │
      │                       │                         │
      │                       │───── TokenRequest ─────>│
      │                       │<──── TokenResponse ─────│
      │                       │                         │
      │<─── Request+Token ────│                         │

示例中的每次调用映射到该流程中的一个步骤:

const redemptionContext = crypto.getRandomValues(new Uint8Array(32));
const tokChl = origin.createTokenChallenge(issuer.name, redemptionContext);  // 源颁发令牌挑战
const tokReq = await client.createTokenRequest(tokChl, pkIssuer);            // 客户端发送盲化请求
const tokRes = await issuer.issue(tokReq);                                   // 颁发者对盲化请求进行签名
const token = await client.finalize(tokRes);                                 // 客户端最终确定令牌并重新发送请求
const isValid = await origin.verify(token, issuer.publicKey);                // 源对照颁发者密钥进行验证

后续步骤

  • 生产部署测试 — 当你准备好超越这些自助演示时,这是验证真实的、由 Cloudflare 运营的部署的深度指南,包含你的 Attester、颁发者和源协同工作。
  • Privacy Pass 协议 — 四个角色、颁发和兑换流程以及生成令牌的盲签名。
  • 部署模型 — 各角色的运营者和部署模型。

这篇文档对您有帮助吗?