web-dev-qa-db-ja.com

WebRTCは、完全なトランスポート層VPNからリークするべきではありません...

私はwebRTCリークに関する質問を読み、もう一度読んで、これがどのように機能するか、また、いわゆる「VPNトンネル」からIPアドレスがリークする理由について十分に理解しています。

ただし、これらすべてのケースで、「VPNトンネル」は実際には、ソフトウェアまたはアプリケーションレイヤーのプラグインまたはアプリであり、同じレイヤー、またはブラウザーのすぐ下で機能します。残念ですが、webRTCを介して、その構成からIPアドレスがリークする方法と理由を理解しています。

しかし、私はプロトコルにとらわれない完全なVPNである「sshuttle」と呼ばれるトランスポート層VPNを使用しています。 pfctlでbridge0インターフェースを作成し、それを介してすべてのトラフィックを送信します。

この構成では、ローカルホストに10.0.0.10以外のIPがなく、すべてのトラフィックがトランスポート層VPNを介して実行されるように構成されています。

それでも... googleとbrowserleaksの両方が私の本当のIPを知っています。私のローカルシステムでさえ私の本当のIPを知りませんが、どういうわけか彼らは知っています。

私のVPNソフトウェアに欠陥があるか、バグが多いか、漏れていると結論付けるのは正しいですか?適切なリークのないトランスポートレイヤーVPN できてはいけないが知らないIPに関する情報をリークするため、これが私が知る唯一の結論です。

それとも私は間違っていますか?webRTCは思ったよりもさらに多くの魔法を使うことができますか?

ありがとうございました。

3
user227963

WebRTCリークIPリークまたはDNSリークは2つの異なる用語であり、1つを互いに関連付けるべきではありません。

DNSリークが発生する理由
VPNを使用していて、IPが漏洩している場合は、DNSリクエストがalso VPNプロバイダー以外のISPに転送されていることを意味します。 DHCPサーバーは、高速応答のために独自のDNSサーバーを選択します。これにより、DNSリークが発生します。 VPNの使用中にIPがリークしているかどうかをテストできます dns leak

WebRTCリークの場合、サーバーとブラウザは内部IPアドレスを知るようになりますNATしかし、すべてのWebサーバーがそれを実行できるわけではありません。

仕組み
今日、ブラウザはWebRTCで実装されています。 WebRTCはSTUNサーバーによって生成されるSTUNリクエストを受け入れます。このリクエストは、背後にあるNATのタイプとパブリックIPアドレスを検出します。WebRTCはこのリクエストを受け入れ、 NAT=タイプとパブリックIPとプライベートIPの両方を返すSTUNサーバーに応答を送信します。STUNサーバーは2つのIPアドレスを使用します。

すべてのWebサーバーが内部IPを検出できるわけではないと書きました。 STUNサーバーはVoIPに関連する問題のトラブルシューティング用に設計されており、NATおよびNATがSIP&SDPで問題を作成する方法です。

VPNを使用している間、DNSリークを防ぐことはできますが、webRTCリークを防ぐことはできません。内部IPを知るには こちら にアクセスしてください。 wiresharkでこのサイトのトラフィックを分析すると、STUNリクエストを生成していることがわかります。

DNSリークを防ぐ方法
dnsleaktest.comは外部DNSをブロックするユーティリティを提供します。私もこのツールを使用しています。コマンドプロンプトでipconfig/flushdnsを使用してDNSキャッシュをフラッシュするか、静的DNSアドレスをGoogleまたはopenDNSに設定することもできます。

ただし、DNSリークを防ぐことは、webRTCリークから自分を防ぐことを意味するわけではありません。 VPNはSTUNリクエストをブロックしませんこれは、STUNサーバーからのインターネットトラフィックにすぎないためです。

STUNリクエストは通常​​のXMLHttpRequestプロシージャの外で行われるため、開発者コンソールに表示されないか、AdBlockPlusやGhosteryなどのプラグインによってブロックされる可能性があります

WebRTCリークを防ぐ方法
google chrome 2つのブラウザプラグインWebRTC Leak PreventおよびWebRTC Network Limiterがあります。STUNリクエストを正常にブロックし、失敗した場合に備えて、両方を使用していますが、STUN要求をブロックすることにより、NATの背後にいるとき、ブラウザーがVoIPセッションを確立できなくなります。

Mozilla Firefoxユーザーは、検索バーに「about:config」と入力し、「media.peerconnection.enabled」オプションを参照してFALSEに設定することで、Firefoxの設定でデフォルトのWebRTC機能を直接オフにすることができます。

WebRTCリークは、VPNの安全性やVPNが使用する強力な暗号化とは関係ありません。この脆弱性は、WebRTC自体であるブラウザにあります。あなたのVPNはあなたが要求したあらゆるトラフィックを受け入れるだけです。厳密に言って、VPNはwebRTCリークを防止しませんそれはすべてあなたのブラウザに依存します。 webRTCが有効になっている場合は、STUNリクエストを受け入れ、サーバーに応答を送信します。

WebRTCリークについて詳しく知ることができます ここ

3
defalt