в начало  предыдущее  закрыть  следущее  в конец
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;

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

  • программно-аппаратные токены на базе существующих электронных ключей и смарт-карт с интерфейсом 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»):


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

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

    Комитет ТК-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.

    На базе этих методических рекомендаций специалистами ООО «ЛИССИ-Софт» разработан программный токен LS11SW2016, реализующий российские криптографические стандарты ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015, а также ГОСТ Р 34.10-2001, ГОСТ Р 34.11-94 и ГОСТ 28147-89.

    Так, токен LS11SW2016, в частности, поддерживает механизмы, необходимые для реализации протокола TLS-1.2:

  • CKM_TLS12_MASTER_KEY_DERIVE

  • CKM_TLS12_KEY_AND_MAC_DERIVE

  • Для шифрования данных, например, в соответствии со стандартами ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015 по алгоритму «Кузнечик» с длиной блока 128 бит в разных режимах предназначены следующие механизмы:

  • СKM_KUZNECHIK_ECB

  • CKM_KUZNECHIK_CTR

  • СKM_KUZNECHIK_CFB

  • CKM_KUZNECHIK_OFB

  • СKM_KUZNECHIK_CBC

  • CKM_KUZNECHIK_MAC


  • © 2011-2016. ООО «ЛИССИ-Софт». Все права на материалы, находящиеся на сайте, охраняются в соответствии с законодательством РФ. При любом использовании материалов сайта, ссылка на источник обязательна.
    Торговые марки, логотипы и марки услуг, размещенные на данном сайте, являются собственностью ООО «ЛИССИ-Софт».
    Телефон: +7(495) 589-99-53, e-mail: info@lissi.ru