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

СКЗИ «ЛИРССЛ-CSP». LS-NSS – Network Security Services с поддержкой российских криптографических интерфейслов

Пакет Network Security Services (NSS) представляет собой набор библиотек, используемых при кроссплатформенной разработке защищенных клиентских и серверных приложений. Приложения построенные с использование NSS могут использовать TLS от v1.0 до TLS v1.3, PKCS #5, PKCS #7, CMS, PKCS #11, PKCS #12, S/MIME, сертификаты X.509 v3, OCSP и другие стандарты безопасности. По своей функциональной мощности в области криптографии и PKI с NSS может сравниться разве что OpenSSL. Но при этом пакет NSS имеет одно неоспоримое преимущество перед OpenSSL, а именно, имеет хранилище, в котором содержатся корневые сертификаты, сертификаты пользователей. В хранилище также находится информация о подключенных аппаратных ускорителях, токенах/смарткартах с интерфейсом PKCS#11.

Именно последние выступают в качестве криптографического ядра.

В настоящее время пакет NSS поддерживает криптографические интерфейсы  стандарта PKCS#11 v.2.40.

В разработку NSS внесли свой вклад AOL, Red Hat, Sun Microsystems / Корпорация Oracle, Google и другие компании и индивидуальные вкладчики. Исходный код пакета NSS хранится в хранилище  Mozilla.

Пакет NSS широко используется, в том числе и в продуктах Mozilla, включая браузер Mozilla Firefox (в том числе и на платформе Android), почтовый клиент Mozilla Thunderbird и интегрированный пакет Seamonkey.

Пакет NSS, также как и OpenSSL, предоставляет возможность использования для реализации различных функций PKI (генерация ключей, выпуск сертификатов x509v3, работа с электронной подписью, поддержка TLS и т.д.) утилиты командной строки. В отличие от OpenSSL, где функции PKI реализуются одной утилитой openssl, пакет NSS предоставляет целый набор утилит. Так для работы с сертификатами имеется утилита certutil, для работы с защищенными контейнерами PKCS#12 используется утилита pk12util, для работы с электронной подписью используются утилиты p7sign, p7verify, p7content и т.д. Если говорить об операционных системах семейства Linux, то пакет NSS входит в обязательную поставку и все эти утилиты предустановлены.

Также, как для поддержки российских криптографических интерфейсов в openssl, были разработаны библиотеки liblirssl и liblircrypto и утилита lirssl, входящие в состав СКЗИ «ЛИРССЛ-CSP» (Положительное заключение №149.3.2.3-1433 от 18.07.2017 г.), так и для поддержки российских криптоалгоритмов в NSS был разработан пакет LS-NSS. Пакет LS-NSS является одной из составных частей СКЗИ «ЛИРССЛ-CSP».

Разработка пакета LS-NSS велась в строгом соответствии рекомендациям Технического комитета по стандартизации "Криптографическая защита информации" (ТК 26). Это "Расширение PKCS#11 для использования российских криптографических алгоритмов" и проект методических рекомендаций   «Методические рекомендации. Расширение PKCS#11 для использования российских стандартов ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012, ГОСТ Р 34.12-2015 и ГОСТ Р 34.13-2015» :

