IPsec:大多數企業 VPN 背後已有 30 年歷史的協定套件

12 最小閱讀量VPN協定

IPsec 是您可能從未聽說過但每天都在使用的 VPN 協定。幾乎每個網站到網站的企業 VPN、每個本機 iOS「VPN」設定、路由器上的每個 L2TP/IPsec 設定都在底層執行 IPsec。這也是 Bruce Schneier 在 2003 年稱為「過於複雜而無法安全」的協議。本解釋涵蓋了它是什麼、它實際上是如何運作的、它的亮點以及它 30 年累積的複雜性對其造成的損害。

完整的文章正文以英文提供如下。

什麼是 IPsec

IPsec 是由一套 IETF 標準定義的第 3 層(網路層)安全框架,其基礎標準可追溯至 1995 年。與 TLS(在傳輸層運行)或 SSH(應用程式層)不同,IPsec 位於傳輸層之下。每個 TCP、UDP、ICMP 封包 — 或任何其他基於 IP 的協定 — 都可以對應用程式透明地進行驗證和加密。

它不是單一協定。它是一個由多個協同工作的協定組成的框架:

  • 身份驗證標頭 (AH) — 無連接完整性和身份驗證,但沒有機密性。原始 RFC 1826 (1995),現為 RFC 4302.
  • 封裝安全負載 (ESP) — 驗證、完整性、 機密性。 RFC 1827 (1995),現在為 RFC 4303。這是當今幾乎每個人都使用的。
  • Internet 金鑰交換 (IKE) — 協商 ESP 所使用的金鑰的金鑰管理協定。 IKEv1 (RFC 2409, 1998) 已基本被棄用。 IKEv2 (RFC 7296, 2014) 是現代版本。
  • ISAKMP — IKE 使用的經過驗證的金鑰管理的底層框架。

實際運作原理

IPsec 在 IP 標頭和傳輸層負載之間新增了一層標頭和加密負載。有兩種模式:

傳輸模式

僅加密和驗證每個資料包的有效負載。原始 IP 標頭保持不變,僅有安全協議號開關。使用主機到主機;不會隱藏實際的來源/目標 IP。使用 AH 時,NAT 不相容,因為 AH 會覆寫其驗證雜湊中的 IP 標頭,而 NAT 會修改飛行中的標頭。

T 隧道模式

將整個原始 IP 封包封裝在具有新外部標頭的新 IP 封包內。這就是企業站點到站點 VPN 所使用的。兩個公司網路各有自己的網關,它們之間的流量通過 IPsec 隧道流動,其中內部位址對於路徑上的任何人都是不可見的。隧道模式也可以本地處理 NAT 遍歷(UDP 封裝、RFC 3948)。

安全關聯

在兩個端點交換資料之前,它們協商 安全關聯 (SA) — 關於函數的加密演算法(AES-GCM、ChaCha20-Poly1305 等)、其中哪一種加密演算法(SHA-256、ChaCha20-Poly1305 等)、其中哪種加密演算法(SHA-256、ChaCha20-Poly1305 等)、其中哪種加密協定(SHA-256、BSHALA) SA 是單向的;雙向連線需要兩個。

每個 SA 由安全參數索引 (SPI) 加上目標 IP 來識別。 SPI 告訴接收端點使用哪個金鑰和演算法來解密入站資料包。這是實際部署中最常損壞的移動部分 - 供應商之間的 SA 生命週期不匹配每天都會在企業網路中導致無聲的隧道重新密鑰風暴。

Bruce Schneier 批評

在 2003 年的一篇著名論文中,密碼學家 Niels Ferguson 和 Bruce Schneier 審查了 IPsec 並將其稱為 「非常令人失望」。 他們的核心論點: IPsec 的規範非常靈活 — 支援大量可選模式、演算法組合和操作變體 — 幾乎所有實際部署都是不安全的,不是因為加密技術不好,而是因為配置不一致。

20 多年後,這種批評仍然有效。現代 IPsec(IKEv2、AES-GCM、基於憑證的身份驗證、合理的預設設定)是真正安全的。但每個 IPsec 工程師都有關於調試隧道的戰爭故事,這些隧道與 Cisco 完美配合但不適用於 Fortinet,或者在 IPv4 上工作但不能在 IPv6 上工作,或者直到一方在第 8 小時重新生成密鑰並默默地丟棄每個數據包 30 秒為止。

NSA 後門指控

2013 年斯諾登披露揭露了 NSA 計劃“將漏洞插入商業加密系統”,並且IPsec 是專門命名的。 Logjam 研究團隊 (2015) 提出了一個看似合理的機制:當時,約 90% 的可尋址 IPsec VPN 使用第二個 Oakley Diffie-Hellman 群組進行金鑰交換。組織的規模意味著資金充足的攻擊者(例如國家情報機構)可以預先計算一次離散日誌,然後以低廉的成本破壞任何單一會話的金鑰交換。

緩解方法很簡單:使用更大的 Diffie-Hellman 組(組 14 或更高),或更好的橢圓曲線 Diffie-Hellman 和 Curve25519。現代 IPsec 部署就是這樣做的;傳統的通常不會。 2016 年洩漏的 Equation Group(據稱是 NSA 附屬)工具集包括針對 Cisco PIX 和 ASA 防火牆上較舊的 IPsec 實施的特定漏洞。

