完整性与 PRF 是什么
IKE 阶段一里有两类密码学功能容易被混为一谈:完整性算法负责给 IKE 报文做校验,防止协商过程被篡改;PRF(伪随机函数)负责在密钥交换后推导密钥材料、并参与身份认证的计算。IKEv1 里两者由同一个 hash 字段决定,选了 MD5 就同时是校验和 PRF;IKEv2 把它们拆成 integrity 与 prf 两个独立字段,于是会出现完整性用 sha256、PRF 仍用 sha1 的组合。对接失败时先确认两端这四个字段(IKEv1 hash、IKEv2 integrity/prf)是否逐项一致,比反复重试有效得多。
基本信息
| 适用设备 | Cisco IOS/IOS-XE、华为 VRP、strongSwan/Libreswan |
|---|---|
| IKEv1 字段 | crypto isakmp policy 下 hash,完整性即 PRF |
| IKEv2 字段 | integrity 与 prf 分别指定,可不同 |
| 推荐取值 | sha256 起步,高安全场景 sha384/sha512 |
| 兼容取值 | md5、sha1,仅为存量设备保留 |
| 生效时机 | 阶段一协商,任一项不匹配则 SA 建不起来 |
典型使用场景
- 新建站点到站点 VPN:直接选 SHA-2 系列,避免后期再改一次
- 对接第三方厂商设备:先交换参数表,把 integrity 与 prf 单列一行核对
- 老设备升级过渡期:暂时保留 sha1 保证业务,同时排定替换时间点
- 等保与合规检查:需要说明弱算法存量清单与整改计划
- 协商失败排障:抓 IKE 报文看两端提议里实际携带的算法列表
Cisco 配置对照
Cisco 配置对照
# IKEv1:hash 一个字段同时决定完整性与 PRF
crypto isakmp policy 10
hash sha256
group 14
! IKEv2:integrity 与 prf 分开写,必须都写清楚
crypto ikev2 proposal P1
encryption aes-cbc-256
integrity sha256
prf sha256
group 14
! 查看实际生效的提议
show crypto ikev2 proposal P1算法选择对照
| 算法 | 现状 | 说明 |
|---|---|---|
| md5 | 不推荐 | 碰撞与计算强度不足,仅兼容老设备 |
| sha1 | 逐步淘汰 | 仍有存量,安全审计常被点名 |
| sha256 | 推荐 | 性能与安全平衡,最通用的起步选择 |
| sha384/512 | 高安全 | 部分平台性能开销上升,需实测 |
IKEv2 允许 integrity 与 prf 取不同算法,但多数实现默认两者一致;对接时只看了 integrity 就以为整套对齐,是常见的误判来源。
更换算法属于两端联动操作:建议在同一维护窗口内先改一端、确认 SA 重建成功,再改下一端,避免中途全断。