1

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

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

IPsec 甚至允许这样做吗?我在 RFC4301 中没有发现任何关于这个问题的信息......

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

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

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

4

1 回答 1

2

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

于 2013-11-16T00:04:47.803 回答