DoHを利用しないように指示するCanary domainの仕組み

DoHはプライバシー向上のための重要な技術です。

一方で、DoHのディスカバリ、アプリケーションに対してのConfiguration方法、ポリシーの適応など、いくつかの課題が議論されています (IETFの資料を参照)。

課題の一つに、DoHの利用が適さないネットワークにおいて、それをどうブラウザ(クライアント)に通知するのかの問題がある。

DoHの利用が適さないネットワーク/ユーザとは

  • ペアレンタルコントロールなど、子供に不適切なサイトへのアクセスを抑制する必要がある場合
  • 会社内など、社内用途でのドメインを利用している場合

現在このようなネットワークでDoH使用を制御する方法は標準化されていませんが、FirefoxではCanary domainという仕組みを用いてこれを実現しています。

Canary domain

Fifrefoxでは、そのネットワークでDoHを使用するか判断するにあたって「use-application-dns.net.」の名前解決を利用します。

実際にアクセスするとMozillaの解説サイトに飛びます。もちろん名前解決もできます。

$ dig @8.8.8.8 use-application-dns.net. +short
63.245.208.212

Firefoxは use-application-dns.netの名前解決をしてDoHを使用するか決めます。
OSに設定されたDNSサーバを利用して、use-application-dns.net. の名前解決し、以下のどちらかの場合はDoHを使用しません。

  • NXDOMAIN(存在しないドメイン)やSERVFAILなど、NOERROR以外のレスポンスコードが返ってきた
  • NOERRORレスポンスコードだが、AやAAAAレコードが含まれない

ネットワーク管理者(社内DNSISPDNS管理者)がuse-application-dns.netの名前解決に対してNXDOMAINを返すようにすることで、ユーザに対してDoHの利用を抑制できるようになります(DoHが無効になる条件は他にもあり、OSのペアレントコントロール設定なども検出します)。

利用状況

NXDOMAINを返す、ISP内のリゾルバの割合です。
f:id:ASnoKaze:20191201160941p:plain
https://www.isi.edu/~hardaker/news/20191120-canary-domain-measuring.html

その他

悪用されない方法で、適切にポリシーを適応する方法は悩ましいなあと思う今日このごろ