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

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]列表如下:

提供商 网址 协议 屏蔽 功能
AdGuard https://dns-unfiltered.adguard.com/dns-query
https://dns.adguard.com/dns-query
https://dns-family.adguard.com/dns-query
不适用
阻挡广告
广告与成人内容
DoH端点[11]
阿里巴巴DNS[12] https://dns.alidns.com/dns-query

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端点
Cloudflare https://cloudflare-dns.com/dns-query[13]

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 [14]

IETF草案

恶意软体
恶意软体与成人内容
DoH端点[15]
DNSPod DNS[16] https://doh.pub/dns-query

https://dns.pub/dns-query
https://dot.pub/dns-query

不适用 DoH端点
Google Public DNS https://dns.google/dns-query

https://dns.google/resolve[2]
https://dns64.dns.google/dns-query
https://dns64.dns.google/resolve?name=ipv4only.arpa&type=AAAA [17]

Google实验室 DoH端点[18]
Open DNS[19] https://doh.opendns.com

https://doh.familyshield.opendns.com

不适用

成人内容

DoH端点
QUAD9 DNS[20] https://dns.quad9.net/dns-query

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

不适用 恶意软体
恶意软体、ECS
DoH端点
台湾网路资讯中心
Quad 101[21]
https://dns.twnic.tw/dns-query[22] 不适用 DoH端点[23]

软件[编辑]

  • Argo Tunnel(Cloudflared) — 操作系统支持:Linux/MacOS/Windows[24]
  • Firefox、Chrome、Edge(Chromium版) — 浏览器支持[25]
  • DNSCrypt-proxy — Local DNS → DNS over HTTPS proxy.[26]
  • doh-php-clientPHP 实现。[27]
  • dns-over-httpsGo 实现。[28]
  • 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 中开启 DNS over HTTPS
  1. 在浏览器地址栏输入 chrome://flags 然后打开
  2. 搜索 DNS
  3. 设置 Secure DNS lookups 值为 Enabled


在Chromium版Edge 中开启 DNS over HTTPS
  1. 在浏览器地址栏输入 edge://settings/privacy 然后打开
  2. 查找“安全性”一栏
  3. 打开“使用安全的 DNS 指定如何查找网站的网络地址”

操作系统[编辑]

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

2020年6月,苹果在WWDC大会宣布 iOS 14 与 macOS 11 新增对加密DNS的支援,包括 DNS over HTTPS(DoH)与 DNS over TLS(DoT)。[30]

参见[编辑]

参考资料[编辑]

  1. ^ Chirgwin, Richard. IETF protects privacy and helps net neutrality with DNS over HTTPS. The Register. 14 Dec 2017 [2018-03-21]. (原始内容存档于2017-12-14) (英语). 
  2. ^ 2.0 2.1 2.2   Public DNS | Google Developers. Google Developers. [2018-03-21]. (原始内容存档于2018-03-20) (英语). 
  3. ^ Cimpanu, Catalin. Mozilla Is Testing "DNS over HTTPS" Support in Firefox. BleepingComputer. 2018-03-20 [2018-03-21]. (原始内容存档于2018-03-20) (美国英语). 
  4. ^ 4.0 4.1 Improving DNS Privacy in Firefox – Firefox Nightly News. Firefox Nightly News. [2018-09-05]. (原始内容存档于2018-09-02) (美国英语). 
  5. ^ IETF protects privacy and helps net neutrality with DNS over HTTPS. The Register. 2017-12-14. (原始内容存档于2017-12-14) (英语). 
  6. ^ DNS Queries over HTTPS (DoH). (原始内容存档于2018-12-12) (英语). 
  7. ^ DNS Queries over HTTPS (DoH). (原始内容存档于2021-04-30). 
  8. ^ DNS Queries over HTTPS (DoH). (原始内容存档于2021-04-30). 
  9. ^ DNS over HTTPS Implementations. 2018-04-27 [2018-04-27]. (原始内容存档于2018-04-02) (美国英语). 
  10. ^ DNS Security and Privacy. 2018-04-27 [2018-03-27]. (原始内容存档于2020-11-09) (美国英语). 
  11. ^ The official release of AdGuard DNS — a new unique approach to privacy-oriented DNS. [2019-11-25]. (原始内容存档于2021-09-16). 
  12. ^ 阿里云公共DNS安全传输服务介绍(DoH/DoT). 阿里DNS. [2021-09-16]. (原始内容存档于2021-05-14). 
  13. ^ Inc, Cloudflare. Making Requests - Cloudflare Resolver. developers.cloudflare.com. [2019-04-28]. (原始内容存档于2021-02-05) (英语). 
  14. ^ 存档副本. [2021-09-16]. (原始内容存档于2021-03-04). 
  15. ^ Running a DNS over HTTPS - Cloudflare Resolver. [2018-06-12]. (原始内容存档于2021-04-14). 
  16. ^ DoH 与 DoT 说明. DNSPod 服务与支持. [2021-09-16]. (原始内容存档于2021-05-12). 
  17. ^ 存档副本. [2021-09-16]. (原始内容存档于2020-12-06). 
  18. ^ Google Public DNS. [2021-09-16]. (原始内容存档于2021-06-06). 
  19. ^ 存档副本. [2021-09-16]. (原始内容存档于2021-03-02). 
  20. ^ 存档副本. [2021-09-16]. (原始内容存档于2021-09-15). 
  21. ^ ([//web.archive.org/web/20210330153455/https://101.101.101.101/ 页面存档备份,存于互联网档案馆) Quad 101
  22. ^ 101.101.101.101 支援 DoH (Queries over HTTPS). [2019-12-06]. (原始内容存档于2020-04-27). 
  23. ^ 101.101.101.101 支援 DoH (Queries over HTTPS). [2019-12-06]. (原始内容存档于2020-04-27). 
  24. ^ Argo Tunnel Documentation - Getting Started. [2018-08-08]. (原始内容存档于2021-01-25). 
  25. ^ Improving DNS Privacy in Firefox. [2018-06-12]. (原始内容存档于2018-09-02). 
  26. ^ DNSCrypt-proxy v2.0. [2018-06-12]. (原始内容存档于2016-01-20). 
  27. ^ DNS over HTTPS PHP Client. [2018-06-12]. (原始内容存档于2020-12-30). 
  28. ^ m13253. m13253/dns-over-https. GitHub. [2018-10-31]. (原始内容存档于2021-02-19) (英语). 
  29. ^ tojens. Windows will improve user privacy with DNS over HTTPS. Microsoft Tech Community. [2019-11-22]. (原始内容存档于2021-04-29). 
  30. ^ 陈晓莉. iOS 14與macOS 11將新增對DoT與DoH的支援. iThome. [2021-09-16]. (原始内容存档于2021-01-18).