公共WiFi的DNS洩漏:原因與防範方法

即使您每個網站都使用HTTPS,在公共WiFi上,您的瀏覽行為仍可能透過DNS洩漏被網絡監控人員看到。您裝置發出的每一個網域名稱查詢,都可能以明文形式經由公共網絡傳送,令他人即使未能解密您的瀏覽內容,亦能掌握您瀏覽的網站。以下介紹什麼是DNS洩漏及如何加以防範。

DNS leak on public WiFi — plaintext domain name queries visible to network monitors
1DNS基礎知識

什麼是DNS,為何在公共WiFi上會發生洩漏

DNS(網域名稱系統)是互聯網的地址簿。當您在瀏覽器中輸入「google.com」或「hsbc.com.hk」時,您的裝置會先發送一個DNS查詢,將網域名稱解析為IP位址(即伺服器所在的實際網絡位址)。若沒有DNS解析,瀏覽器便無法透過名稱連接至網站,只能使用IP位址,這對日常使用而言極不實際。預設情況下,這些DNS查詢使用簡單的未加密UDP協議,以明文形式在網絡上傳輸。同一網絡上的任何裝置,或您與DNS伺服器之間的任何網絡裝置,均可讀取這些明文查詢,清楚了解您正在查詢哪些網域名稱。

當您的DNS查詢繞過VPN的加密保護,改經您的常規互聯網服務供應商 ↗或網絡DNS伺服器傳送時,便會發生DNS洩漏。造成此情況的原因有多種:連接公共WiFi時,強制登入頁面或DHCP伺服器可能會向您的裝置推送其自身的DNS伺服器設定,覆蓋VPN的DNS設定;部分作業系統具備「智能多路由」(Windows)或「優先使用IPv6」(macOS)功能,可能同時透過多個網絡介面發送DNS查詢,令部分查詢繞過VPN隧道;在移動裝置上,WiFi與流動數據之間的切換可能短暫地令DNS查詢暴露於VPN之外。即使VPN名義上處於啟用狀態,DNS查詢仍可能透過上述機制從隧道中逸出。

在公共WiFi上發生DNS洩漏的實際後果,是您的瀏覽行為即便使用了HTTPS和VPN,仍對網絡監控人員一覽無遺。在酒店WiFi網絡上記錄您裝置IP位址DNS查詢的監控者,可以建立一份精確記錄,列明您瀏覽的每個網站:銀行網站、醫療資訊網站、法律服務網站、競爭對手網站,以及商業決策前查閱的新聞來源。即使沒有任何內容被解密,這些元數據檔案對金融犯罪、企業間諜活動、勒索及針對性社會工程攻擊均具有相當價值。DNS元數據往往比內容本身更具揭示性,因為它反映的是所有活動,而不論該活動是否涉及敏感內容的傳輸。

  • DNS功能:將網域名稱轉換為IP位址——所有網頁瀏覽均依賴DNS
  • 預設明文傳輸:標準DNS使用未加密的UDP——網絡上所有裝置均可見
  • DNS洩漏:查詢從VPN隧道逸出,以明文形式抵達網絡DNS伺服器
  • 成因:DHCP覆蓋、智能多路由、IPv6繞過、WiFi與流動數據切換
  • 後果:儘管使用了HTTPS和VPN,所有瀏覽的網域對網絡監控人員仍清晰可見
  • 情報價值:DNS元數據揭示活動規律,對間諜活動及針對性攻擊具有價值
為何單靠HTTPS無法防止公共WiFi上的DNS可見性 →
DNS query leaking outside VPN tunnel on public WiFi — plaintext domain name resolution
2測試DNS洩漏

如何測試您的VPN是否存在DNS洩漏

使用免費的線上工具測試DNS洩漏非常簡單,建議在首次設定VPN時及此後定期進行測試。在VPN連接並啟用的情況下,在瀏覽器中訪問dnsleaktest.com,點擊「Extended Test」並等待結果。測試會發送一系列DNS查詢,並顯示哪些DNS伺服器作出回應。若您的VPN正常運作且無DNS洩漏,結果中顯示的DNS伺服器應屬於您的VPN服務商(伺服器通常會顯示VPN服務商名稱或其基礎設施的一般標籤),或隱私DNS服務商,其位置應與您VPN伺服器所在國家一致,而非您的實際位置或香港。

