WebRTC漏えいとは
WebRTCはビデオ通話、音声チャット、画面共有を支えるブラウザ技術です。2つの端末を直接つなぐため、到達可能なアドレスを知る必要があり、候補を集めます。ローカル網のアドレス、公開STUNサーバー経由で見つかるアドレス、リレーのアドレスです。
通常は無害です。漏えいが起きるのは、見えるべきでないアドレス、多くの場合VPN経由なのに自宅回線の本当のアドレスをブラウザが報告したときです。サイトは通常のリクエストでVPNのアドレスを、WebRTCで本当のアドレスを見て、両者が一致しません。
これはマルウェアでも珍しいことでもありません。WebRTCの通信がブラウザの他と別経路を通ることがあり、特にVPNが一部の経路だけ、またはIPv4だけを覆っているときに起こります。
このテストの仕組み
テストはブラウザでWebRTC接続を開き、公開STUNサーバーに向け、受け取った候補を記録します。各候補は種類とアドレスで示されます。host候補はローカルアドレス、server-reflexive候補は外から見た公開アドレス、relay候補はTURNサーバーからのものです。
次に結果を通常のWebリクエストが示すIPアドレスと比較します。WebRTCの公開アドレスが一致すれば報告する相違はありません。一致しない場合はページに一覧表示するので、到達可能であるべきか判断できます。ランダムな.local名として現れるローカルアドレスは、プライベート網のアドレスを露出しないようブラウザ自身が生成したものです。
テストには限界があります。ブラウザのWebRTC、IPv6、タイムゾーンの信号を確認します。DNSはまだ確認しません。DNS漏えいテストには別の方法が必要で、以下で説明します。
ブラウザ別のWebRTC制御
すべてのブラウザに合う単一のスイッチはありません。以下の選択肢は各ブラウザが実際に提供するものです。WebRTCを切るとブラウザ内ビデオ通話が使えなくなるため、保護が必要な場合のみ変更してください。
ChromeとEdge
これらのブラウザにユーザー向けのWebRTCアドレス設定はありません。管理者はWebRtcIPHandlingPolicyポリシーでプロキシされないUDPを制限または無効にでき、拡張機能でWebRTC候補を遮断できますが、ページ変更の権限が必要です。ChromeやEdgeで最も確実なのは、トンネル外の通信を遮断するVPNクライアントです。
Firefox
about:configを開き、media.peerconnection.enabledを探してfalseにするとWebRTCを完全に無効にできます。中間的な選択肢はmedia.peerconnection.ice.no_hostで、通話を保ったままローカルアドレスの共有を止めます。これらは詳細設定で、ブラウザのリフレッシュでリセットされることがあります。
Safari
Safariは既定でローカルアドレスを隠し、.localで終わるランダムな文字列のようなmDNS名に置き換えます。SafariにはWebRTCを無効にする簡単なユーザー設定がないため、ブラウザがSTUNサーバーを使える状況では公開アドレスが取得され得ます。
Brave
Braveは設定にWebRTC IP処理ポリシーがあり、既定の公開インターフェースのみを使う、プロキシされないUDPを無効にするなどの選択肢があります。厳しい方を選ぶと、プロキシやVPNの外へWebRTCがアドレスを漏らすのを防げます。
VPNクライアント
多くのVPNアプリにはWebRTCや漏えい保護のオプションがあり、トンネルが切れたら通信を止めるキルスイッチを備えるものもあります。クライアントの設定とドキュメントを確認してください。そのような制御がなければ、代わりにブラウザでWebRTCを制限します。
IPv6漏えい
IPv4のみを扱うVPNは、IPv6の通信を元の経路に残すことがあります。ネットワークでIPv6が機能していると、対応サイトへはIPv4がトンネルを通る間に事業者経由で到達でき、2つのアドレスは別のネットワークを指します。
プライバシー概要は、IPv4とIPv6のアドレスが別のネットワークに属するときにこれを指摘します。対処はクライアント次第で、VPN設定のIPv6オプションを探すか、トンネルが運ばないなら接続でIPv6を無効にします。IPv6を完全に遮断するのはトレードオフで、IPv6専用サービスへ到達できなくなります。
DNS漏えい
DNSは名前をアドレスに変える仕組みです。サイトを開くと端末はリゾルバーにその名前のアドレスを問い合わせます。この問い合わせがトンネル経由ではなく事業者のリゾルバーへ送られると、Web通信が暗号化されていても事業者は調べたすべての名前を見られます。
DNS-over-HTTPSやDNS-over-TLSによる暗号化DNSは、端末とリゾルバー間の問い合わせを保護しますが、選んだリゾルバーと使うトンネルの不一致自体は防ぎません。適切に設定されたVPNはDNSをトンネル経由にし、設定が誤っていると漏えいします。
このサイトはまだDNS漏えいテストを実行していません。正しく行うには専用のテストドメインへの問い合わせと、どのリゾルバーが応答するかの観察が必要で、別機能として計画しています。現時点で漏えいページが報告するのはWebRTC、IPv6、タイムゾーンの不一致のみで、推測せずそう明記します。
タイムゾーンと言語の不一致
ブラウザはタイムゾーンと言語一覧を報告し、サイトはIPアドレスから推定した国と比較できます。別の国にあるVPN出口はブラウザのタイムゾーンと言語をそのままにすることが多く、不一致そのものがトンネルの使用を示すことがあります。
これはアドレスが露出する意味での漏えいではありません。これらの値は意図的にすべてのページへ開かれているためです。有用な文脈であり、一貫したプロフィールを望むならブラウザのタイムゾーンと言語を出口の場所に合わせるか、この組み合わせが珍しいことを受け入れてください。
よくある質問
VPN接続中でもWebRTCは本当のIPを明かしますか?
あり得ます。WebRTCはブラウザの他の通信とは独立に候補アドレスを集めるため、VPNがその通信を捕らえていなければSTUN経由の公開アドレスが本当のアドレスになり得ます。このページのテストはまさにアドレスが一致するかを示すためにあります。
WebRTCを無効にするとビデオ通話が壊れますか?
WebRTCを使うブラウザ内通話や画面共有は、多くの会議ツールを含め動作しなくなります。ローカルアドレスの共有だけを止めたいなら、Firefoxのmedia.peerconnection.ice.no_hostやBraveのより厳しいWebRTC IP処理ポリシーなど、狭い設定を選んでください。
mDNS候補とは?
ブラウザが.localで終わるランダムな名前の背後に隠し、自分のネットワークでのみ解決されるローカルアドレスです。Safariは既定で使い、他のブラウザも条件により使います。mDNS名が見えるということは、プライベートアドレスが読める形で渡されなかったことを意味します。
このサイトでDNS漏えいを試せますか?
まだできません。現在のテストはブラウザのWebRTC、IPv6、タイムゾーンの信号を対象としています。DNS漏えいテストには専用のテストドメインと別種の問い合わせが必要で、黙って省略せずロードマップにあります。
IPv6漏えいとは?
トンネルがIPv4を保護しても、IPv6の通信が元の接続から出てしまうことです。IPv6対応サイトは保護されていないアドレスで到達でき、WebRTCやIPv6リクエストが見るネットワークがIPv4で見るネットワークと異なります。
プロキシやTorはWebRTC漏えいを防ぎますか?
自動的には防ぎません。プロキシは通常ブラウザの普通のリクエストだけを覆い、WebRTCは部分的なVPNを迂回するのと同じように迂回できます。Tor BrowserがWebRTCを既定で無効にしているのはこのためです。どのツールを使っても、後でテストを実行しアドレスが一致するか確認してください。