Перейти к содержимому

Особенности интеграции токена GOST 2

USB-токены и смарт-карты JaCartaAPI и SDKUSB-токены и смарт-карты JaCarta

Токен 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.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);

Функциональные отличия версий токена 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-код подписи устанавливается для токена с помощью команды setSignaturePIN. После установки PIN-код подписи пользователь уже не сможет его удалить, только изменить на новый.

Для изменения PIN-кода подписи необходимо вызвать команду changeSignaturePIN.

PIN-код подписи может быть удалён только после инициализации устройства администратором с помощью АРМа администратора безопасности JaCarta-2 ГОСТ (или АРМа разработчика).

Предъявление PIN-кода подписи является опциональным для каждой ключевой пары на устройстве. Необходимость предъявления задаётся аргументом requireSignaturePin команды createKeyPair. Атрибут неизменяемый, т.е. необходимость использования PIN-кода подписи для каждой ключевой пары задаётся на этапе её создания.

Подготовка PIN-кода подписи к использованию:

  • установить PIN-код подписи на токен с помощью команды setSignaturePIN;
  • создать ключевую пару при помощи команды createKeyPair с аргументом requireSignaturePin, установленным в значение true.

Примечание: Если не установить PIN-код подписи, но при этом создать ключевую пару с необходимостью его предъявления, то такой ключевой парой нельзя будет подписать до установки PIN-кода подписи.

Использование PIN-кода подписи:

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

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

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