DNS over HTTPS 【DoH】
DNS(Domain Name System)はインターネット上のドメイン名とIPアドレスを対応付けるシステムで、DNSクライアントからDNSサーバへ問い合わせを送り、DNSサーバが応答を返すための通信手順やデータ形式などの仕様を定義している。
TLS(Transport Layer Security)はかつてSSL(Secure Socket Layer)と呼ばれていた暗号通信のための標準規格の一つで、個別の(アプリケーション層の)プロトコルに暗号化の仕様を追加しなくても伝送路を丸ごと暗号化することができる。Webコンテンツの伝送に用いるHTTP(Hypertext Transport Protocol)と組み合わせたものを「HTTPS」(HTTP over SSL/TLS)という。
DNS over HTTPSはこの二つを組み合わせ、DNSによる問い合わせや応答などのやり取りをHTTPメッセージに格納し、TLSにより暗号化された伝送路によってサーバ、クライアント間を運搬する。DNSサーバは簡易なWebサーバとして、DNSクライアントはWebクライアントとして振る舞い、DNSメッセージをHTTPリクエストやHTTPレスポンスとして送受信する。
通常のDNSはUDPの53番ポートを使用するが、DNS over HTTPSは通常のHTTPS通信と同様、TCPの443番ポートを使用する。標準仕様はIETFによって2018年にRFC 8484として提案されており、詳細をめぐって議論が続いている。
HTTPを介さず、DNS通信を直にTLSで暗号化する規格もあり、TCP版は「DNS over TLS」(DoT)、UDP版は「DNS over DTLS)という。こちらは専用のポート番号(853番)で通信するが、DoHはWebサーバがHTTPS通信に使う443番ポートを使用するため、ポート番号だけでは他のWeb通信と区別がつかない点に留意する必要がある。