Я работаю над проектом C ++, где необходимо установить IPsec SA с ESP и быстро изменить ключ шифрования. Мой вопрос заключается в следующем:
Есть ли способ обновить ключи шифрования IPsec, не удаляя соответствующий SA и не создавая новый?
IPsec даже позволяет это? Я ничего не нашел об этой проблеме в RFC4301 …
Я использую сообщения Netlink / XFRM, чтобы изменить SAD. Я пытался использовать NLM_F_REPLACE в флагах сообщений Netlink и XFRM_MSG_UPDSA в качестве типа сообщений, но эти сообщения просто не имели никакого эффекта. Я видел, что XFRM_MSG_UPDSA используется для завершения SA, инициированных сообщениями XFRM_MSG_ALLOCSPI.
Это единственная цель для сообщений типа XFRM_MSG_UPDSA или я могу их использовать? как-то изменить ключи шифрования?
Поскольку клавиши должны быстро меняться (как указано выше), производительность является фактором. Поэтому я хочу напрягать свою систему минимальным количеством административных операций IPsec (= Netlink / XFRM), насколько это возможно.
Я получил ответ от ребят из списка рассылки разработчиков strongSwan.
К сожалению, кажется, что на самом деле нет лучшего способа.
Ядро Linux не обновляет ключи в XFRM_MSG_UPDSA (только несколько других вещей), и, таким образом, единственная оставшаяся возможность — удалить SA и создать новый.
Других решений пока нет …