Privacy Gateway の実装は、主に次の 3 つで構成されます。
- アプリケーションゲートウェイサーバー / バックエンドの設定(利用者が運用します)。
- クライアントの設定(利用者が運用します)。
- Privacy Gateway リレーサーバーへの接続(Cloudflare が運用します)。
Privacy Gateway は現在クローズドベータです。ご関心がある場合は お問い合わせ ↗ ください。
Privacy Gateway の利用者として、OHTTP 向けのサーバー対応も追加し、アプリケーションゲートウェイサーバーを実装する必要があります。アプリケーションゲートウェイは、受信リクエストの復号、内側のリクエストの宛先への転送、対応するレスポンスの暗号化とクライアントへの返送を担当します。
サーバー実装 は受信リクエストを処理してレスポンスを生成し、クライアントが取得できる公開鍵設定も公開します。公開鍵設定は安全に生成し、API 経由で利用できるようにします。設定の詳細は README ↗ を参照してください。
アプリケーション側でこの機能を自分で実装することもできます。公開鍵設定 ↗、HTTP メッセージの 暗号化と復号 ↗、および サーバー固有の詳細 ↗ は OHTTP 仕様を参照してください。
サーバー設定の参考資料は次のとおりです。
- Go:
- Rust: Gateway ライブラリ ↗
- JavaScript / TypeScript: Gateway ライブラリ ↗
Privacy Gateway の利用者として、ゲートウェイ向けのクライアント側対応も設定する必要があります。クライアントはリクエストの暗号化、Cloudflare Privacy Gateway への送信、対応するレスポンスの復号を担当します。
さらに、アプリ開発者はゲートウェイの公開鍵設定を取得または発見するよう クライアントを設定 する必要があります。方法は、ゲートウェイが公開鍵設定をどう公開するかによって異なります。この設定でサポートが必要な場合は お問い合わせ ↗ ください。
クライアント設定の参考資料は次のとおりです。
- Objective C: サンプルアプリケーション ↗
- Rust: Client ライブラリ ↗
- JavaScript / TypeScript: Client ライブラリ ↗
クライアントとサーバーを設定したら、Cloudflare とアプリケーションバックエンドへ送るデータが意図したものだけかを確認します。とくに、アプリケーションデータにエンドユーザー固有の情報を含めないでください。含めると OHTTP の利点が失われます。
- アプリケーションは、Privacy Gateway 経由で転送するリクエストから、識別できるユーザーデータを取り除いてください。氏名、メールアドレス、電話番号などが該当します。
- アプリケーションは、Privacy Gateway 利用時にクラッシュ報告を無効にするようユーザーに促してください。クラッシュ報告には、メールアドレスを含む機微なユーザー情報とデータが含まれることがあります。
- 可能な場合は、クライアントだけが知る鍵で、クライアント端末上のアプリケーションデータを暗号化してください。たとえば iOS は一般に クライアント側暗号化(および KeyChain による鍵同期) ↗ をよくサポートしています。Android にも同様の機能があることが多いです。
リクエストを送る前に、先に Cloudflare でアカウントを設定する必要があります。お問い合わせ ↗ のうえ、アプリケーションゲートウェイサーバーの URL を提供してください。
その後、次の規約に沿った、双方で合意した URL へリクエストを転送してください。
https://privacy-relay.cloudflare.com/<GATEWAY_SERVER_NAME>