本頁使用了標題或全文手工轉換

DNS over HTTPS

維基百科,自由的百科全書
跳至導覽 跳至搜尋

DNS over HTTPS(縮寫:DoH)是一個進行安全化的域名解析方案。其意義在於以加密的HTTPS協定進行DNS解析請求,避免原始DNS協定中使用者的DNS解析請求被竊聽或者修改的問題(例如中間人攻擊)來達到保護使用者隱私的目的。[1]GoogleMozilla基金會正在測試此協定,提高網路安全性。[2][3]

目前,該方案由IETF支援,其規範文件以 RFC 8484 的名義發佈。2018年9月5日發布的Firefox 62正式版加入了這項功能,但需要使用者手動開啟。[4]

特性[編輯]

DNS over HTTPS利用HTTP協定的GET命令發出經由JSON等編碼的DNS解析請求。[2]較於傳統的DNS協定,此處的HTTP協定通訊處於具有加密作用的SSL/TLS協定(兩者統稱作HTTPS)的保護之下。但是,由於HTTPS本身需要經由多次數據來回傳遞才能完成協定初始化,其域名解析耗時較原DNS協定會顯著增加。

基於HTTPS的DNS是尚在提議階段的標準,由IETF以RFC 8484(2018年10月)發布。它使用HTTP / 2HTTPS,並支援有線格式DNS回應資料,如現有UDP回應中所返回的,在具有MIME類型application / dns-message的HTTPS有效負載中。[5][6]如果使用HTTP / 2,伺服器也可以使用HTTP / 2伺服器推播來傳送它預期客戶端可能提前發現有用的值。[7]

傳統的DNS協定形成於網際網路早期,直接基於UDPTCP協定,且彼時未慮及現代安全性的需要,未利用密碼學等手段進行加密或驗證。因而,其無法抵禦現代網際網路常見的DNS投毒污染等攻擊手段或監聽。雖然後來的DNSSEC方案通過電子簽名進行驗證,強化了DNS的安全性,並能夠抵禦DNS投毒污染等篡改通訊的手段,但其對於中間網路裝置進行的監聽仍然沒有抵禦能力(隨後,監聽者可以通過獲取的通訊數據知曉使用者存取了哪一域名,而域名往往與具體的網站相關聯)。此外,DNSSEC的起效要求現有的大量DNS解析服務的提供商(常爲網際網路服務提供者或第三方大型網際網路機構)對已有的DNS伺服器進行大範圍修改等問題,其推進進程並不理想。而對於DNS over HTTPS,在正確部署伺服器端並妥善組態客戶端的前提下,網際網路服務提供者或其它中間網路裝置無法解密(亦即無法獲知請求的實際內容)或者篡改已經加密的HTTPS通訊,故其能夠有效保護網際網路使用者的安全及隱私;另一方面,其基於已經成熟並已廣泛部署的HTTPS協定,客戶端進行利用較爲方便。

實施方案[編輯]

DNS over https用於DNS解析器的遞迴DNS解析。 解析器(DoH客戶端)必須能夠存取代管查詢端點的DoH伺服器。[7]基於HTTPS的DNS缺乏作業系統的本機支援。 因此,希望使用它的使用者必須安裝附加軟體。 三種使用場景很常見:

  • 在應用程式中使用DoH實現:某些瀏覽器具有內建的DoH實現,因此可以繞過作業系統的DNS功能來執行查詢。 缺點是應用程式可能無法通過錯誤組態或缺乏對DoH的支援來通知使用者是否跳過DoH查詢。
  • 在本地網路中的名稱伺服器上安裝DoH代理:在此方案中,客戶端系統繼續使用傳統(埠53或853)DNS來查詢本地網路中的名稱伺服器,然後通過到達來通過DoH收集必要的回覆 網際網路中的DoH伺服器。 此方法對終端使用者是透明的。
  • 在本地系統上安裝DoH代理:在此方案中,作業系統組態為查詢本地執行的DoH代理。 與前面提到的方法相反,需要在希望使用DoH的每個系統上安裝代理,這可能需要在更大的環境中付出很多努力。
  • 為作業系統安裝DoH解析外掛程式

在所有這些方案中,DoH客戶端不直接查詢任何權威名稱伺服器。 相反,客戶端依賴於使用傳統(埠53或853)查詢的DoH伺服器來最終到達權威伺服器。 因此,DoH不具備端到端加密協定的資格,只有逐跳加密且僅在始終使用DNS over TLS時才有資格。

支援[編輯]

公共DNS[編輯]

DNS over HTTPS功能已由部分公共DNS支援[8][9][10],包括:

軟體[編輯]

最新版本的Edge、Firefox、Chrome瀏覽器均支援DoH。此外也有一些專用軟體支援該功能。

作業系統[編輯]

2019年11月17日,一篇在微軟官方部落格釋出的博文宣布,Windows 將支援 DNS over HTTPS(DoH),以加密 DNS 流量保護使用者隱私。[11]

2020年6月,蘋果在WWDC大會宣布 iOS 14 與 macOS 11 新增對加密DNS的支援,包括 DNS over HTTPS(DoH)與 DNS over TLS(DoT)。[12]

參見[編輯]

參考資料[編輯]

  1. ^ Chirgwin, Richard. IETF protects privacy and helps net neutrality with DNS over HTTPS. The Register. 14 Dec 2017 [2018-03-21]. (原始內容存檔於2017-12-14) (英語). 
  2. ^ 2.0 2.1 DNS-over-HTTPS  |  Public DNS | Google Developers. Google Developers. [2018-03-21]. (原始內容存檔於2018-03-20) (英語). 
  3. ^ Cimpanu, Catalin. Mozilla Is Testing "DNS over HTTPS" Support in Firefox. BleepingComputer. 2018-03-20 [2018-03-21]. (原始內容存檔於2018-03-20) (美國英語). 
  4. ^ Improving DNS Privacy in Firefox – Firefox Nightly News. Firefox Nightly News. [2018-09-05]. (原始內容存檔於2018-09-02) (美國英語). 
  5. ^ IETF protects privacy and helps net neutrality with DNS over HTTPS. The Register. 2017-12-14. (原始內容存檔於2017-12-14) (英語). 
  6. ^ DNS Queries over HTTPS (DoH). (原始內容存檔於2018-12-12) (英語). 
  7. ^ 7.0 7.1 DNS Queries over HTTPS (DoH). (原始內容存檔於2021-04-30). 
  8. ^ DNS over HTTPS Implementations. 2018-04-27 [2018-04-27]. (原始內容存檔於2018-04-02) (美國英語). 
  9. ^ DNS Security and Privacy. 2018-04-27 [2018-03-27]. (原始內容存檔於2020-11-09) (美國英語). 
  10. ^ AdGuard. Known DNS Providers. AdGuard. (原始內容存檔於2022-03-04) (英語). 
  11. ^ tojens. Windows will improve user privacy with DNS over HTTPS. Microsoft Tech Community. [2019-11-22]. (原始內容存檔於2021-04-29). 
  12. ^ 陳曉莉. iOS 14與macOS 11將新增對DoT與DoH的支援. iThome. [2021-09-16]. (原始內容存檔於2021-01-18).