従来のDNS検索はなぜ見られてしまうのか
一般的なDNS問い合わせは暗号化されていない平文(UDP53番ポート)でやり取りされるため、途中でどのサイトのアドレスを尋ねているかを見られてしまう可能性があります。Webサイトにアクセスする際、ブラウザはまずドメイン名をIPアドレスに変換するためDNSサーバーに問い合わせを送ります。従来のDNSはこの問い合わせと応答を暗号化せずにやり取りするため、同じネットワーク上の別の端末やISPがどのドメインを検索しているか容易に覗き見たり、悪くすれば途中で別のIPアドレスに偽装した応答を送ったりすることも理論上可能です。
DoH(DNS over HTTPS)とは
DoHはDNSの問い合わせ内容を、一般的なWebトラフィックと同じHTTPS(443番ポート)のチャネルに乗せて暗号化して送る方式です。Webサイトへのアクセスにも使われる443番ポートをそのまま使うため、見た目には一般のHTTPSトラフィックと区別しにくいのが特徴です。Chrome、Firefox、Edgeなど主要ブラウザが自体設定でDoHをサポートしており、Cloudflare(1.1.1.1)やGoogle(8.8.8.8)のような公開DNS事業者がDoHエンドポイントを提供しています。
DoT(DNS over TLS)とは
DoTはDoHと同様にTLS暗号化を適用しますが、一般のHTTPSと同じ443番ポートを使わず、DNS専用に指定された853番ポートを使用します。このためネットワーク管理者がDoTのトラフィックだけを別途識別してポリシーを適用しやすいという特徴があります。Androidの「プライベートDNS」設定が代表的なDoT対応の例です。
DoHとDoTの主な違い
両方式ともDNSの問い合わせ内容を暗号化し、盗聴や改ざんを防ぐという目的は同じです。違いは伝送方式にあり、DoHは一般のWebトラフィックに混ざるためネットワーク管理者がDNSトラフィックだけを分けてフィルタリングしたり遮断したりしにくいのに対し、DoTは別のポートを使うため企業や学校のネットワークでポリシーとして許可・遮断しやすくなります。このため企業のIT部門はDoTを、個人のプライバシーを重視するユーザーはDoHを好む傾向があります。
暗号化DNSのメリットと限界
DoH・DoTは「どのドメインを検索したか」を第三者から隠すのには効果的ですが、その後実際にそのサーバーへ接続する際にやり取りされるIPアドレスやSNI(サーバー名表示)情報まで完全に隠してくれるわけではありません。また学校や会社、ルーター自体が特定のサイトを遮断するポリシーを持っている場合、DoHを使う端末はこの遮断を回避してしまうことがあり、ネットワーク管理者にとってはむしろ悩みの種になることもあります。
設定方法
Chromeでは設定 > プライバシーとセキュリティ > セキュリティのメニューで「セキュアDNSを使用する」をオンにし、CloudflareやGoogleなどの事業者を選択できます。Firefoxではネットワーク設定で「DNS over HTTPS」を有効にします。Androidでは設定 > ネットワーク > プライベートDNSのメニューで、DoTに対応したサーバーのホスト名(例:dns.google)を入力すると、端末全体のDNS検索に暗号化が適用されます。