この項目では、インターネットのプロトコルの1つについて説明しています。その他の用法については「DOH 」をご覧ください。
DNS over HTTPS (DoH )は、リモートのDNS 解決をHTTPS プロトコルを用いて実行するためのプロトコルである。
概要
この手法の目的は、プライバシーとセキュリティを向上させ、盗聴を防いだりDNSデータの中間者攻撃 による操作から保護することである[ 1] 。そのために、DoHクライアントとDoHベースのDNSリゾルバ 間のデータをHTTPSプロトコルを使用して暗号化 する。
ただし、この技術(DoH)やDoT(DNS over TLS )による暗号化自体は、The Register (英語版 ) が言うように[ 2] 盗聴、検閲やプライバシーの面で 政府に対抗しうる保護を提供するものではなく 、データを難読化するものである。端末(あるいはスタブリゾルバ、以下同)からDNSリゾルバまでの間の盗聴や中間者攻撃からの保護には効果がある[ 3] 。
ある端末からのDNSクエリ全体のプライバシー確保は、DNSフルリゾルバのポリシーおよび権威サーバとの通信形態に依存する[ 3] 。
DoH/DoTとDNSSEC は競合しない。DNSSECはリゾルバや権威サーバ間のドメイン登録情報のやり取りに電子署名を付加して完全性を担保するものであり、当該登録情報のやり取り自体は平文 である。EDNS Client Subnet (英語版)ではロードバランス 目的のために、フルリゾルバは端末からのクエリのIPアドレスのサブネットを権威サーバに渡す場合があり、その場合、フルリゾルバと権威サーバの間との間で、端末のサブネットとクエリドメインの組み合わせ情報が、平文で通信される[ 3] 。フルリゾルバと権威サーバ間の通信も暗号化するものはDNSCurve によって実装される。
技術
DoHは、RFC 8484 (October 2018)としてIETF が公開した提案段階 (Proposed Standard; 2021年1月時点 )の標準である。
DoHでは、HTTP/2 とHTTPS を使用し、既存のUDPレスポンスではwire format のDNS responseデータをサポートし、HTTPSペイロードではMIMEタイプ のapplication/dns-message を使用する[ 1] [ 4] 。HTTP/2を使用した場合、サーバーはHTTP/2 server push (英語版 ) を利用することで、クライアントに通知しておくと役に立つと予想されるデータを事前に送ることが可能になる[ 5] 。
前述のようにDoHは策定中の標準であるため、様々な企業がそれをもとに実験を行っており[ 6] [ 7] 、IETFは、まだどのような実装が最善であるかは最終的に決定していない。IETFはDoHの最適なデプロイ 方法について様々なアプローチを評価中であり、Applications Doing DNS (ADD) というワーキンググループを立ち上げて必要な作業とコンセンサスの構築に取り組んでいる。その他に、Encrypted DNS Deployment Initiative という企業によるワーキンググループも立ち上がっており、その目的は「インターネットの重要なネームスペースと名前解決サービスの高性能、回復性、安定性、セキュリティを確保し、DNSに依存するセキュリティ保護やペアレントコントロールなどのサービスを損なわないように提供できるように、DNS暗号化技術を定義・適用すること」であると述べられている[ 8] 。
DoHを適切にデプロイする方法には多くの課題があり、インターネットコミュニティにより解決が試みられている。課題には以下のものが含まれるが、これがすべてではない。
Oblivious DNS-over-HTTPS
Oblivious DNS-over-HTTPSは、すべてのリクエストをプロキシ経由で行うことでクライアントのアドレスを削除することにより、どのクライアントがどのようなドメイン名をリクエストしたのかをDoHのresolverから隠蔽しようとするDoHの拡張である。すべての接続はレイヤー内で暗号化されるため、プロキシはクエリの内容とレスポンスを知ることができず、クライアントのアドレスもわからないようになっている[ 9] 。
デプロイのシナリオ
DoHはDNSリゾルバ による再帰的なDNS解決に使用される。リゾルバ(DoHクライアント )はクエリエンドポイントをホストするDoHサーバーへアクセスできる必要がある[ 5] 。
2020年現在[update] 、DoHにはオペレーティングシステム (OS) のネイティブサポートが少ないため、ユーザーは追加のソフトウェアのインストールが必要となる場合がある。次の3つの使用方法が一般的である。
アプリケーション内に含まれるDoHの実装を使用する。
ローカルネットワークのネームサーバーにDoHプロキシをインストールする。
クライアントシステムは従来のDNS[ 注 3] を使用してローカルネットワークのネームサーバーにクエリを送り、ネームサーバーは、レスポンスに必要な情報をインターネット上のDoHサーバーへDoHを使用してアクセスし取得する。この手法はエンドユーザーに対して透過的である。欠点は、サーバ構築管理が容易でないこと、ブロードバンドルータ 等への実装が普及しない事などである。
ローカルシステムにDoHプロキシをインストールする。
OSをローカルで動作するDoHプロキシにクエリを送るように設定する。1つ前の手法と比べると、DoHを使用したいすべてのシステムにインストールする必要があり、大規模な環境では多くの作業が必要になる可能性がある。
DoHリゾルバプラグインをOSにインストールする。
前者と同様に、DoHリゾルバプラグインをOSに組み込んで設定する。OS側がそのようなプラグインのインストールに対応している必要がある。DoHを使用したいすべてのシステムにインストールする必要があるのも前者と同様。
これらすべてのシナリオにおいて、DoHクライアントは権威ネームサーバー に対していかなるクエリも直接行わない。その代わりに、DoHサーバーは従来のポートを使用したクエリを発行し、最終的に権威サーバーに到達する。そのため、DoHはエンドツーエンド暗号化 プロトコルではなく、ホップ間の暗号化を行うもので、DNS over TLS が一貫して使用された場合に限られる。
実装
OSのサポート
2019年11月、Microsoftは、Microsoft Windows でDoHを始めとするencrypted DNSプロトコルをサポートする実装を行う計画を発表し[ 10] 、2021年にWindows 11 にDoHのサポートを追加した。
Android 9 以降でDoT に対応している が、DoHには 最新バージョン(2020年時点)でも対応していない 。このDoT仕様では、DHCP配布その他の既定DNSサーバに対しDoTで接続を試み、失敗すれば従来のDNSクエリにフォールバックするというモードがデフォルトである[ 注 4] 。なお、Android 9ではVPN 接続に対してDoTの設定が適用されないバグがあり、これはAndroid 10で修正されている[ 11] 。
少なくともiOS 14 、macOS Big Sur 以降でDoH/DoT をサポートしている。
クライアントのサポート
提供サービス
DNS over HTTPS (DoH) サーバーの実装は、いくつかのパブリックDNSサービスプロバイダ (英語版 ) から無料で利用できるようになっている[ 29] 。また、多くのパブリックDNSサービスでは、DoHサービスと並行してDoT サービスも提供している。
例えばGoogle Chrome は Version 78からDoH対応しているが、Version 87.0では、Google Public DNS 、OpenDNS 、Cloundflare、CleanBrowsing (英語版 ) 、IIJ Public DNS[ 注 5] がプリセットドメインとなっている(他のDoHサービスも利用できる)。
冒頭に述べたとおり、ある端末からのDNSクエリ全体のプライバシー確保は、DNSフルリゾルバを提供するパブリックDNSサービスのプライバシーポリシー等に大きく依存する[ 3] 。
諸問題ほか
サポート面
現状(2020年現在)まで、DoHの有効化設定にはOSやクライアントでユーザが積極的にインストールや設定をする必要があり[ 注 6] 、DHCP /DHCPv6 などによる端末側自動設定などの仕組みは標準化されていない。
何が改善されうるのか
セキュリティの向上に加えて、性能の向上もDNS over HTTPSの目的の1つであると言われる[ 30] 。しかし、これはDoHに本質的なものではなく、むしろプロトコル・オーバヘッド自体は従来のDNSクエリよりも暗号化やhttpsセッション管理の分、悪化しうる。性能の向上というのは、現状の選択肢の上ではサービス利用上の前提となるパブリックDNSサーバー (英語版 ) の利用に伴うものが主張されている[ 30] 。ISPが提供するDNSリゾルバ は(貧弱なものでは)75パーセンタイルで181ミリ秒掛かっているという調査があり、遅いため、1つのウェブページで10以上の名前解決が必要とされる今日では、ユーザのウェブ体験におけるレスポンスが悪化する場合があり、問題となっている[ 30] 。パブリックDNSサーバーではそのような点において、ISP提供のDNSサーバのそれと比較した速度・レスポンスの改善に訴求点を置いていた。
しかし、中間者攻撃などによるDNSスプーフィング やドメイン名ハイジャック等の諸攻撃の脅威が現実味を帯びた2000年代後半以降は、レスポンス性能は重要な訴求では無くなった。例えば、ISPのDNSサービスに直接、従来のDNSクエリを投げる場合と比べて、パブリックDNSサーバー (英語版 ) へ直接、従来のDNSクエリを投げる場合には、ISP事業者外のネットワークを平文で通過するため、そのクエリ自体に中間者攻撃などに遭うリスクが増加する。よって、何らかの理由によりパブリックDNSサーバーを利用するのであれば、DoH/DoTを使用した方がセキュリティ上は望ましい と考えられる[ 3] [ 注 7] 。
ISPのDNSサービスの品質が相当悪くない限り(そしてそれは国やISP事業者にもよるが少ない)、ネットワークホップ数 上、近くにあるISPのDNSサーバーの方が。概ねホップ数の多いパブリックDNSサーバーよりも有利である事が多い。これは、そのパブリックDNSサービスプロバイダ (英語版 ) のロードバランス 方針およびユーザと実リゾルバ間のネットワーク上の距離 に依存する(なお、ISPのDNSサーバーもロードバランス方針については同じ立場にある)。
公衆Wi-Fi その他ネットワーク層 レベルで信頼性の低いもの[ 注 8] を利用するケースなど[ 注 9] 、盗聴やなりすましのリスクが常にある環境においては、従来のDNSクエリ方式では平文でやり取りされるため、中間者攻撃などに遭うリスクが増加する事になる。あるいは、接続先のネットワークでデフォルト提供されるDNSリゾルバに信頼性その他問題がある場合もある。これらの場合もDoH/DoTを使用した方がセキュリティ上は望ましい場合がある[ 3] [ 注 10] 。
ポリシーと批判
DoHは、IPアドレスやServer Name Indication (SNI)などの、HTTPSリクエストの暗号化されていない部分からまだ取得できる情報だけを暗号化していることから、誤った意味のセキュリティを提供するものであると主張されてきた[ 31] [ 32] 。
また、現在のウェブブラウザのDoHの実装はサードパーティのDNSプロバイダに依存しているため、DNSの非中央集権的な性質とは逆であり、プライバシーの問題がある。OpenBSD は、FirefoxのビルドでCloudflare のサービスがデフォルトで使われているという理由で、DoHをデフォルトで無効化した[ 33] 。
Google Chromeでは、ユーザーが選んだDNSプロバイダがDoHをサポートしている場合にのみDoHを使用するが、アメリカのISPからは、ユーザーにGoogle Public DNS サービスの使用を強制することになると非難された[ 34] [ 35] 。
セキュリティ面
DoHは、サイバーセキュリティのために実施されているDNSトラフィックの解析や監視から逃れて隠れる手段を提供する。2019年、DDoS ワームのGodulaは、command-and-controlサーバーへの接続を隠すためにDoHを利用した[ 32] 。DoHは、コンテンツフィルタリングソフトウェア やエンタープライズのDNSポリシーに対するバイパスとなる可能性が論じられている。
コンテンツのフィルタリング政策面
イギリスのISPを代表する業界団体のInternet Watch Foundation (英語版 ) とInternet Service Providers Association (英語版 ) (ISPA)は、広く使われているFirefox ウェブブラウザ を開発しているMozilla とGoogle に対して、DoHのサポートにより、ISPデフォルトの成人向けコンテンツのフィルタリングや裁判所の命令による著作権侵害サイトの強制フィルタリングなどのイギリスのウェブブロッキング (英語版 ) プログラムが弱体化してしまう恐れがあると非難した。ISPAは2019年にMozillaに「インターネットの敵(Internet Villain)」賞を(EUのデジタル単一市場における著作権に関する指令 とDonald Trump とともに)与えた。受賞理由は「イギリスのフィルタリングの義務とペアレンタル・コントロールをバイパスするDNS-over-HTTPSの導入により、イギリスのインターネットの安全基準を劣化させた」というものである。MozillaはISPAの主張に対して、DoHはフィルタリングを妨げるものではなく、「ISPの業界団体が、数十年前の古くなったインターネットインフラの改善に対して誤った判断をしていることに驚き、残念に思う」と述べた[ 36] [ 37] 。この批判に対してISPAは謝罪し、ノミネートを取り下げた[ 38] [ 39] 。Mozillaはその後、関連するステークホルダーとの十分な議論が行われるまではイギリスではDoHを使用しないようにすると発表したが、「イギリスにも現実のセキュリティ上の恩恵を提供できるはずだ」と述べている[ 40] 。
プライバシー追跡面
従来のDNSクエリの場合、DNSリゾルバ側からは、スタブリゾルバ(多くの場合、組織内のルーター)のIPアドレス以外は見えないため、実際のクエリをリクエストした端末やユーザを固有追跡する事は困難であった(IPv6 でも、端末側で一時アドレスを利用すれば、ネットワークアドレス以外の追跡は困難である)[ 3] 。
しかしDoH/DoT においては、HTTPSによりTLS セッションが維持され続けるため、DNSリゾルバ側から端末単位でクエリの追跡が原理上可能となる。さらにTLSの仕様上、IPアドレス(ネットワーク上の場所)に変化があっても同一のTLSセッションを再開できるため、端末単位の追跡が容易となる[ 3] 。
また、DoH/DoTセッションでクライアント(例えばWebブラウザ )側が渡す user-agent ヘッダその他の情報もユーザ追跡上重要な情報となり得る。さらにDoHセッション毎にcookie の設定も理論上は可能である(実装上は不明)[ 3] 。
以上の問題は、ユーザ側とDNSフルリゾルバ(現状ではサービス利用上選択肢前提となるパブリックDNSサーバー (英語版 ) )間の、クエリに関するデータ利用・プライバシーポリシーに完全に依存する[ 3] 。
関連項目
脚注
注釈
^ むしろ名前解決はネットワークアプリケーションの主要な動機の1つであり、OSはその手段の1つをAPIとして提供しているに過ぎない。この場合は、アプリケーションが自発的にDoHに接続するものであり、OS内部で何らかのバイパス機構を組み入れる訳ではない。
^ なお、DoH/DoTへの接続設定に関し、ホスト名またはホスト名を含むURLが指定される場合が多いが、その場合、DoH/DoTサーバーへの接続にはOS経由の名前解決が必須となる。
^ ここでは、OSによる名前解決という意味である。OSによって従来のDNSクエリ(ポート53/DNS)、あるいはOSが対応していればポート853/DoTによる。さらにここでは、そのOSによる名前解決のリゾルバにローカルネットワークのネームサーバーを指定する前提である。
^ 他に従来のDNSクエリモード、あるいは指定されたDoT対応DNSサーバへのDoTクエリ専用モード(この場合接続できないと名前解決失敗となる)がある。
^ IIJではあくまでも試験的サービスという位置づけである(開始 - 2021年1月現在)。
^ ただし、Android 9以降では、DoTが自動設定されている。また、Google ChromeでもセキュアDNSがデフォルトONとなっている。ただし、これらの設定で具体的にどのDoH/DoTサーバに接続を試み、または従来のDNSクエリにフォールバックするのかは明らかになっていない。
^ なお、DoH/DoTへの接続設定に関し、ホスト名またはホスト名を含むURLが指定される場合が多いが、その場合、DoH/DoTサーバーへの接続にはOS経由の名前解決が必須となる。そのため、設定や環境によっては、DoH/DoTサーバーの名前解決に対する中間者攻撃のリスクが残ったり、それ自体にDNSブロッキングが掛かる場合がある(従来のDNSクエリ方式では、DNSサーバのIPアドレスを直接設定する)。
^ 他には、宿泊施設/集合住宅等提供/ゲスト借用のWi-Fiアクセスポイント経由、あるいは宿泊施設/集合住宅等提供の有線LAN経由インターネット、さらには十分に保護されていないFTTx (FTTB)その他の共用インターネット施設サービスが想定される。なお、ユーザ個宅まで直接光ケーブルを引き込むFTTH (FTTP)では、光ファイバー経路上は通常暗号化されており、このような問題は無い。
^ なお、モバイルネットワーク経由の場合は、通常のモバイル事業者(ISP)であれば、適切に当該ISPのDNSサーバーにクエリするよう設定されるため、この問題は無い。
^ なお、DoH/DoTへの接続設定に関し、ホスト名またはホスト名を含むURLが指定される場合が多いが、その場合、DoH/DoTサーバーへの接続にはOS経由の名前解決が必須となる。よって、設定や環境によっては、DoH/DoTサーバーの名前解決に対する中間者攻撃のリスクが残ったり、それ自体にDNSブロッキングが掛かる場合がある(従来のDNSクエリ方式では、DNSサーバのIPアドレスを直接設定する)。
出典
^ a b Chirgwin, Richard (14 Dec 2017). “IETF protects privacy and helps net neutrality with DNS over HTTPS” (英語). https://www.theregister.co.uk/2017/12/14/protecting_dns_privacy/ 2018年3月21日 閲覧。
^ Chirgwin, Richard. “IETF protects privacy and helps net neutrality with DNS over HTTPS ” (英語). www.theregister.com . 2021年1月20日 閲覧。
^ a b c d e f g h i j 山口崇徳 (2020). “public DNSとプライバシー”. JANOG45 meeting .
^ Hoffman. “RFC 8484 - DNS Queries over HTTPS ” (英語). datatracker.ietf.org . 2018年5月20日 閲覧。
^ a b Hoffman. “draft-ietf-doh-dns-over-https-08 - DNS Queries over HTTPS ” (英語). datatracker.ietf.org . 2018年5月20日 閲覧。
^ “Experimenting with same-provider DNS-over-HTTPS upgrade ” (英語). Chromium Blog . 2019年9月13日 閲覧。
^ Deckelmann. “What's next in making Encrypted DNS-over-HTTPS the Default ” (英語). Future Releases . 2019年9月13日 閲覧。
^ “About ” (英語). Encrypted DNS Deployment Initiative . 2019年9月13日 閲覧。
^ Lovejoy, Ben (2020年12月8日). “Apple and Cloudflare team up to protect your web privacy ” (英語). 9to5Mac . 2020年12月9日 閲覧。
^ Gallagher (2019年11月19日). “Microsoft says yes to future encrypted DNS requests in Windows ” (英語). Ars Technica . 2019年11月20日 閲覧。
^ “Get Started | Public DNS ” (英語). Google Developers . 2021年1月25日 閲覧。
^ Brinkmann, Martin (2019年3月21日). “AdGuard 3.0 for Android: Redesign, Stealth Mode, Custom Filter Lists” . Ghacks Technology News. https://www.ghacks.net/2019/03/21/adguard-3-0-for-android-redesign-stealth-mode-custom-filter-lists/ 2019年8月2日 閲覧。
^ Orr, Andrew (2019年7月13日). “AdGuard 3 Brings DNS Privacy, 250,000 Filter Rules, Premium Features” . The Mac Observer, Inc.. https://www.macobserver.com/cool-stuff-found/adguard-3-update/ 2019年8月2日 閲覧。
^ Davenport, Corbin (2018年12月29日). “AdGuard officially releases its own DNS service, and it works with Android Pie” . Android Police (Illogical Robot LLC). https://www.androidpolice.com/2018/12/29/adguard-officially-releases-its-own-dns-service-and-it-works-with-android-pie/ 2019年8月1日 閲覧。
^ Cimpanu. “Cloudflare launches Android and iOS apps for its 1.1.1.1 service ” (英語). ZDNet . 2018年12月13日 閲覧。
^ “DNS over HTTPS ”. Argo Tunnel . Cloudflare. 20 July 2019 閲覧。
^ “DoH in curl ”. 2019年12月7日 閲覧。
^ “DNSCrypt-proxy v2.0 ” (2019年8月5日). 2019年12月7日 閲覧。
^ “DNSP ” (2019年7月22日). 2019年12月7日 閲覧。
^ “DNS over HTTPS PHP Client ” (2019年8月3日). 2019年12月7日 閲覧。
^ “Trusted Recursive Resolver ” (html). Mozilla (2019年9月15日). 2019年9月12日時点のオリジナル よりアーカイブ。2019年9月15日 閲覧。 “All preferences for the DNS-over-HTTPS functionality in Firefox are located under the `network.trr` prefix (TRR == Trusted Recursive Resolver). The support for these were added in Firefox 62.”
^ “Improving DNS Privacy in Firefox ”. 2019年12月7日 閲覧。
^ “Go DoH Proxy Server ”. 2019年12月7日 閲覧。
^ “Intra on Play Store ”. 2019年12月7日 閲覧。
^ “GitHub - dimkr/NSS-TLS: A DNS over HTTPS resolver for glibc. ” (2019年8月2日). 2019年12月7日 閲覧。
^ “DNS over HTTPS C# Client ” (2019年7月18日). 2019年12月7日 閲覧。
^ “nextdns ”. www.nextdns.io . 2019年7月13日 閲覧。
^ “Nebulo - DNS over HTTPS/TLS - Apps on Google Play ”. 2019年12月7日 閲覧。
^ “DNS over HTTPS Implementations ” (英語) (2018年4月27日). 2018年4月27日 閲覧。
^ a b c Chirgwin, Richard (14 Dec 2017). “IETF protects privacy and helps net neutrality with DNS over HTTPS” (英語). https://www.theregister.co.uk/2017/12/14/protecting_dns_privacy/ 2018年3月21日 閲覧。
^ “A Controversial Plan to Encrypt More of the Internet” (英語). Wired . ISSN 1059-1028 . https://www.wired.com/story/dns-over-https-encrypted-web/ 2019年11月19日 閲覧。
^ a b Cimpanu. “DNS-over-HTTPS causes more problems than it solves, experts say ” (英語). ZDNet . 2019年11月19日 閲覧。
^ “Google Unveils DNS-over-HTTPS (DoH) Plan, Mozilla's Faces Criticism ” (英語). BleepingComputer . 2019年9月14日 閲覧。
^ Tung. “DNS over HTTPS: Google hits back at 'misinformation and confusion' over its plans ” (英語). ZDNet . 2019年11月19日 閲覧。
^ Lee (2019年9月30日). “Why big ISPs aren’t happy about Google’s plans for encrypted DNS ” (英語). Ars Technica . 2019年11月19日 閲覧。
^ Cimpanu. “UK ISP group names Mozilla 'Internet Villain' for supporting 'DNS-over-HTTPS' ” (英語). ZDNet . 2019年7月5日 閲覧。
^ “Internet group brands Mozilla 'internet villain' for supporting DNS privacy feature ” (英語). TechCrunch . 2019年7月19日 閲覧。
^ “British ISPs fight to make the web LESS secure ” (英語). IT PRO . 2019年9月14日 閲覧。
^ Patrawala (2019年7月11日). “ISPA nominated Mozilla in the “Internet Villain” category for DNS over HTTPs push, withdrew nominations and category after community backlash ” (英語). Packt Hub . 2019年9月14日 閲覧。
^ Hern, Alex (2019年9月24日). “Firefox: 'no UK plans' to make encrypted browser tool its default” (英語). The Guardian . ISSN 0261-3077 . https://www.theguardian.com/technology/2019/sep/24/firefox-no-uk-plans-to-make-encrypted-browser-tool-its-default 2019年9月29日 閲覧。
外部リンク