若測試顯示來自您實際互聯網服務供應商 ↗(香港寬頻、香港電訊、中國移動香港、數碼通或其他香港供應商)的DNS伺服器,而VPN同時處於連接狀態,則可確認存在DNS洩漏。這意味著您的DNS查詢正在繞過VPN隧道,直接傳送至您互聯網服務供應商的DNS伺服器,從而暴露您的瀏覽目的地。另一個測試方法是使用ipleak.net,它可同時顯示您的可見IP位址和正在使用的DNS伺服器。若顯示的IP位址是您VPN伺服器的IP,但DNS伺服器卻屬於您的互聯網服務供應商,則存在DNS洩漏。部分VPN應用程式內置洩漏測試——NordVPN和ExpressVPN均在其應用程式內提供DNS洩漏測試,可在您加入的任何網絡上運行以驗證是否正常運作。

在新裝置或作業系統上首次設定新VPN時、VPN應用程式更新後(有時會重置設定),以及從新類型網絡連接時(例如使用自定DHCP設定的酒店網絡),DNS洩漏測試尤為重要。商務旅客應在出行前於家中或辦公室測試其VPN設定,再依賴其進行在途中的敏感企業存取。對存在DNS洩漏的VPN抱有虛假的安全感,可能比知道連接未受保護更危險——它可能令您在自以為受到保護的情況下傳輸敏感資訊,而實際上卻毫無防護。請務必運行測試,驗證結果,然後才放心繼續使用。

  • dnsleaktest.com:免費延伸測試——在VPN連接時檢查哪些DNS伺服器回應
  • 預期結果:VPN服務商在VPN伺服器位置的DNS伺服器——而非您的香港互聯網服務供應商伺服器
  • ipleak.net:同時顯示IP位址和DNS伺服器——確認隧道完整運作
  • 確認洩漏:VPN連接時可見互聯網服務供應商DNS伺服器(香港寬頻、香港電訊、中國移動香港)= 存在洩漏
  • 內置測試:NordVPN和ExpressVPN在其應用程式內包含DNS洩漏測試
  • 測試時機:首次設定後、應用程式更新後,以及敏感出行前
如何選擇並設定具備強力DNS洩漏防護的VPN →
DNS leak test on browser — dnsleaktest.com showing DNS servers used by VPN
3修復DNS洩漏

如何修復VPN設定中的DNS洩漏

修復DNS洩漏的主要方法是在VPN應用程式中啟用DNS洩漏防護——大多數優質VPN應用程式(NordVPN、ExpressVPN、Mullvad、ProtonVPN)均將此作為可設定選項。在NordVPN中:設定 → 一般 → 啟用「僅使用VPN DNS伺服器」。在ExpressVPN中:設定 → DNS → 啟用「連接時使用ExpressVPN DNS伺服器」。在Mullvad中:應用程式預設透過VPN強制執行DNS,「DNS內容攔截器」設定允許額外設定。啟用後,VPN應用程式會設定您作業系統的DNS設定,僅使用VPN提供的DNS伺服器,並封鎖嘗試連接其他DNS伺服器的查詢。啟用設定後,請運行DNS洩漏測試以驗證修復效果。

HTTPS上的DNS(DoH)是一種輔助性保護措施,無論VPN狀態如何,均可在瀏覽器層面加密DNS查詢。Chrome和Firefox均支援DoH:在Chrome中,前往設定 → 隱私和安全 → 安全性 → 向下滾動至「使用安全DNS」並選擇服務商(Cloudflare 1.1.1.1或Google 8.8.8.8是最常見的選擇)。在Firefox中,前往設定 → 隱私和安全 → 向下滾動至HTTPS上的DNS並啟用。DoH加密瀏覽器DNS查詢,即使查詢從VPN隧道逸出,也無法被網絡監控人員讀取。但DoH僅涵蓋瀏覽器DNS查詢——來自其他應用程式(電子郵件客戶端、通訊應用程式、生產力應用程式)的DNS查詢不受瀏覽器DoH保護,需要VPN級別的DNS保護才能獲得完整覆蓋。

