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

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
IETF草案 DoH 端点[12]
Google Public DNS https://dns.google.com/resolve[2] Google实验室 DoH 端点[13]
CleanBrowsing 185.228.168.168
185.228.168.169
2a0d:2a00:1::
2a0d:2a00:2::
不適用 成人内容 DoH端点[14]

软件[编辑]

  • Argo Tunnel(Cloudflared) — 操作系统支持:Linux/MacOS/Windows[15]
  • Firefox — 浏览器支持[16]
  • DNSCrypt-proxy — Local DNS → DNS over HTTPS proxy.[17]
  • doh-php-clientPHP 实现。[18]
  • dns-over-httpsGo 實現。[19]
  • 1.1.1.1(应用程序) — 操作系统支持 iOS / Android
在 Firefox 62 及以上版本中开启 DNS over HTTPS
  1. 在浏览器地址栏输入 about:config 然后打开,并同意警告信息。
  2. 搜索 network.trr
  3. 设置 network.trr.mode 值为2
  4. 在 network.trr.uri 中填入服务器:https://mozilla.cloudflare-dns.com/dns-query

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

参见[编辑]

参考资料[编辑]

  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 DNS-over-HTTPS  |  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. ^ Running a DNS over HTTPS - Cloudflare Resolver
  13. ^ Google Public DNS
  14. ^ https://doh.cleanbrowsing.org/doh/family-filter/[永久失效連結]
  15. ^ Argo Tunnel Documentation - Getting Started. 
  16. ^ Improving DNS Privacy in Firefox. 
  17. ^ DNSCrypt-proxy v2.0. 
  18. ^ DNS over HTTPS PHP Client. 
  19. ^ m13253. m13253/dns-over-https. GitHub. [2018-10-31] (英语).