Особенности интеграции токена GOST 2
Версии токена GOST 2
Заголовок раздела «Версии токена GOST 2»Токен GOST 2 имеет следующие варианты версий:
- 2.5.5
- 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)
-
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);Функциональные отличия версий токена GOST 2
Заголовок раздела «Функциональные отличия версий токена GOST 2»Токен GOST 2 имеет разные версии, являющиеся поэтапным развитием приложения:
- 2.5.5;
- 2.5.13.
Важно! Помните, что более новые (высокие) версии приложения GOST2 имеют ряд функциональных отличий, не поддерживаемых более старыми (низкими) версиями приложения.
Ниже приведены таблицы сравнения функциональных возможностей токена GOST 2 версий 2.5.5, 2.5.13.
Необходимо ориентироваться на эту информацию при встраивании токена GOST 2.
| Функциональность | Токен GOST 2, версия 2.5.5 | Токен GOST 2, версия 2.5.13 |
|---|---|---|
| Поддержка алгоритмов ГОСТ Р 34.10-2012/ГОСТ 34.10-2018 (256 и 512 бит): - генерация ключевых пар; - формирование и проверка электронной подписи; - срок действия закрытых ключей до 3-х лет. | Частичное соответствие. Поддерживаются только ключи длиной 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.13 |
|---|---|---|
| Гость - доступны только публичные объекты для чтения. Введение ПИН-кода не требуется. | Соответствие | Соответствие |
| Пользователь - доступны любые объекты для записи, чтения, модификации, удаления. Требуется введение ПИН-кода. | Соответствие | Соответствие |
Поддержка ПИН-кодов:
| Роль | Токен GOST 2, версия 2.5.5 | Токен GOST 2, версия 2.5.13 |
| ПИН-код пользователя | Соответствие | Соответствие |
| ПИН-код подписи | Соответствие | Соответствие |
| PUK-код разблокировки | Соответствие | Соответствие. Роль PUK-кода исполняет ПИН-код администратора изделия (АИ) |
Функциональные возможности, связанные с ПИН-кодами:
| Функциональность | Токен GOST 2, версия 2.5.5 | Токен GOST 2, версия 2.5.13 |
|---|---|---|
| Разблокировка PIN-кода пользователя | Соответствие | Соответствие |
| Форматирование приложения по PIN-коду пользователя | Соответствие | Соответствие |
| Смена PIN-кода пользователя | Соответствие | Соответствие. Доступно пользователю и АИ (при наличии полномочий АИ). |
| Индикация смены дефолтных PIN-кодов | Поддержка отсутствует | Соответствие |
PIN-код подписи
Заголовок раздела «PIN-код подписи»PIN-код подписи используется как дополнительный фактор для подтверждения операции подписи. Его использование не отменяет необходимость предъявления PIN-кода пользователя для работы в режиме пользователя.
Установка и смена
Заголовок раздела «Установка и смена»PIN-код подписи устанавливается для токена с помощью команды setSignaturePIN. После установки PIN-код подписи пользователь уже не сможет его удалить, только изменить на новый.
Для изменения PIN-кода подписи необходимо вызвать команду changeSignaturePIN.
PIN-код подписи может быть удалён только после инициализации устройства администратором с помощью АРМа администратора безопасности JaCarta-2 ГОСТ (или АРМа разработчика).
Использование PIN-кода подписи
Заголовок раздела «Использование PIN-кода подписи»Предъявление PIN-кода подписи является опциональным для каждой ключевой пары на устройстве. Необходимость предъявления задаётся аргументом requireSignaturePin команды createKeyPair. Атрибут неизменяемый, т.е. необходимость использования PIN-кода подписи для каждой ключевой пары задаётся на этапе её создания.
Подготовка PIN-кода подписи к использованию:
- установить PIN-код подписи на токен с помощью команды setSignaturePIN;
- создать ключевую пару при помощи команды createKeyPair с аргументом requireSignaturePin, установленным в значение true.
Примечание: Если не установить PIN-код подписи, но при этом создать ключевую пару с необходимостью его предъявления, то такой ключевой парой нельзя будет подписать до установки PIN-кода подписи.
Использование PIN-кода подписи:
- создание запроса на сертификат (команда genCSR)
- подпись данных (команды signData и signBase64EncodedData)
Проверка наличия PIN-кода подписи:
- для проверки наличия PIN-кода подписи на токене см. Проверка наличия PIN-кода подписи;
- для проверки необходимости предъявления PIN-кода подписи см. Проверка необходимости предъявления PIN-кода подписи.
Строгий сеанс работы
Заголовок раздела «Строгий сеанс работы»JC-WebClient позволяет установить строгий сеанс работы с токеном GOST 2, при котором устройство отвергает попытки любых сторонних приложений получить доступ к его функциям. Это защищает от попыток сторонних вредоносных приложений использовать состояние “залогиненности” для подписи поддельных документов.
Для его включения необходимо установить аргумент secureMessaging в true в команде bindToken.

