Развернуть все
Свернуть все

Справочник IKE

Общее описание библиотеки IKE

Библиотека libike_gost инициализируется приложением. Частичная инициализация выполняется автоматически при загрузке библиотеки в ОЗУ и окончательно вызовом функции инициализации cpike_init_gost.

Жизненный цикл IKE SA

IKE SA делятся на:

  • IKE SA фазы 1

  • IKE SA фазы 2

Над IKE SA фазы 1 допустимы операции:
  • Создание

  • Уничтожение

  • Наследование

  • Сериализация/десериализация

  • Установка/получение значений параметров

Над IKE SA фазы 2 допустимы операции:

  • Создание

  • Уничтожение

  • Наследование

  • Установка/получение значений параметров

В процессе работы может быть создано

  • на основе IKE SA фазы 1 - не более 2^12 IKE SA фазы 2 при условии использования PFS и 2^7 без использования PFS

  • время жизни IKE SA фазы 1 ограничено 24 часами

  • время жизни обменов фазы 2 ограничено 24 часами

Создание IKE SA:

  • IKE SA фазы 1 создаётся при успешном выполнении сетевых обменов и вычислений фазы 1

  • Последним вызовом, участвующим в создании криптографических объектов IKE SA фазы 1, является p1_AgreeFn

  • IKE SA фазы 2 создаётся на основе IKE SA фазы 1 при успешном выполнении сетевых обменов и вычислений фазы 2

  • Последним вызовом, участвующим в создании криптографических объектов IKE SA фазы 2, является p2_AgreeFn

Хранение IKE SA:

  • сериализованные IKE SA могут быть сохранены на устройствах долговременной памяти

  • защита сериализованных IKE SA осуществляется с использованием ключа администратора узла сети

Уничтожение IKE SA фаз 1 и 2:

  • вызовом destroyFn в процессе работы

  • вызовом cpike_shutdown_gost при завершении работы. При этом уничтожаются все криптографические объекты и очищаются все рабочие данные, ассоциированные со всеми SA

  • Уничтожение IKE SA фазы 1 не приводит к уничтожению IKE SA фазы 2, созданных на её основе

    Замечание

    Рекомендуется сериализовать данные сессии фазы 1 IKE (p1_SerializeFn) и уничтожать сессию фазы 1. При необходимости создания сессии фазы 2 будет необходимо создать сессию фазы 1 из сериализованных данных (p1_deSerializeFn)

    Наследование IKE SA.

Под наследованием IKE SA понимается создание объектов на основе существующей IKE SA:

  • IKE SA фазы 2 на основе IKE SA фазы 1

  • SPI SA на основе IKE SA фазы 2

Сериализация/десериализация IKE SA фазы 1.

Сериализация/десериализация IKE SA фазы 1 используется для обеспечения отказоустойчивости при работе в составе кластера и повышения производительности:

  • Успешно созданная SA может быть сериализована

  • SA в неактивном состоянии не может быть сериализована

  • SA может быть сериализована по завершении выработки очередной IKE SA фазы 2

  • SA после сериализации может продолжать существовать

  • SA может быть десериализована произвольное количество раз

  • SA сериализуются вызовом p1_SerializeFn

  • SA десериализуются вызовом p1_deSerializeFn

  • при сериализации SA защищается с использованием ключа администратора узла сети

Установка/получение параметров

  • Ряд параметров IKE SA согласовывается в ходе выполнения протокола ISAKMP

  • Ряд параметров IKE SA может быть установлен локально

  • Для части параметров по умолчанию заданы максимальные значения

  • Для этих параметров значения могут быть уменьшены и не могут быть увеличены

Кроме того:

  • Работа с параметрами IKE SA возможна после успешного вызовов p1_CreateFn, p2_CreateFn

  • Невозможна работа с параметрами IKE SA, находящейся в неактивном состоянии

  • Установка параметров невозможна во время создания производных объектов

  • Установка значений параметров осуществляется вызовами p1_SetParamFn, p2_SetParamFn

  • Получение значений параметров осуществляется вызовами p1_GetParamFn, p2_GetParamFn

Контроль времени жизни IKE SA

