隱私與安全

WireGuard 解析:為何 SecureNet 在其上運行

協議選擇聽起來像是工程師的細節,卻是連線只需一秒而非十秒,以及電池感受不到 VPN 開啟的原因。

協議速度安全

快速回答

WireGuard 是一種從頭設計、以現代密碼學為基礎且程式碼極少的 VPN 協議,約四千行程式碼,遠少於舊協議的數十萬行。這使其速度快、電池負擔低、切換網路時能快速重新連線,且更易於審計。SecureNet 完全採用 WireGuard:沒有協議選單,因為沒有更好的選擇可提供。

關鍵事實

  • 約 4,000 行程式碼, 相較於 OpenVPN 的堆疊有數十萬行。程式碼較少,錯誤點也較少。
  • 固定的現代密碼學 (ChaCha20, Poly1305, Curve25519, BLAKE2s)。無協商,無弱選項。
  • 約一秒即可連線,且在從 Wi-Fi 切換至行動網路時不會掉線。
  • 較低的電池使用量,相較於 OpenVPN 因為每個封包的工作量較少。
  • 自 2020 年起內建於 Linux 核心,且目前被大多數主要 VPN 服務採用。

協議的功能

VPN 協定是一套用於建立加密隧道的規則:兩端如何驗證身分、如何協商金鑰,以及每個封包如何封裝。每個 VPN 都會使用協定。於 2010 年代大部分時間,選擇僅在 OpenVPN(彈性高但速度較慢)與 IKEv2/IPsec(較快但複雜且實作不一致)之間。我們的 VPN 入門指南 介紹隧道本身;本篇則說明隧道的組成。

WireGuard 的不同之處

WireGuard 由 Jason Donenfeld 設計,核心理念只有一個:保持小巧。它不支援所有加密演算法與選項,而是固定一套現代密碼學原語,並完全取消協商。最終產生的協定僅有數千行程式碼,單人即可在一個下午內閱讀完畢。

  • 不進行加密演算法協商。 雙端已事先確定使用的演算法,因而不存在降級或錯誤設定的風險。
  • 無狀態握手。 連線於一次往返即完成,因而感覺瞬間建立。
  • 內建漫遊支援。 若因從 Wi-Fi 步行至行動網路而導致 IP 位址變更,隧道會直接在新位址上繼續。
  • 預設靜默。 WireGuard 伺服器不會回應未知金鑰的封包,因而對掃描工具而言是隱形的。

WireGuard、OpenVPN 與 IKEv2 比較

三種常見的 VPN 協定
WireGuardOpenVPNIKEv2/IPsec
程式碼基礎極小極大大型,分散於作業系統各處
密碼學固定、現代化可設定,包含舊版選項可設定
連線時間約一秒數秒一至數秒
處理網路變更無縫通常會重新連線良好
在 iPhone 上的電池影響較高中等
審計難易度

在 iPhone 上的意涵

手機會不斷切換網路,且大部分時間處於睡眠狀態。若協定在每次網路變更時都需要長時間重新協商,使用者會感受到斷線;若每個封包都需大量運算,則會在電池統計中顯示出明顯耗電。WireGuard 的漫遊與輕量化設計,使得 SecureNet 能在你離開家門的瞬間即自動重新連線,且整天保持開啟也不會成為電池負擔。

為何 SecureNet 只提供 WireGuard

部分 VPN 應用會提供協定選單。我們曾考慮過,但最終放棄。每多一種協定就意味著更多程式碼需要維護、更多漏洞面向,以及使用者往往無法正確選擇的情況。WireGuard 相較於其他協定更快、更簡潔且更易審計,且在 iPhone、iPad 或 Mac 上沒有任何情境需要改用其他協定。因此不提供切換選項。

設定項目較少並非限制,而是協定的整體設計哲學,我們亦在應用中保留了這一點。

實際速度

此協定減少了大部分加密開銷,使得距離與伺服器負載成為決定速度的主要因素。這也是為何 SecureNet 的 Automatic 模式會依延遲與負載挑選伺服器,以及應用在設定中內建速度測試的原因。相關說明請參閱 VPN 會減慢網路速度嗎?

常見問題

WireGuard 安全嗎?

是的。它採用當前廣受好評的密碼學,已接受正式分析,且其小型程式碼基礎的審計程度遠超過舊有協定。

WireGuard 比 OpenVPN 更快嗎?

始終如一。它每個封包的運算量較少,且以單次往返完成連線。在相同伺服器上,WireGuard 通常提供更高吞吐量與更低延遲。

我可以將 SecureNet 換成其他協定嗎?

不能。SecureNet 僅使用 WireGuard。沒有協定設定,因為在 iPhone、iPad 或 Mac 上沒有更好的選項可供提供。

在我於 Wi-Fi 與行動網路之間切換時,WireGuard 能正常運作嗎?

是的,這是其設計目標之一。隧道會從新位址持續連線,無需重新完整連線。