本页使用了标题或全文手工转换

DNS over HTTPS

维基百科,自由的百科全书
跳到导航 跳到搜索

DNS over HTTPS(缩写:DoH)是一個进行安全化的域名解析方案。其意義在於以加密的HTTPS协议进行DNS解析请求,避免原始DNS协议中用戶的DNS解析請求被竊聽或者修改的问题(例如中間人攻擊)来达到保护用户隐私的目的。[1]GoogleMozilla基金会正在测试此协议,提高网络安全性。[2][3]

目前,該方案由IETF支持,其規範文檔以 RFC 8484 的名義發佈。2018年9月5日发布的Firefox 62正式版加入了这项功能,但需要用户手动开启。[4]

特性[编辑]

DNS over HTTPS利用HTTP協議的GET命令发出經由JSON等編碼的DNS解析請求。[2]較於傳統的DNS協議,此處的HTTP協議通訊處於具有加密作用的SSL/TLS協議(兩者統稱作HTTPS)的保護之下。但是,由於其基於HTTPS,而HTTPS本身需要經由多次數據來回傳遞才能完成協議初始化,其域名解析耗時較原DNS協議會顯著增加。

基于HTTPS的DNS是尚在提议阶段的标准,由IETF以RFC 8484(2018年10月)发布。它使用HTTP / 2HTTPS,并支持有线格式DNS响应数据,如现有UDP响应中所返回的,在具有MIME类型application / dns-message的HTTPS有效负载中。[5][6]如果使用HTTP / 2,服务器也可以使用HTTP / 2服务器推送来发送它预期客户端可能提前发现有用的值。[7]

傳統的DNS協議形成於互聯網早期,直接基於UDPTCP協議,且彼時未慮及現代安全性的需要,未利用密碼學等手段進行加密或驗證。因而,其無法抵禦現代互聯網常見的DNS投毒污染等攻擊手段或監聽。雖然後來的DNSSEC方案通過電子簽名進行驗證,強化了DNS的安全性,並能夠抵禦DNS投毒污染等篡改通訊的手段,但其對於中間網絡設備進行的監聽仍然沒有抵禦能力(隨後,監聽者可以通過獲取的通訊數據知曉用戶訪問了哪一域名,而域名往往與具體的網站相關聯)。此外,DNSSEC的起效要求現有的大量DNS解析服務的提供商(常爲互聯網服務供應商或第三方大型互聯網機構)對已有的DNS服務器進行大範圍修改等問題,其推進進程並不理想。而對於DNS over HTTPS,在正確部署服務端並妥善配置客戶端的前提下,互聯網服務供應商或其它中間網路設備無法解密(亦即無法獲知請求的實際內容)或者篡改已經加密的HTTPS通訊,故其能夠有效保護互聯網使用者的安全及隱私;另一方面,其基於已經成熟並已廣泛部署的HTTPS協議,客戶端進行利用較爲方便。

实施方案[编辑]

DNS over https用于DNS解析器的递归DNS解析。 解析器(DoH客户端)必须能够访问托管查询端点的DoH服务器。[8]基于HTTPS的DNS缺乏操作系统的本机支持。 因此,希望使用它的用户必须安装附加软件。 三种使用场景很常见:

1.在应用程序中使用DoH实现:某些浏览器具有内置的DoH实现,因此可以绕过操作系统的DNS功能来执行查询。 缺点是应用程序可能无法通过错误配置或缺乏对DoH的支持来通知用户是否跳过DoH查询。

2.在本地网络中的名称服务器上安装DoH代理:在此方案中,客户端系统继续使用传统(端口53或853)DNS来查询本地网络中的名称服务器,然后通过到达来通过DoH收集必要的回复 互联网中的DoH服务器。 此方法对最终用户是透明的。

3.在本地系统上安装DoH代理:在此方案中,操作系统配置为查询本地运行的DoH代理。 与前面提到的方法相反,需要在希望使用DoH的每个系统上安装代理,这可能需要在更大的环境中付出很多努力。

4.为操作系统安装DoH解析插件

在所有这些方案中,DoH客户端不直接查询任何权威名称服务器。 相反,客户端依赖于使用传统(端口53或853)查询的DoH服务器来最终到达权威服务器。 因此,DoH不具备端到端加密协议的资格,只有逐跳加密且仅在始终使用DNS over TLS时才有资格。

支持[编辑]

公共DNS[编辑]

DNS over HTTPS 功能已由部分公共DNS支持。[9][10]列表如下:

提供商 网址 协议 屏蔽 功能
Cloudflare https://cloudflare-dns.com/dns-query[11]

https://1.1.1.1/dns-query
https://1.0.0.1/dns-query
https://[2606:4700:4700::1111]/dns-query
https://[2606:4700:4700::1001]/dns-query
https://[2606:4700:4700::64]/dns-query
https://[2606:4700:4700::6464]/dns-query
https://security.cloudflare-dns.com/dns-query
https://family.cloudflare-dns.com/dns-query [12]

IETF草案

惡意軟體
惡意軟體與成人內容
DoH端点[13]
Google Public DNS https://dns.google/dns-query

https://dns.google/resolve[2]
https://[2001:4860:4860::64]/dns-query
https://[2001:4860:4860::6464]/dns-query

