WebRTC とは何か
WebRTC (Web Real-Time Communication) は、ブラウザ間で音声・映像・データをリアルタイムにやり取りするためのオープンソース技術です。Google Meet、Discord、Facebook Messenger など、多くの Web サービスがこの技術を基盤としています。
WebRTC の最大の特徴は、プラグインやアプリのインストールなしに、ブラウザだけで P2P (ピアツーピア) 接続を確立できる点にあります。しかし、この P2P 接続を確立する過程にプライバシー上の懸念が潜んでいます。
WebRTC リークの仕組み
WebRTC が P2P 接続を確立する際、ICE (Interactive Connectivity Establishment) というプロトコルを使用して通信候補となる IP アドレスを収集します。この過程で収集される情報には以下が含まれます。
- ローカル IP アドレス (プライベート IP): 192.168.x.x や 10.x.x.x などの内部ネットワークアドレス
- パブリック IP アドレス: STUN サーバーを通じて取得される外部 IP アドレス
- IPv6 アドレス: デバイスに割り当てられた IPv6 アドレス
問題の核心は、この情報収集が VPN トンネルを迂回できてしまう点にあります。VPN を使用していても、WebRTC がネットワークインターフェースに直接アクセスし、実際の IP アドレスを取得してしまう可能性があるのです。
VPN 使用中でもリークが発生する理由
VPN は通常、OS のネットワークスタックを通じてすべてのトラフィックをトンネリングします。しかし、WebRTC はブラウザ内で動作し、VPN トンネルの外側に STUN リクエストを送信してしまうことがあります。
特に以下のシナリオでリークが発生しやすくなります。
- VPN クライアントが WebRTC トラフィックを適切にルーティングしていない場合
- スプリットトンネリングが有効で、ブラウザのトラフィックが VPN を迂回する設定になっている場合
- IPv6 トラフィックが VPN の対象外になっている場合
WebRTC リークが発生すると、VPN で隠しているはずの実際の IP アドレスが、任意の Web サイト上の JavaScript からアクセス可能になります。これは VPN を使用する目的そのものを損なう深刻なリスクです。
WebRTC リークの確認方法
確認さんのトップページでは、WebRTC ローカル IP の検出結果を表示しています。ネットワーク情報カードの「WebRTC ローカル IP」の項目を確認してください。
VPN 使用中にプライベート IP アドレス (192.168.x.x など) が表示されている場合、WebRTC リークが発生しています。「ブラウザによりブロック済み」と表示されていれば、リークは防止されています。
セキュリティスコアの「WebRTC IP リークリスク」の項目でも、リークの有無を確認できます。
ブラウザ別の対策
Firefox
Firefox では、設定から直接 WebRTC の IP リークを防止できます。
- アドレスバーに
about:configと入力する media.peerconnection.enabledを検索する- 値を
falseに設定する
この設定を無効にすると、Google Meet や Discord など WebRTC に依存するサービスが利用できなくなる点に注意してください。
Chrome / Edge
Chrome と Edge では、ブラウザの設定だけで WebRTC を完全に無効化することはできません。代わりに以下の拡張機能を使用してください。
- WebRTC Leak Prevent: WebRTC の IP アドレスリークをブロックする拡張機能
- uBlock Origin: 設定で有効化が必要な WebRTC リーク防止機能を内蔵
Safari
Safari は、WebRTC の ICE 候補からプライベート IP アドレスを除外する設計になっています。比較的安全ですが万全ではないため、VPN 使用時には確認を推奨します。
Brave
Brave には WebRTC リーク防止機能が組み込まれています。「プライバシーとセキュリティ」設定で「WebRTC IP ハンドリングポリシー」を「プロキシされていない UDP を無効にする」に設定できます。
VPN 側の対策
多くの VPN サービスも WebRTC リーク防止機能を提供しています。
- VPN クライアントの設定で「WebRTC リーク防止」を有効にする
- ファイアウォール機能を使用して WebRTC の STUN リクエストをブロックする
- IPv6 リーク防止を有効にして、IPv6 経由の WebRTC リークを防ぐ
VPN の選び方についてはVPN ガイドを、DNS リークについてはDNS リークの解説記事もあわせてご覧ください。