WebRTC とは
約 4 分で読めます
最終更新: 2026-08-14
WebRTC とは
WebRTC (Web Real-Time Communication) とは、ブラウザ間でプラグインなしにリアルタイムの音声・映像・データ通信を実現する Web 標準技術です。Google Meet、Discord、Facebook Messenger などのビデオ通話機能は WebRTC を基盤としています。
WebRTC は通信の効率化のため、ブラウザ同士が直接接続する P2P (Peer-to-Peer) 方式を採用しています。この直接接続を確立するために、STUN/TURN サーバーを使って自分のIP アドレスを相手に通知する仕組みがあり、これがプライバシー上の問題を引き起こします。
STUN/TURN サーバーの役割
WebRTC の P2P 接続を確立するには、まず自分のネットワーク上の位置を把握する必要があります。ここで STUN と TURN という 2 種類のサーバーが使われます。
stun.l.google.com:19302 を無料で公開しており、多くの WebRTC アプリケーションがこれを利用している。プライバシーの観点で問題なのは、STUN サーバーへの問い合わせが VPN トンネルを経由せずに行われる場合があることです。この場合、VPN で隠しているはずの実際の IP アドレスが STUN サーバーに送信され、JavaScript 経由で取得可能になります。
ICE Candidate と IP 漏洩の仕組み
WebRTC は接続経路を確立するために ICE (Interactive Connectivity Establishment) というフレームワークを使用します。ICE は複数の接続候補 (ICE Candidate) を収集し、最適な経路を選択します。
ICE Candidate の収集プロセスでは、以下の 3 種類の候補が生成されます。
- Host Candidate: デバイスのネットワークインターフェースから直接取得したローカル IP アドレス (
192.168.x.xや10.x.x.x)。VPN 接続中でも物理 NIC の IP アドレスが含まれる場合があるが、2026 年 8 月時点の Chromium 系ブラウザは、この候補をランダムな.local名 (mDNS) に置き換えて実際のローカル IP を隠す挙動が既定になっている - Server Reflexive Candidate (srflx): STUN サーバーから返されたパブリック IP アドレス。VPN を経由しない経路で STUN に問い合わせた場合、VPN の外側の実 IP が露出する
- Relay Candidate: TURN サーバーのアドレス。プライバシーリスクは低い
悪意のある Web サイトは、RTCPeerConnection オブジェクトを生成して ICE Candidate の収集を開始するだけで、実際に通話を行わなくてもこれらの IP アドレスを JavaScript で取得できます。わずか数行のコードで実行可能なため、DNS リークと並ぶ VPN 利用時の代表的な情報漏洩経路となっています。
ローカル IP の隠蔽が既定になった一方で、VPN の外側の経路で STUN に問い合わせたときに返ってくる srflx 候補は、今も実際の IP アドレスをそのまま露出させます。VPN 利用時に確認すべきなのは、ローカル IP よりもこの srflx 候補の側です。
ブラウザごとの対策方法
- Firefox: アドレスバーに
about:configと入力し、media.peerconnection.enabledをfalseに設定すると WebRTC を完全に無効化できます。より細かい制御として、media.peerconnection.ice.default_address_onlyをtrueにすると、デフォルトのネットワークインターフェースの IP のみを公開し、他のインターフェース (VPN アダプタ等) の IP 漏洩を防げます。 - Chrome: 設定画面から WebRTC 自体を無効化することはできません。ICE Candidate の収集ポリシーを
disable_non_proxied_udpに変更する拡張機能を使うと、プロキシや VPN を経由しない UDP 通信が遮断され、実 IP が候補リストに載るのを防げます。この種の拡張機能は更新が止まっているものも少なくないため、導入前に最終更新日と要求される権限を確認してください。 - Safari: ICE Candidate の制限は既定で有効になっており、通常は追加の設定は不要です。「設定」→「詳細」で開発メニューの表示を有効にすると現れる「開発」→「WebRTC」に
Disable ICE Candidate Restrictionsという項目がありますが、これは制限を解除する側のスイッチなので、プライバシー目的で有効にしてはいけません。 - Brave: 「設定」→「プライバシーとセキュリティ」→「WebRTC IP ハンドリングポリシー」で候補の扱いを選べます。既定値は Chromium と同じ
Defaultで、漏洩防止を優先するならDisable non-proxied UDPを選びます。
VPN キルスイッチを有効にしていても、WebRTC 漏洩は防げない場合があります。ブラウザ側での対策が必須です。
WebRTC の正当な用途
WebRTC はプライバシーリスクが注目されがちですが、プラグインなしでリアルタイム通信を実現する強力な技術です。主な用途を理解しておくと、無効化した場合の影響を判断しやすくなります。
- ビデオ会議: Google Meet、Zoom (Web 版)、Microsoft Teams (Web 版) はすべて WebRTC を使用。無効化するとブラウザからの参加ができなくなる
- 音声通話: Discord の Web 版、Facebook Messenger の通話機能など
- P2P ファイル共有: WebTorrent やブラウザ間の直接ファイル転送サービス
- リアルタイムゲーム: ブラウザベースのマルチプレイヤーゲームで低遅延通信に使用
- ライブストリーミング: 遅延を 1 秒未満に抑えたいライブ配信で WebRTC が使われる
ビデオ会議を頻繁に使う場合は、WebRTC を完全に無効化するのではなく、VPN プロバイダーが提供する WebRTC 漏洩防止機能や、ブラウザの ICE Candidate 制限設定を活用するのが現実的です。
WebRTC 漏洩の確認方法
自分のブラウザで WebRTC 漏洩が発生しているかは、専用のテストサイトで簡単に確認できます。VPN に接続した状態でテストを実行し、VPN サーバーの IP アドレス以外の IP が表示されていれば漏洩しています。
確認手順は以下のとおりです。
- VPN に接続する
- WebRTC リークテストサイトにアクセスする
- 表示された IP アドレスを確認する
- VPN サーバーの IP 以外のアドレスが表示されていれば漏洩あり
ブラウザフィンガープリントのテストと合わせて定期的に確認することで、プライバシー設定の有効性を検証できます。
よくある誤解
- VPN を使っていれば WebRTC の IP 漏洩は起きない
- WebRTC は VPN トンネルを迂回してネットワークインターフェースに直接アクセスするため、VPN だけでは防げません。ブラウザ側で WebRTC を無効化するか、漏洩防止の拡張機能が必要です。
- WebRTC を無効にするとインターネットが使えなくなる
- WebRTC を無効にしても、通常の Web 閲覧、動画視聴、ダウンロードなどには影響しません。影響があるのはブラウザ内のビデオ通話や P2P ファイル共有など、リアルタイム通信を使う機能だけです。