よくある質問・用語集

  • もっと調べる
  • どうやって使う?

DNS over HTTPS/TLSとは

DNS over HTTPS/TLSとは、クライアントがキャッシュDNSサーバに問い合わせをする際に、DNSクエリをHTTPSやTLSのプロトコルで暗号化するための手順である。通常、DNSの問い合わせはクライアントからキャッシュDNSサーバにDNSクエリを送信し、キャッシュDNSサーバから権威DNSサーバに問い合わせるという流れで行われる。これらの通信を平文で行った場合、通信が傍受され、クライアントがどのホスト名のどのサーバにアクセスしようとしているのか、といったプライバシー情報が漏洩してしまう可能性がある。DNS over HTTPS/TLSは、DNSクエリをHTTPSやTLSのプロトコルで暗号化することで、悪意ある第三者からの盗聴、傍受を防ぐことができる。

DNSの暗号化による企業間の問題について

現在、GoogleやMozillaなどインターネットの検索エンジンを提供する企業で、セキュリティ対策などの目的でDNSの暗号化が検証されている。しかし、そこではDNSを暗号化する上でメリットだけでなく、様々な問題が生じている。ここではその一部を紹介する。

GoogleによるDNSの暗号化について

Googleは、DNSトラフィックをより安全なものにするという目的でDNS over HTTPS(DoH)の実施検証を発表した。これはユーザにとって、安全にGoogleを利用することができるというメリットがある。しかし、2019年に米下院司法委員会は、この件に関して独占禁止法に違反するのではないかと提言した。理由としては、Googleの情報独占にあたるのではないかということが挙げられる。

この件に関して、大きく関連しているのはISPである。ISPはGoogleのDNSトラフィックをもとに、ユーザに対してコンテンツフィルタリングやペアレンタルコントロールを行い、管理する。しかし、GoogleがDNSを暗号化することで、ISPがDNSトラフィックを入手することが困難になる。それにより、GoogleがDNSトラフィックを独占することになるのではないかと問題になっている。

MozillaによるDNSの暗号化について

Firefoxを開発したMozillaは、2020年2月にDNS over HTTPS(DoH)をデフォルトの設定で有効にすることを発表した。目的は暗号化することで安全に利用すると同時に、ISPがユーザが接続したサイトのブラウジング履歴など、DNSトラフィックを営利目的で利用することを防ぐということである。

このようにDNSの暗号化については、主にISPと検索エンジンを提供する企業間で問題が生じている。

DNS over HTTPS(DoH)とDNS over TLS(DoT)の違い

DoHはRFC8484で標準化されており、DoTはRFC7858で標準化されている。このようにDoHとDoTには様々な違いが存在する。ここでは、DoHとDoTの違いについて説明する。

対応しているブラウザの違い

DoHとDoTは、それぞれ利用できるブラウザが異なる。違いについては以下の通りである。

DNS over HTTPS(DoH)の対応状況

DNS over HTTPS(DoH)が対応するPC用ブラウザは、Firefox、Google Chrome、Microsoft Edge(Chromium 版)である。ただし、自身でサーバを構築する場合は、Google Chrome、Microsoft Edge(Chromium 版)に関しては正式に発行された証明書がないと利用ができない。
また、DoHはiOSやmacOS、Android(Chrome 85以降)でも利用することができる。

DNS over TLS(DoT)の対応状況

DoTは、PC用の主要なブラウザでは利用することができない。Android 9以降ではDoTがサポートされているが、IIJによる検証では実用的でないと結論付けがされている。

使用するポート番号の違い

DNS over TLS(DoT)は、853/tcpのみが使用される。そのため、853/tcpへの接続が急激に増加した場合は、DoT関連で問題が生じたと判断することができる。DNS over HTTPS(DoH)では、HTTPS通信と同じ443/tcpが使用される。そのため、443/tcpに接続が急増した場合、HTTPS通信の接続が増加した、ということしか判断することができない。

DNS over HTTPS/TLSの安全性について

