两种算法组合的区别
IPsec 的加密与完整性校验可以分开做,也可以合并做。传统组合是分组加密加消息认证,例如 AES-CBC 配 HMAC-SHA2,配置里要分别指定加密算法与完整性算法;AEAD 类算法把两者合成一次运算,典型是 AES-GCM,只需指定一个算法名并附带 ICV 长度。AEAD 的优势是配置简洁、运算效率高、不易出现只配一半的错误;代价是对端必须支持同一套 AEAD 实现,老平台可能只认 CBC 组合,对接前要先核对双方支持矩阵。
基本信息
| AEAD 代表 | AES-GCM,一次运算完成加密与完整性校验 |
|---|---|
| 传统组合 | AES-CBC 加 HMAC-SHA1/SHA2,两者分别指定 |
| 关键差异 | AEAD 不再单独配置完整性算法,多配会被忽略或报错 |
| 兼容性 | 老平台与部分第三方实现可能只支持 CBC 组合 |
| 协商方式 | 按 proposal 列表顺序逐个尝试,全部失败则第一阶段或第二阶段失败 |
典型使用场景
- 新建设备间隧道:优先选 AEAD,配置更少且不易出错
- 与老设备对接:对端只支持 CBC 时降级组合,先核对支持列表
- 性能敏感链路:AEAD 单次运算比加密加校验两次处理开销更低
- 合规改造:按等保或行业要求选用指定强度的算法组合
- 互通验证:把多种组合同时列入 proposal,观察实际协商结果
配置对照
配置对照
# Cisco:AEAD 变换,只给加密部分
crypto ipsec transform-set TS-GCM esp-gcm 256
# Cisco:传统组合,加密与完整性分开写
crypto ipsec transform-set TS-CBC esp-aes 256 esp-sha256-hmac
# strongSwan:AEAD 写法
# esp_proposals = aes256gcm16
# strongSwan:CBC 写法
# esp_proposals = aes256-sha256
show crypto ipsec sa # 看实际协商出的算法常见组合与选择
| 组合 | 特点 | 适用场合 |
|---|---|---|
| AES-GCM | AEAD,一次运算,配置省心 | 新设备、双方都支持 AEAD |
| AES-CBC + SHA2 | 兼容性最好,需要分别指定 | 老设备或第三方实现互通 |
| AES-CBC + SHA1 | 强度偏低,多数场景不推荐 | 仅用于无法升级的历史设备 |
| 协商失败 | 双方无交集组合 | 查看日志中的 proposal 列表逐条比对 |
proposal 里可以同时列出 GCM 与 CBC 组合,设备会按顺序尝试;排查互通问题时,把两端 proposal 逐条抄下来对照,比反复猜测高效。
AEAD 模式下 DH 与 PFS 仍然是独立配置项,PFS 关不关与是否使用 GCM 没有直接关系。