使用XFRM消息更新IPsec密钥

时间:2013-11-11 09:39:39

标签: c++ linux ipsec

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

有没有办法更新加密IPsec密钥而不删除相应的SA并创建一个新的?

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)操作使我的系统紧张。

1 个答案:

答案 0 :(得分:2)

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