DNS over HTTPS
(缩写:)是一個进行安全化的域名解析方案。其意義在於以加密的HTTPS协议进行DNS解析请求,避免原始DNS协议中用戶的DNS解析請求被竊聽或者修改的问题(例如中間人攻擊)来达到保护用户隐私的目的。[1]Google及Mozilla基金会正在测试此协议,提高网络安全性。[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 / 2和HTTPS,并支持有线格式DNS响应数据,如现有UDP响应中所返回的,在具有MIME类型application / dns-message的HTTPS有效负载中。[5][6]如果使用HTTP / 2,服务器也可以使用HTTP / 2服务器推送来发送它预期客户端可能提前发现有用的值。[7]
傳統的DNS協議形成於互聯網早期,直接基於UDP或TCP協議,且彼時未慮及現代安全性的需要,未利用密碼學等手段進行加密或驗證。因而,其無法抵禦現代互聯網常見的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 |
IETF草案 | 无 惡意軟體 惡意軟體與成人內容 |
DoH端点[13] |
Google Public DNS | https://dns.google/dns-query
https://dns.google/resolve[2] |
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 |
不適用 | 無 | DoH端點 |
QUAD9 DNS[19] | https://dns.quad9.net/dns-query https://dns9.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-client — PHP 实现。[24]
- dns-over-https — Go 實現。[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
- 在浏览器地址栏输入 about:config 然后打开,并同意警告信息。
- 搜索 network.trr
- 设置 network.trr.mode 值为2
- 在 network.trr.uri 中填入上表中任一服务器,例如:https://1.1.1.1/dns-query
设置好后,在地址栏输入 about:networking 可以看到具体通信情况[4]
- 在 Chrome 中开启 DNS over HTTPS
- 在浏览器地址栏输入 chrome://flags 然后打开
- 搜索 DNS
- 设置 Secure DNS lookups 值为 Enabled
- 在Chromium版Edge 中开启 DNS over HTTPS
- 在浏览器地址栏输入 edge://settings/privacy 然后打开
- 查找“安全性”一栏
- 打开“使用安全的 DNS 指定如何查找网站的网络地址”
参见
参考资料
- Chirgwin, Richard. . The Register. 14 Dec 2017 [2018-03-21] (英语).
- . Google Developers. [2018-03-21] (英语).
- Cimpanu, Catalin. . BleepingComputer. 2018-03-20 [2018-03-21] (美国英语).
- . Firefox Nightly News. [2018-09-05] (美国英语).
- . The Register. 2017-12-14 (英语).
- (英语).
- .
- .
- . 2018-04-27 [2018-04-27] (美国英语).
- . 2018-04-27 [2018-03-27] (美国英语).
- Inc, Cloudflare. . developers.cloudflare.com. [2019-04-28] (英语).
- https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families/setup-instructions/dns-over-https/. 缺少或
|title=
为空 (帮助) - Running a DNS over HTTPS - Cloudflare Resolver
- Google Public DNS
- [https://101.101.101.101/ Quad 101
- 101.101.101.101 支援 DoH (Queries over HTTPS)
- 101.101.101.101 支援 DoH (Queries over HTTPS)
- The official release of AdGuard DNS — a new unique approach to privacy-oriented DNS
- https://www.quad9.net/doh-quad9-dns-servers/. 缺少或
|title=
为空 (帮助) - https://support.opendns.com/hc/en-us/articles/360038086532-Using-DNS-over-HTTPS-DoH-with-OpenDNS. 缺少或
|title=
为空 (帮助) - .
- .
- .
- .
- m13253. . GitHub. [2018-10-31] (英语).
- tojens. . Microsoft Tech Community.
- 陳曉莉. . iThome.