DNSとIP漏洩の違いとその防止方法

プライバシーに関する心配などにより一部のインターネットの利用者はIPアドレスを隠してデータを暗号化するためにVPNを使用しています。しかし、セキュリティー対策の欠如によってあなたの個人情報が漏洩したら意味がありません。VPNによってあなたの個人情報やIPアドレスが漏洩するのには2種類の方法があります。DNS漏洩とWebRTC(IP)漏洩です。

DNS漏洩とは

インターネットを使ったことがあれば、知らない間にドメイン・ネーム・システム(DNS)を利用しているはずです。DNSはドメイン名(例えばvpnmentor.comなど)をデータベース化してそれに対応する数字(インターネットプロトコル、IP)アドレスに変換します。この数字はインターネット上でリソースを特定するために必要で、インターネットの電話帳のようなものです。

ドメイン名は人間が使用するためのみ存在しています。コンピュータはIPアドレス形式(168.212.226.204)でしか理解できません。IPアドレスは人間には覚えにくいためDNSが必要というわけです。ウェブページを要求するためにサイトを訪問すると、あなたのコンピュータはインターネットサービスプロバイダ(ISP)のDNSサーバーに通信しウェブサイトのIPアドレスをリクエストします。VPNなどのプライバシーサービスを利用するとあなたのコンピュータはDNSサービスのためにISPDNSではなくVPNサーバーに通信します。

その仕組み

VPNサービスを使ってIPアドレスを隠そうとしても時々DNSリクエストがあなたのISPDNSサーバーに転送されるというセキュリティー上の欠陥があります。この欠陥はDNS漏洩と呼ばれています。この現象は既存のVPNトンネル外からあなたのコンピュータが送信した暗号化されていないDNSクエリによるものです。オペレーティングシステムが汎用(共同)DNSというコンセプトを理解できないことから派生しています。各ネットワークインターフェイスは独自のDNSを持っており、様々な状況に応じてあなたのISPや第三者サーバーなどに直接DNSクエリをシステムが送信してしまうのです。これがあなたのVPNサービスのDNS設定やデフォルトのゲートウェイに従うことなく行われてしまうため、漏洩が発生してしまうのです。以下の図を参照して下さい。

この欠陥によりISPがユーザーの訪問しているサイトを見ることができるのです。VPNを使用しているときにあなたのIPアドレスが漏洩していることが発覚したらDNSリクエストもVPNプロバイダだけでなく、ISPに転送されていることになります。「透過DNSプロキシ」という技術を導入してISP以外のDNS設定に変更した場合でも、すべてのDNS検索をISPのDNSサービスを強制的に使用するようにしているISPもあります。

WebRTCIP)漏洩とは

2015年にセキュリティー学者のダニエル・ルーズラー氏は以下のようなセキュリティー欠陥を発見しました。ウェブ・リアルタイム・コミュニケーション(WebRTC)という、ほとんどのウェブブラウザに内蔵された特別インターフェイスプログラムを悪用することで盗聴者はユーザーがVPNに接続していても実際のIPアドレスを明かすことができるというのです。WebRTCは通常異なるネットワークに存在するコンピュータ同士がブラウザ間のコミュニケーションを図ったり、ピアツーピアでファイルを共有したり、音声や動画通話をしたりなどという目的のために使用されます。

その仕組み

WebRTCを騙してあなたのIPアドレスを明かすのはほんの数行のコードを使用するだけでできてしまいます。STUN(NAT向けのセッション・トラバーサル・ユーティリティ)というインターネットベースのサーバーを使ってコミュニケーションをとるのです。STUNサーバーはあなたのネットワーク内のコンピュータや端末にそれぞれの公共IP(イントラネット)アドレスを探せるようにするのです。VPNはあなたの内部のネットワークアドレスを公共のインターネットアドレスに変換するためにSTUNサーバーを使っています。逆の変換にも使われています。それを行うためにSTUNサーバーは接続時にVPNベースのIPアドレスと内部のローカルIPアドレスをデータベースに記録しています。

この漏洩はあなたのVPNの安全性とは関係ありません。ブラウザ内のWebRTCの脆弱性自体に問題があるのです。WebRTCがSTUNサーバーからクエリを受け付けた時、STUNサーバーにあなたの内部ネットワークのプライベートIPアドレスとイントラネットのパブリックIPアドレスなどのデータを返信します。

このリクエストの結果、ユーザーの本当のIPアドレスはJavaScriptという簡単なプログラムでアクセスできてしまいます。この方法がうまくいくために必要なのはブラウザがWebRTCに対応していることと、JavaScriptプログラムがあることです。もしもあなたのブラウザでWebRTCが有効になっている場合、STUNリクエストを許可しSTUNサーバーに返信していることでしょう。

結論は完璧なシステムは存在しないということです。時々欠陥が発見されるのは当たり前です。重要なのは脆弱性が発生するたびに対応するような信頼できるVPNプロバイダを使うことです。そのような漏洩が起きていないかVPNを試してみて、修復するための努力をしましょう

これは役に立ちましたか?よろしければシェアしてください!