Требования безопасности. Часть 3. Эксплуатационное окружение, управление криптографическими ключами
Эксплуатационное окружение - это совокупность необходимых для функционирования модуля средств управления аппаратными и программными компонентами. В стандарте FIPS 140-2 рассматривается несколько видов окружения:
-
универсальное, с коммерческой операционной системой, управляющей как компонентами модуля, так и другими процессами и приложениями;
-
ограниченное, являющееся статическим, немодифицируемым (например, виртуальная Java-машина на непрограммируемой плате для персонального компьютера);
-
модифицируемое, которое может быть реконфигурировано и включать средства универсальных ОС.
Ядро универсального и модифицируемого окружения - операционная система. На первом уровне безопасности к ней предъявляются следующие требования:
- используется только однопользовательский режим, параллельная работа нескольких операторов явным образом запрещается;
- доступ процессов, внешних по отношению к модулю, к данным, критичным для безопасности, запрещается, некриптографические процессы не должны прерывать работу криптографического модуля;
- программное обеспечение модуля следует защитить от несанкционированного раскрытия и модификации;
- целостность ПО модуля контролируется утвержденными средствами.
Для второго уровня безопасности требуется использование ОС, сертифицированных на соответствие определенным профилям защиты на основе "Общих критериев" с оценочным уровнем доверия не ниже второго. Для защиты критичных данных должно применяться произвольное управление доступом с определением соответствующих ролей. Необходимо протоколирование действий крипто-офицера.
Характерная черта третьего уровня безопасности - использование доверенного маршрута.
На четвертом уровне безопасности криптографического модуля нужна ОС с оценочным уровнем доверия не ниже четвертого.
Требования безопасного управления криптографическими ключами охватывают весь жизненный цикл критичных данных модуля. Рассматриваются следующие управляющие функции:
- генерация случайных чисел;
-
генерация ключей;
-
распределение ключей;
- ввод/вывод ключей;
- хранение ключей;
- обнуление ключей.
Секретные ключи необходимо защищать от несанкционированного раскрытия, модификации и подмены, открытие - от модификации и подмены.
Компрометация методов генерации или распределения ключей (например, угадывание затравочного значения, инициализирующего детерминированный генератор случайных чисел) должна быть не проще определения значений ключей.
Для распределения ключей может применяться как ручная транспортировка, так и автоматические процедуры согласования ключей.
Допускается ручной (с клавиатуры) и автоматический (например, при помощи смарт-карты) ввод ключей. На двух нижних уровнях безопасности при автоматическом вводе секретные ключи должны быть зашифрованы; ручной ввод может осуществляться в открытом виде. На третьем и четвертом уровнях при ручном вводе ключей в открытом виде применяются процедуры разделения знаний.
Модуль должен ассоциировать введенный ключ (секретный или открытый) с владельцем (лицом, процессом и т.п.).