Модели с ГОСТ бывают двух видов:
- Только с ГОСТ - JaCarta-2 ГОСТ, JaCarta-3 ГОСТ;
- Комбинированные с ГОСТ - JaCarta-2 PKI/ГОСТ, JaCarta-3 PKI/ГОСТ, JaCarta-2 SE, JaCarta-3 SE;
3.1.1 Учет версионности ГОСТ
Подробная информация содержится в разделе "Особенности выбора приложения GOST" из описания Единой Библиотеки PKCS#11
Модели JaCarta-2 ГОСТ, JaCarta-2 PKI/ГОСТ, JaCarta-3 ГОСТ, JaCarta-3 PKI/ГОСТ, JaCarta-2 SE, JaCarta-3 SE, JaCarta SecurBIO могут содержать функциональность ГОСТ разных версий, являющиеся поэтапным развитием:
- 2.5.5
- 2.5.9
- 2.5.13
Для того, чтобы однозначно определить с каким приложением какой версии предстоит работать, необходимо после выбора приложения получить его версию.
Сделать это можно с помощью функции C_GetTokenInfo, проанализировав tokenInfo.firmwareVersion.major и tokenInfo.firmwareVersion.minor.
Версии приложения GOST:
ver255 = (tokenInfo.firmwareVersion.major == 2 && tokenInfo.firmwareVersion.minor == 0x37)
ver259 = (tokenInfo.firmwareVersion.major == 2 && tokenInfo.firmwareVersion.minor == 0x3B)
ver2513 = (tokenInfo.firmwareVersion.major == 2 && tokenInfo.firmwareVersion.minor == 0x3f)
О функциональных отличиях можно прочитать в разделе "Функциональные отличия версий ГОСТ"
3.1.2 Функциональные отличия версий ГОСТ
Ниже приведены таблицы сравнения функциональных возможностей ГОСТ версий 2.5.5, 2.5.9, 2.5.13.
Необходимо ориентироваться на эту информацию при встраивании ГОСТ.
Функциональность | ГОСТ, версия 2.5.5 | ГОСТ, версия 2.5.9 | ГОСТ, версия 2.5.13 |
Поддержка алгоритмов ГОСТ Р 34.10-2012/ГОСТ 34.10-2018 (256 и 512 бит): | Частичное соответствие. Поддерживаются только ключи длиной 256 бит. | Частичное соответствие. Поддерживаются только ключи длиной 256 бит. | Соответствие |
Поддержка алгоритмов ГОСТ Р 34.11-2012/ГОСТ 34.11-2018 (256 и 512 бит): | Соответствие | Соответствие | Соответствие |
Поддержка алгоритма ГОСТ 28147-89: - генерация и импорт ключей шифрования; - вычисление и проверка криптографической контрольной суммы данных (имитовставки по ГОСТ). | Соответствие | Соответствие | Соответствие |
Поддержка алгоритмов ГОСТ Р 34.12-2015/ГОСТ 34.12-2018 (Магма): | Поддержка отсутствует | Соответствие | Соответствие |
Поддержка алгоритмов ГОСТ Р 34.12-2015/ГОСТ 34.12-2018 (Кузнечик): | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
Работа с СКЗИ «КриптоПро CSP 5.0 R3» и новее по протоколу защиты канала SESPAKE (режим ФКН) | Поддержка отсутствует | Поддержка отсутствует | Соответствие. Реализовано отдельным апплетом ФКН со своим PIN-кодом и PUK-кодом. |
Ролевая модель:
Роль | ГОСТ, версия 2.5.5 | ГОСТ, версия 2.5.9 | ГОСТ, версия 2.5.13 |
|---|---|---|---|
Гость - доступны только публичные объекты для чтения. Введение ПИН-кода не требуется. | Соответствие | Соответствие | Соответствие |
Пользователь - доступны любые объекты для записи, чтения, модификации, удаления. Требуется введение ПИН-кода. | Соответствие | Соответствие | Соответствие |
Администратор изделия (АИ) - доступны административные действия над устройством. Требуется введение ПИН-кода АИ. | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
Администратор безопасности (АБ) - доступны всё административные действия и действия над доверенными ключами. Требуется введение ключа АБ. | Соответствие | Соответствие | Соответствие |
Поддержка ПИН-кодов:
Роль | ГОСТ, версия 2.5.5 | ГОСТ, версия 2.5.9 | ГОСТ, версия 2.5.13 |
|---|---|---|---|
ПИН-код пользователя | Соответствие | Соответствие | Соответствие |
ПИН-код администратора изделия (АИ) | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
ПИН-код подписи | Соответствие | Соответствие | Соответствие |
ПИН-код форматирования | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
PUK-код разблокировки | Соответствие | Соответствие | Соответствие. Роль PUK-кода исполняет ПИН-код администратора изделия (АИ) |
Функциональные возможности, связанные с ПИН-кодами:
Функциональность | ГОСТ, версия 2.5.5 | ГОСТ, версия 2.5.9 | ГОСТ, версия 2.5.13 |
Разблокировка PIN-кода пользователя | Соответствие | Соответствие | Соответствие |
Форматирование приложения по PIN-коду пользователя | Соответствие | Соответствие | Соответствие |
Форматирование приложения по PIN-коду АИ с установкой политик PIN-кода пользователя | Поддержка отсутствует | Поддержка отсутствует | Соответствие (при наличии полномочий АИ) |
Смена PIN-кода пользователя | Соответствие | Соответствие | Соответствие. Доступно пользователю и АИ (при наличии полномочий АИ). |
Смена PIN-кода администратора | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
Настройка политики смены PIN-кода пользователя | Поддержка отсутствует | Поддержка отсутствует | С производства смена PIN-кода доступна пользователю и администратору. |
PIN-код форматирования | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
Индикация смены дефолтных PIN-кодов | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
3.1.3 Ролевая модель ГОСТ
USB-токены и смарт-карты c ГОСТ поддерживают следующую ролевую модель доступа к устройству:
- Гость. В этом режиме доступа устройство работает по умолчанию. Гостю доступны только публичные объекты и только для чтения. Гость не может выполнять операции записи, изменения или удаления данных, включая пользовательские данные и криптографические ключи.
- Пользователь. Этот режим доступа включается после предъявления ПИН-кода пользователя. Пользователь может выполнять операции чтения, записи, изменения или удаления данных, включая любые приватные данные и некоторые криптографические ключи. Пользователь может выполнять криптографические операции, такие как электронная подпись и шифрование.
- Администратор изделия или просто Администратор. Этот режим доступа включается после предъявления ПИН-кода администратора. Администратор имеет право выполнять различные административные действия, такие как разблокирование устройства инициализация устройства, установка ПИН-кода пользователя, установка парольных политик и ряд других действий. Администратор не имеет доступа к пользовательским данным и криптографическим ключам. Только для ГОСТ версии 2.5.13 и выше!
- Администратор Безопасности. Этот режим доступа включается после предъявления ключа администратора безопасности. Администратор Безопасности имеет расширенные полномочия, по сравнению с Администратором, и может выполнять полную реконфигурацию изделия, устанавливать любые политики, а также записывать и управлять доверенной ключевой информацией. Доверенные ключи, записанные Администратором Безопасности, не могут быть удалены или изменены. Согласно правилам пользования, функции Администратора Безопасности должны выполняться с помощью специального ПО - АРМ Администратора Безопасности.
3.1.4 Строгий сеанс работы
ГОСТ поддерживает строгий сеанс работы с токеном, в котором:
- все данные, передаваемые между библиотекой и токеном, шифруются;
- устройство входит в эксклюзивный режим работы и отвергает попытки любых сторонних приложений получить доступ к его функциям.
Это защищает от попыток вредоносных приложений:
- подменить подписываемый документ в канале связи между библиотекой и токеном;
- использовать состояние “залогиненности” для подписи посторонних поддельных документов.
Для его включения необходимо вызвать функцию C_Login() с параметром userType равном CKU_USER_SM.
3.1.5 Уникальные ПИН-коды ГОСТ
3.1.5.1 PUK-код
PUK-код используется для разблокировки PIN-кода пользователя для ГОСТ версий 2.5.5, 2.5.9. PUK-код не сбрасывает PIN-код пользователя, а обнуляет счётчик неуспешных попыток.
Установка, смена, удаление.
Установка, смена, удаление PUK-кода должна проводиться Администратором Безопасности на «АРМ Aдминистратора Безопасности».
Предъявление PUK-кода.
PUK-код предъявляется с помощью функции C_Login() с параметром userType равном CKU_PUK. При этом будет включена гостевая сессия, а счётчик неверных попыток ввода PIN-кода пользователя будет сброшен и установлен в 0.
3.1.5.2 PIN-код подписи
PIN-код подписи используется как дополнительный фактор для подтверждения операции подписи. Его использование не отменяет необходимость предъявления PIN-кода пользователя для работы в режиме пользователя.
Установка, смена и предъявление
PIN-код подписи устанавливается с помощью функции JC_KT2_SetSignaturePIN(). После установки PIN-код подписи пользователь уже не сможет его удалить, только изменить на новый.
Для изменения PIN-кода подписи необходимо вызвать функцию JC_KT2_ChangeSignaturePIN().
PIN-код подписи может быть удалён только после инициализации устройства.
PIN-код подписи предъявляется с помощью функции C_Login() с параметром userType равном CKU_SIGNATURE. Вызов C_Logout() переключит текущую сессию в гостевую. Т.е. нельзя отменить PIN-код подписи отдельно от сессии пользователя.
Использование PIN-кода подписи
Предъявление PIN-кода подписи является опциональным для каждой ключевой пары на устройстве. Необходимость предъявления задаётся атрибутом CKA_ALWAYS_AUTHENTICATE:
CK_TRUE– необходимо предъявление PIN-кода подписи;CK_FALSE– предъявление PIN-кода подписи не требуется.
Атрибут неизменяемый, т.е. необходимость использования PIN-кода подписи для каждой ключевой пары задаётся на этапе её создания.
Подготовка PIN-кода подписи к использованию:
- установить PIN-код подписи на токен с помощью функции
JC_KT2_SetSignaturePIN(). - сгенерировать ключевую пару при помощи функции
C_GenerateKeyPair(), где в шаблоне закрытого ключа установить атрибутCKA_ALWAYS_AUTHENTICATEвCK_TRUE.
Примечание: Если не установить PIN-код подписи, но при этом создать ключевую пару с необходимостью его предъявления, то такой ключевой парой нельзя будет подписать до установки PIN-кода подписи. |
Использование PIN-кода подписи:
- Предъявить PIN-код пользователя, вызвав функцию
C_Login()с параметром userType равномCKU_USER. Произойдет переход в пользовательскую сессию. - Предъявить PIN-код подписи, вызвав функцию
C_Login()с параметром userType равномCKU_SIGNATURE. Сессия не изменится, т.е. останется пользовательской. - Подписать данные или создать запрос на сертификат.
- Сбросить состояние аутентификации, вызвав функцию
C_Login(). Произойдет переход в гостевую сессию.
3.1.5.3 PIN-код форматирования (сброса к заводским настройкам)
PIN-код форматирования (сброса к заводским настройкам) используется для сброса всех настроек ГОСТ версии 2.5.13 до заводских, а также удаления всех данных.
Установка, смена, удаление.
Установка, смена, удаление PIN-кода форматирования должна проводиться Администратором Безопасности на «АРМ Aдминистратора Безопасности».
Предъявление PIN-кода форматирования.
PIN-код форматирования предъявляется с помощью функции C_Login() с параметром userType равном JC_KT2_PIN_TYPE_FACTORY_RESET. При этом будет включена гостевая сессия, память очищена, все настройки сброшены до заводских, а значения ПИН-кодов будут установлены в значения по умолчанию.