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.5
var isVer255 = (tokenInfo.extendedInfo.major == 2 && tokenInfo.extendedInfo.minor == 5 && tokenInfo.extendedInfo.release == 5);
 
// проверка версии 2.5.13
var isVer2513 = (tokenInfo.extendedInfo.major == 2 && tokenInfo.extendedInfo.minor == 5 && tokenInfo.extendedInfo.release == 13);
 
// проверка, что версия меньше 2.5.13
var isVerLower2513 = (tokenInfo.extendedInfo.major == 2 ? (tokenInfo.extendedInfo.minor == 5 ? tokenInfo.extendedInfo.release < 13 : tokenInfo.extendedInfo.minor < 5) : tokenInfo.extendedInfo.major < 2);
 
// проверка, что версия больше или равна 2.5.13
var 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.
Важно! Помните, что более новые (высокие) версии приложения GOST2 имеют ряд функциональных отличий, не поддерживаемых более старыми (низкими) версиями приложения.

Ниже приведены таблицы сравнения функциональных возможностей токена 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 бит):
 - генерация ключевых пар;
 - формирование и проверка электронной подписи;
 - срок действия закрытых ключей до 3-х лет.

Частичное соответствие. Поддерживаются только ключи длиной 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-кода подписи:

Проверка наличия PIN-кода подписи:

4.4 Строгий сеанс работы

JC-WebClient позволяет установить строгий сеанс работы с токеном GOST 2, при котором устройство отвергает попытки любых сторонних приложений получить доступ к его функциям. Это защищает от попыток сторонних вредоносных приложений использовать состояние “залогиненности” для подписи поддельных документов.

Для его включения необходимо установить аргумент secureMessaging в true в команде bindToken.