DNS over HTTPS
来自维基百科,自由的百科全书
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缺乏操作系统的本机支持。因此,希望使用它的用户必须安装附加软件。三种使用场景很常见:
- 在应用程序中使用DoH实现:某些浏览器具有内置的DoH实现,因此可以绕过操作系统的DNS功能来执行查询。缺点是应用程序可能无法通过错误配置或缺乏对DoH的支持来通知用户是否跳过DoH查询。
- 在本地网络中的名称服务器上安装DoH代理:在此方案中,客户端系统继续使用传统(端口53或853)DNS来查询本地网络中的名称服务器,然后通过到达来通过DoH收集必要的回复 互联网中的DoH服务器。 此方法对最终用户是透明的。
- 在本地系统上安装DoH代理:在此方案中,操作系统配置为查询本地运行的DoH代理。与前面提到的方法相反,需要在希望使用DoH的每个系统上安装代理,这可能需要在更大的环境中付出很多努力。
支持
DNS over HTTPS 功能已由部分公共 DNS 支持[11][12][13],包括:
- AdGuard
- 阿里云公共 DNS
- Cloudflare
- DNSPod Public DNS
- Google Public DNS
- OpenDNS
- QUAD9 DNS
- 台湾网路资讯中心(Quad 101)
详见公共域名解析服务
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。
参考资料
Wikiwand - on
Seamless Wikipedia browsing. On steroids.