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 とパブリック IP の露出状況をその場で判定できます。判定はブラウザ内で完結し、結果がサーバーに送信されることはありません。
VPN 使用中にプライベート IP アドレス (192.168.x.x など) や本当の回線の IP が表示された場合、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 リークの解説記事もあわせてご覧ください。ブラウザフィンガープリントの対策と組み合わせることで、ブラウザ経由のプライバシーリスクをより包括的に軽減できます。
この記事の関連用語
よくある質問
WebRTC リークは VPN を使っていても起きる?
はい。WebRTC はブラウザの機能として VPN トンネルの外側で通信することがあり、VPN を使用していても実際の IP アドレスが漏洩する可能性があります。ブラウザの設定や拡張機能で WebRTC を無効化する必要があります。
WebRTC を無効にするとビデオ通話はできなくなる?
はい。WebRTC は Google Meet、Zoom (Web 版)、Discord などのブラウザベースのビデオ通話に使われています。無効にするとこれらが動作しなくなるため、必要に応じて切り替えるか、専用アプリを使用してください。