DNS over TLS vs. DNS over HTTPS | 安全なDNS

DNSクエリは平文で送信されます。つまり、誰でもこれを読むことができます。DNS over HTTPSとDNS over TLSは、DNSクエリと応答を暗号化し、ユーザーのブラウジングを安全かつプライベートに保ちます。しかし、どちらのアプローチにも長所と短所があります。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • DNSのセキュリティをなぜ強化する必要があるのかと、DNSプライバシーが重要である理由について理解する
  • DNS over TLSとDNS over HTTPSの仕組みと、それらの違いについて学ぶ
  • 両アプローチの長所と短所に関する説明
  • DNS over TLS(HTTPS)とDNSSECの比較

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

すべてのCloudflareプランに含まれる無料DNS

なぜDNSは追加のセキュリティ層が必要なのですか?

DNSはインターネットの電話帳です。DNSリゾルバーは人間が判読可能なドメイン名を機械が判読可能なIPアドレスに変換します。デフォルトでは、DNSクエリと応答は平文で(UDP 経由で)送信されます。つまり、ネットワーク、ISP、または通信を監視できるすべての人が読み取ることができます。WebサイトがHTTPSを使用している場合でも、そのWebサイトに移動するのに必要なDNSクエリが公開されます。

このようなプライバシーの欠如は、セキュリティをはじめ、場合によっては人権に大きな影響を与えます。DNSクエリが非公開でない場合、政府がインターネットを検閲したり、攻撃者がユーザーのオンライン行動を追跡することが容易になります。

攻撃者がセキュリティ保護されていないDNSトラフィックを閲覧

通常の、暗号化されていないDNSクエリは、郵便はがきのようなものだと考えてください。裏側に書かれた文章が郵送物を扱う人の目に入る可能性があります。したがって、機密情報や個人情報が記載されたはがきを郵送することは賢明ではありません。

DNS over TLSとDNS over HTTPSは、悪意のある者、広告主、ISPなどによるデータ解釈を防止するために、平文のDNSトラフィックを暗号化するために開発された2つの規格です。先ほどの例に当てはめると、これらの規格は、郵送されるすべてのはがきを封筒に入れることを目指しています。そうすれば、第三者から自身の行動を覗き見られる心配はなく、誰でもはがきを送ることができます。

TLSまたはHTTPSで保護されたDNSクエリを使用することで、攻撃者はブロックされます

DNS over TLSとは?

DNS over TLS(DOT)は、DNSクエリを暗号化して、保護し、機密性を保つための規格です。DOTは、HTTPS Webサイトが通信の暗号化と認証に使用するのと同じセキュリティプロトコル「TLS」を使用します。(TLSは「SSL」とも呼ばれます。)DoTは、DNSクエリに使用されるユーザーデータグラムプロトコル(UDP)の上にTLS暗号化を追加します。さらに、DNSリクエストと応答がオンパス攻撃によって改ざんされたり、偽造されたりしないようにします。

DNS over HTTPSとは何ですか?

DNS over HTTPS(DoH)は、DoTの代替手段です。DoHでは、DNSクエリと応答は暗号化されますが、直接UDP上で送信されるのではなく、HTTPまたはHTTP/2プロトコル経由で送信されます。DoTと同様に、DoHは攻撃者がDNSトラフィックを偽造または変更できないようにします。DoHトラフィックは、他のHTTPSトラフィックのように見えます。例えば、ネットワーク管理者の観点からは、WebサイトやWebアプリとの通常のユーザー主導のやり取りのように見えます。

2020年2月、Mozilla Firefoxブラウザは、米国のユーザーに対してデフォルトでDoHを有効にすることを開始しました。FirefoxブラウザからのDNSクエリはDoHによって暗号化され、CloudflareまたはNextDNSに送られます。他のいくつかのブラウザもDoHをサポートしていますが、デフォルトでは有効化されていません。

HTTPSも暗号化にTLSを使用しないのでしょうか。DNS over TLSとDNS over HTTPSはどう異なるのか?

各規格は個別に開発され、独自のRFC*ドキュメントがありますが、DoTとDoHの最も重要な違いは、使用するポートです。DoTではポート853のみが使用されますが、DoHではポート443が使用されます。これは、他のすべてのHTTPSトラフィックでも使用されるポートです。

DoTには専用のポートがあるため、要求と応答自体が暗号化されていても、ネットワークの可視性を持つユーザーであれば誰でも、DoTトラフィックの送受信を確認できます。対照的に、DoHでは、DNSクエリと応答は、すべて同じポートから送受信されるため、他のHTTPSトラフィック内でいくらかカモフラージュされます。

*RFCは「Request for Comments(コメント要求)」の略で、RFCは、開発者、ネットワークの専門家、また、ソートリーダーらが取り組んでいるインターネット技術またはプロトコルを標準化するための集合的な試みです。

ポートとは?

ネットワークでは、ポートは、他のマシンからの接続に開放されているマシン上の仮想的な場所です。ネットワーク接続されたコンピューターにはそれぞれ標準数のポートがあり、各ポートは特定の種類の通信用に確保されています。

船が寄港する港(ポート)を考えてみてください。各港には番号が付けられており、さまざまな種類の船が貨物や乗客を降ろすために、特定の港に行くことになっています。ネットワークも同じです。特定の種類の通信は、特定のネットワークポートに接続されることになっています。違いは、ネットワークポートは仮想的なものであり、物理的な接続ではなくデジタル接続用の場所だということです。

DoTとDoHのどちらが良いのか?

これは議論の余地があります。ネットワークセキュリティの観点からみると、DoTは間違いなく優れています。DoTにより、ネットワーク管理者はDNSクエリを監視およびブロックできます。これは、悪意のあるトラフィックを特定して停止する上で重要です。一方、DoHクエリは、通常HTTPSトラフィックでは非表示になります。つまり、他のHTTPSトラフィックもすべてブロックしなければ簡単にブロックできません。

しかし、プライバシーの観点からは、DoHが好ましいと考えられます。DoHを使用すると、DNSクエリはHTTPSトラフィックのより大きなフロー内に隠されます。これにより、ネットワーク管理者の可視性は低下しますが、ユーザーのプライバシーは強化されます。

Cloudflareの無料DNSリゾルバーである1.1.1.1 は、DoTとDoHの両方をサポートしています。

DNS over TLS(HTTPS)とDNSSECの違いとは?

DNSSECとは、DNSルートサーバーと権限のあるネームサーバーのIDを検証するための複数のセキュリティ拡張機能で、DNSリゾルバーとの通信において用いられます。これは、DNSキャッシュポイズニングなどの攻撃を防止するために設計されています。DNSSECは通信を暗号化しません。一方、DNS over TLS(HTTPS)は、DNSクエリを暗号化します。1.1.1.1はDNSSECもサポートしています。

1.1.1.1についての詳細は、1.1.1.1とは?をご覧ください。