IPv6洩漏是一個相關問題。IPv6是較新的互聯網尋址協議,許多裝置同時支援IPv4和IPv6。若您的裝置有IPv6位址,而您的VPN僅隧道化IPv4流量,則IPv6的DNS查詢和連接可能完全繞過VPN。香港許多公共WiFi網絡現在透過DHCP分配IPv6位址。在您的VPN設定中,尋找IPv6洩漏保護或「封鎖IPv6」選項並啟用。NordVPN和Mullvad均包含IPv6洩漏保護。或者,您也可以在使用公共網絡時完全停用裝置上的IPv6:在Windows中,前往網絡適配器屬性並取消勾選「Internet Protocol Version 6 (TCP/IPv6)」。在macOS上,這需要更改網絡設定或使用具備強大IPv6處理能力的VPN。

  • NordVPN修復:設定 → 一般 → 「僅使用VPN DNS伺服器」
  • ExpressVPN修復:設定 → DNS → 「連接時使用ExpressVPN DNS伺服器」
  • Mullvad:預設強制執行VPN DNS——設定DNS內容攔截器以獲得額外保護
  • 瀏覽器中的DoH:Chrome/Firefox設定 → 安全DNS → Cloudflare或Google——涵蓋瀏覽器查詢
  • IPv6洩漏:在VPN設定中啟用IPv6洩漏保護,防止IPv6流量繞過隧道
  • 驗證修復:任何設定更改後,運行dnsleaktest.com延伸測試
DNS劫持與ARP欺騙如何在公共WiFi上協同運作 →
Fixing DNS leaks in VPN configuration — DNS leak protection settings and DNS over HTTPS
4DNS劫持攻擊

DNS劫持:當攻擊者控制您的DNS回應

DNS洩漏將您的DNS查詢暴露於被動監控;DNS劫持則更進一步,主動篡改DNS回應以重定向您的流量。在公共WiFi的DNS劫持攻擊中,攻擊者——通常在透過ARP欺騙建立中間人位置後——攔截您的DNS查詢並返回偽造的回應。例如,當您查詢DNS伺服器以解析「hsbc.com.hk」時,攻擊者返回一個指向其自身伺服器的IP位址,而非合法的滙豐伺服器。您的瀏覽器連接至攻擊者的伺服器,其可能呈現一個逼真的假滙豐登入頁面。您登入時,您的憑證即被盜取,而您可能被透明地轉發至真實的滙豐網站,使攻擊完全不被察覺。

DNS劫持可針對任何網域名稱——銀行、電子郵件、企業VPN登入頁面、社交媒體——並造成令人信服的網絡釣魚場景,因為您瀏覽器中的URL顯示的是正確的網域名稱。當受害者連接至攻擊者的IP,而該IP卻對應著受信任的網域時,攻擊便告成功。HTTPS和憑證驗證提供部分防禦:若攻擊者的假伺服器沒有針對被劫持網域的有效TLS憑證(通常無法從受信任的憑證機構取得),您的瀏覽器將顯示SSL憑證錯誤。在您無法控制的網絡上——尤其是公共WiFi——認真對待此錯誤至關重要。然而,老練的攻擊者可能使用相似名稱的網域(同形字攻擊),或利用憑證驗證被削弱的系統錯誤設定。

在公共WiFi上完全防範DNS劫持,需要具備DNS洩漏保護的VPN,並結合嚴格的SSL憑證驗證。VPN確保您的DNS查詢被加密並透過VPN服務商的可信DNS伺服器路由,而非傳送至可能惡意的公共網絡DNS伺服器。VPN的DNS伺服器回應透過加密隧道傳回,公共網絡上的攻擊者無法對其進行篡改。即使攻擊者在公共WiFi上建立了中間人位置,亦無法篡改加密VPN隧道內的流量。將VPN DNS保護與HSTS預載入網站及嚴格的憑證錯誤回應相結合,可針對公共WiFi上的DNS攻擊提供多層保護。

  • DNS劫持:偽造的DNS回應將網域查詢重定向至攻擊者控制的伺服器
  • 中間人前提:通常需要先透過ARP欺騙建立中間人位置
  • 透過DNS進行網絡釣魚:被重定向的網域顯示正確URL,但指向假冒登入頁面
  • 憑證防禦:若攻擊者缺乏該網域的有效憑證,瀏覽器會顯示SSL錯誤
  • 切勿忽略錯誤:在熟悉網站上出現憑證錯誤且正使用公共WiFi時,請立即斷線
  • VPN防禦:加密的VPN DNS查詢在公共網絡上無法被攔截或篡改
應用所有公共WiFi保護措施,防範DNS洩漏和劫持 →
DNS hijacking on public WiFi — rogue DNS server redirecting domain queries

在下次使用公共WiFi前,測試您的VPN是否存在DNS洩漏

在VPN設定中啟用DNS洩漏保護,運行dnsleaktest.com確認其有效運作,即使在香港的開放公共網絡上,您的瀏覽目的地也能保持私密。

Related VPN Articles