使用 XFRM 消息更新 IPsec 密钥

Update IPsec keys using XFRM messages

本文关键字:IPsec 密钥 更新 消息 XFRM 使用      更新时间:2023-10-16

我正在做一个C++项目,需要用 ESP 建立 IPsec SA 并快速更改加密密钥。我的问题如下:

有没有办法在不删除相应的 SA 并创建新 SA 的情况下更新加密 IPsec 密钥?

IPsec 甚至允许这样做吗?我在RFC4301中没有发现有关此问题的任何内容...

我正在使用Netlink/XFRM消息来更改SAD。我尝试在Netlink消息标志中使用NLM_F_REPLACE并XFRM_MSG_UPDSA作为消息类型,但这些消息根本没有效果。我已经看到XFRM_MSG_UPDSA被用来完成由XFRM_MSG_ALLOCSPI消息启动的 SA。

这是XFRM_MSG_UPDSA类型消息的唯一目的,还是我可以以某种方式使用它们来更改加密密钥?

由于按键必须快速变化(如上所述),因此性能是一个因素。因此,我想用尽可能少的管理IPsec(=Netlink/XFRM)操作来压缩我的系统。

我从strongSwan开发人员邮件列表的人那里得到了答案。不幸的是,似乎实际上没有更好的方法。Linux 内核不会更新XFRM_MSG_UPDSA上的密钥(只有其他一些事情),因此剩下的唯一可能性是删除 SA 并创建一个新 SA。