告別DNS劫持,一文讀懂DoH

又拍雲 發表於 2021-04-21

如果評選一個差評伺服器榜單,除去育碧高居榜首外,一定也少不了 Nintendo Switch 讓人頭禿的聯網服務。儘管任天堂已經架設了香港 CDN 伺服器用於加速,但是更新安裝的速度也沒有什麼大幅改變。一般這種時候大家都會選擇更改 DNS 來提高 NS 下載速度。

DNS(域名系統)是工作生活中很常見的名詞,使用者只需要在瀏覽器中輸入一個可識別的網址,系統便會在很短的時間內找到相應的 IP 地址。在解析過程中,DNS 會訪問各種名稱伺服器,從這些名稱伺服器中獲取儲存著的與 URL 對應的數字地址。截止到現在,DNS 已經發展了幾十年,雖然使用廣泛,卻很少引起人們對其安全性的關注。

從安全形度來看,請求傳輸時通常不進行任何加密,任何人都可以讀取的 DNS 其實是不安全的。這意味著網路罪犯可以很容易地使用自己的伺服器攔截受害者的 DNS,將使用者的請求跳轉到釣魚網站上,這些網站釋出惡意軟體,或在正常網站上投放大量廣告吸引使用者,這種行為我們稱之為 DNS 劫持。為了減少這類情況的發生,業界專家目前在掙扎討論基於 HTTPS 的 DNS(DoH)的可行性選擇。那麼什麼是通過 HTTPS 的 DNS,它可以使 Internet 更安全嗎?我們一起來看看吧。

為什麼需要通過 HTTPS 的 DNS?

在日常上網中,如果使用者輸入無法解析的網址(例如,由於輸入錯誤),則某些 Internet 提供商(ISP)會故意使用 DNS 劫持技術來提供錯誤訊息。一旦 ISP 攔截了此內容,就會將使用者定向到自己的網站,在該網站宣傳自己或第三方的產品。雖然這並不違法,也不會直接損害使用者,但是該類重定向仍會讓使用者反感。因此,單獨使用 DNS 協議並不是非常可靠的。

而 DoH (DNS over HTTPS)即使用安全的 HTTPS 協議執行 DNS ,主要目的是增強使用者的安全性和隱私性。通過使用加密的 HTTPS 連線,第三方將不再影響或監視解析過程。因此,欺詐者將無法檢視請求的 URL 並對其進行更改。如果使用了基於 HTTPS 的 DNS ,資料在傳輸過程中發生丟失時,DoH 中的傳輸控制協議(TCP)會做出更快的反應。

DNS劫持

目前,DoH 尚未成為 Internet 上的全球標準,大多數連線仍依賴基本的 DNS。到目前為止,僅 Google 和 Mozilla 兩家公司涉足了這一領域。Google 現正在與部分使用者一起測試該功能。此外,還有用於移動裝置的應用程式,這些應用程式也可以通過 DoH 進行網上衝浪。Android Pie 也提供了通過網路設定啟用基於 HTTPS 的 DNS 選項。

Firefox DoH 配置

通過 HTTPS 的 DNS 如何工作?

通常一些域名解析會直接從使用者的客戶端進行,相應的域名資訊被儲存在瀏覽器或路由器的快取中。而期間傳輸的所有內容都需要通過 UDP 連線,因為這樣可以更快速地交換資訊。但是我們都知道,UDP 既不安全也不可靠。使用該協議時,資料包可能會隨時丟失,因為沒有任何機制可以保證傳輸的可靠性。

告別DNS劫持,一文讀懂DoH

而 DoH 依賴於 HTTPS,因此也依賴於 TCP,一種在 Internet 上使用頻率更高的協議。這樣既可以對連線進行加密, TCP 協議也可以確保完整的資料傳輸。另外,使用了基於 HTTPS 的 DNS,通訊始終通過 443 埠進行,並在 443 埠傳輸實際的網路流量(例如,訪問網站)。因此,外人無法區分 DNS 請求和其他通訊,這也保障了更高階別的使用者隱私。

DoH 的優點和缺點

DoH 的優點是顯而易見的,該技術提高了安全性並保護了使用者隱私。與傳統的 DNS 相比,DoH 提供了加密措施。它利用 HTTPS 這種行業通用的安全協議,將 DNS 請求發往 DNS 伺服器,這樣運營商或第三方在整個傳輸過程中,只能知道發起者和目的地,除此以外別的什麼都知道,甚至都不知道我們發起了 DNS 請求。

DoH 的加密措施可防止竊聽或攔截 DNS 查詢,但這也會帶來了一些潛在的風險。多年以來實施的一些網際網路安全措施都要求 DNS 請求過程可見。例如,家長控制需要依靠運營商為一些使用者阻止訪問某些域名。執法部門可能希望通過 DNS 資料來跟蹤罪犯,並且許多組織都會使用安全系統來保護其網路,這些安全系統也會使用 DNS 資訊來阻止已知的惡意站點。引入 DoH 可能會嚴重影響上述這些情況。因此,目前 DoH 還處於自主配置的時期。使用者需要清楚誰可以看到資料,誰可以訪問資料以及在什麼情況下可以訪問。

DoH 與 DoT

除了基於 HTTPS 的 DNS 外,目前還有另一種用於保護域名系統的技術:基於 TLS 的 DNS(DoT)。這兩個協議看起來很相似,它們也都承諾了更高的使用者安全性和隱私性。但是這兩項標準都是單獨開發的,並且各有各的 RFC 文件。DoT 使用了安全協議 TLS,在用於 DNS 查詢的使用者資料包協議(UDP)的基礎上新增了 TLS 加密。DoT 使用 853 埠,DoH 則使用 HTTPS 的 443 埠。

告別DNS劫持,一文讀懂DoH

由於 DoT 具有專用埠,因此即使請求和響應本身都已加密,但具有網路可見性的任何人都可以發現來回的 DoT 流量。DoH 則相反,DNS 查詢和響應在某種程度上偽裝在其他 HTTPS 流量中,因為它們都是從同一埠進出的。

關於 DoT 和 DoH 究竟哪個更好?這個還有待商榷。不過從網路安全的角度來看,DoT 可以說是更好的。它使網路管理員能夠監視和阻止 DNS 查詢,這對於識別和阻止惡意流量非常重要。另一方面,DoH 查詢隱藏在常規 HTTPS 流量中。這意味著,若不阻止所有其他的 HTTPS 流量,就很難阻止它們。

推薦閱讀

最容易被盜的密碼,你中了麼?

聊聊 DNS 的那些小知識