Privacy Proxy は MASQUE プロトコルスイートを使い、クライアントと宛先サーバーの間に暗号化トンネルを作ります。このページでは、プロトコルの動作と、プライバシーがどう保たれるかを説明します。
┌──────────┐ 1. Connect + Auth ┌──────────┐ 4. Connect ┌─────────────┐
│ │ ──────────────────────────▶ │ │ ────────────────────▶ │ │
│ Client │ 2. CONNECT request │ Privacy │ (Egress IP) │ Destination │
│ │ ──────────────────────────▶ │ Proxy │ │ Server │
│ │ │ │ ◀──────────────────── │ │
│ │ 3. 200 OK │ │ 5. Connected │ │
│ │ ◀────────────────────────── │ │ │ │
│ │ │ │ │ │
│ │ ◀───── 6. Encrypted data tunnel ─────▶ ◀─────────────────────▶│ │
└──────────┘ └──────────┘ └─────────────┘
│◀──── Client IP hidden ────▶│◀──── Cloudflare Egress IP visible ──────────▶│- クライアントは Privacy Proxy へ HTTP/2 または HTTP/3 接続を確立し、
Proxy-Authorizationヘッダーで認証情報(PSK または Privacy Pass トークン)を提示します。 - クライアントは、宛先のホスト名とポートを指定した CONNECT リクエストを送ります。
- プロキシはトンネルの準備完了を示す
200 OKで応答します。 - プロキシは、クライアントの位置情報に基づいて選んだ egress IP アドレスを使い、宛先への接続を開きます。
- クライアントはトンネル経由で暗号化データを送ります。プロキシは中身を検査せず、バイト列を転送します。
この過程を通じて、プロキシは宛先は分かりますが、中身は分かりません。宛先は egress IP アドレスは分かりますが、クライアントの実 IP は分かりません。
MASQUE ↗(Multiplexed Application Substrate over QUIC Encryption)は、HTTP 上でトラフィックをプロキシする方法を定義します。Privacy Proxy は次の 2 つの MASQUE 方式をサポートします。
| 方式 | トランスポート | 用途 |
|---|---|---|
| HTTP CONNECT | TCP | 従来の HTTPS トラフィック |
| CONNECT-UDP | UDP | QUIC ベースのトラフィック、リアルタイムアプリケーション |
どちらの方式も、プロキシが中身を検査せずにトラフィックを転送する暗号化トンネルを作ります。プロキシが見るのは宛先のホスト名とポートだけで、実際のリクエスト、パス、やり取りされるデータは見えません。
Privacy Proxy は HTTP/2(TCP 上の TLS)と HTTP/3(QUIC)で接続を受け付け、クライアントの対応状況に応じて適切なプロトコルを選びます。
これらのプロトコルの技術的な詳細は、ブログ記事 ↗ を参照してください。
Privacy Proxy は、利用者の識別情報と利用活動のあいだにプライバシー境界を作ります。
| 情報 | 知る主体 |
|---|---|
| 利用者の識別情報(IP アドレス、アカウント) | 認証サービス、ファーストホッププロキシ(ダブルホップ利用時) |
| 宛先サーバー | Privacy Proxy、宛先サーバー |
| リクエストの中身 | クライアントと宛先サーバーのみ |
プロキシは、サービス利用の権限があることを確認するために利用者を認証します。ただし、認証はプロキシ処理とは別に行われます。認証後、プロキシは個々のリクエストを特定の利用者に紐づけずにトラフィックを転送します。
- A Primer on Proxies ↗ - HTTP CONNECT と MASQUE プロトコルの技術解説。
- MASQUE Working Group ↗ - プロキシプロトコルの標準を策定する IETF ワーキンググループ。
- RFC 9298 ↗ - HTTP 上で UDP をプロキシする CONNECT-UDP の仕様。