DoT / DoH について

最近よく聞くDoTとDoHについて調べてみました。

DoT / DoH とは?

DoT(DNS over TLS)、DoH(DNS over HTTPS)のことで、どちらもDNS通信の暗号化(プライバシーの保護)を目的に開発されている暗号化DNSプロトコルです。DoT、DoHどちらも基本的な目的は同じですが実装方法が異なっていますのでNW管理者の方は区別して理解しておく必要があります。

暗号化DNS通信の目的

DNS通信は「udp/tcp 53番」を利用して平文でやり取りされます。そのため、例えばカフェなどの無料WiFiを使ってインターネット接続をした場合、DNS通信の盗聴や中間者攻撃を実行される可能性があります。それだけではなく、カフェに設置されたWiFi装置によりDNSの通信記録を取得することも可能ですので、あなたのPCがどのようなサイトにアクセス(するためにDNSの名前解決を)しようとしたのかが分かってしまうことになります。

このような管理されていないネットワーク上でのDNS通信に対するプライバシーを確保する目的で、DNS通信をTLSやHTTPSで暗号化したものが、DoTとDoHです。DoT・DoHを利用することで、クライアントPCと通信先のDNSサーバ(フルリゾルバ)との間で機密性を担保することができるようになります。

DoTの特徴

DoTには、以下のような特徴があります。

  • DNS通信をそのままTLSで暗号化したもの
  • TCP/UDP 853番 ポートを利用

DoTはDNS通信をそのままTLSで暗号化した通信のため、SSL復号を行うことで元のDNSパケットを取り出すことができます。そのため、SSL復号を利用することでDNSセキュリティなどを継続して利用したり、DNSログを取得することが可能です。また、利用するポートが決まっていますので、ネットワーク管理者がDoTの利用状況を確認することができますし、853番ポートをファイアウォールでブロックすることで、ユーザーによるDoTの利用を防ぐことができます。

DoHの特徴

DoHには、以下の特徴があります。

  • DNSクエリをHTTPSでカプセル化したもの
  • HTTPヘッダのContent-Typeに「application/dns-message」が記述される
  • 復号後のデータフォーマットはDNSとは異なる
  • GET/POSTだけでなくAPIの利用も可能
  • TCP 443番 ポートを利用

DoHはDNS通信をHTTPSでカプセル化します。HTTPS上で動作するためフォーマットも既存のDNSとは異なりますので、SSL復号してもDNSセキュリティが利用できない場合があります。(PAシリーズでは、PAN-OS 11.0以降のDNSセキュリティでDoHフォーマットをサポートしています。)

また、DoHは通常のHTTPSと同じポート番号(443)を利用するため、単純に通信ログからDoHが利用されていることを確認するのは困難です。この点でDoTよりも通信制御を行うことが難しいプロトコルです。URLフィルタリング機能を利用してDoHサーバへのアクセスを検出する必要があります。

DoT / DoH をブロックしよう

上記のように、DoT / DoH を利用することでDNS通信を暗号化し管理されていないNW上での盗聴や中間者攻撃を防ぐことが可能です。一方で、社内ネットワークなど管理されたネットワーク上ではどうでしょうか? DoTやDoHを利用されてしまうと、DNSセキュリティなどを利用して危険なドメインの名前解決をおこなった(マルウェア感染の可能性が高い)端末を検知したり、危険なドメインの名前解決をおこなっているDNS通信をフィルタリング(名前解決を阻害することでマルウェアサイトへのアクセスを制限)することができなくなります。このような特徴から攻撃者も積極的に DoT / DoH を利用しているため、特に管理されたネットワークにおいては DoT / DoH のブロックについて検討しておく必要があります。なお、DoT / DoH 通信がブロックされると通常のDNS通信にフォールバックされます。

  1. DoTをブロックする方法
    • TCP/UDP 853ポートをブロックする
  2. DoHをブロックする方法
    • DoHをサポートするPublic DNSサーバへのアクセスをブロックする。
      (URLフィルタリングを利用)

上述のように、利用するポート番号が定義されているDoTをブロックするのは比較的容易ですが、DoHについては通常のHTTPS通信になるのでURLフィルタリング等を利用してブロックする必要があります。なお、これらの暗号化DNS通信が利用可能な主なDNSサーバのリストは以下に公開されています。

Public Resolvers :: dnsprivacy.org

PAシリーズでは、このような暗号化DNSサービスを提供するURLのリストを「Encrypted-DNSカテゴリ」として登録していますので、URLフィルタリングを利用して容易にブロックすることができます。

DNS セキュリティを利用するには?

DoT / DoH をDNSセキュリティで検査するためには、以下のような対策を行う必要があります。

  1. DoT / DoH をブロックしてDNS通信にフォールバックさせた上で、そのDNS通信のチェックを行う
  2. SSL Decryptionを利用してDoT / DoH の復号を行う。(端末にルート証明書のインストールが必要になります)

このように、DoT / DoH が社内ネットワークなどの管理されたネットワーク上で利用する必要があるのかどうかの検討含め、利用状況を把握し適切にコントロールする必要がありますので、今後意識して対応していきましょう。ネットワーク管理者としては、暗号化DNSを利用させないようにしておいた方が管理はしやすいはずです。

FAQ?

なぜ暗号化するのですか?

DoT / DoHは、冒頭に述べたようにカフェや無料WiFiなどのセキュアではないネットワーク上で、通信を暗号化することにより盗聴や中間者攻撃などの攻撃を防ぎ、ユーザーのプライバシーを確保するために開発されたプロトコルです。

RFC 8484 (DNS Queries over HTTPS)
Two primary use cases were considered during this protocol’s development. These use cases are preventing on-path devices from interfering with DNS operations, and also allowing web applications to access DNS information via existing browser APIs in a safe way consistent with Cross Origin Resource Sharing (CORS) [FETCH].

DoT / DoH を使えば安全なのか?

DoT / DoHは、クライアントPC(DNSクライアント)と通信先のDNSサーバ(フルリゾルバ)との間の通信を暗号化します。DoT・DoHで利用するTLSやHTTPSは、通信の機密性(暗号化)、完全性(改ざん検知)、真正性(なりすまし防止)等を提供しますので一見安全そうに見えますが、フルリゾルバと権威DNSサーバ間の通信には関与しませんので注意が必要です。もし、フルリゾルバの情報が改ざんされていた場合、DoT・DoHでそれを検知することはできません。

DNSSEC ではダメなの?

DNSSEC は権威DNSサーバのDNS情報に電子署名を行うことで、DNSの完全性(改ざんされていないこと)を保証するための機能です。通信の暗号化は行いませんので、盗聴に対しては無力です。DoT / DoH とは根本的にスコープが異なりますので、DNSのセキュリティを考える上ではどちらも検討する必要があります。

コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!

タイトルとURLをコピーしました