Проект LCSSL - поддержка российской криптографии в OpenSSL
OpenSSL — криптографический пакет с открытым исходным кодом, который обеспечивает широкие возможности использования различных криптографических алгоритмов в прикладных программах.
Начиная с версии 1.0.0, OpenSSL поддерживает и российские криптографические алгоритмы (ГОСТ 28147-89, ГОСТ Р34.11-94, ГОСТ Р34.10-2001).
Вместе с тем , в настоящее время приняты и введёны в действие новые российские криптографические стандарты:
- ГОСТ Р 34.10-2012 (полное название: «ГОСТ Р 34.10-2012. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»), который должен заменить ГОСТ Р 34.10-2001, описывающий алгоритмы формирования и проверки электронной цифровой подписи (Приказ № 215-ст от 7 августа 2012 года Федерального агентства по техническому регулированию и метрологии );
- ГОСТ Р 34.11-2012 (полное название: «ГОСТ Р 34.11-2012. Информационная технология. Криптографическая защита информации. Функция хэширования»), который должен заменить ГОСТ Р 34.11-94, описывающий алгоритмы и процедуры вычисления хеш-функций;
- ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015 (алгоритмы шифрования «Кузнечик» и «Магма»).
Поддержка новых российских криптографических алгоритмов реализована специалистами ООО «ЛИССИ-Софт» в базовой криптографической библиотеке LCC (LISSI Crypto Core).
Для поддержки новых российских криптографических алгоритмов с использованием программных интерфейсов OpenSSL специалистами ООО «ЛИССИ-Софт» на базе проекта OpenSSL разработан проект LCSSL, который в настоящее время поддерживает ГОСТ Р34.11-94/ГОСТ Р 34.11-2012, ГОСТ Р34.10-2001/ГОСТ Р 34.10-2012, ГОСТ 28147-89, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015. Проект LCSSL разработан с учетом требований и рекомендаций технического комитета по стандартизации «Криптографическая защита информации» (ТК 26) и «Требований к форме квалифицированного сертификата ключа проверки электронной подписи», утвержденных приказом ФСБ России от 27.12.2011 № 795.
Проект LCSSL фактически является форком СКЗИ "ЛИРССЛ-CSP", а именно его составляющей lirssl.
Собственно поддержка тех или иных криптографических алгоритмов осуществляется в LCSSL с помощью, так называемых, ENGINE – плагинов, динамически подключаемых к прикладной программе. В составе LCSSL входит два ENGINE:
- базовый ENGINE LC_CORE_2016;
- ENGINE LC_P11_CORE_2016, обеспечивающий подключение token-ов, поддерживающих российскую криптографию и имеющих интерфейс PKCS11 v. 2.40.
Одним из важных вопросов, решаемых при организации информационной безопасности, является способ хранения криптографических ключей. В традиционных программах OpenSSL ключи хранятся в файлах, зашифрованных на пароле, что создает возможность его похищения.
Более надежный способ хранения ключевого материала является его хранение на отторгаемых носителях, таких как eToken, Рутокен, СКЗИ «MS_KEY K», mToken, универсальные электронные карты, флэшка и т.п.
Для того, чтобы token-ы можно было использовать в программах, использующих OpenSSL (LCSSL), компанией «ЛИССИ-Софт» и был разработан специальный engine LC_P11_CORE_2012, обеспечивающий подключение token-ов через их "родные" библиотеки PKCS#11 для стандарта v2.30. В отличие от штатного ENGINE LC_CORE_2012, engine LC_P11_CORE_2012 сам не выполняет никаких операций с ключевой парой (закрытым ключом), а служит лишь посредником между прикладной программой и token-ом, на котором собственно и выполняются операции, например, генерация ключевой пары, формирование электронной подписи. Существенным преимуществом при этом является то, что ключи будут храниться на отторгаемых носителях.
Engine LC_P11_CORE-2016 позволяет использовать следующие token-ы с интерфейсом PKCS#11:
- Программные токены, например LS11SW2016;
- Программно-аппаратные token-ы;
- Аппаратные токены, например, СКЗИ «MS_KEY K» компании «МультиСофт», Рутокен ЭЦП и др.;
- Облачный токен LS11CLOUD.
Таким образом, LC_P11_CORE_2012 позволяет использовать token-ы в программах OpenSSL в качестве полноценного хранилища ключей и сертификатов.
Реализация проекта LCSSL включает в себя библиотеки, утилиту командной строки и SDK.
Проект LCSSL, также как программный и программно-аппаратные token-ы, является кроссплатформенным и функционирует под управлением операционных систем MS Windows, Sun Solaris, Linux, FreeBSD, IBM AIX, HP HP/UX , QNX , OS X, на мобильных платформах Android и iOS и др.
LS11CLOUD - облачная реализация pkcs11 v2.40 с поддержкой ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012,
ГОСТ Р 34.12-2015, и ГОСТ Р 34.13-201. Руководство Пользователя.