DNS over HTTPS

DNS over HTTPS(缩写:DoH)是域名系统的安全协议,以HTTPS协议完成DNS解析来保护网络主机的隐私,能避免传统DNS协议中用戶的DNS解析請求被竊聽或者修改(例如中間人攻擊)的情况。[1]

DoH由IETF支持(见 RFC 8484页面存档备份,存于互联网档案馆))。

GoogleMozilla基金会正在测试此协议,提高网络安全性。[2][3]2018年9月5日,Mozilla基金会发布的Firefox 62正式版加入了这项功能,但需要用户手动开启。[4]

特性

DNS over HTTPS利用HTTP協議的GET命令发出經由JSON等編碼的DNS解析請求。[2]較於傳統的DNS協議,此處的HTTP協議通訊處於具有加密作用的SSL/TLS協議(兩者統稱作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服务器。[7]基于HTTPS的DNS缺乏操作系统的本机支持。因此,希望使用它的用户必须安装附加软件。三种使用场景很常见:

  • 在应用程序中使用DoH实现:某些浏览器具有内置的DoH实现,因此可以绕过操作系统的DNS功能来执行查询。缺点是应用程序可能无法通过错误配置或缺乏对DoH的支持来通知用户是否跳过DoH查询。
  • 在本地网络中的名称服务器上安装DoH代理:在此方案中,客户端系统继续使用传统(端口53或853)DNS来查询本地网络中的名称服务器,然后通过到达来通过DoH收集必要的回复 互联网中的DoH服务器。 此方法对最终用户是透明的。
  • 在本地系统上安装DoH代理:在此方案中,操作系统配置为查询本地运行的DoH代理。与前面提到的方法相反,需要在希望使用DoH的每个系统上安装代理,这可能需要在更大的环境中付出很多努力。
  • 为操作系统安装DoH解析插件。

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

支持

公共DNS

DNS over HTTPS 功能已由部分公共 DNS 支持[8][9][10],包括:

详见公共域名解析服务

软件

Edge、Firefox、Chrome浏览器均支持DoH。

2020年6月,蘋果在WWDC大會宣布 iOS 14 與 macOS 11 新增對加密DNS的支援,包括 DNS over HTTPS(DoH)與 DNS over TLS(DoT)。[11]

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

Windows 11支持DoH。

参考资料

  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 DNS-over-HTTPS  |  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. ^ 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. ^ 7.0 7.1 DNS Queries over HTTPS (DoH). (原始内容存档于2021-04-30). 
  8. ^ DNS over HTTPS Implementations. 2018-04-27 [2018-04-27]. (原始内容存档于2018-04-02) (美国英语). 
  9. ^ DNS Security and Privacy. 2018-04-27 [2018-03-27]. (原始内容存档于2020-11-09) (美国英语). 
  10. ^ AdGuard. Known DNS Providers. AdGuard. (原始内容存档于2022-03-04) (英语). 
  11. ^ 陳曉莉. iOS 14與macOS 11將新增對DoT與DoH的支援. iThome. [2021-09-16]. (原始内容存档于2021-01-18). 
  12. ^ tojens. Windows will improve user privacy with DNS over HTTPS. Microsoft Tech Community. [2019-11-22]. (原始内容存档于2021-04-29).