DNSは「Domain Name System(ドメイン・ネーム・システム)」の略称で、実質的にはインターネットの電話帳にあたる仕組みです。ブラウザーに入力する、人間が読める「xyz.com」のようなドメイン名を、154.6.147.47(IPv4)や2001:0db8:85a3:0000:0000:8a2e:0370:7334(IPv6)のような数値のIPアドレスに変換します。この仕組みによって、インターネットユーザーは毎日、何十億ものWebページにアクセスできます。そしてDNS暗号化により、ユーザーがやり取りするデータはプライバシーと安全性が確保されます。
この記事では、暗号化の仕組みやメリットに加え、ブラウザーやコンピューティングデバイスでDNS暗号化が設定されているかを確認する方法を解説します。
DNS暗号化の進化
インターネットがAdvanced Research Projects Agency Network(ARPANET)と呼ばれていた黎明期には、アドレスの変換はHOSTS.TXTと呼ばれる単純なテキストファイルによって行われていました。しかし、インターネットが急速に拡大すると、研究者たちはアドレス指定の仕組みには限界があることにすぐ気づきました。これを受けて、1983年に現在のDNSが誕生しました。
当初、DNSはネットワークセキュリティを念頭に置いて設計されたわけではありません。これは無理もないことです。当時は、現在のような電子商取引やオンラインバンキング、広範なデータ窃取は存在しなかったからです。当初の設計は、アドレスの拡張性という問題を解決することだけを目的としていました。
しかし、インターネットの可能性と、安全でないDNSがもたらす危険性が認識されると、コンピューター科学者たちは解決策を求めて奔走しました。その結果、複数の標準や慣行が生まれ、DNSSEC(Domain Name System Security Extensions)も、システムをより安全にするために後付けで導入されました。
DNSが発明されてから約40年後、2つのDNS暗号化プロトコルが開発されました。DNS over TLS(DoT)とDNS over HTTPS(DoH)です。
DNS暗号化の仕組み:2つの方式
DNS暗号化では、平文のDNS情報を、データ交換に関わる2者、つまりDNSクライアント(ブラウザーやネットワークデバイス)とDNSリゾルバーだけが解読できる暗号化された形式に変換します。
DNS over TLS(DoT)
DoTは、HTTPSサイトを保護するTransport Layer Security(TLS)チャネルを使用してDNSクエリと応答を暗号化・保護するため、2016年に作られたセキュリティプロトコルです。
この方式のDNS暗号化では、DNSリゾルバーサーバーが証明書を通じてクライアントデバイスに自身を認証し、第三者がサーバーになりすますのを防ぎます。この認証プロセスにより、DNSトラフィックの完全性と機密性が保証されます。
DoTの主な目的は、DNSトラフィックを侵害・盗聴する可能性がある中間者攻撃を防ぎ、ユーザーのプライバシーとセキュリティを強化することです。DoTは、ユーザーデータグラムプロトコル(UDP)と呼ばれる仕組み上で動作し、DNSクエリを保護するTLS暗号化層を追加します。DoTの標準ポートは853番ポートです。
DoTにはセキュリティ機能がありますが、言論の自由が制限されている地域では潜在的な制約がある点に注意が必要です。DoT暗号化を有効にすると、意図せず当局の注意を引く可能性があります。そのため、敵対的または権威主義的な政権に対して、意図した保護を提供できない場合があります。こうした点を踏まえても、DoTプロトコルの支持者は、厳しい環境における人権上の懸念への対処に適していると主張しています。
DNS over HTTPS(DoH)
2018年に導入されたDoHは、DNSクエリをより安全にするために設計されたもう1つのプロトコルです。DoTとは異なり、DoHはHTTPS接続に443番ポートを使用します。DoHクライアントとリゾルバーは、クエリエンドポイントをホストするDoHサーバーに接続できます。
DoTと同様に、DoHも暗号化にTLSを利用します。ただし、HTTPS上で動作するため、既存のWebインフラにシームレスに統合されます。そのため、制限のある環境では目立ちにくく、ブロックやフィルタリングも困難になる可能性があります。
暗号化されていないDNSの主なリスク
DNS暗号化の重要性を理解するには、暗号化されていないDNSの主なリスクを確認するとよいでしょう。Internet Engineering Task Forceが特定した当初のセキュリティ脅威には、次のようなものがあります。
- パケットの傍受:DNSクエリと応答は、平文のまま暗号化されずに送信されることが多いため、権限のない人物でもデータパケットを容易に傍受できます。これにより攻撃者はネットワークを盗聴し、情報を取得できます。取得される情報にはアクセス先のドメイン名も含まれ、ユーザーの行動や企業活動を推測する手がかりとなります。
- IDの推測とクエリ予測:DNSは、クエリと対応する応答を照合するためにトランザクションIDを使用します。安全でない設定では、攻撃者がDNSクエリのトランザクションIDを推測し、成功すると、ユーザーを悪意のあるWebサイトへリダイレクトする応答を送信できます。
- 名前の連結:この手法では、攻撃者が自身の管理下にあるドメイン名を問い合わせ、標的のドメインをサフィックスとして付加します。DNSリゾルバーはこの情報をキャッシュします。その後、本物のユーザーが標的のドメインを問い合わせると、リゾルバーは誤って攻撃者のIPアドレスを返し、ユーザーに気づかれないまま攻撃者のサイトへリダイレクトします。
- 信頼されたサーバーの裏切り:このケースでは、攻撃者が標的ネットワークから信頼されているDNSサーバーを掌握します。DNSリゾルバーは本来これらのサーバーからの応答を信頼するため、悪意のあるデータが送信されると受け入れてキャッシュに保存してしまいます。その結果、キャッシュポイズニングやデータ窃取などの攻撃につながる可能性があります。
- サービス拒否(DoS):DNSサーバーはインフラストラクチャの構成要素です。攻撃者は大量のクエリを送ってDNSサーバーを過負荷状態にすることができ、正当なリクエストを処理できなくなります。その結果、ドメイン名を解決する機能が妨害され、実質的にWebサービスが利用不能になります。
- 認証済みドメイン名拒否:このタイプの攻撃はより高度です。攻撃者はDNSサーバーをフラッド攻撃するだけでなく、正当なものに見せかけるためにさまざまな認証メカニズムも利用します。正当なクエリと見分けるのが非常に難しいため、この攻撃の緩和はより困難です。
- ワイルドカード:DNSでは、明示的に定義されていないサブドメインを処理するためにワイルドカードが使用されます。攻撃者は、DNSサーバーにワイルドカードのエントリーを注入することでこれを悪用できます。ユーザーが未定義のサブドメインを問い合わせると、悪意のあるワイルドカードエントリーで指定されたIPアドレスへ誘導されます。
そのほか、より近年になって登場したリスクには次のようなものがあります。
- キャッシュポイズニング:この攻撃では、攻撃者が不正なDNSエントリーを挿入してDNSリゾルバーのキャッシュを操作します。その結果、ユーザーは知らないうちに、実際には訪問していない別のWebサイトへリダイレクトされる可能性があります。
- DNS増幅攻撃:DNSに暗号化がないと、攻撃者はDNSクエリの送信元IPアドレスを偽装できます。これにより、標的のIPアドレスへ大量の応答を送り、攻撃を激化させて標的システムを圧倒できます。
- DNSトンネリング:DNSプロトコル内にDNSトラフィックをカプセル化する手法です。DNSクエリは暗号化されておらず、標準的なセキュリティツールでは検出が難しいペイロードを運べるため、ネットワークセキュリティ対策を回避できます。
- ゾーン転送:ドメインのDNSレコードがすべて露出します。攻撃者はこの情報を、さらなる攻撃や偵察活動のリソースとして利用できます。
- DNSハイジャック:攻撃者は、ユーザーのデバイス上にある暗号化されていないDNS設定を変更できます。これにより、ユーザーをWebサイトへリダイレクトし、その過程で機密情報を取得できる可能性があります。
- サブドメイン乗っ取り:暗号化されていないDNSレコードが、すでに稼働していないリソース(廃止されたクラウドサービスなど)を指している場合、攻撃者はそれを悪用してリソースを掌握し、ひいては関連するサブドメインも制御して、有害なコンテンツを配信できます。
- 情報漏えい:暗号化されていないDNSクエリは、ネットワーク構造の詳細を意図せず明らかにする可能性があります。攻撃者はこの情報を偵察に利用し、正確で標的を絞った攻撃を計画できます。
DNS暗号化の6つのメリット
DNS暗号化は、企業、中小規模の組織、さらには個人にとっても多くのメリットがあります。金銭や身元の保護から、さまざまなサイバー攻撃に対する優れた防御まで、その効果は多岐にわたります。
金銭的な保護
IDCの2023年のレポートによると、DNS攻撃による平均的な金銭的被害は、インシデントあたり110万ドルにまで増加しています。DNS暗号化は、コストのかかるデータ侵害や不正なデータアクセスのリスクを軽減し、金銭面の安全策として機能します。
高度な攻撃に対するセキュリティの強化
Radwareの脅威アドバイザリーでは、DNSサーバーを大量のリクエストで圧倒するDNSフラッド攻撃が増加していることが示されています。DNS暗号化は、攻撃者によるDNSトラフィックの操作や傍受を困難にするセキュリティ層を追加し、このような高度な攻撃からの保護に役立ちます。
完全性と機密性
DNS暗号化は、DNSデータの完全性と機密性を確保します。これは、かつて国家主体に限られていた技術を用いる高度なHTTPおよびDNS DDoS攻撃が登場している現在、特に重要です。DNSクエリを暗号化することで、組織は意図したサーバーと通信していることを確信できます。
DNSスプーフィング攻撃と中間者攻撃の緩和
DNSスプーフィング攻撃と中間者攻撃は、高度なDNS攻撃でよく使われる手法です。クライアントを本来のWebページに似せた偽ページへ誘導し、そこでパスワードや決済情報などの重要なデータを入力させます。DNS暗号化は、悪意のある第三者によるDNSクエリの傍受、読み取り、リダイレクトを防ぎ、こうした攻撃に伴うリスクを効果的に軽減します。
プロアクティブな防御戦略
DNS攻撃が複雑さと規模を増し続ける中、DNS暗号化はDNSクエリを保護する先回りの対策となります。これは単なるオプション機能ではなく、包括的なサイバーセキュリティ戦略に不可欠な要素です。
評判の管理
DNS攻撃を受けた後の評判へのダメージは、企業にとって壊滅的なものになり得ます。DNS暗号化は、DNSクエリの安全性と完全性を確保し、組織への信頼と信用の維持に役立ちます。
DNS暗号化の確認と調整方法
Chrome、Firefox、Edgeなど、最新のWebブラウザーの多くには、DNS暗号化設定をカスタマイズできる機能があります。通常は「設定」メニューを開き、「プライバシーとセキュリティ」を選択すると設定を確認できます。ただし、具体的な手順は使用するブラウザーによって多少異なる場合があります。
Windows 10以降、macOS、Ubuntuなどのオペレーティングシステムでは、DNS暗号化設定をシステムレベルで構成できることが多くなっています。これにより、Webブラウジング以外のアクティビティでもDNSクエリを保護できます。設定を調整するには、オペレーティングシステムのドキュメントやサポートリソースで詳しい手順を確認するのが最適です。
AndroidとiOSのスマートフォンには、DNS暗号化のサポートが組み込まれています。通常は、デバイスのネットワークまたはプライバシーの設定からアクセスできます。
Google Chrome
Google ChromeはDoHをサポートしており、ユーザーが手動で有効にできます。ただし、Google ChromeのDoH実装には独自の方式が採用されています。自動的にDoHへ切り替えるのではなく、ユーザーが現在利用しているDNSプロバイダーがDoHをサポートしているかを確認します。サポートされていれば、Chromeはユーザーが選択したDNSプロバイダーを維持したまま、DNSクエリをDoHへアップグレードします。これにより、ユーザー設定を変更せず、より安全なDNSクエリへシームレスに移行できます。
ChromeでDoHを手動で確認・有効化するには、次の手順を実行します。
- 「設定」に移動します。
- 「プライバシーとセキュリティ」タブを開きます。
- 「詳細設定」までスクロールします。
- 「セキュアDNSを使用する」で、ドロップダウンメニューからDNSプロバイダーを選択するか、カスタムプロバイダーを追加して機能を有効にします。
Chromeには、次のような複数のDoHプロバイダーがあらかじめ設定されています。Google DNS、Open DNS、およびCloudFlare。

