DNSは何をしているのか
DNS(Domain Name System)は、たとえば「example.com」のようなドメイン名を、実際に通信で使われるIPアドレスへ変換する仕組みです。人は名前でサービスを探しますが、ネットワークは基本的に数値の住所で到達先を決めます。DNSがこの橋渡しを担うため、Web閲覧やアプリの接続において、まず最初にDNSの問い合わせ(クエリ)が発生することがよくあります。
この段階で何が起きるかが、オンラインセキュリティや匿名性の「前提」になります。たとえば攻撃者がDNSのクエリを観測できると、どの名前へアクセスしようとしているかが推測される場合があります。また、DNSの応答が正しく検証されない構成だと、なりすまし等の影響を受ける可能性がゼロではありません。
仕組みを簡単なモデルで捉える
大まかには、次の流れで考えると整理しやすいです。
- クライアント(端末)が「あるドメイン名」を必要とします。
- クライアントがDNSサーバに問い合わせを送ります。
- DNSサーバがIPアドレス情報を返します。
- 端末はそのIPへ接続します。
ここで重要なのは「DNS問い合わせがどこへ送られるか」「そのDNSがどのように保護されているか」です。DNS問い合わせが暗号化されていない経路を通ると、経路上で観測される余地が増えます。逆に、DNS問い合わせ自体が適切に保護されていれば、少なくとも中間での観測リスクは下がります。ただし、どの方式が有効かは端末・アプリ・ネットワーク構成に依存します。
オンラインセキュリティと匿名性に関係する制限
DNSが匿名性に影響するのは、主に「アクセスしようとした名前(クエリ)がどの主体に見えるか」に関係します。匿名性を高めたい場合、暗号化された通信(HTTPSなど)だけを見て安心してしまうと不十分なことがあります。HTTPS以前の段階でDNSクエリが外部に出る可能性があるためです。
また、次のような制限があります。
- DNSの問い合わせ先が意図せず変わる可能性 端末やソフトの設定、ネットワーク環境、経路によって、DNS問い合わせが別の経路やサーバに向かうことがあります。
- DNSの保護方式が一貫していない可能性 一部の場面では保護され、別の場面では保護されない、という不整合が起きる場合があります。
- 「匿名性=完全」にはならない DNSだけでなく、通信の他の要素(接続先、タイミング、端末情報など)も匿名性に影響し得ます。DNSは鍵の一つですが、万能ではありません。
DNSリークとは何か
DNSリークは、想定している経路(たとえば特定のトンネルや保護された経路)ではなく、別の経路へDNS問い合わせが流れてしまう状態を指して語られることがあります。
