Время жизни SA в IKEv2: мягкое обновление ключей, жёсткое истечение, отдельная повторная аутентификация
Мягкий предел запускает замену, жёсткий предел выводит старое состояние, а пределы использования могут сработать раньше. Ни один из них не повторяет аутентификацию пользователя.
Таймеры решают, когда ключи туннеля заменяются, и два задействованных порога часто читаются как один. Это не так. Мягкое время жизни просит партнёра построить замену, пока текущая ассоциация безопасности ещё несёт трафик, а жёсткое время жизни — это срок, после которого старая ассоциация исчезает, независимо от того, сработала ли замена. Между ними находится окно перекрытия, которое существует, чтобы пакеты не попадали в разрыв.
Что на самом деле ограничивает время жизни
Ассоциация безопасности IPsec — это пучок криптографического состояния: ключи для одного направления, индекс параметров безопасности, набор алгоритмов и селектор. Время жизни ограничивает, как долго это состояние можно использовать, что ограничивает, сколько трафика защищает один ключ. Это мера сдерживания для ключа, а не утверждение о том, сколько должна длиться сессия пользователя.
Управляющие ассоциации IKE имеют собственные ключи и собственные времена жизни, отдельно от дочерних ассоциаций, несущих данные. Именно здесь люди впервые путают два расписания.
Мягкое начинает замену, жёсткое завершает старое состояние
Когда мягкий порог приближается, партнёр инициирует замену. Реализации обычно срабатывают рано и рандомизируют момент, чтобы головной узел с сотнями туннелей не обновлял все ключи сразу. В IKEv2 замена — это обмен CREATE_CHILD_SA со свежими nonce, плюс обмен Diffie-Hellman, когда настроена совершенная прямая секретность. Результат — новая пара ассоциаций с новыми ключами.
Перекрытие важно. Некоторое время партнёр может держать старую и новую ассоциации, и запись трафика может показать два набора идентификаторов. Это работа механизма, а не неисправность.
Жёсткий порог не прощает. Если замена к тому времени не завершена, старую ассоциацию нужно вывести, и трафик, защищённый только ею, прекращается. Повторяющиеся неудачные обновления ключей, доходящие до жёсткого истечения — это операционный сигнал для расследования, потому что туннель каждый цикл держится на сроке.
Пределы использования могут сработать раньше любых часов
Время — не единственная граница. Реализации могут ограничивать байты или пакеты, защищаемые одним ключом, и загруженный туннель достигнет предела использования гораздо раньше многочасового таймера. strongSwan предоставляет отдельные настройки времени жизни и запаса для времени, байтов и пакетов, то есть эффективная точка обновления — это порог, который наступит первым, минус настроенный запас.
Когда туннель обновляется гораздо чаще, чем предполагают настроенные часы, проверьте пределы байтов и пакетов, прежде чем винить часы. Насыщенный канал и простаивающий канал с одинаковыми настройками времени будут иметь заметно разные темпы обновления ключей, и только один из них следует таймеру.
Каждый партнёр применяет свою политику
IKEv2 не согласовывает единое время жизни, которое оба партнёра должны отображать одинаково. Каждая сторона применяет свою локальную политику и может инициировать замену, когда приближается её собственный предел, как описано в RFC 7296 раздел 2.8. Поэтому расхождение настроенных часов двух партнёров не является автоматически дефектом, хотя сильно различающиеся значения могут вызвать нестабильность, если одна сторона постоянно заменяет состояние, которое другая только что установила.
Координация означает совместимое поведение: окна перекрытия, достаточно длинные для обмена, запасы, оставляющие место для повторных попыток, и мониторинг, показывающий, какая сторона инициировала каждое обновление.
Обновление ключей — не повторная аутентификация
Обновление ключей освежает ключи в рамках существующих аутентифицированных отношений. Повторная аутентификация повторяет проверку личности, будь то обмен сертификатами или разговор EAP. Они работают по отдельным расписаниям, и успешное обновление ничего не говорит о том, должен ли аккаунт по-прежнему иметь доступ.
Это различие важно для отзыва. Отключение аккаунта, отзыв сертификата или завершение сессии — это решения о доступе, требующие явной политики в реализации; они не вытекают из таймера SA, и обновление ключей может спокойно продолжаться для личности, у которой права уже отозваны.
Что записывать по каждому туннелю
Записывайте, какая ассоциация вызвала обновление, старые и новые идентификаторы, какой порог сработал и завершилась ли замена внутри перекрытия. Эти четыре поля делают проблему обновления видимой до того, как она станет сбоем, и отличают агрессивную политику от сбойной.
Держите расписание удаления доступа рядом с этой записью, а не внутри неё. Криптографическая гигиена и политика идентичности — разные средства контроля, и туннель, вовремя вращающий ключи, всё ещё может держать сессию, которую никто не собирался сохранять.