From Wikipedia_zh - Reading time: 5 min| 网络传输协议 | |
| 目的 | 将DNS封装于HTTPS中以提升隐私保护与安全性 |
|---|---|
| 发布于 | 2018年10月 |
| OSI层级 | 应用层 |
| RFC | RFC 8484 |
| 互联网安全协议 |
|---|
| 密钥管理 |
|
| 应用层 |
|
| 域名系统 |
|
| 网络层 |
|
DNS over HTTPS(缩写:DoH)是一种经由HTTPS协议进行的远程域名系统(DNS)解析协议。该方法旨在防止网络中间人[1]对DNS数据进行的窃听和操纵,利用HTTPS协议加密DoH客户端和DoH服务器(递归解析器)之间的数据,以提高用户的隐私和安全性。DNS的查询和响应会隐于其他HTTPS流量中。[2]
在2018年3月,Google和Mozilla基金會就开始测试基于HTTPS的DNS版本。[3][4]2018年9月5日,Mozilla基金会发布的Firefox 62正式版加入了这项功能,但需要用户手动开启。[5]2020年2月,Firefox为美国用户默认切换到DNS over HTTPS。[6]2020年5月,Chrome的默认解析切至DNS over HTTPS。[7]
DNS over HTTPS利用HTTP協議的GET命令发出經由JSON等編碼的DNS解析請求。[3]較於傳統的DNS協議,此處的HTTP協議通訊處於具有加密作用的SSL/TLS協議(兩者統稱作HTTPS)的保護之下。但是,由於HTTPS本身需要經由多次數據來回傳遞才能完成協議初始化,其域名解析耗時較原DNS協議會顯著增加。
DoH作为一个提议阶段的标准,由IETF以RFC 8484(2018年10月)发布。其使用HTTPS,并支持“有线格式”(英語:wire format)DNS响应数据,如现有的UDP响应中所返回的数据一样,在具有MIME类型application/dns-message的HTTPS有效负载中。[1][8](§4.1)承载其的HTTP层可以是任何版本的HTTP协议,但HTTP/2是“推荐”的最低版本。[8](§5.2)若使用HTTP/2,服务器还可以使用HTTP/2服务器推送来预先发送其预计可为其客户端所用的值。[8](§5.3)
尽管IETF已将RFC 8484作为提议的标准发布,并且各大公司正在对其进行实验,DoH还是一项进行中的工作。[9][10]
傳統的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缺乏操作系统的本机支持。因此,希望使用它的用户必须安装附加软件。三种使用场景很常见:
DNS over HTTPS 功能已由部分公共 DNS 支持[11][12][13],包括:
详见公共域名解析服务
Edge、Firefox、Chrome浏览器均支持DoH。
2020年6月,蘋果在WWDC大會宣布 iOS 14 與 macOS 11 新增對加密DNS的支援,包括 DNS over HTTPS(DoH)與 DNS over TLS(DoT)。[14]
2019年11月17日,一篇在微软官方博客释出的博文宣布,Windows 将支持 DNS over HTTPS(DoH),以加密 DNS 流量保护用户隐私。[15]
Windows 11支持DoH。