目前使用 IPsec 的地方

  • 站點到站點企業 VPN — 主要用例。透過 IPsec 隧道模式連接的兩個公司站點是教科書部署。
  • iOS / macOS 本機 VPN — iOS 和 macOS 中的內建「VPN」用戶端本機使用 IKEv2/IPsec。由 MDM 管理的始終在線 VPN 設定檔使用 IPsec。
  • Windows 本機 VPN — Windows 將 IKEv2/IPsec 作為一流選項提供。
  • L2TP/IPsec — 透過 IPsec 進行加密的 L2TP 隧道協定。傳統,緩慢,但得到廣泛支持。大多數情況下已棄用,支援 IKEv2。
  • IPv6 中的強制(最初) — IPsec 支援在早期 IPv6 規範中是強制的,後來在 RFC 6434 中變為可選。

IPsec 與 WireGuard 比較OpenVPN

  • WireGuard:IPsec 更舊、更複雜、更可設定且速度較慢。 WireGuard 更新、固執、更小、速度更快。 WireGuard的IND-CCA安全證明存在;整個 IPsec 不存在任何等效項,因為配置表面太大而無法形式化。
  • OpenVPN:IPsec 在核心中運作(更快); OpenVPN 在用戶空間中運作(更靈活)。 OpenVPN-TCP/443可以偽裝成HTTPS; IPsec 無法真正隱藏自己。
  • 與 L2TP/IPsec:L2TP 沒有增加任何安全性方面的內容;這只是舊客戶知道如何說話的隧道層。裸 IKEv2/IPsec 絕對更好。

對於現代 Linux 伺服器上的原始 speed,具有 AES-NI 硬體加速的 IPsec 與 WireGuard 具有競爭力。對於行動電池和操作簡單性而言,在作業系統核心中運行的 IKEv2/IPsec 非常出色。對於客戶端到伺服器消費者 VPN 使用,WireGuard 已經超越了它。

後量子擴充

IETF 的 ipsecme 工作小組正在積極標準化 IPsec 的後量子金鑰交換。目前的草案將經典(Diffie-Hellman 或 ECDH)金鑰交換與後量子候選(Kyber、NTRU 等)混合在一起,這樣即使量子電腦可以打破經典的一半,對稱會話金鑰仍然是秘密的。一些企業供應商已經開始提供早期實現。如果您今天選擇新鮮且不受限制,

Verdict

IPsec 不是您應該選擇的協定。 WireGuard 更快、更乾淨。 OpenVPN-TCP/443 對於敵對網路來說更有彈性。但 IPsec 是您不可避免會遇到的協定 - 在每個 iPhone 的 VPN 設定中、在每個企業防火牆中、在每個 L2TP/IPsec 舊配置中、在每個雲端提供者的每個網站到網站連接器中。如果您使用網絡,了解它是必不可少的。

如果您現在運行 IPsec VPN 並考慮遷移到 WireGuard,我們的 協定比較 涵蓋了權衡。

常見問題

IPsec 和 IKEv2 有什麼區別?
IPsec 是加密和驗證 IP 封包的協定。 IKEv2 是協商 IPsec 使用的金鑰的協定。它們幾乎總是一起運行 - 當人們說“IKEv2 VPN”時,他們的意思是 IKEv2 執行金鑰交換,而 IPsec 執行實際的資料包加密。
IPsec 安全嗎?
現代 IPsec 設定 — IKEv2、AES-GCM 或 ChaCha20-Poly1305、與 Curve25519 或更大的 DH 群組進行 ECDH 金鑰交換、基於憑證的驗證 — 都是安全的。使用小型 Diffie-Hellman 群組、IKEv1 攻擊模式或預先共享金鑰的舊配置很容易受到資金充足的對手發起的攻擊。複雜性才是真正的問題:很容易在不知情的情況下不安全地部署 IPsec。
什麼是 L2TP/IPsec?我應該使用它嗎?
L2TP/IPsec 將舊的 L2TP 隧道協定封裝在 IPsec 中進行加密。它在傳統作業系統和路由器上得到了廣泛支援。到 2026 年,沒有充分的理由使用它——現代作業系統用戶端都直接使用 IKEv2/IPsec,這更乾淨、更快、更簡單。只要可以選擇,就使用 IKEv2 而不是 L2TP/IPsec。
IPsec 是否透過 NAT 運作?
是的,在使用 NAT 遍歷(NAT-T、RFC 3948)的隧道模式下,它將 ESP 封包封裝在 UDP 內。幾乎每個現代 IPsec 實作都會自動執行此操作。 AH(驗證標頭)無法透過 NAT 運作,因為 AH 的身份驗證涵蓋了 NAT 修改的 IP 標頭本身。
IPsec 比 WireGuard 更快嗎?
在具有 AES-NI 硬體加速的高階 Linux 伺服器上,IPsec 可以與 WireGuard 的吞吐量相符。在低階硬體、行動裝置或連接設定時間上,WireGuard 通常會更快。對於日常消費者 VPN 使用,WireGuard 較小的程式碼庫和更簡單的配置使其成為更好的預設。
IPsec 解釋:已有 30 年歷史的協定套件仍為大多數企業 VPN 提供支援VPN大師專業版