核心概念:安全關聯 (SA)
- 單向邏輯連接:一對通信雙方需 **兩個 SA** (一個入站、一個出站)。
- 三元組標識:
SPI (Security Parameter Index) + 目的 IP + 協議 (AH/ESP)。
- 內容:加密/認證算法、密鑰、密鑰生命期、反重放窗口等策略參數。
- 多客戶端場景:服務器為每個客戶端維護獨立 SA 對,通過 SPI 区分。
IKE 兩階段協商架構
第一階段:主模式 — 建立 IKE SA (保護控制平面)
- 策略協商 (4 個強制參數):
- 加密算法:`DES` / `3DES` / `AES-128/192/256` (現代棄用 DES/3DES)
- 哈希算法:`MD5` / `SHA-1` / `SHA-256/384/512` (現代棄用 MD5/SHA-1)
- 認證方式:`預共享密鑰 (PSK)` / `數字證書 (RSA/ECDSA)` / `Kerberos v5`
- Diffie-Hellman 組:`Group 1 (768-bit)` / `Group 2 (1024-bit)` / `Group 5 (1536-bit)` / `Group 14 (2048-bit)` / `Group 19/20/21 (ECP 256/384/521)` — **決定共享密鑰材料強度,雙方必須一致**。
- DH 密鑰交換:雙方交換 DH 公值,**不傳輸真實密鑰**,各自計算出共享 **主密鑰 (SKEYID)**,用於後續認證/派生加密金鑰。
- 認證:用主密鑰保護的簽名/哈希驗證對方身份 (PSK 簽名 / 證書鏈驗證 / Kerberos 票據)。失敗則中斷。
**成果**:雙向認證的、加密完整性保護的 **IKE SA (Phase 1 SA)**,緩存備用,支撐多個 Phase 2 SA。
第二階段:快速模式 — 建立 IPsec SA (保護數據平面)
- 策略協商:
- 協議:`AH` (認證頭) / `ESP` (封裝安全載荷,含加密+認證/僅認證)
- 哈希:`HMAC-MD5/SHA-1/SHA-256` (AH/ESP 認證)
- 加密:`NULL` / `3DES` / `AES-CBC/GCM` (ESP 加密)
一致後創建 **兩個 IPsec SA** (入站/出站),各自獨立 SPI/密鑰。
- 會話密鑰材料刷新:
- 默認:從 Phase 1 主密鑰派生 (快、無額外交互)。
- 啟用 **PFS (Perfect Forward Secrecy)**:強制**額外一次 DH 交換** 生成獨立材料,斷開與主密鑰關聯。
- 下發驅動:SA 參數 + SPI 遞交內核 IPsec 引擎 (如 Linux XFRM / Windows WFP / 硬件加速卡) 開始加密轉發數據包。
SA 生命周期與密鑰更新機制
| 參數 | 默認/典型值 | 觸發動作 |
| Phase 1 SA 生命期 | 86400 秒 (24h) / 28800 秒 (8h) | 到期 → 發送 Delete Payload → 重新 Phase 1 協商 |
| Phase 2 SA 生命期 | 3600 秒 (1h) / 1800 秒 (30min) | 到期 → 發送 Delete Payload → 重新 Phase 2 協商 (若 Phase 1 仍有效則走快速模式) |
| 密鑰生命期 (流量/時間) | 時間基準優先;流量上限 **100 MB** (單密鑰最大加密數據量) | 任一條件達到 → 觸發 Rekey (快速模式重協商) |
| 會話密鑰更新限制 | 默認無限制 / 可設 1-100 次 | 同一主密鑰材料最多派生 N 個會話密鑰,超限強制 PFS/重做 Phase 1 |
完美前向保密 (PFS) 深度解析
- 核心承諾:**長期密鑰 (主密鑰/私鑰) 洩露,不導致歷史會話密鑰被推導**。
- 實現:每次 Phase 2 Rekey **強制執行新 DH 交換** (Group 14/19+),產生全新會話密鑰材料,舊材料銷毀。
- 兩種模式:
- Phase 1 PFS (主密鑰 PFS):每次 Phase 2 都要求重新 Phase 1 (重新認證) → **開銷極大、極少用**。
- Phase 2 PFS (會話密鑰 PFS):僅在 Phase 2 額外做 DH 交換 (4 個額外報文),**無需重新認證** → **生產環境推薦啟用**。
- 配置等效性:`PFS Group 14` ≈ `Key Refresh Limit = 1` (每次都換新材料)。
- 非協商屬性:單邊啟用即生效 (對端若不支持 PFS 則協商失敗,建議雙端一致啟用)。
Diffie-Hellman 組選擇指南 (2024 標準)
| Group | 類型 | 模數/曲線 | 安全強度 (NIST) | 建議 |
| 1 | MODP | 768-bit | 80-bit (已破) | **禁用** |
| 2 | MODP | 1024-bit | 80-bit (邊緣) | **禁用** (僅兼容極舊設備) |
| 5 | MODP | 1536-bit | 96-bit | 過渡期可用,建議遷移 |
| 14 | MODP | 2048-bit | 112-bit | **最低基線** (廣泛支持) |
| 19 | ECP | 256-bit (P-256) | 128-bit | **推薦** (性能/安全平衡最佳) |
| 20 | ECP | 384-bit (P-384) | 192-bit | 高安全需求 (國密/軍用) |
| 21 | ECP | 521-bit (P-521) | 256-bit | 極高安全需求 |
**原則**:Phase 1 與 Phase 2 使用**相同 DH Group** (Phase 1 協商決定,Phase 2 繼承),確保端到端強度一致。
工程落地檢查清單
[ ] Phase 1: AES-256 + SHA-256 + PSK(≥32字符隨機)/ECDSA證書 + Group 19/20
[ ] Phase 2: ESP + AES-GCM-256 + SHA-256 + PFS Group 19
[ ] SA生命期: P1=8h, P2=1h (高安全) / P1=24h, P2=8h (常規)
[ ] 密鑰流量上限: 100MB (默認) 或更低 (高敏感)
[ ] 禁用: DES/3DES/MD5/SHA-1/DH Group 1/2/5
[ ] 反重放窗口: 128/1024 (高速鏈路加大)
[ ] 死對端檢測 (DPD): 間隔 10s/重試 3 次/動作 Restart/Clear
[ ] NAT-T: 穿越 NAT 必開 (UDP 4500 封裝 ESP)
[ ] 證書鏈驗證: 完整信任錨 + CRL/OCSP 檢查
[ ] 日志審計: IKE/ESP 錯誤/重協商/拒絕 事件入 SIEM
[ ] 定期演練: 證書輪換/PSK 變更/算法升級/災備切換
copyright ©
萬盛學電腦網 all rights reserved