Proton VPN のホームページ

VPN使用時のDNS漏洩

閲覧中
1 分
カテゴリー
接続

すべてのProton VPNアプリには、お客様がインターネット上でアクセスするウェブサイトなどが、お客様の実際のDNSアドレスを特定するのを防ぐためのDNS漏洩防止機能が搭載されています。しかし、限定的な状況において、コンピューターがこれらの保護機能をバイパスしてしまい、その結果、第三者が実際に使用されているDNSサーバーのIPアドレスを特定できてしまう場合があります。

この記事では、DNSとは何か、その仕組み、そしてDNS設定を手動で構成することで弊社のDNS漏洩防止機能が正常に動作しなくなる理由について説明します。

DNSとは?

インターネットへのすべての接続には、インターネットプロトコル(IP)アドレスとして知られる固有の数値識別子が割り当てられます。人間の脳は長い数字の羅列を記憶するようにはできていないため、私たちはドメイン名として知られる、より人間に優しい文字列を使用してインターネットリソース(ウェブサイトやゲームサーバーなど)を識別しています。

ドメインネームシステム(DNS)は、人間に優しいURLをコンピューターが使用するIPアドレスに変換する、世界的な電話帳のようなものです。

そのため、たとえばURLの example.com にIPアドレス 123.456.789.012 が割り当てられている場合、ブラウザのウェブアドレスバーに 123.456.789.012 と入力すると、example.comにアクセスできます。(実際には、IPアドレスが複数のウェブサイトに対応していたり、単一のドメインが複数のIPアドレスに対応していたりすることがあります。しかし本質的には、これがDNSの役割です。)

DNSとプライバシー

DNS解決とは、ドメインをそれに対応するIPアドレスに変換するプロセスのことです。これはDNSサーバーによって実行され、デフォルトではお客様のインターネットサービスプロバイダ(ISP)によって運営されています。

世界中のほぼすべてのISPは、顧客が行ったDNSクエリのログを保持しており、これによりお客様のブラウジング履歴を把握できます。ISPは他の方法でお客様のインターネットアクティビティを追跡することもできますが、その多くは単にDNSログを保持することにとどめています。

通常はデフォルトで行われることはありませんが、お客様がアクセスしたウェブサイトが、そのサイトに誘導するためのDNSクエリの解決に使用されたDNSサーバーのIPアドレスを確認することは可能です。この情報を得たウェブサイト(またはウェブサイトを監視している他の誰か)は、お客様のISPにアプローチし、そのDNSクエリを行った顧客のIPアドレスを開示するよう求めることができます。

DNS解決はお客様のISPによって実行されるため、使用されたDNSサーバーのIPアドレスがわかると、ウェブサイトはお客様がどの国にいるかを特定できます。実際のIPアドレスを隠すために VPN(新しいウィンドウ)プロキシ を使用しているにもかかわらず、ISPのDNSサーバーのIPアドレスが公開されている場合、この不一致により、ウェブサイトはお客様が実際のユーザー情報を隠そうとしていることを知ることができます。

DNS、Proton VPN、DNS漏洩防止機能

Proton VPNは、自社のDNSサーバーを運用することでこの脅威に対処しています。他のすべてのインターネットトラフィックと同様に、DNSクエリはVPNトンネルを経由してルーティングされ、弊社のサーバー上で解決されます。

外部からは、お客様のDNSアドレスは使用しているVPNサーバーのIPアドレスとは異なりますが、同じデータセンターに属することになります。そのため、VPNサーバーの物理的な位置とほぼ一致します。(現時点では IPv6接続 は単にブロックされますが、お客様のインターネットの使用体験に影響はありません。)

Proton VPNはDNSクエリをログに記録しません。また、スイスの法律により、それらの記録を開始するよう強制されることもありません。弊社はまた、ユーザーのIPアドレスも記録しません。

Proton VPNの脅威モデルについてより詳しく

弊社のすべてのアプリにはDNS漏洩防止機能が実装されており、ファイアウォールルールやその他のプラットフォーム固有の技術を使用して、DNSクエリを含むインターネットトラフィックがVPNインターフェース以外でお客様のデバイスに出入りしないようにしています。

しかし、DNSクエリがVPNトンネルの外にルーティングされる可能性がある限定的な状況がいくつか存在します。

サードパーティのDNSサービス

Google Public DNS、Cloudflare、OpenNICなどのサードパーティDNSサービスを使用するようにデバイスのグローバルDNS設定を手動で構成すると、カスタム設定が弊社のDNS漏洩防止手段を上書きする可能性があるため、不具合が発生する可能性が高くなります。

そのため、Proton VPNでサードパーティのDNSサービスを使用しないことを強くお勧めします。以下は、主要なすべてのプラットフォームでカスタムDNS構成を無効にするためのガイドです。

Windows 10

1. スタート設定ネットワークとインターネット → 使用しているネットワークインターフェース(例:Wi-Fi または イーサネット) → 関連設定アダプターのオプションを変更するの順に移動します。

2. 右クリック(お使いのネットワークインターフェースを) → プロパティ → インターネット プロトコル バージョン 4 (TCP/IPv4)プロパティ

Windows IPv4 setting

3. DNS サーバーのアドレスを自動的に取得するが選択されていることを確認し、OKをクリックします。

Enable Obtain DNS server addresses automatically

4. IPv6接続をご利用の場合(または、ご利用かどうかわからない場合)は、インターネット プロトコル バージョン 6 (TCP/IPv6)についても手順2と3を繰り返します。

macOS

設定アプリを開き、次の順に進みます: ネットワーク → ネットワークインターフェースを選択(例:Wi-Fi または イーサネット) → 詳細… → DNSタブ。サードパーティの DNSサーバー(存在する場合)を選択し、 ボタンをクリックして削除します。完了したら OKをクリックします。

