Программно-аппаратный токен lsToken
Комитет ТК-26 подготовил документ « Методические рекомендации. Расширение PKCS#11 для использования российских стандартов ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015».
Данные рекомендации определяют расширение спецификаций PKCS#11 для использования криптографических алгоритмов ГОСТ Р 34.10-2012 (электронная подпись), ГОСТ Р 34.11-2012 (хэширование), ГОСТ Р34.12-2015 и ГОСТ Р 34.13-2015 (алгоритмы шифрования кузнечик и магма), а также алгоритмов, построенных на их основе, а также использования ключей, сертификатов, параметров алгоритмов и других объектов, предназначенных для работы с этими стандартами. Данный документ базируется на стандарте PKCS#11 v.2.40.
На базе этих методических рекомендаций был разработан программно-аппаратный токен lsToken, реализующий российские криптографические стандарты ГОСТ Р 34.10-2001/2012, ГОСТ Р 34.11-94/2012, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015, а также ГОСТ 28147-89.
Программно-аппаратный токен lsToken входит в состав семейства токенов LS11. В качестве ключевого носителя используется обыкновенная флешка - USB-флеш-накопитель.
Токен lsToken может хранить объекты ключевой пары (CKO_PRIVATE_KEY, CKO_PUBLIC_KEY) типа CKK_GOSTR3410 или CKK_GOSTR3410_512, объекты сертификатов CKO_CERTIFICATE типа X.509, объекты данных CKO_DATA, ключи для симметричного шифрования и хеширования, а также параметры домена.
lsToken поддерживает следующие механизмы PKCS#11:
bash-4.3$ p11conf -m -A /usr/local/lib64/libls11usb2016.so -c 0
Mechanism #0
Mechanism: CKM_GOSTR3410_KEY_PAIR_GEN (0x1200)
Key Size: 256-256
Flags: 0x10000 ( CKF_GENERATE_KEY_PAIR| )
Mechanism #1
Mechanism: CKM_GOSTR3410_512_KEY_PAIR_GEN (0xD4321005)
Key Size: 512-512
Flags: 0x10000 ( CKF_GENERATE_KEY_PAIR| )
Mechanism #2
Mechanism: CKM_GOSTR3410 (0x1201)
Key Size: 256-256
Flags: 0x2800 ( CKF_SIGN|CKF_VERIFY| )
Mechanism #3
Mechanism: CKM_GOSTR3410_512 (0xD4321006)
Key Size: 512-512
Flags: 0x2800 ( CKF_SIGN|CKF_VERIFY| )
. . .
Mechanism #48
Mechanism: CKM_TLS12_MASTER_KEY_DERIVE (0x3E0)
Key Size: 48-48
Flags: 0x80000 ( CKF_DERIVE| )
Mechanism #49
Mechanism: CKM_TLS12_KEY_AND_MAC_DERIVE (0x3E1)
Key Size: 32-32
Flags: 0x80000 ( CKF_DERIVE| )
Mechanism #50
Mechanism: CKM_TLS_MAC (0x3E4)
Key Size: 12-48
Flags: 0x2800 ( CKF_SIGN|CKF_VERIFY| )
Mechanism #51
Mechanism: CKM_TLS_KDF (0x3E5)
Key Size: 32-48
Flags: 0x80000 ( CKF_DERIVE| )
Mechanism #52
Mechanism: CKM_SHA_1 (0x220)
Key Size: 0-0
Flags: 0x400 ( CKF_DIGEST| )
Mechanism #53
Mechanism: CKM_MD5 (0x210)
Key Size: 0-0
Flags: 0x400 ( CKF_DIGEST| )
OK
bash-4.3$
Программно-аппаратный токен поставляется как флешка, на которой создан токен, а также хранятся (каталог DISTR) для различных платформ (MS Windows/Linux/ARM/MK) и разрядности:
Библиотека PKCS#11 ls11usb;
Утилита p11conf;
Руководство Программиста «lsToken – программно-аппаратная реализация PKCS#11 v2.40 с поддержкой ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015»;
Тестовые сертификаты;
Дистрибутивы Firefox и Thunderbird с поддержкой российской криптографии;
Дополнительное ПО по желанию заказчика (на цену не влияет), работающее через интерфейс PKCS#11.
Если вы используете токен lsToken в Linux, то желательно, чтобы в системе было включено автомонтирование USB-устройств. Если этого нет, то необходимо примонтировать флэшку с токеном.
После получения токена lsToken все, что требуется пользователю – скопировать с флэшки библиотеку ls11usb, а также установить требуемое ПО.
И самое главное, поскольку. Пользователь получает токен с предустановленным User PIN (см. README.txt на флэшке) и первым делом в целях безопасности он должен сменить этот PIN-код. Для этого в состав поставки входит утилита p11conf :
#p11conf -h
usage: p11conf [-hitsmIupPred] -A APIpath [-c s-U userPin -S SOPin -n newPin -L label]
-h display usage
-i display PKCS11 info
-t display token info
-s display slot info
-m display mechanism list
-I initialize token
-u initialize user PIN
-p set the user PIN
-P set the SO PIN
-r remove all objects
-e enumerate objects
-d dump enumerated object attributes
#
И так, первое, что должен сделать пользователь после получения токена - это изменение user PIN:
#p11conf -A /usr/local/lib64/ls11usb2016.so -p -c 0
Enter user PIN: *********
Enter the new user PIN: ************
Re-enter the new user PIN: ***********
#
Воспользовавшись этой утилитой, можно также получить всю информацию об обслуживаемых слотах и находящихся в них токенах:
bash-4.3$ /usr/local/bin64/p11conf -s -A /usr/local/lib64/libls11usb2016.so
Slot with ID 0 Info
Description: Flash Udisk
Manufacturer: Generic
Flags: 0x7 ( TOKEN_PRESENT|REMOVABLE_DEVICE|HW_SLOT )
Hardware Version: 2.0
Firmware Version: 2.0
Token #0 Info:
Label: LS11USB_RAB
Manufacturer: Generic
Model: Flash Udisk
Serial Number: ECBC5E8FEA09E720
Flags: 0x80040D ( RNG|LOGIN_REQUIRED|USER_PIN_INITIALIZED|TOKEN_INITIALIZED)
Sessions: 0/256
R/W Sessions: 0/256
PIN Length: 4-32
Public Memory: -1/-1
Private Memory: -1/-1
Hardware Version: 2.0
Firmware Version: 2.0
Time: 17:59:27
Slot with ID 1 Info
Description: MassStorage
Manufacturer: Rutoken
Flags: 0x7 ( TOKEN_PRESENT|REMOVABLE_DEVICE|HW_SLOT )
Hardware Version: 2.0
Firmware Version: 2.0
Token #1 Info:
Label: LS11USB_RUTOKEN_64
Manufacturer: Rutoken
Model: MassStorage
Serial Number: 40D17616A5F6F718
Flags: 0x80040D ( RNG|LOGIN_REQUIRED|USER_PIN_INITIALIZED|TOKEN_INITIALIZED|)
Sessions: 0/256
R/W Sessions: 0/256
PIN Length: 4-32
Public Memory: -1/-1
Private Memory: -1/-1
Hardware Version: 2.0
Firmware Version: 2.0
Time: 17:59:27
. . .
Slot with ID 3 Info
Description: LS11USB2016 Slot 3
Manufacturer: LISSI-Soft Ltd
Flags: 0x6 ( REMOVABLE_DEVICE|HW_SLOT )
Hardware Version: 2.0
Firmware Version: 2.0
OK
bash-4.3$
Все, после копирования в систему библиотеки ls11usb и смены пользовательского PIN, токен lsToken готов к использованию в приложениях:, например, подключайте в Firefox, Thunderbird и пользутесь ГОСТ-ым https, подписывайте и шифруйте почту. Если у вас на токене lsToken хранится, ваш личный сертификат, полученный в одном из аккредитованных УЦ, то вы можете получить доступ в личный кабинет на портале Госуслуг.
Альтернативой такому токену может быть облачный токен LS11CLOUD:
Дополнительные материалы по PKCS#11:
1. Доступ к порталу Госуслуг из Linux с токенами PKCS#112. Доступ в личный кабинет налоплательщика ФНС с помощью браузера Firefox с поддержкой российской криптографии
3. Браузер Redfox и почтовый клиент Redfoxmail
4. Токены PKCS#11: сертификаты и закрытые ключи
5. Токены PKCS#11: генерация ключевой пары и неизвлекаемость приватного ключа (Продолжение)