bash-4.3$ certutil -G –H

 
-G    Generate a new key pair
-h token-name     Name of token in which to generate key (default is internal)
-k key-type       Type of key pair to generate ("dsa", "ec", "gost3410-2001", "gost3410-12-256", "gost3410-12-512","rsa" (default)
-g key-size       Key size in bits, (min 512, max 8192, default 2048) (not for ec)
.           .           .

-q curve-name     Elliptic curve name (ec only or GOST - A,B,C,XA,XB)
.           .           .          
bash-4.3$

Именно эти рекомендации были реализованы не только в LS-NSS, но и в программном LS11SW2016 и в программно-аппаратном LS11USB2016 токенах:

bash-4.3$ /usr/local/bin64/p11conf  -A /usr/local/lib64/libls11sw2016.so  -m -c 0 |grep "Mechanism:"

Mechanism: CKM_GOSTR3410_KEY_PAIR_GEN (0x1200)
Mechanism: CKM_GOSTR3410_512_KEY_PAIR_GEN (0xD4321005)

Mechanism: CKM_GOSTR3410 (0x1201)

Mechanism: CKM_GOSTR3410_512 (0xD4321006)

Mechanism: CKM_GOSTR3410_WITH_GOSTR3411 (0x1202)

Mechanism: CKM_GOSTR3410_WITH_GOSTR3411_12_256 (0xD4321008)

Mechanism: CKM_GOSTR3410_WITH_GOSTR3411_12_512 (0xD4321009)

Mechanism: CKM_GOSTR3410_DERIVE (0x1204)

Mechanism: CKM_GOSTR3410_12_DERIVE (0xD4321007)

Mechanism: CKM_KDF_4357 (0xD4321025)

Mechanism: CKM_KDF_GOSTR3411_2012_256 (0xD4321026)

Mechanism: CKM_GOSTR3410_KEY_WRAP (0x1203)

Mechanism: CKM_GOSTR3410_PUBLIC_KEY_DERIVE (0xD432100A)

Mechanism: CKM_LISSI_GOSTR3410_PUBLIC_KEY_DERIVE (0xD4321037)

Mechanism: CKM_GOST28147_KEY_GEN (0x1220)

Mechanism: CKM_GOST28147 (0x1222)

Mechanism: CKM_GOST28147_KEY_WRAP (0x1224)

Mechanism: CKM_GOST28147_PKCS8_KEY_WRAP (0xD4321036)

Mechanism: CKM_GOST28147_ECB (0x1221)

Mechanism: CKM_GOST28147_CNT (0xD4321825)

Mechanism: CKM_GOST28147_MAC (0x1223)

Mechanism: CKM_KUZNYECHIK_KEY_GEN (0xD4321019)

Mechanism: CKM_KUZNYECHIK_ECB (0xD432101A)
Mechanism: CKM_KUZNYECHIK_CBC (0xD432101E)
Mechanism: CKM_KUZNYECHIK_CTR (0xD432101B)
Mechanism: CKM_KUZNYECHIK_OFB (0xD432101D)

Mechanism: CKM_KUZNYECHIK_CFB (0xD432101C)
Mechanism: CKM_KUZNYECHIK_OMAC (0xD432101F)
Mechanism: CKM_KDF_GOSTR3411_2012_256 (0xD4321026)
Mechanism: CKM_KDF_4357 (0xD4321025)
Mechanism: CKM_MAGMA_CBC (0xD4321023)
Mechanism: CKM_MAGMA_CTR (0xD4321020)
Mechanism: CKM_MAGMA_OFB (0xD4321022)
Mechanism: CKM_MAGMA_CFB (0xD4321021)
Mechanism: CKM_MAGMA_OMAC (0xD4321024)
Mechanism: 0xD4321027
Mechanism: CKM_GOSTR3411 (0x1210)
Mechanism: CKM_GOSTR3411_12_256 (0xD4321012)
Mechanism: CKM_GOSTR3411_12_512 (0xD4321013)
Mechanism: CKM_GOSTR3411_HMAC (0x1211)
Mechanism: CKM_GOSTR3411_12_256_HMAC (0xD4321014)
Mechanism: CKM_GOSTR3411_12_512_HMAC (0xD4321015)
Mechanism: CKM_PKCS5_PBKD2 (0x3B0)
Mechanism: CKM_PBA_GOSTR3411_WITH_GOSTR3411_HMAC (0xD4321035)
Mechanism: CKM_TLS_GOST_KEY_AND_MAC_DERIVE (0xD4321033)
Mechanism: CKM_TLS_GOST_PRE_MASTER_KEY_GEN (0xD4321031)
Mechanism: CKM_TLS_GOST_MASTER_KEY_DERIVE (0xD4321032)
Mechanism: CKM_TLS_GOST_PRF (0xD4321030)
Mechanism: CKM_TLS_GOST_PRF_2012_256 (0xD4321016)
Mechanism: CKM_TLS_GOST_PRF_2012_512 (0xD4321017)
Mechanism: CKM_TLS12_MASTER_KEY_DERIVE (0x3E0)
Mechanism: CKM_TLS12_KEY_AND_MAC_DERIVE (0x3E1)
Mechanism: CKM_TLS_MAC (0x3E4)
Mechanism: CKM_TLS_KDF (0x3E5)
Mechanism: CKM_SHA_1 (0x220)
Mechanism: CKM_MD5 (0x210)

bash-4.3$

Реализация пакета LS-NSS, обеспечивающего поддержку российских криптографических интерфейсов, и токенов LS11SW2016 и LS11USB2016, позволила добавить поддержку российской криптографии в браузер Mozilla Firefox, почтовый клиент Mozilla Thunderbird и другие проекты. В браузере это реализация HTTPS (TLS) на базе российских шифрсьютов:

В почтовом клиенте это подписание и шифрование почтовых сообщений:

Для удобства работы пользователей разработана графическая утилита GUINSS:

Данная утилита подключать токены с поддержкой российской криптографии :

Управление токена предусматривает импорт/экспорт сертификатов пользователей и корневых сертификатов, защищенных контейнеров PKCS#12, удаление сертификатов:

Естественно,  предусмотрен и просмотр сертификата:

Самый главный функционал связан с электронной подписью и шифрованием документов:

Предусмотрено также не только проверка подписи, но и извлечение оригинала из файла с присоединенной подписью:

С помощью этой утилиты можно сформировать запрос на сертификат в формате PKCS#10:

При нажатии кнопки «Заполнить» во фрейме «Сведения о заявителе» будет предложено заполнить анкету:

Для задания OID-ов назначения сертификата (его ролей - Extented Key Usage) необходимо нажать кнопку «Extented Key Usage» во фрейме «Назначение сертификата»:

Нестандартные OID-ы задаются в поле «Введите значение OID:». Соответствующий параметр добавлен в утилиту certutil.

Дополнительная сведения

  1. Хранилище сертификатов в офисном пакете LibreOffice


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