Manually edit IP settings

Linux

各Linuxディストリビューションやデスクトップ環境では、DNS設定を変更するための異なる(ただし、多くの場合非常によく似た)ユーザーインターフェースが提供されています。たとえば、Ubuntu GNOMEの場合:

1. アプリケーションを表示するすべて設定ネットワークの順に移動し、ネットワークインターフェースの横にある歯車アイコンをクリックします。

Find your network connection

2. IPv4およびIPv6タブに移動します。DNSの下にある自動スイッチがオンになっていることを確認し、表示されているDNSエントリーをすべて削除します。完了したら適用をクリックします。

Enable automatic DNS

Android 9+

Android 9以降では、プライベート DNS機能が提供されています。これは、DoTを使用してお客様のISPのDNSサーバーへの接続を自動的に保護するシステム全体の機能(ISPがサポートしている場合。詳細は以下を参照)、またはカスタムDNSプロバイダを指定できるようにする機能です。プライベート DNSを無効にするには:

1. 設定アプリを開き、接続その他の接続設定プライベート DNSオフの順に移動します。

Turn Private DNS Mode off in Android

Chrome OS

設定に移動し、ネットワークインターフェース(例:Wi-Fiまたはイーサネット。また、Wi-Fiを使用している場合は既知のネットワークを選択する必要があります)を選択し、 → 詳細設定 → ネームサーバー に移動して、自動ネームサーバーが選択されていることを確認します。

Select automatic name servers on Chromebooks

iOSおよび古いバージョンのAndroid

iOS/iPadOSやAndroid 9 Pieより前のバージョンのAndroidでグローバルDNS設定を変更する唯一の方法は、ダミーのVPNインターフェースを作成して動作させるサードパーティのアプリを使用することです。

一度に確立できるVPN接続はひとつだけであるため、いずれにせよ、これらのアプリをProton VPNと同時に実行することはできません。

DNS over HTTPS

DNS over HTTPS(新しいウィンドウ)(DoH)は、DNSサーバーへのDNSクエリを暗号化する暗号化標準です。DoHはDNSプロバイダーがこの標準をサポートしている場合のみ機能しますが、現在は(ISPsが提供することは稀ですが)サードパーティのDNSサービスによって提供されるケースが増えています。

あいにく、暗号化によって弊社のソフトウェアがDNSクエリを認識できなくなるため、これはサードパーティのDNSサービスを使用する際の問題をさらに複雑にします。これにより、それらのクエリをブロックしたり、ルートを変更したりすることが非常に困難になります。

したがって、Proton VPNでDoH(および同様のDNS over TLS標準)を使用することは、強くお勧めいたしません。弊社のアプリを使用する場合、すべてのDNSクエリはVPN接続を介して弊社のサーバーに送信されるため、DoHやDoTを必要とせず安全に暗号化されます。

デスクトップシステムでは、DoHは通常お客様のブラウザ内部で実装されており、ほとんどの最新ブラウザ(Safariを除く)でサポートされています。DoHおよびDoTは、AndroidのプライベートDNSまたはスタンドアロンアプリ(上記で説明されている通り)を介して、モバイルデバイスでサポートされています。

デスクトップブラウザでDoHを無効化する方法

Firefox

以下に移動: 設定プライバシーとセキュリティDNS over HTTPS セキュア DNS の使用を有効にする:オフを選択します

Chrome

三つの点がある 縦の三点リーダー アイコンをクリック → 設定プライバシーとセキュリティプライバシーとセキュリティセキュリティ拡張 DNS プロバイダを選択 で、ドロップダウンメニューから OS のデフォルト(利用可能な場合) が選択されていることを確認します。

ChromeでCNSプロバイダを変更する

(Chromebookでは、設定 プライバシーとセキュリティ拡張に移動します)

Edge Chromium

三つの点がある 横の三点リーダー アイコンをクリック → 設定 プライバシー、検索、サービスセキュリティ に進み、セキュア DNS を使用して、ウェブサイトのネットワーク アドレスを検索する方法を指定するオフ になっていることを確認します。

Disable use secure DNS in Edge

Brave

以下に移動: 設定プライバシーとセキュリティ→ → セキュリティ拡張 に進み、セキュア DNS を使用するオフ になっていることを確認します。

Disable use secure DNS in Chrome

VPNサーバーへの接続が中断されました

お客様のデバイスとVPNサーバー間の接続が中断された場合、VPNの保護なしでインターネットにアクセスしてしまう可能性があります。とりわけ、これはDNSクエリがお客様のシステムのデフォルトDNSサーバー(おそらくご利用のISPが運用しているもの)に送信される可能性があることを意味します。

この問題は、弊社のすべてのアプリで利用可能になったキルスイッチ機能を有効にすることで簡単に解決できます。

DNS漏洩の確認方法

1. 弊社のアプリを開き、いずれかのサーバーに接続します。DNS漏洩テストを実行する目的としては、異なる国のVPNに接続するとDNS漏洩を特定しやすくなります。

2. ブラウザでDNSleaktest.com(新しいウィンドウ)にアクセスします。接続先のVPNサーバーのIPアドレスが表示されます。標準テストまたは拡張テストのいずれかを選択します。このガイドの目的上、ここでは拡張テストを選択します。

See your external IP addresss

3. テストが完了するまで待ち、結果を確認します。表示されているIPアドレスが実際のISPのものである場合、DNS漏洩が発生しています。解決策については上記をご覧ください。

DNS leak test reslts

Proton VPNは世界中のインフラストラクチャプロバイダーと提携しているため、ISPがサードパーティプロバイダーである可能性があることにご注意ください。IPアドレスが実際のISPのものでない限り、DNS漏洩は発生していません。