ブログに戻る

WebRTCとは?なぜ本当のIPアドレスが漏れることがあるのか

WebRTCはプラグインなしでブラウザ上の音声・ビデオ通話を可能にしますが、接続時のSTUN問い合わせがプロキシを迂回し、本当のIPアドレスを露出する場合があります。本記事では仕組み、確認方法、対策を解説します。

ビデオ会議、オンライン授業、Webライブ配信……これらの機能はWebRTCによって支えられています。WebRTCを使うと、プラグインをインストールしなくても、ブラウザ間で音声・映像・データをリアルタイムに直接送受信できます。しかし、接続を確立する際にWebRTCがプロキシを迂回し、ユーザーの本当のIPアドレスを外部に知らせてしまうことがある点は、あまり知られていません。プライバシーを重視するユーザーにとって、理解しておくべき重要なリスクです。

WebRTCとは

WebRTC(Web Real-Time Communication)は、ブラウザに組み込まれたAPIを通じて、異なるデバイス間で直接音声・ビデオ通話やデータ共有を行えるようにするオープンソースプロジェクトです。第三者製プラグインが不要で、音声・映像・データをリアルタイムで送信でき、主要ブラウザでクロスプラットフォームに対応し、通信内容はエンドツーエンド暗号化で保護されるという利点があります。

なぜWebRTCで本当のIPが漏れるのか

WebRTCがピアツーピア接続を確立するには、まず双方の公開IPアドレスを確認する必要があります。この探索処理はICE(Interactive Connectivity Establishment)と呼ばれ、STUN/TURNサーバーを利用して公開ネットワークアドレスを検出します。簡単にいえば、ブラウザがシステムに「自分の本当の公開IPは何か」と問い合わせ、システムがその情報を返す仕組みです。

問題はここにあります。Webページがブラウザ内でWebRTCコードを実行できる場合、同じ仕組みを使って本当のIPを取得できる可能性があります。プロキシを使っていても同様です。STUN問い合わせはブラウザ/ネットワークの低い層で行われ、OSのネットワークインターフェースへ直接アクセスできるため、プロキシ経由の転送を迂回することがあります。匿名でアクセスしているつもりでも、Webページ側にはすでに本当のアドレスが見えている可能性があります。

ブラウザでIP漏れが起きていないか確認する方法

ブラウザのローカルアドレス、公開アドレス、WebRTC設定を確認する流れ

  • オンライン検査ツール:BrowserScanなどの検査ページを利用します。検査後に公開IPやローカルIPが表示される場合、WebRTCによる漏えいリスクがあります。
  • ブラウザ設定の確認:Firefoxではアドレスバーにabout:configと入力し、media.peerconnection.enabledを検索してWebRTCが有効か確認できます(falseにすると無効化)。Chromeなどでは、拡張機能やブラウザポリシーを使ってWebRTCの動作を管理する方が制御しやすい場合があります。

WebRTC漏えいを防ぐ方法

ブラウザ拡張機能:WebRTC Leak PreventやWebRTC Controlなどの拡張機能を使うと、WebサイトがWebRTC経由で本当のアドレスを取得するのを防げます。

漏えい防止機能のあるプロキシ/ネットワークサービスを選ぶ:多くの主要プロキシサービスにはWebRTC漏えい防止オプションがあり、有効にするとすべてのサーバーに既定で適用されます。単に「手動でWebRTCを無効にしてください」と案内するだけでなく、STUN問い合わせをネットワーク層で実際に遮断しているか確認しましょう。

WebRTCを設定できるブラウザ環境を使う:複数の作業環境を同時に管理し、IPの一貫性やクリーンなネットワーク識別を重視する運用チームにとって、端末ごとの手動設定は時間がかかり、設定漏れも起きやすくなります。PurpleMarkでは、ブラウザ環境の作成時にWebRTCの動作を設定し、指定したプロキシを紐付けることができます。これにより、各環境が業務地域に合ったネットワーク識別を示し、環境同士を分離できます。「プロキシを使っているのに本当のIPが漏れた」という事態を防ぎやすくなり、環境設定の再現や監査もしやすくなります。こうした設定は、複数市場を担当するチームなどによる適正なアカウント管理・プライバシー管理のためのものであり、プラットフォームのルールを回避するための偽装を目的とするものではありません。

よくある質問

WebRTCはアカウントの安全性に影響しますか? 影響する可能性があります。WebページがプロキシIPとは異なる本当のIPを取得した場合、本来分離されるべきアクセスが関連付けられ、誤判定や追跡のリスクが高まることがあります。

WebRTCの通信自体は暗号化されていますか? はい。WebRTCは通信内容を保護するためにエンドツーエンド暗号化を使用します。漏えいリスクが主に発生するのは、接続確立前にネットワークアドレスを交換する段階であり、通話内容そのものではありません。

すべてのブラウザがWebRTCに対応していますか? Chrome、Firefox、Safari、Edgeなどの主要ブラウザはWebRTCに対応しています。露出を減らすには、WebRTC自体を完全に使わないのではなく、アドレス検出の動作を適切に管理することが重要です。