в начало  предыдущее  закрыть  следущее  в конец
141090, Московская область, г. Королев мкр.Юбилейный, ул. Ленинская, д.4, пом.7
Телефон: +7(495) 589-99-53, e-mail: support@lissi.ru


Кроссплатформенная реализация PKCS#11 с поддержкой российских криптографических алгоритмов

     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» включает в свой состав:

  • программно-аппаратный токен lsToken;

  • программный токен - LS11SW2016;
  • программно-аппаратные токены на базе существующих электронных ключей и смарт-карт с интерфейсом PKCS11 - семейство LS11HW;
  • облачный токен LS11CLOUD:

  • Особо следует выделить программно-аппаратный токен на базе смарт-карты с ОС Магистра х.х , библиотека PKCS11 (LSSP11 ) которого обеспечивает интерфейс для аппаратной генерации ключевой пары ГОСТ Р34.10-2001 с неизвлекаемым закрытым ключом, а также формирования и проверки ЭП.

    Программо-аппаратные криптокены включают в себя, в зависимости от модификации, универсальные электронные карты (УЭК, java-card) (библиотека lccryptoki_jc) или электронные USB-ключи, смарт-карты и Micro SD Card (семейство библиотек LS_HW11), которые используются для защищенного хранения личных сертификатов (ключевых пар и сертификатов). В качестве программно-аппаратных криптокенов могут использоваться любые электронные USB-ключи и смарт-карты, имеющие интерфейс PKCS#11.

    При использовании библиотек LS_HW11 фактически создается виртуальный токен с интерфейсом PKCS#11 и расширение данного стандарта с поддержкой российских криптографических алгоритмов («Расширение стандарта PKCS#11 для российских криптографических алгоритмов»):


    Сегодня наиболее широкое распространение получили электронные USB-ключи и смарт-карты производства  компании Longmai (mToken), компании «Актив» (Рутокен Lite и другие), «Аладдин Р.Д.» (eToken), СКЗИ «MS_KEY K» компании «МультиСофт» и другие. Как правило, все эти электронные USB- ключи и смарт-карты сертифицированы в системах сертификации ФСТЭК России, ФСБ России и др.

    Использование программно-аппаратных токенов (ПАТ) позволяет использовать личные сертификаты (ключевая пара и сертификат пользователя), хранимые на электронных USB-ключах и смарт-картах, на любой программной (Linux, MS Windows, MacOS, Android, iOS и т.д.) и аппаратной платформе, независимо от места формирования ключевой пары и получения сертификата.

    Скачать   библиотеки семейства LS_HW11 (ls_rtpkcs11ecp, ls_rtpkcs11g и другие) для различных платформ можно здесь.

    Использование USB-ключей, смарт-карт и Micro SD Card через библиотеки LS_HW11 возможно только при наличии на них лицензии. Для получения лицензии для USB-ключей, смарт-карт и Micro SD Card необходимо воспользоваться веб-сервисом лицензирования токенов:


    Совместное использование программных токенов «LS11» в сочетании с аппаратными токенами с неизвлекаемыми ключами (eToken ГОСТ, Рутокен ЭЦП, СКЗИ «MS_KEY K»), которые имеют сегодня ограниченные возможности, позволяет не только использовать последние для генерации и хранения ключевых пар, формирования и проверки подписи, но и для организации защищенных TLS-соединений.

    При создании собственного приложения, предусматривающего работу с сертификатами, создание и проверку электронной подписи, шифрование и т.д.и  использующего СКЗИ с интерфейсом PKCS#11, целесообразно использовать высокоуровневый интерфейс.

    Таким интерфейсом на сегодняшний день являются интерфейсы MS CryptoAPI, OpenSSL и NSS (Network Security Services).

    Для обеспечения возможности использования этих интерфейсов при разработке прикладных программ был добавлен функционал в ПК «ЛИССИ-CSP», обеспечивающий использование токенов/смарт-карт с интерфейсом PKCS#11. Разработан аналогичный engine-модуль для OpenSSL и расширена библиотека NSS (LS NSS) возможностью поддержки  российской криптографии


    Программный токен «LCCryptoki» удобно использовать на этапе разработки и отладки прикладной программы. После отработки на программном токене переход к использованию аппаратных криптографических устройств с интерфейсом PKCS#11 выполнить сравнительно легко.

    Токен «LS11» имеет простую и гибкую систему конфигурирования, построенную на основе скриптового языка Lua. Более того, сама динамическая интерфейсная библиотека «LCCryptoki» дополнена интерфейсом Lua-модуля, что позволяет производить вызов функций PKCS#11 не только из компилируемых программ, но и непосредственно на интерпретируемом языке Lua. Такой симбиоз компилируемого и интерпретируемого кода стал популярен в последние годы у разработчиков программных систем, стремящихся к обеспечению гибкости их использования.

    В состав «LS11» входит комплект программных тестов для проверки правильности функционирования токена. Исходные тексты тестов могут служить в качестве методических материалов для освоения способов использования интерфейса PKCS#11 при разработке прикладных программ.

    Криптокены семейства «LS11» используются в следующих продуктах на различных платформах, включая Android:


    Получить демо-версию программного токена для различных платформ можно здесь.

    Для конфигурирования программных, программно-аппаратных и аппаратных токенов/смарт-карт и, прежде всего, для смены пользовательского PIN-кода удобно воспользоваться  веб-сервисом «PKCS11 Конфигуратор-Веб» («PKCS11Manager-Web»):


    или доступной для свободного скачивания  утилитой конфигурирования токенов 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$


    LS_HW11 - Описание программы

    LS11SW 2016- Описание программы

    Дополнительные материалы:

    1. Доступ к порталу Госуслуг из Linux с токенами PKCS#11
    2. Доступ в личный кабинет налоплательщика ФНС с помощью браузера Firefox с поддержкой российской криптографии
    3. Браузер Redfox и почтовый клиент Redfoxmail
    4. Токены PKCS#11: сертификаты и закрытые ключи
    © 2011-2016. ООО «ЛИССИ-Софт». Все права на материалы, находящиеся на сайте, охраняются в соответствии с законодательством РФ. При любом использовании материалов сайта, ссылка на источник обязательна.
    Торговые марки, логотипы и марки услуг, размещенные на данном сайте, являются собственностью ООО «ЛИССИ-Софт».
    Телефон: +7(495) 589-99-53, e-mail: info@lissi.ru