Microsoft Edge
Edgeでも、ユーザーはDoHを手動で設定できます。手順は次のとおりです。
- 「プライバシー、検索、サービス」セクションにあるブラウザーの設定を開きます。
- カスタムDoHプロバイダーを選択するか、機能を完全に無効にします。
Edgeにも複数のDoHプロバイダーがあらかじめ設定されている点に注意してください。

Firefox
Mozilla Firefoxは、DoHを実装した最初期のブラウザーの1つで、複数の国のユーザーに対してDoHをデフォルトにもしました。「ネットワーク設定」のブラウザー設定から有効化または無効化できます。保護レベルを高める設定を選択すると、Firefoxでは特定のDoHプロバイダーであるCloudflareがデフォルトになりますが、ユーザーは設定から変更できます。
- 「設定」に移動します。
- 「プライバシーとセキュリティ」タブを開きます。
- 「DNS over HTTPS」までスクロールします。
- 「セキュアDNSを使用する」の下で「保護強化」を選択します。

Opera
ユーザーは、「プライバシーとセキュリティ」セクションのブラウザー設定からOperaでDoHを有効にできます。デフォルトのDoHプロバイダーを使用することも、カスタムプロバイダーを入力することも可能です。DNS暗号化設定を確認するには、次の手順を実行します。
- 「設定」に移動します。
- 「プライバシーとセキュリティ」タブを開きます。
- 「システム」までスクロールします。
- ラジオボタンを切り替えます。
Operaでも、DoHにはデフォルトでCloudflareが使用されます。

