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已經設置好了。