DNS-over-TLS

はじめに

従来の DNS クエリとレスポンスは、暗号化されることなく UDP または TCP で送信されます。これは、盗聴やなりすまし(DNS ベースのインターネット フィルタリングなど)に対して脆弱です。再帰リゾルバからクライアントへのレスポンスは、望ましくない変更や悪意のある変更に最も脆弱ですが、再帰リゾルバと権威ネームサーバーとの間の通信には、多くの場合追加の保護機能が組み込まれています。

Google Public DNS はこれらの問題に対処するために、RFC 7858 で指定されている TLS 暗号化 TCP 接続での DNS 解決を提供しています。DNS-over-TLS は、クライアントとリゾルバの間のプライバシーとセキュリティを向上させます。これにより DNSSEC が補完され、DNSSEC 検証の結果は、クライアントへの送信中の改ざんやなりすましから保護されます。

仕組み

クライアント システムでは、2 つのプロファイル厳格なプライバシーまたは日和見のプライバシー)のいずれかで DNS-over-TLS を使用できます。厳格なプライバシー プロファイルを使用して、ユーザーが DNS-over-TLS サービスの DNS サーバー名(RFC 8310認証ドメイン名)を構成し、クライアントが DNS サーバーへのポート 853 での安全な TLS 接続を作成できるようにする必要があります。安全な接続の確立に失敗すると、ハードエラーとなり、クライアントで DNS サービスが実行されなくなります。

追従型プライバシー プロファイルでは、DNS サーバーの IP アドレスは、ユーザーが直接構成することも、DHCP やその他の方法でローカル ネットワークから取得することもできます。クライアント リゾルバは、ポート 853 で指定された DNS サーバーとの安全な接続を確立しようとします。安全な接続が確立されると、パス上のパッシブなオブザーバーからのユーザーのプライバシーが保護されます。クライアントはサーバーの信頼性を検証しないため、アクティブな攻撃から保護されていません。クライアントがポート 853 で安全な接続を確立できない場合は、セキュリティまたはプライバシーを考慮せずに、UDP または TCP を介して標準 DNS ポート 53 の DNS サーバーと通信します。追従型プライバシーの使用は、厳格なプライバシー プロファイルの普及を目的として、プライバシー保護の強化を段階的にデプロイすることを目的としています。

厳格なプライバシー プロファイルを使用する場合、スタブ リゾルバは次の手順で DNS-over-TLS 接続を確立します。

  1. スタブ リゾルバは、DNS-over-TLS リゾルバ dns.google を使用して構成されます。
  2. スタブ リゾルバは、ローカル DNS リゾルバを使用して dns.google の IP アドレスを取得します。
  3. スタブ リゾルバは、これらの IP アドレスのポート 853 に TCP 接続を行います。
  4. スタブ リゾルバは、Google Public DNS リゾルバと TLS handshake を開始します。
  5. Google Public DNS サーバーは、TLS 証明書と、信頼できるルート証明書までの TLS 証明書のフルチェーンを返します。
  6. スタブ リゾルバは、提示された証明書に基づいてサーバーの ID を検証します。
    • ID を検証できない場合、DNS 名前の解決に失敗し、スタブ リゾルバがエラーを返します。
  7. TLS 接続が確立されると、スタブ リゾルバは Google Public DNS サーバーへの安全な通信パスを確立します。
  8. これで、スタブ リゾルバが接続を介して DNS クエリを送信し、レスポンスを受信できるようになりました。

追従型プライバシー プロファイルを使用する場合、クライアントは最初にサーバーへの安全な TLS 接続を作成しようとします。これは上記と同様に行われますが、重要な違いが 1 つあります。クライアントが証明書の検証を行いません。つまり、サーバーの ID は信頼できません。ポート 853 でのサーバーへの TLS 接続を確立できない場合、スタブ リゾルバはポート 53 で DNS サーバーと通信するようにフォールバックします。

プライバシー

DNS-over-TLS サービスには、Google のプライバシー ポリシーが適用されます。

2019 年 6 月 27 日に、DNS-over-TLS サービスで EDNS クライアント サブネット(ECS)が再度有効になりました。ECS はサービスの開始時に無効化されました。

標準サポート

Google Public DNS は RFC 7858 に基づいて DNS-over-TLS を実装しています。 高品質で低レイテンシの DNS サービスを提供するために、次の推奨事項もサポートされています。

使ってみる

Android 9(Pie)以降を搭載したデバイスで構成する方法については、手順をご覧ください。

DNS-over-TLS は、IPv6 のみの Google Public DNS64 サービスでもサポートされています。DNS64 は IPv6 が使用可能な場合にのみ機能するため、複数のネットワークに接続するモバイル デバイスの DNS64 の構成はおすすめしません。