WebRTCリークとは?
WebRTC(Web Real-Time Communication)は、Google MeetやDiscordなどのサイトでビデオ通話、音声チャット、ファイル共有を実現するブラウザの技術です。2人を直接つなぐために、デバイスのネットワークアドレスを集め、STUNサーバーにパブリックIPアドレスを問い合わせます。
WebRTCリークとは、これらのアドレスから意図した以上の情報が明らかになることです。典型的なのはVPNの場合です。ウェブサイトからはVPNのIPが見えますが、WebRTCはトンネルの外でSTUNサーバーに問い合わせ、ISPから割り当てられた本当のパブリックIPを報告してしまいます。どんなウェブサイトでも、数行のJavaScriptで、許可を求めるダイアログを出さずにこれを引き起こせます。

このWebRTCリークテストの仕組み
ブラウザがIPv4専用とIPv6専用のサーバーに通常のHTTPSリクエストを送ります。これらのアドレスが、すべてのウェブサイトから見えるIPです。
実際には何にも使わないWebRTC接続を開き、その候補(candidate)だけを集めます。ローカルアドレスと、GoogleのSTUNサーバーが返すパブリックIPです。
WebRTCが閲覧時のIPとは異なるパブリックIPを公開していれば、それがリークです。各IPの背後にあるネットワーク名も表示されるので、VPNと並んで表示される本来のISPを見つけられます。
下記の対策のいずれかを行ってから、もう一度テストを押してリークがなくなったことを確認します。
Advertisement
テスト結果の見方
WebRTCが公開したのは、ウェブサイトからすでに見えているIPだけでした。VPNまたはブラウザがWebRTCを正しく処理しています。
WebRTCが別のパブリックIP(通常は本当のIP)を公開しました。アクセスしたページでスクリプトを実行できる人なら誰でも読み取れます。
ブラウザまたは拡張機能がWebRTCを完全にブロックしています。何も漏れませんが、ブラウザでのビデオ通話は使えません。
古いブラウザでは192.168.1.20のようなローカルアドレスが表示されます。最近のChrome、Edge、Firefox、Safariはこれを隠し、通常は末尾が.localのランダムなmDNS名に置き換えます。
WebRTCリークを防ぐ方法
VPNの漏洩防止機能を使う:信頼できるVPNアプリの多くには、WebRTCまたは「リーク保護」の設定があるか、すべての通信をトンネル経由にしてSTUNリクエストもトンネルを通るようにしています。オンにしてから再テストしてください。
ChromeとEdge:どちらにも組み込みのスイッチはありません。Chrome ウェブストアからGoogle公式の拡張機能WebRTC Network Limiterをインストールしてください。VPN経由で閲覧している間、WebRTCがISPのアドレスを使うのを防ぎます。
Firefox:
about:configを開き、media.peerconnection.enabledをfalseに設定します。WebRTCが完全にオフになるため、ブラウザでのビデオ通話は使えなくなります。Brave:設定 → プライバシーとセキュリティ → WebRTC IP handling policy を開き、Disable non-proxied UDP を選びます。
スマートフォン:モバイルブラウザは設定項目が少ないため、WebRTCリークをブロックするVPNアプリに頼りましょう。
Advertisement
VPNを使っていなくても気にする必要はある?
通常はありません。VPNやプロキシを使っていなければ、WebRTCが公開するパブリックIPは、普段の接続ですべてのウェブサイトからすでに見えているものと同じなので、新たに漏れる情報はありません。WebRTCリークが問題になるのは、VPN、プロキシ、Torのような仕組みを使って、意図的にIPを隠している場合です。
ローカルアドレスは、それより小さなプライバシーの問題です。192.168.1.20のようなローカルIPでインターネット上のあなたが特定されることはありませんが、ブラウザフィンガープリンティングの手がかりにはなり得ます。そのため最近のブラウザは、ローカルIPをランダムな.local名に置き換えています。
WebRTCリーク、DNSリーク、IPv6リーク
VPNから身元が漏れる経路は主に3つあり、それぞれ別のチェックが必要です。
Advertisement
その他のプライバシー・IPツール
お使いの接続から何が見えているかを確認できる無料ツールです。