推荐算法与加密套件
推荐算法与加密套件
为新的站点到站点 IPSec VPN 选择算法时,建议先确定一个可长期维护的安全基线,再根据对端兼容性、设备性能和合规要求做收敛。常规 FortiGate 到 FortiGate 站点到站点 VPN,优先使用 IKEv2、AES-GCM、route-based VPN 和 ECP DH 组。
相关信息
本文主要适用于 FortiOS 7.2.0 及之后版本中的 route-based VPN(phase1-interface 和 phase2-interface),以 FortiGate 到 FortiGate 的站点到站点隧道为主。
推荐基线
如果没有特殊兼容性限制,可以从以下两套基线中选择。
| 项目 | 均衡安全与性能 | 高安全性 |
|---|---|---|
| IKE 版本 | IKEv2 | IKEv2 |
| 一阶段 Proposal | aes128gcm-prfsha256 | aes256gcm-prfsha384 |
| 一阶段 DH 组 | 19(ECP P-256) | 21(ECP P-521) |
| 一阶段 lifetime | 86400 秒 | 86400 秒 |
| 二阶段 Proposal | aes128gcm | aes256gcm |
| 二阶段 PFS | 启用,DH 组 19 | 启用,DH 组 21 |
| 二阶段 lifetime | 43200 秒 | 43200 秒 |
| 典型适用场景 | 大多数站点到站点 VPN、分支接入场景 | 对加密强度余量要求更高的站点互联 |
提示
DH 组 20(ECP P-384)是介于 DH 组 19 与 21 之间的折中选择。如果希望比 P-256 有更高的传统密钥交换强度,但又不想直接使用 P-521,可以选择 aes128gcm-prfsha256 或 aes256gcm-prfsha384 搭配 DH 组 20。
选择依据
优先使用 IKEv2
新建 IPSec VPN 时,除非对端只支持 IKEv1,否则优先使用 IKEv2。
- IKEv2 协商交互更简洁,重协商行为更清晰。
- IKEv2 更适合现代认证和客户端/平台互通场景。
- IKEv2 是混合后量子密钥交换(Hybrid PQC)等新能力的基础。
IKEv1 仍然可用于旧设备互通,但更适合作为兼容性例外,而不是新建隧道的默认设计。
优先使用 AES-GCM
AES-GCM 是多数新建 IPSec VPN 的优先选择。
- AES-GCM 属于 AEAD 模式,加密与完整性校验一起完成。
- 配置比 AES-CBC + HMAC 更简洁。
- 新一代 SoC、NP7 平台以及具备 AES 加速能力的 x86 平台通常更适合从 AES-GCM 开始设计。
重要
不要简单理解为 AES-GCM 在所有 FortiGate 型号上都一定更快。较旧的 NP6、CP9 时代平台,或已经接近性能上限的设备,在批量迁移前应使用真实业务流量或压力测试验证吞吐和 CPU 占用。
启用 PFS
站点到站点 VPN 建议在二阶段启用 PFS。PFS 会在 Child SA 重协商时执行额外的密钥交换,提高不同 Child SA 之间的密钥隔离性。对现代平台而言,这部分额外开销通常是值得的。
如果必须与旧对端互通,PFS 配置需要两端保持一致。IKEv2 场景下,PFS 不一致可能表现为第一次协商成功,但后续 Create Child SA 重协商失败,相关说明可参考 VPN → IPSec VPN → IPSec VPN 排错 → IPSec 连接协商失败章节。
DH 组选择
DH 组需要同时考虑安全强度、对端支持情况和设备性能。以下为常见选择建议。
| DH 组 | 名称 | 大致强度 | 建议 |
|---|---|---|---|
| 1 | MODP 768 | 弱 | 不建议使用 |
| 2 | MODP 1024 | 弱 | 不建议使用 |
| 5 | MODP 1536 | 弱 | 不建议使用 |
| 14 | MODP 2048 | 偏低 | 仅作为旧设备互通回退选择 |
| 15 | MODP 3072 | 约 128-bit | 对端不支持 ECP 时可以使用 |
| 16 | MODP 4096 | 强 | 可用,但通常比 ECP 更重 |
| 19 | ECP P-256 | 约 128-bit | 大多数场景的均衡选择 |
| 20 | ECP P-384 | 约 192-bit | 需要更高余量但不想使用 P-521 时的折中选择 |
| 21 | ECP P-521 | 约 256-bit | 高安全性配置的优先选择 |
| 27 | BrainpoolP224r1 | 偏低 | 不建议新建隧道使用 |
| 28-30 | Brainpool 系列 | 强 | 除非有明确互通或合规原因,否则不作为通用默认值 |
| 31 | Curve25519 | 强 | 双方均支持并完成测试后可以使用 |
| 32 | Curve448 | 强 | 双方均支持并完成测试后可以使用,实际互通环境中相对更少见 |
常见组合如下:
aes128gcm-prfsha256+ DH 组19:常规均衡配置。aes128gcm-prfsha256或aes256gcm-prfsha384+ DH 组20:希望提高密钥交换强度,同时控制性能开销。aes256gcm-prfsha384+ DH 组21:更强调加密强度余量的配置。
一阶段和二阶段不强制使用相同 DH 组,但在可控环境中建议保持一致,便于标准化、审计和后续排错。
lifetime 与隧道行为
推荐从 FortiGate 默认 lifetime 开始:
- 一阶段
keylife:86400秒(24 小时)。 - 二阶段
keylifeseconds:43200秒(12 小时)。
配置时注意以下原则:
- 二阶段 lifetime 建议小于或等于一阶段 lifetime。
- 不要在没有明确合规要求的情况下,把 lifetime 缩短到几分钟级别,否则会增加不必要的重协商压力。
- 如合规要求更短的二阶段 lifetime,一阶段 lifetime 仍建议保持相对较长,避免频繁完整重协商。
SA 重协商机制和 keepalive 的关系可参考 VPN → IPSec VPN → IPSec 重协商机制章节。
DPD、auto-negotiate 与 route-based VPN
站点到站点 VPN 建议保持 DPD 开启:
on-demand适合作为大多数站点到站点隧道的默认值。on-idle适合对静默链路故障检测更敏感的场景。
对于静态站点到站点 VPN,如果希望隧道表现为 always-on 服务,可以在一阶段和二阶段启用 auto-negotiate。这类配置常用于分支到总部、静态路由隧道、或需要隧道先于业务流量建立的动态路由设计。
新建 VPN 建议使用 route-based VPN:
- 使用
phase1-interface与phase2-interface。 - 简单分支可以使用
set add-route enable让 FortiGate 自动添加到对端选择器的路由。 - 较大规模或需要明确控制汇总、备份、选路行为的网络,建议在 IPSec 接口上运行静态路由或 BGP。
混合 PQC 选项
FortiOS 7.6.1 及之后版本支持在 IPSec 密钥交换中使用混合后量子密钥交换。此功能基于 IKEv2,在传统 DH 密钥交换之外,通过 ADDKE1 到 ADDKE7 增加额外的 Key Exchange,而不是用 PQC 完全替代传统 DH。
重要
混合 PQC 适合两端 FortiGate 均支持对应 FortiOS 版本和算法的场景。与第三方设备或旧版本 FortiOS 互通前,必须先确认对端是否支持相同的 IKEv2 扩展、ADDKE 轮次和 KEM 取值。
常见 ML-KEM 取值如下:
| CLI 取值 | 算法 | 建议 |
|---|---|---|
| 35 | ML-KEM-512 | 偏轻量,适合实验、资源较小或安全余量要求较低的场景 |
| 36 | ML-KEM-768 | 较均衡,适合作为常规混合 PQC 起点 |
| 37 | ML-KEM-1024 | 更高安全余量,适合对敏感数据或长期保密要求更高的场景 |
如果在 FortiGate 到 FortiGate 的站点到站点 VPN 中启用混合 PQC,可以从以下组合开始实验:
- IKE 版本:
IKEv2。 - 一阶段:
aes256gcm-prfsha384。 - 传统 DH 组:
20。 - 附加 Key Exchange:
ML-KEM-768(addke1 36)。 - 二阶段:
aes256gcm。 - PFS:启用,DH 组
20。
如需更高安全余量,可以改为 DH 组 21 + ML-KEM-1024(addke1 37)。启用 PQC 后 IKE 报文可能明显变大,如果路径上存在丢弃 IP 分片的设备,应同时关注 VPN → IPSec VPN → IKE 分片章节中的建议。
配置示例
以下示例用于 route-based 站点到站点 VPN。实际部署时,将接口、对端地址、PSK、路由和防火墙策略替换为现场配置。
均衡安全与性能
配置一阶段。
config vpn ipsec phase1-interface edit "vpn-balanced" set interface "wan1" set remote-gw 198.51.100.10 set ike-version 2 set authmethod psk set psksecret <password> set proposal aes128gcm-prfsha256 set dhgrp 19 set keylife 86400 set dpd on-demand set auto-negotiate enable next end配置二阶段。
config vpn ipsec phase2-interface edit "vpn-balanced-p2" set phase1name "vpn-balanced" set proposal aes128gcm set pfs enable set dhgrp 19 set keylifeseconds 43200 set auto-negotiate enable next end
高安全性
配置一阶段。
config vpn ipsec phase1-interface edit "vpn-high" set interface "wan1" set remote-gw 198.51.100.10 set ike-version 2 set authmethod psk set psksecret <password> set proposal aes256gcm-prfsha384 set dhgrp 21 set keylife 86400 set dpd on-demand set auto-negotiate enable next end配置二阶段。
config vpn ipsec phase2-interface edit "vpn-high-p2" set phase1name "vpn-high" set proposal aes256gcm set pfs enable set dhgrp 21 set keylifeseconds 43200 set auto-negotiate enable next end
混合 PQC
在一阶段启用
addke1和childless-ike。config vpn ipsec phase1-interface edit "vpn-pqc" set interface "wan1" set remote-gw 198.51.100.10 set ike-version 2 set authmethod psk set psksecret <password> set proposal aes256gcm-prfsha384 set dhgrp 20 set addke1 36 set childless-ike enable set keylife 86400 set dpd on-demand set auto-negotiate enable next end在二阶段启用相同的附加 Key Exchange。
config vpn ipsec phase2-interface edit "vpn-pqc-p2" set phase1name "vpn-pqc" set proposal aes256gcm set pfs enable set dhgrp 20 set addke1 36 set keylifeseconds 43200 set auto-negotiate enable next end
结果验证
查看一阶段状态,确认 IKE 版本、Proposal、DH 组和 PQC 状态。
diagnose vpn ike gateway list name vpn-balanced diagnose vpn ike gateway list name vpn-high diagnose vpn ike gateway list name vpn-pqc在启用 PQC 的隧道中,重点关注类似字段:
PQC-KEM (IKE): yes PQC-KEM (all IPsec): yes查看二阶段状态,确认 Child SA 已建立。
get vpn ipsec tunnel name vpn-balanced get vpn ipsec tunnel name vpn-high get vpn ipsec tunnel name vpn-pqc必要时开启 IKE debug,确认协商到的算法和附加 Key Exchange。
diagnose debug application ike -1 diagnose debug enable验证结束后关闭 debug。
diagnose debug disable diagnose debug reset
总结
- 新建站点到站点 IPSec VPN,优先使用 IKEv2、AES-GCM、route-based VPN 和 ECP DH 组。
- 大多数场景可以从
aes128gcm-prfsha256+ DH 组19开始;希望提高安全余量时,可以选择 DH 组20或21。 - 二阶段建议启用 PFS,并保持二阶段 lifetime 小于或等于一阶段 lifetime。
- FortiOS 7.6.1 及之后版本的混合 PQC 是在传统 DH 之外增加
ADDKE,不是替代传统 DH。 - 与旧设备或第三方设备互通时,先确保 IKEv2、AES-GCM、DH/PFS 和 PQC 能力存在共同交集,再做标准化配置。