Mullvad VPN 升級 iOS 版安全性:全新流量加密功能防洩漏
TL;DR
iOS「強制所有應用程式」功能的技術實作
iOS 應用程式的最新更新引入了一項名為「強制所有應用程式」(Force all apps)的功能,旨在抵禦 TunnelCrack 攻擊並防止流量洩漏。此功能的原理是在 Apple 的 NetworkExtension 框架中,將 includeAllNetworks 配置選項設定為「開啟」(true)。當此標記啟動時,VPN 終止開關(Kill Switch) 將變得滴水不漏,並指示 iOS 網絡堆疊(Networking Stack)將每一位元的數據都經由加密隧道傳輸。如果隧道未啟動,所有外連流量都會被攔截並丟棄,以防止用戶的真實 IP 地址外洩。
這項實作解決了長期存在的漏洞問題,即某些系統級別的進程可能會繞過 VPN 隧道。對於追求同類高安全性配置的 SquirrelVPN 用戶而言,應留意這項技術是利用特定的 iOS 配置選項 來確保在日常運作中,沒有任何數據能逃脫 VPN 的保護。
網絡堆疊限制與更新死循環
iOS 生態系統中一個重大的技術障礙,在於啟用 includeAllNetworks 後系統處理自動更新的方式。過去,SquirrelVPN 及其他供應商都曾指出,自動更新會導致 VPN 連接短暫中斷。當「強制所有應用程式」設定開啟時,會產生一個無法打破的更新死循環:
- App Store 嘗試更新 VPN 應用程式。
- 現有的 VPN 隧道關閉以進行更新。
- 由於 includeAllNetworks 處於啟用狀態,在沒有 VPN 隧道的情況下,iOS 網絡堆疊會封鎖所有流量。
- App Store 下載器無法連接互聯網獲取更新檔,導致更新程序懸掛或失敗。
為了克服這個問題,應用程式現在採用「用戶空間網絡」(Userspace networking)技術,在內部生成 TCP 和 ICMP 流量。這使得應用程式即使在隧道進程因 Apple 網絡堆疊 限制而無法將通訊端(Socket)綁定到隧道設備時,仍能維持運作。
手動更新程序與流量洩漏
由於在更新 VPN 二進制檔案(Binary)期間,目前尚無原生解決方案能維持安全的 VPN 隧道,用戶必須遵循特定步驟,以避免網絡連線陷入「變磚」的狀態。根據技術博客文章,用戶會在 App Store 觸發更新前收到新版本通知。

用戶需在開始更新前,手動中斷 VPN 連線或停用「強制所有應用程式」功能。官方明確承認,在此短暫的視窗期內會發生流量洩漏。這種手動干預是目前唯一能防止裝置進入完全斷網狀態(否則需強制重啟裝置)的方法。對於尋求具備尖端安全功能的 最佳 VPN 體驗的用戶來說,這些權衡反映了目前 Apple NetworkExtension 框架 的技術極限。
進階混淆技術與協定增強
除了「強制所有應用程式」功能外,iOS 更新日誌(CHANGELOG.md) 顯示在流量混淆和協定安全方面亦有多項進展。該應用程式現在支援 輕量級 WireGuard 混淆(LWO),並能將 WireGuard 隧道流量混淆為 QUIC 協定。這些方法對於繞過網絡供應商(ISP)和嚴格監管地區所使用的深層封包檢測(DPI)至關重要。
其他技術更新包括:
- DAITA(防禦 AI 導向流量分析): 專為對抗流量分析攻擊而設計的功能,現已更新至 DAITA v2。
- 抗量子隧道(Quantum-Resistant Tunnels): 後量子安全密鑰交換已從 Classic McEliece 轉換為 HQC,這顯著降低了 CPU 負載並縮小了公鑰體積。
- 多跳路由(Multihop Routing): 流量在到達目的地前會經過兩個中繼伺服器,進一步提升匿名性。
這些功能(包括 WireGuard over Shadowsocks 混淆技術)為身處高強度監控環境下的用戶提供了強大的防護工具。
如欲深入了解網絡架構及最新的加密協定資訊,請瀏覽 squirrelvpn.com 探索最前瞻的技術洞察。