オペレーティングシステム
- Windows:MicrosoftはWindows 10以降を対象にDoHのサポートを開発中です。ユーザーは現在、OSの設定でDoHを構成できますが、この機能はまだ初期段階にあり、広く採用されているわけではありません。
- macOS:macOSユーザー向けに、AppleはmacOS Big Sur以降、暗号化DNSのオプションを導入しています。ユーザーはネットワークオプションのシステム設定でDoHを有効にでき、システム全体でDoHを利用できます。
- Ubuntu:Ubuntuユーザーは、DoHを有効にするため、dnscrypt proxyのようなDNSリゾルバーをインストールして設定できます。コマンドラインインターフェースに慣れたユーザーに適した技術的な方法です。
OSレベルでDoHを実装すると、すべてのアプリケーションがDNSクエリの恩恵を受けられるため、Webブラウザーだけでなくセキュリティの範囲を広げられます。ただし、設定には技術的な知識が必要になる場合があります。
AndroidでDNS暗号化を利用する
Androidでは、DoTまたはDoHを使用してDNS暗号化を実装できます。Android 9(Pie)以降、OSにはDNS over TLSのサポートが組み込まれています。これにより、クエリを生成するアプリに関係なく、デバイスから送信されるすべてのDNSクエリを暗号化できます。
この機能を有効にするには、「設定」>「インターネット」>「詳細設定」>「プライベートDNS」に移動します。
そこでは、自動選択(Androidが現在のDNSサーバーでDoTの使用を試みる)、完全に無効にする(DoTを無効にする)、DoTをサポートするDNSサーバーのホスト名を入力する、といった複数のオプションから選択できます。
iOSでDNS暗号化を利用する
iOS 14で、AppleはDNS暗号化のサポートを導入しました。ユーザーはDoHまたはDoTを使用してDNSクエリを暗号化できるようになりました。
iOSでDNS暗号化の設定を構成する方法は、Androidほど簡単ではありません。一般に、これらの設定は、多くの場合モバイルデバイス管理(MDM)ソリューションを通じてインストールされるプロファイル、または構成プロファイルを使って手動で設定します。
サードパーティ製アプリの中には、iOSデバイスで暗号化DNSを設定する方法を提供するものもあります。プロファイルをインストールするかアプリを設定すると、DNS設定がシステム全体に適用され、すべてのアプリにメリットをもたらすセキュリティ層が追加されます。
結論:DNS暗号化はサイバーセキュリティの重要な要素
DNS暗号化は、今日のサイバー環境において不可欠なセキュリティ対策です。DNSスプーフィング攻撃、中間者攻撃、データの窃取など、さまざまなサイバー脅威に対する強固な防御を提供します。DoTやDoHなどのDNS暗号化プロトコルの採用は、任意の機能ではなく、標準的なベストプラクティスになりつつあります。
前述の最新のサイバー脅威インテリジェンスレポートでも示されているように、DNSを標的とする脅威は増大しています。DNS暗号化の実装は、ネットワークとデータの保護に取り組む組織にとって、推奨されるだけでなく不可欠です。
DNSだけで終わらせず、最適な暗号化ソフトウェアを知って、ネットワーク全体のデータを保護しましょう。