СКЗИ «ЛИРССЛ-CSP». Токены PKCS#11 v.2.40 семейства LS11
PKCS#11 (Cryptoki) является стандартом, разработанным RSA Laboratories, для взаимодействия программ с криптографическими токенами, смарт-картами и другими аналогичными устройствами с помощью унифицированного программного интерфейса:
В России Технический Комитет ТК-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.
Опираясь на эти документы ООО «ЛИССИ-Софт» разработало семейство криптографических токенов (криптокенов) «LS11», обеспечивающих возможность использования в прикладных программах интерфейса PKCS#11 для выполнения криптографических функций на базе российских криптоалгоритмов (ГОСТ 28147-89, ГОСТ Р 34.11-94/2012, ГОСТ Р 34.10-2001/2012, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015)
В
качестве криптоядра в проекте «LS11»
используется базовая криптографическая библиотека LCC.
Проект «LS11» реализован для платформ MS Windows, Linux, Sun Solaris, OS X, Android, iOS и др.
Семейство криптокенов «LS11» включает в свой состав:
- программный токен - LS11SW2016;
- облачный токен LS11CLOUD;
- программно-аппаратный токен LS11USB2016;
- программно-аппаратные токены на базе существующих электронных ключей и смарт-карт с интерфейсом PKCS11 - семейство LS11HW;
Облачный токен удобен для тестирования решений на базе токенов/смарткарт PKCS#11 (и в первую очередь браузера Redfox и почтового клиента Redfoxmail). Порядок получения облачного токена LS11CLOUD описан здесь.
Программный токен LS11SW2016 и программно-аппаратный токен LS11USB2016 входят в состав сертифицированного многофункционального СКЗИ «ЛИРССЛ-CSP». Порядок получения программного токена LS11SW2016 описан здесь.
Использование программно-аппаратных токенов (ПАТ) позволяет использовать личные сертификаты (ключевая пара и сертификат пользователя), хранимые на электронных USB-ключах и смарт-картах, на любой программной (Linux, MS Windows, MacOS, Android, iOS и т.д.) и аппаратной платформе, независимо от места формирования ключевой пары и получения сертификата.
Совместное использование программных токенов «LS11» в сочетании с аппаратными токенами с неизвлекаемыми ключами (eToken ГОСТ, Рутокен ЭЦП, СКЗИ «MS_KEY K»), которые имеют сегодня ограниченные возможности, позволяет не только использовать последние для генерации и хранения ключевых пар, формирования и проверки подписи, но и для организации защищенных TLS-соединений.
При создании собственного приложения, предусматривающего работу с сертификатами, создание и проверку электронной подписи, шифрование и т.д.и использующего СКЗИ с интерфейсом PKCS#11, целесообразно использовать высокоуровневый интерфейс.
Таким интерфейсом на сегодняшний день являются интерфейсы MS CryptoAPI, OpenSSL и NSS (Network Security Services).
Для обеспечения возможности использования этих интерфейсов при разработке прикладных программ был добавлен функционал в ПК «ЛИССИ-CSP», обеспечивающий использование токенов/смарт-карт с интерфейсом PKCS#11. Разработан аналогичный engine-модуль для OpenSSL и расширена библиотека NSS (LS-NSS) возможностью поддержки российской криптографии:
Программный токен «LS11SW2016» удобно использовать на этапе разработки и отладки прикладной программы. После отработки на программном токене переход к использованию аппаратных криптографических устройств с интерфейсом PKCS#11 выполнить сравнительно легко.
Для конфигурирования токенов «LS11», как и любых других токенов PKCS#11, используются утилиты P11CONF/GUIP11CONF
В состав «LS11» входит комплект программных тестов для проверки правильности функционирования токена. Исходные тексты тестов могут служить в качестве методических материалов для освоения способов использования интерфейса PKCS#11 при разработке прикладных программ.
Криптокены семейства «LS11» используются в следующих продуктах на различных платформах, включая Android:
- ПК «ЛИССИ-CSP»;
- Mozilla Firefox и Mozilla Thunderbird, а также SeaMonkey;
- криптоплагины LCSignPlugin и LCSignPluginCSP;
- программный комплекс «SignMaker»;
- программный комплекс «Fox-SSF», предназначенный для использования электронной подписи ГОСТ-Р 3410 в продуктах компании SAP AG;
- другие.
Получить
демо-версию программного токена для различных платформ можно здесь.
Для конфигурирования программных, программно-аппаратных и аппаратных токенов/смарт-карт и, прежде всего, для смены пользовательского PIN-кода удобно воспользоваться доступной для свободного скачивания утилитой конфигурирования токенов PKCS#11 p11conf :
bash-4.3$ /usr/local/bin64/p11conf -h
usage: /usr/local/bin64/p11conf [-hitsmIupPred] -A APIpath [-c slotID -U userPin -S SOPin -n newPin -L label]
-h display usage
-i display PKCS#11 library info
-s display slot(s) info (-c slotID is optional)
-t display token(s) info (-c slotID is optional)
Others must use -c slotID
-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 all object attributes
Copyright(C) LISSI-Soft Ltd (http://soft.lissi.ru) 2011-2016
bash-4.3$
bash-4.2$
Графическая оболочка утилиты P11Conf (Платформы Linux, OS X (macOS) и MS Windows):
Дополнительные материалы по PKCS#11:
1. Доступ к порталу Госуслуг из Linux с токенами PKCS#112. Доступ в личный кабинет налоплательщика ФНС с помощью браузера Firefox с поддержкой российской криптографии
3. Браузер Redfox и почтовый клиент Redfoxmail
4. Токены PKCS#11: сертификаты и закрытые ключи
5. Токены PKCS#11: генерация ключевой пары и неизвлекаемость приватного ключа (Продолжение)