DNS over HTTPS (DoH) 加密DNS解析及检测
【美博翻墙2019.8.5】当您在浏览器地址栏中输入域名访问网站时,首先要做的一件事就是由 DNS(域名服务)进行名称查询并解析为相应的服务器IP地址。然而,从这一步开始浏览互联网就存在严重的不安全。怎么解决呢,这是本文要探讨的内容,美博园(allinfa.com)翻墙网尽量把内容描述得易懂和易于操作,也请网友完善补充。
Firefox 浏览器 启用 DNS over HTTPS (DoH)的方法
当前,DoH方案由互联网工程任务组(IETF)支持,其规范文档以 RFC 8484 的名义发布。2018年9月5日发布的Firefox 62正式版加入了这项功能,但需要用户手动开启。
我们在前不久官方更新的Firefox_68 中已经设置了DoH,
火狐浏览器_Firefox_68.8.0esr_美博纯净中文绿色版 - 美博园 https://allinfa.com/firefox-6880esr-allinfa.html 火狐浏览器_Firefox_68.0.1esr_美博园纯净中文绿色版 - 美博园 https://allinfa.com/firefox-6801esr-allinfa.html
但毕竟只是设置了最常用的方式,国内网络情况复杂,也许在某个地方可用,某一段时间可行,但在不同的地区或时间,网友可能还需要自己设置改变,详细方法如下:
1)打开美博园Firefox浏览器
2)在浏览器地址栏输入:
about:config
然后“回车”,
或者,点工具栏上的“书签”→其他书签,点里面预设的 about:config
3)弹出安全警告:点“我了解此风险!”,
4)進入下面進行设置:
要设置的地方有三处:
第一处设置
在进入about:config后的搜索框(不是浏览器地址栏)中输入:
network.trr.mode
鼠标双击network.trr.mode栏,可以在弹出框中修改其中的数字,含义是:
设为 2,使 DNS Over HTTPS 成为浏览器的首选,但使用常规 DNS 作为后备fallback。这是兼容性的最佳设置。 设为 1,让 Firefox 选择更快的模式, 设为 3,使用 TRR only 模式,只用 DNS over HTTPS 做所有的 DNS 查询 设为 0,禁用它。
作为安全性最高的实验目的,美博园纯净版设置为 3 。
美博园提示:
这里设置为3,就是所有的请求都要DoH查询,速度有所降低、而且可能你所在的地区因封锁严重不能上网;为了安全设置为3,对于国内浏览敏感网站的朋友说必须的。
如果完全不能上网,这里就不得不改为2。这需要在下面第二、三步修改无效后再改。
第二处设置
在进入about:config后的搜索框(不是浏览器地址栏)中输入:
network.trr.uri
鼠标双击network.trr.uri栏,可以在弹出框中修改其中网址,这里的网址是DNS服务商提供的加密服务器
在Firefox68版默认预设了下面的mozilla与cloudflare合作提供的加密DNS服务,
https://mozilla.cloudflare-dns.com/dns-query
在美博园纯净版Firefox中设置的是下面这个,据说mozilla那个有某些方面的限制:
https://cloudflare-dns.com/dns-query
当然,你可以自行修改为下面这些可靠的支持 DNS over HTTPS 查询的 DNS 服务商,请大家自行选择使用:
https://cloudflare-dns.com/dns-query https://1.1.1.1/dns-query https://dns.cloudflare.com/.well-known/dns https://dns.google.com/experimental
第三处设置
在进入about:config后的搜索框(不是浏览器地址栏)中输入:
network.trr.bootstrapAddress
鼠标双击network.trr.bootstrapAddress栏,可以在弹出框中修改其中的ip地址,这是DNS服务商提供的公共DNS地址.
目前有几个可用的DNS地址,可自行选用:
google提供的有: 8.8.8.8 8.8.4.4 cloudflare提供的有: 1.1.1.1 1.0.0.1 Quad9提供的有: 9.9.9.9 等
在美博园纯净版Firefox_68.8.0中设置为: 1.0.0.1
有关1.1.1.1,这里有官方的详细介绍,请参考:
1.1.1.1 - Internet 上最快速、最保护您隐私的 DNS 解析器
https://1.0.0.1/zh-Hans/dns/
据网友说,有些地区1.1.1.1 不好用,您也可改为 1.0.0.1 或其他的试试。
然后,重启 Firefox
过去DNS协议的原生局限和不安全性
互联网三十多年来,DNS(域名服务)是互联网中最原始和最核心的一个部分,DNS一直是访问网站和服务的关键机制。然而,因传统的DNS协议形成于互联网早期,直接基于UDP或TCP协议,这些由客户端自动发起的 DNS查询都没有任何形式的加密、防偷窥或防篡改措施。很显然,这种方式已经很不安全,很不适合当今凶险的互联网,既有黑客多虎视眈眈,也有中共一样的流氓强盗劫持互联网。由于这种没有加密的方式,其他设备可能会收集、阻止、更改这些数据。DNS 查询可能会被发送到一些用来监视用户网站浏览历史记录的服务器,而你不知道这些数据将会被怎样使用。
虽然可以使用基于云的 “开放式解析”,它提供比大多数互联网服务提供商(ISP)更好的隐私控制,但这些解决方案同样依赖于的旧加密协议,所以ISP无论如何都可以拦截你的数据。
后来的DNSSEC方案虽然通过电子签名进行验证,强化了DNS的安全性,并能够抵御DNS污染等篡改通信的手段,但其对于中间网络设备进行的监听仍然没有抵御能力(随后,监听者可以通过获取的通信数据知晓用户访问了哪一域名,而域名往往与具体的网站相关系)。此外,DNSSEC的起效要求现有的大量DNS解析服务的提供商(常为互联网服务提供商或第三方大型互联网机构)对已有的DNS服务器进行大范围修改等问题,其推进进程并不理想。
目前,用户也可以设置一些值得信赖的公共DNS服务商,如 Google 的 8.8.8.8、Cloudflare 的 1.1.1.1,或使用 DNSCrypt 来提高隐私和安全性。但更好的方案是本文要介绍的DNS over HTTPS (DoH)。
DNS over HTTPS (DoH)解决方案
DNS over HTTPS(DoH)是一个保证 DNS 安全查询(域名解析)的方案,当前尚处于实验性阶段。其意义在于以加密的HTTPS协议进行DNS解析请求,避免原始DNS协议中用户的DNS解析请求被窃听或者修改的问题(例如中间人攻击)来达到保护用户隐私的目的。
DNS over HTTPS利用HTTP协议的GET命令发出经由JSON等编码的DNS解析请求。较于传统的DNS协议,此处的HTTP协议通信处于具有加密作用的SSL/TLS协议(两者统称作HTTPS)的保护之下。但是,由于其基于HTTPS,而HTTPS本身需要经由多次数据来回传递才能完成协议初始化,其域名解析耗时较原DNS协议会显著增加。
对于DNS over HTTPS,在正确部署服务端并妥善配置客户端的前提下,互联网服务提供商或其它中间网络设备无法解密(亦即无法获知请求的实际内容)或者篡改已经加密的HTTPS通信,故其能够有效保护互联网用户的安全及隐私;另一方面,其基于已经成熟并已广泛部署的HTTPS协议,客户端进行利用较为方便。
公共DNS对DNS over HTTPS 功能的支持
当前,主要由 Google、Cloudflare 和 Mozilla 等领先技术的科技公司在产品中进行测试使用,作为其提高网络安全性的努力的一部分。
这两篇文章有比较详细的汇总和比较,有兴趣的网友可以去参考:
DNS over HTTPS · curl/curl Wiki · GitHub https://github.com/curl/curl/wiki/DNS-over-HTTPS DNS Security and Privacy — Choosing the right provider https://medium.com/@nykolas.z/dns-security-and-privacy-choosing-the-right-provider-61fc6d54b986
文章指出Google’s 8.8.8.8、CloudFlare’s 1.1.1.1、CleanBrowsing,这三家支持DoH,都不跟踪您的请求,支持DNSSEC并拥有良好的隐私承诺。
列表如下:
提供商 | 网址 | 协议 | 屏蔽 | 功能 |
---|---|---|---|---|
Cloudflare | https://cloudflare-dns.com/dns-query 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 端点 |
Google Public DNS | https://dns.google.com/resolve | Google实验室 | 无 | DoH 端点 |
CleanBrowsing | 185.228.168.168 185.228.168.169 2a0d:2a00:1:: 2a0d:2a00:2:: |
不适用 | 成人内容 | DoH端点 |
当然上述文章中,也有提到其他一些DoH提供商,这些为新技术付出努力的都值得大家去测试和尊敬。
如何测试DNS over HTTPS (DoH)是否生效
如果上面设置没有问题,应该可以正常上网浏览网站,美博园纯净版Firefox在发布思维已经作过反复测试;
方式1:ipleak.net网站检测
打开下面这个网站:
查询结果如下图所示:
其中有显示 DNS Address 泄漏检测功能,带 绿色灯的 No leak,表明无泄漏
如果你如上面所述把 network.trr.mode 设置为 3 ,只是通过DoH,那么,你在上图中看到的是 1 或 0 或 2(加IPv6)servers。
方式2:Google 启用 DNS-Over-HTTPS 域名安全查询服务
输入域名或ip地址,就可查询,详细的参数解读,美博园(allinfa.com)这里就不详述了。
DNS加密的一些其他方式
这是一篇很好的文章,里面介绍了还有一些其他的DNS加密方式:
DNS Privacy - The Solutions - DNS Privacy Project - Global Site https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+-+The+Solutions
如:
DNS-over-TLS (DoT)
DNS-over-HTTP (DoH)
DNS-over-DTLS
DNSCrypt
DNS-over-HTTPS (proxied)
DNS-over-QUIC
DNSCurve
看来很多人们都在努力攻克这个难关,让网络恶魔不能再害人整人。
---
在完成了DNS over HTTPS 功能启用之后,就可以方便设置 Firefox 对 ESNI 的支持:
请参考:
ESNI(Encrypted Server Name Indication)及检测 https://allinfa.com/encrypted-server-name-indication-esni.html
美博园(allinfa.com)根据多篇文章整理首发。
原文标题:DNS over HTTPS (DoH) 加密DNS解析及检测 - 美博园
美博园文章均为“原创 - 首发”,请尊重辛劳撰写,转载请以上面完整链接注明来源!
软件版权归原作者!个别转载文,本站会注明为转载。
网 友 留 言
6条评论 in “DNS over HTTPS (DoH) 加密DNS解析及检测”这里是你留言评论的地方
我用的是原版,我这里的https://cloudflare-dns.com/dns-query不稳定了,望更改
@博设博设 謝謝反馈,因国內不同地区封锁有差异,您最好按照文中介绍,自己改变成你那里可用的就行。
在代理窗口设置打开DoH后,查看network.trr.mode取值为2,一旦在这个DNS被封,将继续使用原来的DNS。network.trr.mode修改为3即可强制使用
@博设
我们的版本不就是设置的 3 吗?
作为安全要求是需“强制”所以设为3,如果国内网友不能上网,请再按本教程修改。
火狐的设置里面有DNS over HTTPS的选项,在那里设置可以吗?
@ppo
firefox64版以后的都可以在配置里设置,68版美博园版firefox已经设置好了。