寫在最前:歡迎你來到“UC國際技術”公衆号,我們将為大家提供與用戶端、服務端、算法、測試、資料、前端等相關的高品質技術文章,不限于原創與翻譯。
今天,谷歌官方部落格刊文宣布谷歌公共 DNS 伺服器正式支援 DoH 加密,為使用者提供便捷通路的同時也保護隐私。
谷歌稱自八年前推出谷歌公共 DNS 伺服器至今,網絡環境已經發生很大變化,使用者迫切需要保護自己的隐私。谷歌公共 DNS 的任務就是為全世界所有使用者提高 DNS 的安全性和準确性,是以谷歌 DNS 開始支援 DoH 加密。
目前谷歌公共 DNS 已經完全接入 DoH 加密并最大限度的減少 TLS 開銷,包括 TLS 1.3 和 TCP 協定快速打開等等。加密功能對查詢速度有影響但是經過優化後影響已經很小很小,絕大多數使用者不會感覺到加密後帶來的延遲。
以下是小編整理的 DNS 加密以及 DoH 的相關知識,感謝 程式設計随想 部落客的文章,文章位址在本文最後,感興趣的朋友們可以進行了解。
為何 DNS 需要加密
設計 DNS 的時候,網際網路基本上還是個玩具。那年頭的網際網路協定,壓根兒都沒考慮安全性,DNS 當然也不例外。是以 DNS 的互動過程全都是【明文】滴,既無法做到 “保密性”,也無法實作 “完整性”。
- 缺乏 “保密性” 就意味着——任何一個能【監視】你上網流量的人,都可以【看到】你查詢了哪些域名。直接引發的問題就是隐私風險。
- 缺乏 “完整性” 就意味着——任何一個能【修改】你上網流量的人,都可以【篡改】你的查詢結果。直接引發的問題就是 “DNS 欺騙”(也叫 “DNS 污染” 或 “DNS 緩存投毒”)。
為了解決傳統 DNS 的這些弊端,後來誕生了好幾個網絡協定,以強化域名系統的安全性。上文提到的 DoH 正是最晚誕生、也最被看好的一個。
DoH 何許人也
DoH 即 “DNS over HTTPS”的簡稱,顧名思義,DNS over HTTPS 就是基于 HTTPS 隧道之上的域名協定。而 HTTPS 又是 “HTTP over TLS”。是以 DoH 相當于是【雙重隧道】的協定。
DoH 最終依靠 TLS 實作了【保密性】與【完整性】。這麼做的好處是,即使有人監視你的上網流量,也無法判斷——哪些 TLS 流量是用于域名查詢,哪些 TLS 用于網頁傳輸。換句話說,DoT 協定的流量無法被【單獨識别】出來。
此外,由于 DoH 是基于 HTTP 之上。而主流的程式設計語言都有成熟的 HTTP 協定封裝庫;再加上 HTTP 協定的使用本身很簡單。是以,要想用各種主流程式設計語言開發一個 DoH 的用戶端,是非常容易滴。
對 DoH 的讨論
浏覽器支援
- Firefox 從 62 版本開始支援 DoH,具體參見 Mozilla 官方部落格。位址: https://blog.nightly.mozilla.org/2018/06/01/improving-dns-privacy-in-firefox/
- Chrome/Chromium 從 66 版本開始支援 DoH。具體參見 Chromium 官網的 issue。位址: https://bugs.chromium.org/p/chromium/issues/detail?id=799753
雖然 Firefox 和 Chrome/Chromium 都已經開始支援 DoH,但大夥兒别急着用。
按照曆史經驗,剛加入的新功能,可能還不夠穩定,沒準兒還存在未曝光的安全漏洞。多等幾個版本之後再說。
參考文章:
https://program-think.blogspot.com/2018/10/Comparison-of-DNS-Protocols.html