DNS over HTTPS/TLSは、クライアントとキャッシュDNSサーバ間のDNSクエリを暗号化するための手順である。注意すべきは、完全にアクセス先のホスト名の機密性を、守ることができるわけではないということである。例えばHTTPS通信をする場合、まずブラウザからDNSクエリによりアクセス先のHTTPSサーバのIPアドレス情報を取得する。その後、ブラウザで取得したIPアドレスの情報からHTTPSサーバとHTTPS通信を行う。前者のIPアドレス情報の取得に関しては、DNS over HTTPS/TLSで暗号化を行うことが可能である。しかし、後者のHTTPS通信は平文で行われるため、こちらの通信を傍受されると情報が漏洩する可能性がある。

このような事態を避けるためには、HTTPSプロトコルの改良を行う必要がある。HTTPS通信で、アクセス先ホスト名を含む部分を暗号化するために、TLS Encrypted Client Hello(ECH)というTLS拡張が提案されている。HTTPSサーバとブラウザが両方ともECHに対応することにより、HTTPSのアクセス先ホスト名の機密性が保護される。

DNS over HTTPS/TLSの利用環境について

DNS over HTTPS/TLSを利用する場合、cloudflare1.1.1.1のような公開されているDNSサービスを利用する方法と、自身でサーバを立てて利用する方法がある。ここではそれぞれの利用環境について説明する。

DNSのサービスを利用する場合

cloudflare1.1.1.1のような公開サービスを利用した場合、DNSクエリの情報は、すべてサービス提供元に送られる。そのため、どのような情報が収集されるか、収集した情報は何に利用するのか、ということを利用規約で確認する必要がある。

自身でサーバを構築して利用する場合

自身でDNSサーバを構築して、DNS over HTTPS/TLSを利用する場合、先ほどのような心配は必要ない。自身でDNSサーバを構築することで、DNSクエリのデータを保護することができる。ここでは、自身でDNSサーバを構築するためのコンポーネントの一例としてdnsdistとUnboundを紹介する。

dnsdistとは

dnsdistとは、DNSサービスのプロキシサーバとして動くオープンソースソフトウェアである。オランダのPowerDNS.COMBV社によって開発され、ライセンスはGPL v2で公開されている。dnsdistを使うと、クライアントからの問い合わせ内容に応じてクエリを送信するDNSサーバを振り分けたり、複数のDNSサーバのロードバランサとして動かすことができる。

dnsdistは、DNS over HTTPS/TLSで暗号化されたDNSクエリを仲介し、キャッシュDNSサーバに中継することができる。また、同時にDNSクエリを複数のキャッシュDNSサーバに分散することができる。それにより、1つあたりのキャッシュDNSサーバの負担を軽減することができる。

Unboundとは

Unboundとは、DNSサービスのキャッシュDNSサーバとして動くオープンソースソフトウェアである。オランダのNLnet Labsによって開発されたソフトウェアである。IPv6対応(デュアルスタック)、DNSSECにも対応している。

Unboundとdnsdistを組み合わせることによって、DNS over HTTPS/TLSを利用したキャッシュDNSサーバを構築することができる。これによりDNSクエリの暗号化だけでなく、DNSSECによるDNSクエリの名前解決の結果の改ざんからも、保護することができる。

デージーネットの取り組み

DNS over HTTPS/TLS自体やその周辺の技術は、いまだ発展途上の状態である。デージーネットでは、どのような構成にすることで安全に利用することができるのかを検討している。

インストール方法やその他詳細については「DNS over HTTPS/TLS報告書」に記載している。

【カテゴリ】:DNS  プロトコル  

  • もっと調べる
  • どうやって使う?

【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー

日程: 11月22日(金)Webセミナー「BigBlueButton」を使用します。
内容: OSSを導入したいけど、どこから手をつければいいかわからない方必見!
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

DNS over HTTPS/TLSに関連するページ(事例など)

DNS over HTTPS/TLSとは先頭へ