先週末、カナダのモントリオールで開催されたIETFハッカソンで、Apple、Cloudflare、Fastly、Mozillaのソフトウェアエンジニアが、ネットワーク通信に影響を与えるプライバシーギャップを埋めるべく、一定の進歩を遂げた。
プログラマーたちは、トランスポート層セキュリティの最新バージョンである TLS 1.3 を拡張した、Encrypted Server Name Indication (ESNI) と呼ばれるプライバシー重視のドラフト プロトコルの予備実装を構築しました。
Server Name Indication (SNI) は、TLS ネゴシエーションプロセス中にクライアントコードが仮想ドメイン名を送信できるようにする TLS 拡張機能です。これにより、単一の IP アドレスを持つサーバーで、TLS ホストごとに個別の IP アドレスを持つ代わりに、複数の仮想ドメインをサポートできるようになります。
しかし、SNIは要求されたホスト名を隠蔽しないため、プライバシーへの影響が生じます。例えば、ClientHelloメッセージの「server_name」拡張子からホスト名が読み取れる場合、中継者による検閲に利用される可能性があります。
ENSIは、ENSI対応プロバイダーがサービスを提供するドメインへの接続時に、ClientHelloメッセージの「server_name」拡張子を「encrypted_server_name」に置き換えることでこの問題を解決します。ホスティング事業者はホスト名を復号できますが、途中のネットワークプロバイダーや国レベルのファイアウォールは復号できません。
SNI の可視性によってもたらされるその他の結果には、DNS プロバイダーまたはエンタープライズ ファイアウォールによるコンテンツ フィルタリングやトラフィックの識別 (特定の種類のデータに異なるサービス品質プロファイルを割り当てる) などがあります。
ドラフトプロトコルを実装しているサーバーは、esni.examp1e.net と cloudflare-esni.com で見つかります。ESNI のサポートは、BoringSSL(Google が管理)、Mozilla の Network Security Services (NSS)、picotls で見つかります。
恒久的な解決策をハッキングする
Cloudflareの共同創業者兼CEOのマシュー・プリンス氏は、The Registerとの電話インタビューで、SNIは「まさに暗号化の防御壁の最後の弱点の1つだ」と語った。
Googleがドメインフロンティングを廃止、通信のセキュリティ強化がさらに強化される
続きを読む
Cloudflareが4月にプライバシー重視のDNSリゾルバ1.1.1.1をリリースした後、プリンス氏は、CloudflareとMozillaのエンジニアの間でSNIの可視性に関する懸念が高まったと述べた。IETFが今後の方向性を決定できなかった後、プリンス氏は、Apple、Google、Mozillaが標準化プロセスを前進させるべく、実用的な実装の開発に十分な関心を示していると述べた。
「我々には十分な規模と幅がある」と彼は語った。
「ブラウザメーカーがこれをサポートすれば、暗号化されたSNIの実用的な実装を実現できるはずです。」
最近まで、Signal などのプライバシー重視の通信ツールのいくつかは、検閲に対する防御策として、ドメイン フロンティングと呼ばれる手法を使用して、要求されたホスト名を隠していました。
しかし、AmazonやGoogleなどのクラウドサービスプロバイダーは最近、ポリシーとテクノロジーを改訂し、ドメインフロンティングを禁止したため、人権活動家は落胆している。
プリンス氏は、ドメインフロンティングはハッキングだと説明した。「長期的な解決策としては、SNIリクエストを暗号化することが適切だ」と彼は述べた。
プリンス氏によると、まだ埋められていないもう一つのプライバシーギャップは、IPアドレスからリクエストの送信先を発見する能力だという。
「Torのようなものを使わない限り、送信先のIPアドレスを隠すことは決してできないだろう」とプリンス氏は語った。
しかし、Cloudflareのような大手サービスプロバイダーでは、プライバシー保護のためにIPアドレスの再割り当てが可能です。プリンス氏によると、同社は既にある程度この方法を採用しており、顧客のIPアドレスを別のIPアドレスに移行させていますが、そのプロセスは必ずしもランダムではありません。今後、よりランダムになる可能性を示唆しています。®