イベントレポート

Internet Week 2020

利便性の追求で、DNSのリソースレコードの種類が増える ほか

~今年の「DNS DAY」の話題から

DoHやDoTに対する過度な期待は禁物

 プログラム冒頭に行われた「DNS入門」では、JPRSの池田和樹氏による「基本編」に続き、株式会社インターネットイニシアティブ(IIJ)の山口崇徳氏より「DoH/DoTに関する入門と動向編」と題し、DoH(DNS over HTTPS)とDoT(DNS over TLS)に関する話題が提供された。

 DoH/DoTはともに、通信経路での盗聴を防ぐため、通信のトランスポート層で情報を暗号化することにより機密性を保証するものである。しかしながら、DNSトランスポートの暗号化の手段にはTLS/DTLS、QUIC、HTTPSなど複数の提案があり、状況が複雑化しているのが実情だという(図13)。そのため、山口氏は「それらの全てに対応するのは、実装する方も運用する方も利用する方も無理」「いくつかに限定されて生き残ることになるだろう」と述べた。ではどれが、という点が気になるが、山口氏は個人的な感覚と前置きしつつ、「DoTの存在感が最近薄く、フェードアウトしていきそうな雰囲気がある」という見解を述べた。

図13 いくつもあるトランスポート層の暗号化

 では、従来のDNSがDoH/DoTになると何が変わるのであろうか。DoH/DoTで使われるトランスポートは、どちらもTCPである。山口氏は「カミンスキー型攻撃手法が発表されたときですらUDPにこだわったDNS業界なのに」と述べつつ、「DNSの主なトランスポートがUDPからTCPに変わるインパクトは大きい」と述べた。

 ご存知のようにUDPはステートレスであり、通信の際にその状態を持たない[*4]。DNSは主なトランスポートがオーバーヘッドの小さいUDPであったため、誕生した1980年代から現在に至るまで、インターネットを支え続けることができたとも言える。しかし、主なトランスポートがステートフルなTCPになると、通信にかかるオーバーヘッドが大きくなってしまう(かつ、TCP/TLSを使うと、二段構えのハンドシェイクが必要になる)。

 また、DoH/DoTによってトランスポートが暗号化されることで、インシデントや障害が発生した際の調査が困難になることも、運用上の問題となる(図14)。

図14 DoH/DoTで変わること(1)

 ユーザーが行うDNSのやりとりを外部から見えなくするということは、DoH/DoTが目的としているところである。しかし、その一方で、マルウェアによる名前解決や情報の抜き取りの検知も困難になり、DNSフィルタリングやブロッキングもやりづらくなってしまう。このように、DoH/DoTを導入することでセキュリティ上の新たなリスクが発生したり、組織の管理ポリシーをバイパスされたりするなど、不都合な面も出てきてしまうのである(図15)。組織のネットワーク管理者やISP、アプリケーション開発者などは、名前解決におけるトラブルの切り分けやフルサービスリゾルバー(キャッシュDNSサーバー)の選択の問題などで、今後頭を悩ませることになるかもしれない。

図15 DoH/DoTで変わること(2)

 かつ、TCP/TLSはステートフルであるため、IP Anycastと相性が悪いという問題もある。セッションの途中で経路が変わってしまった場合、予想外のトラブルが発生する可能性もある。また、負荷分散に使うロードバランサーなどによる影響も考慮する必要がありそうである。

 一方、DoH/DoTのパフォーマンスについては、「DNSのレイテンシについてはパケットの往復時間が支配的であり、ウェブページのロード時間と合わせてみると、その違いは無視できる程度の差しかない」とのことであった(図16)。

図16 DoH/DoTのパフォーマンス

 ISP網内の通信は外部からの盗聴の危険が少ないため、ISPがユーザーに対してDoH/DoTサービスを提供するメリットは薄い。そのため、現状においてDoH/DoTは、ほぼパブリックDNSサービスを利用する際の専用プロトコルになっていると、山口氏は説明した(図17)。

図17 パブリックDNSとDoH/DoT

 DoH/DoTは主なパブリックDNSサービス/OS/アプリケーションですでに実装が進んでいるが、今後解決しなければならない課題が山積みのようである。また、技術的にも今後標準化が進むフルサービスリゾルバーと権威DNSサーバー間の暗号化、クライアント設定の自動化などは、「全てを厳密にやろうとすると、その標準化と普及にはDNSSEC並の困難が待ち受けているであろう」とのことであった(図18、図19、図20)。

図18 DoH/DoTに欠けているもの(1)
図19 DoH/DoTに欠けているもの(2)
図20 DoH/DoTに欠けているもの(3)

 DoH/DoTはユーザー側のスタブリゾルバーとフルサービスリゾルバー間の機密性を保証するだけで、完全性(データの欠落や改ざんのないこと)を保証するものではなく、過度な期待は禁物であること。また、実質的にパブリックDNSサービスのための専用プロトコルであるという状況がしばらく続きそうであるということは、押さえておいたほうが良さそうである(図21)。

図21 まとめ

[*4]…… UDPは、コネクションレス型と呼ばれる「相手との接続確立を行わずにデータを送信する」プロトコルである。一方のTCPは、コネクション型と呼ばれる「相手との接続を事前に確立し、通信中の状態を保持・確認しつつ必要に応じて到達確認や再送処理を行う」プロトコルである。このため、UDPに比べてTCPは処理が重くなる。