普通に使えば便利すぎる WebRTC ですが、匿名性という視点から見れば好ましくない点も多いです。
今回は WebRTC ネタと匿名性に関するネタです。
WebRTC を大まかに知る
WebRTC は Web Real-Time Communication の略で Google Hangouts や Discord のようなビデオチャットや音声アプリケーションをブラウザ上でより速く安定的に動かせる技術です。
元々は Google が開発した技術ですが、現在では、Microsoft Edge、Mozilla Firefox、Opera、Google Chrome、Safari など多くのブラウザが対応しています。
現在では、ビデオチャットやオーディオチャットを強化する機能として活用されていますが、データ転送など他用途でも有効な技術です。
- それはビデオチャット、オーディオチャット、ライブストリーミング、さらに大容量ファイル共有のためのタイムラグを短縮します
- 個人、商用ともに無料で利用可能
- オープンソース
- モバイルアプリケーションで利用可能
- グループ通話サービスやウェビナーの反応改善
- 音質的に優れたサービス提供が可能
WebRTC そのものは便利な機能です。普通に、利用することに問題ありません。この機能を利用する方が、テレビ会議などでは圧倒的に快適になるケースが多いです。WebRTC 対応していないブラウザでは、マイクやカメラが有効に機能しないことが多いです。
具体的な例を考えてみます。STUN サーバーは説明のために、今回は省いて説明します。ざっくりと概要を掴んでください。図のように、192.168.1.0/24 のネットワークを 172.22.0.0/16 のネットワークに VPN で繋げているとします。ネットワーク経由で、ビデオチャットを行う場合、通常は赤のライン(CとYの通信)の経路になります。
ところろが、BとCが通信する場合、特にデータ量の多いやり取りをするビデオチャットにて、BとCがわざわざ VPN サーバーまでつなげるのは効率が悪く、しかも 192.168.1.0/24 の同一ネットワークにどちらも属しているデバイスです。
ここで、WebRTC に対応しているブラウザであれば、BとCは直接やり取りを行うことができます。この図では、192.168.1.5 と 192.168.1.7 のマシンが直接データ転送をします。そうすることで、動画の遅延などが抑えられるというわけです。
図の、YとZのように同一ネットワークに属するマシンの場合、お互いのプライベートアドレスで直接やり取りをするように導くのが WebRTC です。
では、AとXのやり取りを考えてみます。この場合、AとXは元々は異なるプライベートネットワークに属していますが、VPN を通しているので、VPN を含めて考えると仮想の同一ネットワークに属しています。
なので、AとXは VPN 経由でやり取りするのが普通(図の赤のラインと同じ)ですが、WebRTC に対応しているブラウザだと、AとXで直接、音声や動画転送の接続を張ろうと試みます。
この場合、Aについてはグローバルアドレスがあるルーターのアドレス、Xについても同様で VPN に接続する前の段にあるルーター等のアドレスでやり取りを行おうとします。
ここで、生 IP がさらされます。
しかし、この機能を悪用して、アマプラや Netflix から制限がかかることはあり得るでしょうか。結論としては、将来的にはありえます。
WebRTC の機能を悪意で利用する
WebRTC で生 IP が抜かれる
WebRTC のコアな活用方法は、例えばウェブ会議などでサーバーを経由せずに、ユーザーとユーザーで直接つないでしまう方法です。
この場合、ユーザー間は VPN やプロキシなどを通さずに直接繋げるケースが多いです。電話で言えば、直通回線みたいなものですね。
これを悪用して、悪者はターゲットのブラウザが WebRTC に対応しているのをいいことに、WebRTC 使いたいから直接つながる IP を問い合わせてきます。これにブラウザが答えると、生 IP が漏れるということです。
誤解してはいけないのは、このこと自体は特別セキュリティホールでも何でもありません。生 IP が漏れたら、自分の PC に直接アタックされるようなケースも想定できますが、過剰に心配する必要はないものです。
とはいえ、匿名性を確保するために VPN や匿名串を使っているのに、生 IP を知らぬ間にさらしていたら話になりません。ここからは、どうやって匿名性若穂するかについて考察していきましょう。
WebRTC の漏洩とはどういうことか
WebRTC の機能を利用するときに 生 IP アドレスをさらしてしまうことです。本来。これは普通です。生 IP で直通の回線を確保することにより、ネットワークの遅延を回避するためです。
しかし、匿名性を重視するユーザーにとっては、このことは大きなセキュリティリスクだと考える場合もあります。WebRTC の漏洩はWebRTC 技術を使用したブラウザを介して、他のユーザーとのビデオまたはオーディオ通信を確立しようとしたときに起こります。その際、ブラウザから 生 IPアドレスが漏れるので、漏洩と呼んでいます。漏れるというより、自発的にさらしているわけです。
WebRTC からの IP 漏洩は避けられないか
ブラウザで WebRTC が有効になっている場合、WebRTC を使用している Web サイトにアクセスしている限りにおいては、生 IP アドレスをさらしてしまいます。
ということは、WebRTC からの生 IP 漏洩を回避する方法は、ブラウザでこれを無効にすることです(この方法については後で詳しく説明します)。
WebRTC の IP 漏洩は誰に脅威を与えるか
WebRTC の漏洩は VPN を使用している人や、オンライン ID を匿名にしておきたい人にとっては、余計な脅威を抱え込むことになります。WebRTC 技術によるサービスを利用する際に VPN を利用するケースは、その目的を間違えているケースが大半です。
例えば、ロンドンから VPN 経由して東京からのアクセスに見せかけているのに、ウェブブラウザが WebRTC のお誘いにのこのこと乗っかって、生 IP をさらしてしまったら、元もこうもありません。
アマプラをニューデリーから見たいのに、WebRTC でインドからのアクセスがバレバレになってしまうと、将来的には VOD を海外から視聴するのが難しくなります。
問題は VPN よりもブラウザにあります。
WebRTC から IP 漏洩したけどどうしたらいい?
匿名性を重視していない場合はさほど気にする必要はありません。
プロバイダから VPN を通していて、WebRTC かせ漏れた場合は、もともとのプロバイダの回線をいったん切る、ルーターを再起動させるなどすれば、IP アドレスが変わる可能性が高いです。
IP アドレスが変更されるまで再起動、再接続すれば大方の場合大丈夫です。
単にウェブ会議で IP バレしたところで、通常は問題ないと思いますが、会社名を隠してウェビナーに参加していたりする場合は、会社名がバレているかもしれません。ここは、ばれないように WebRTC 対策をする方が良いでしょう。
とにかく WebRTC から IP 漏洩を防ぎたい
とにかく WebRTC から IP 漏洩を防ぎたい人は、手っ取り早く VPN を利用するのがおすすめです。
Millen VPN 、 NordVPN 、 Express VPN 、 SurfShark なら問題ありませんが、今回のケースに重きを置く場合は、 NordVPN 、 Express VPN 、 SurfShark の中から選ぶ方が良いと思います。
理由は、WebRTC は主にブラウザまわりの問題ですので、デバイスのサポートが比較的に弱い Millen VPN は自分なりに対応する必要が出てくるからです。対応できる人は、何の問題もございません。
NordVPN と Express VPN ですが、さらにどちらがベストかと言えば、 Express VPN の方が設定としては易しいです。アプリをインストールするだけで完結します。
上に挙げた中の VPN をすでに契約している方は、わざわざ他の VPN を契約しなければならないほどの問題ではありません。今使っている VPN で対処していきましょう。
WebRTC は主にブラウザの問題
WebRTC からの IP 漏洩してしまうのは、冒頭のお話の通り、主にブラウザがやってしまうことです。
そのため、ブラウザに拡張機能などをインストールすることで、WebRTC を利用したりブロックしたり使い分けることができます。
Google Chrome で WebRTC を無効にする
以下で紹介する方法は、サービスに WebRTC を使用しているウェブサイトでは動きません。つまり、WebRTC がそのまま動作し続けます。
WebRTC Network Limiter を使う
Google の公式拡張機能である WebRTC Network Limiterは設定で、完全に WebRTC をブロックすることなく IP 漏洩を止めるツールです。WebRTC Network Limiter は WebRTC を完全にブロックするものではないので、WebRTC を利用するサービスはブラウザ上で作動します。
FireFox で WebRTC を無効にする
この方法でも、サービスに WebRTC を使用しているウェブサイトでは働きません。つまり、WebRTC がそのまま動作し続けます。
- アドレスバーに「about:config」入れます
- 動作保証対象外になる旨が表示されますが、そのまま続行します。
- 検索バーに「media.peerconnection.enabled」と入力して検索します
- 値を「true」から「false」に変更して閉じます
WebRTC に対応していないブラウザを使う
匿名セキュリティ重視する方は、少々難があっても、WebRTC に対応していないブラウザを使うのが手っ取り早いです。
おすすめは、Lunascape Phoebe で、64 ビット版で日本製のアプリです。このブラウザは軽く、WebRTC でも漏らさないので心強いと思います。
公式サイトは、https://www.lunascape.org/browser/phoebe です。
WebRTC に対応しているような感じも受けますが、IP は全く吐きません。今回の目的としては、現在では一番おススメのブラウザです(Windows 版)。
尚、Mac ユーザーの場合は OS デフォルトの Safari を使うのがベストです。有名ブラウザの中では突出して、WebRTC の非匿名アクセス防止に気を使っている感じです。