Общее описание библиотеки и модуля ядра ESP/AH

Реализация поддержки протоколов семейства ESP/AH реализована в виде модуля уровня ядра ОС esp_gost.o и библиотеки уровня пользователя libesp_gost.so.

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

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

Поддержка протоколов ESP/AH включает в себя реализацию 4-х комбинированных методов защиты данных (combined algorithms [ESP]):

Над ESP/AH SA допустимы операции:

Создание ESP/AH SA:

Хранение ESP/AH SA:

Транспорт ключевой информации между IKE (производителем) и ESP/AH (получателем) удовлетворяет следующим требованиям:

Уничтожение ESP/AH SA:

Контроль времени жизни ESP/AH SA: Под временем жизни ESP SA понимается как время жизни в секундах после создания, так и время жизни, измеренное в количестве обработанных данных.

Время жизни проверяется согласно критериям:

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

Параметры инициализации

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

Фиксированные параметры задаются на этапе компиляции исходных текстов библиотеки:

Параметры, задаваемые при инициализации:

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

Установка параметров ESP/AH SA:

API

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

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

В число параметров входят данные, необходимые для:

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

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

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

Функции espDecapFn и espEncapFn могут вызываться из различных потоков для различных сессий ESP/AH