Google实验室 DoH端点[14]
台灣網路資訊中心
Quad 101[15]
https://dns.twnic.tw/dns-query[16] 不適用 DoH端点[17]
AdGuard https://dns-unfiltered.adguard.com/dns-query
https://dns.adguard.com/dns-query
https://dns-family.adguard.com/dns-query
不適用
阻擋廣告
廣告與成人内容
DoH端点[18]
阿里巴巴DNS https://223.5.5.5/dns-query

https://223.6.6.6/dns-query
https://[2400:3200::1]/dns-query
https://[2400:3200:baba::1]/dns-query

不適用 DoH端點
QUAD9 DNS[19] https://dns.quad9.net/dns-query

https://dns9.quad9.net/dns-query
https://dns10.quad9.net/dns-query
https://dns11.quad9.net/dns-query

不適用 DoH端點
Open DNS[20] https://doh.opendns.com

https://doh.familyshield.opendns.com

不適用

成人內容

DoH端點

软件[编辑]

  • Argo Tunnel(Cloudflared) — 操作系统支持:Linux/MacOS/Windows[21]
  • Firefox、Chrome、Edge(Chromium版) — 浏览器支持[22]
  • DNSCrypt-proxy — Local DNS → DNS over HTTPS proxy.[23]
  • doh-php-clientPHP 实现。[24]
  • dns-over-httpsGo 實現。[25]
  • 1.1.1.1 (应用程序) — iOS / Android
  • Privacy Pro SmartVPN (應用程式) — iOS
  • AdGuard (應用程式) — iOS (DNS over HTTPS 功能需付費) / Android
    • 由AdGuard公司领导开发的开源的DNS服务器软件AdGuard Home — 操作系统支持:Linux/MacOS/FreeBSD/Windows 可用于在家庭/公司网络中架设DNS服务器以为其他不支持DoH/DoT的设备提供加密DNS服务代理。AdGuard Home在GitHub上的代码库


在 Firefox 62 及以上版本中开启 DNS over HTTPS
  1. 在浏览器地址栏输入 about:config 然后打开,并同意警告信息。
  2. 搜索 network.trr
  3. 设置 network.trr.mode 值为2
  4. 在 network.trr.uri 中填入上表中任一服务器,例如:https://1.1.1.1/dns-query

设置好后,在地址栏输入 about:networking 可以看到具体通信情况[4]


在 Chrome/Chromium版Edge 中开启 DNS over HTTPS
  1. 在浏览器地址栏输入 chrome://flags 然后打开
  2. 搜索 DNS
  3. 设置 Secure DNS lookups 值为 Enabled

操作系统[编辑]

2019年11月17日,一篇在微软官方博客释出的博文宣布,Windows 将支持 DNS over HTTPS(DoH),以加密 DNS 流量保护用户隐私。[26]

参见[编辑]

参考资料[编辑]

  1. ^ Chirgwin, Richard. IETF protects privacy and helps net neutrality with DNS over HTTPS. The Register. 14 Dec 2017 [2018-03-21] (英语). 
  2. ^ 2.0 2.1 2.2   Public DNS | Google Developers. Google Developers. [2018-03-21] (英语). 
  3. ^ Cimpanu, Catalin. Mozilla Is Testing "DNS over HTTPS" Support in Firefox. BleepingComputer. 2018-03-20 [2018-03-21] (美国英语). 
  4. ^ 4.0 4.1 Improving DNS Privacy in Firefox – Firefox Nightly News. Firefox Nightly News. [2018-09-05] (美国英语). 
  5. ^ IETF protects privacy and helps net neutrality with DNS over HTTPS. The Register. 2017-12-14 (英语). 
  6. ^ DNS Queries over HTTPS (DoH) (英语). 
  7. ^ DNS Queries over HTTPS (DoH). 
  8. ^ DNS Queries over HTTPS (DoH). 
  9. ^ DNS over HTTPS Implementations. 2018-04-27 [2018-04-27] (美国英语). 
  10. ^ DNS Security and Privacy. 2018-04-27 [2018-03-27] (美国英语). 
  11. ^ Inc, Cloudflare. Making Requests - Cloudflare Resolver. developers.cloudflare.com. [2019-04-28] (英语). 
  12. ^ https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families/setup-instructions/dns-over-https/.  缺少或|title=为空 (帮助)
  13. ^ Running a DNS over HTTPS - Cloudflare Resolver
  14. ^ Google Public DNS
  15. ^ [https://101.101.101.101/ Quad 101
  16. ^ 101.101.101.101 支援 DoH (Queries over HTTPS)
  17. ^ 101.101.101.101 支援 DoH (Queries over HTTPS)
  18. ^ The official release of AdGuard DNS — a new unique approach to privacy-oriented DNS
  19. ^ https://www.quad9.net/doh-quad9-dns-servers/.  缺少或|title=为空 (帮助)
  20. ^ https://support.opendns.com/hc/en-us/articles/360038086532-Using-DNS-over-HTTPS-DoH-with-OpenDNS.  缺少或|title=为空 (帮助)
  21. ^ Argo Tunnel Documentation - Getting Started. 
  22. ^ Improving DNS Privacy in Firefox. 
  23. ^ DNSCrypt-proxy v2.0. 
  24. ^ DNS over HTTPS PHP Client. 
  25. ^ m13253. m13253/dns-over-https. GitHub. [2018-10-31] (英语). 
  26. ^ tojens. Windows will improve user privacy with DNS over HTTPS. Microsoft Tech Community.