Под временем жизни IKE SA понимается как время жизни в секундах после создания, так и время жизни, измеренное в количестве обработанных данных.

Параметры библиотеки libike_gost

Библиотека имеет параметры инициализации. Эти параметры не связаны с параметрами, согласуемыми в процессе выполнения обменов IKE. При инициализации библиотеки не используются параметры, согласуемые в процессе работы.

Фиксированные параметры задаются на этапе компиляции исходных текстов библиотеки:
  • Версия ПО, представляемая в виде двух целых чисел: API_MAJOR и API_MINOR

  • максимальное количество сессий фазы 1 и фазы 2

  • внешняя функция журналирования

  • дополнительный аргумент для внешней функции журналирования

Параметры IKE SA фазы 1

Фиксированные параметры SA:

  • Максимальное количество порождаемых из одной IKE SA фазы 1 IKE SA фазы 2 - 2^14 без PFS, 2^16 с PFS

  • максимальные значения счётчиков ошибок аутентификации фазы 2 - 10^5

  • максимальное время жизни SA - 24 часа

  • максимальный объём передаваемых данных (Life Duration) - 2^31-1024 байтов

Следующие параметры имеют значения по умолчанию и могут быть изменены в процессе согласования:
  • узел замены для алгоритмов хэширования и ключевого хэширования - id-Gost28147-89-CryptoPro-B-ParamSet в соответствии с RFC 4357, п.8.2

  • в алгоритме выработки ключа Диффи-Хеллмана в соответствии с RFC 4357, п.5.2 используется параметр UKM со значением 1

  • параметры шифрования и имитозащиты в протоколе - id-Gost28147-89-CryptoPro-B-ParamSet

  • параметры эллиптической кривой - id-GostR3410-2001-CryptoPro-XchB-ParamSet

  • время жизни SA - 8 часов. Максимальное значение - 24 часа

  • объём передаваемых данных (Life Duration) - 2^22 байтов. Максимальный объём передаваемых данных - 2^31-1024 байтов

  • допустимое количество IKE SA фазы 2 - 2^14 без использования PFS, 2^16 с использованием PFS

Параметры IKE SA фазы 2

Фиксированные параметры IKE SA фазы 2:
  • Максимальное количество порождаемых ESP SA - 2

  • максимальное время жизни - 24 часа

  • максимальный объём передаваемых данных (Life Duration) - 2^42-1024 байтов

Следующие параметры имеют значения по умолчанию и могут быть изменены в процессе согласования:

  • узел замены для алгоритмов хэширования и ключевого хэширования - id-Gost28147-89-CryptoPro-B-ParamSet в соответствии с RFC 4357, п.8.2

  • в алгоритме выработки ключа Диффи-Хеллмана используется параметр UKM=1 в соответствии с RFC 4357, п.5.2

  • параметры шифрования и имитозащиты в протоколе - id-Gost28147-89-CryptoPro-B-ParamSet

  • параметры эллиптической кривой - id-GostR3410-2001-CryptoPro-XchB-ParamSet

  • время жизни SA - 8 часов. Максимальное значение 24 часа

API библиотеки libike_gost

В реализации библиотеки и модуля ядра ОС используются соглашения, заимствуемые из базовой ОС и/или зависящие от неё:

  • определения используемых типов данных

  • определения прототипов функций, экспортируемых модулем

  • определения кодов возврата функций

  • определения кодов важности событий

  • определение прототипа внешней функции протоколирования

  • соглашения о вызовах функций модуля, включая определение порядка инициализации, ограничения на допустимые последовательности вызовов функций, ограничения на многонитевое использование

  • определение прототипа функции инициализации модуля

Перед началом использования библиотеки/модуля должна быть вызвана функция инициализации с указанием параметров. В число параметров входят данные, необходимые для:
  • контроля целостности ПО

  • контроля выполнения ограничений на используемый объём ОЗУ

Соглашение о вызовах:

  • Все функции библиотеки возвращают код возврата

  • Для работы с данными неопределённой длины используются соглашения, описанные, например, в документации на API MicroSoft

Многопоточная работа

Следующие функции не должны вызываться одновременно из различных потоков:

Остальные функции могут вызываться из различных потоков для различных сессий IKE.