4.1 Версии токена GOST 2
Токен GOST 2 имеет следующие варианты версий:
- 2.5.5
- 2.5.9
- 2.5.13
Для того, чтобы однозначно определить с токеном какой версии предстоит работать, необходимо получить его версию.
Сделать это можно с помощью команды getTokenInfo с указанием аргумента extendedInfo, проанализировав extendedInfo.major, extendedInfo.minor и extendedInfo.release.
Версии токена GOST 2:
ver255 = (tokenInfo.extendedInfo.major == 2 && tokenInfo.extendedInfo.minor == 5 && tokenInfo.extendedInfo.release == 5) ver259 = (tokenInfo.extendedInfo.major == 2 && tokenInfo.extendedInfo.minor == 5 && tokenInfo.extendedInfo.release == 9) ver2513 = (tokenInfo.extendedInfo.major == 2 && tokenInfo.extendedInfo.minor == 5 && tokenInfo.extendedInfo.release == 13) |
Приведем пример кода, демонстрирующего получение версии токена GOST 2:
// Идентификатор токенаvar tokenID = 0;// Получить информацию о токене, включая дополнительную информациюvar tokenInfo = JCWebClient2.getTokenInfo({ args: { tokenID: tokenID, extendedInfo: true }});// проверка версии 2.5.5var isVer255 = (tokenInfo.extendedInfo.major == 2 && tokenInfo.extendedInfo.minor == 5 && tokenInfo.extendedInfo.release == 5);// проверка версии 2.5.13var isVer2513 = (tokenInfo.extendedInfo.major == 2 && tokenInfo.extendedInfo.minor == 5 && tokenInfo.extendedInfo.release == 13);// проверка, что версия меньше 2.5.13var isVerLower2513 = (tokenInfo.extendedInfo.major == 2 ? (tokenInfo.extendedInfo.minor == 5 ? tokenInfo.extendedInfo.release < 13 : tokenInfo.extendedInfo.minor < 5) : tokenInfo.extendedInfo.major < 2);// проверка, что версия больше или равна 2.5.13var isVer2513OrGreater = (tokenInfo.extendedInfo.major == 2 ? (tokenInfo.extendedInfo.minor == 5 ? tokenInfo.extendedInfo.release >= 13 : tokenInfo.extendedInfo.minor > 5) : tokenInfo.extendedInfo.major > 2);4.2 Функциональные отличия версий токена GOST 2
Токен GOST 2 имеет разные версии, являющиеся поэтапным развитием приложения:
- 2.5.5;
- 2.5.9;
- 2.5.13.
Ниже приведены таблицы сравнения функциональных возможностей токена GOST 2 версий 2.5.5, 2.5.9, 2.5.13.
Необходимо ориентироваться на эту информации при встраивании токена GOST 2.
Поддержка
Функциональность | Токен GOST 2, версия 2.5.5 | Токен GOST 2, версия 2.5.9 | Токен GOST 2, версия 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 (Кузнечик): | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
Ролевая модель:
Роль | Токен GOST 2, версия 2.5.5 | Токен GOST 2, версия 2.5.9 | Токен GOST 2, версия 2.5.13 |
|---|---|---|---|
Гость - доступны только публичные объекты для чтения. Введение ПИН-кода не требуется. | Соответствие | Соответствие | Соответствие |
Пользователь - доступны любые объекты для записи, чтения, модификации, удаления. Требуется введение ПИН-кода. | Соответствие | Соответствие | Соответствие |
Поддержка ПИН-кодов:
Роль | Токен GOST 2, версия 2.5.5 | Токен GOST 2, версия 2.5.9 | Токен GOST 2, версия 2.5.13 |
|---|---|---|---|
ПИН-код пользователя | Соответствие | Соответствие | Соответствие |
ПИН-код подписи | Соответствие | Соответствие | Соответствие |
PUK-код разблокировки | Соответствие | Соответствие | Соответствие. Роль PUK-кода исполняет ПИН-код администратора изделия (АИ) |
Функциональные возможности, связанные с ПИН-кодами:
Функциональность | Токен GOST 2, версия 2.5.5 | Токен GOST 2, версия 2.5.9 | Токен GOST 2, версия 2.5.13 |
Разблокировка PIN-кода пользователя | Соответствие | Соответствие | Соответствие |
Форматирование приложения по PIN-коду пользователя | Соответствие | Соответствие | Соответствие |
Смена PIN-кода пользователя | Соответствие | Соответствие | Соответствие. Доступно пользователю и АИ (при наличии полномочий АИ). |
Индикация смены дефолтных PIN-кодов | Поддержка отсутствует | Поддержка отсутствует | Соответствие |
4.3 PIN-код подписи
PIN-код подписи используется как дополнительный фактор для подтверждения операции подписи. Его использование не отменяет необходимость предъявления PIN-кода пользователя для работы в режиме пользователя.
4.3.1 Установка и смена
PIN-код подписи устанавливается для токена с помощью команды setSignaturePIN. После установки PIN-код подписи пользователь уже не сможет его удалить, только изменить на новый.
Для изменения PIN-кода подписи необходимо вызвать команду changeSignaturePIN.
PIN-код подписи может быть удалён только после инициализации устройства администратором с помощью АРМа администратора безопасности JaCarta-2 ГОСТ (или АРМа разработчика).
4.3.2 Использование PIN-кода подписи
Предъявление PIN-кода подписи является опциональным для каждой ключевой пары на устройстве. Необходимость предъявления задаётся аргументом requireSignaturePin команды createKeyPair. Атрибут неизменяемый, т.е. необходимость использования PIN-кода подписи для каждой ключевой пары задаётся на этапе её создания.
Подготовка PIN-кода подписи к использованию:
- установить PIN-код подписи на токен с помощью команды setSignaturePIN;
- создать ключевую пару при помощи команды createKeyPair с аргументом requireSignaturePin, установленным в значение true.
Примечание: Если не установить PIN-код подписи, но при этом создать ключевую пару с необходимостью его предъявления, то такой ключевой парой нельзя будет подписать до установки PIN-кода подписи. |
Использование PIN-кода подписи:
- создание запроса на сертификат (команда genCSR)
- подпись данных (команды signData и signBase64EncodedData)
Проверка наличия PIN-кода подписи:
- для проверки наличия PIN-кода подписи на токене см. Проверка наличия PIN-кода подписи;
- для проверки необходимости предъявления PIN-кода подписи см. Проверка необходимости предъявления PIN-кода подписи.
4.4 Строгий сеанс работы
JC-WebClient позволяет установить строгий сеанс работы с токеном GOST 2, при котором устройство отвергает попытки любых сторонних приложений получить доступ к его функциям. Это защищает от попыток сторонних вредоносных приложений использовать состояние “залогиненности” для подписи поддельных документов.
Для его включения необходимо установить аргумент secureMessaging в true в команде bindToken.