Privacy Pass は責任を 4 つの役割に分割し、単一の当事者が利用者の識別情報と活動のすべてを把握できないようにします。このページでは、プロトコルの情報の流れを説明します。各役割の運用者と、この設計が提供するプライバシー特性については、デプロイモデル を参照してください。
| 役割 | 責任 |
|---|---|
| Client | アクセスを要求し、発行と利用のプロトコルを実行します。 |
| Origin | トークンチャレンジを発行し、利用されたトークンを検証します。 |
| Attester | デプロイ固有の証明(attestation)プロセスを実行して、クライアントを検証します。 |
| Issuer | 証明済みクライアント向けに、ブラインドされたトークンリクエストへ署名します。Cloudflare の Issuer は、公開検証可能な Blind RSA(トークンタイプ 2)を使います。 |
RFC 9576 の定義どおり、流れは 2 つのプロトコルに分かれます。発行(トークンの取得)と 利用(アクセスのための使用)です。
┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐
│ Origin │ │ Client │ │ Attester │ │ Issuer │
└────────┘ └────────┘ └──────────┘ └────────┘
│ │ │ │
│<───── Request ──────│ │ │
│ │ │ │
│── TokenChallenge ──>│ │ │
│ │ │ │
│ │<== Attestation ==>│ │
│ │ │
│ │─── TokenRequest+Attestation Proof ───>│
│ │ │[Verifies Attestation]
│ │<──────────── TokenResponse ───────────│
│ │[Finalises Token]
│<── Request+Token ───│
│ │
│────── 200 OK ──────>│最初のリクエスト
- Client が Origin へリクエストを送ります。
- Origin は トークンチャレンジ で応答します。Client が利用するトークンを持っていない場合、Origin が信頼する Issuer との 発行プロトコル を開始します。
発行プロトコル
- 発行プロトコルは、Client がデプロイ固有の 証明プロセス を完了するところから始まります。このステップは意図的にオープンエンドであり、ユースケースごとに独自の証明を定義できます。
- Attester が Client を検証したあと、Client は ブラインドされたトークンリクエスト(トークンのマスク済み版への署名要求。完成形と元のリクエストの紐づけを防ぎます)と証明の証拠を Issuer へ送ります。
- Issuer は検証結果を確認し、ブラインドされたトークンに署名して返します。Client はそれを 確定 して Privacy Pass トークンを復元し、発行プロトコルが完了します。
利用プロトコル
- 最後は 利用プロトコル です。Client はトークンを元のリクエストとともに Origin へ送り返します。
- Origin は署名を検証し、
200 OKで応答してアクセスを許可します。
Cloudflare のセットアップなしで、自分のマシン上で発行と利用の流れ一式を実行するには、はじめに のローカル例を参照してください。