WebRTC リークとは?VPN 使用時に IP アドレスが漏洩する仕組みと対策

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 リークを防止できます。

  1. アドレスバーに about:config と入力する
  2. media.peerconnection.enabled を検索する
  3. 値を 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 リークの解説記事もあわせてご覧ください。