Добавить новость
Добавить компанию
Добавить мероприятие
Тесты цифровой техники
|
|
|
Использование токенов в программах OpenSSL с помощью lissi_engine
10.02.2011 12:45
версия для печати
Поддержка тех или иных криптографических алгоритмов осуществляется в OpenSSL 1.0.0 с помощью, так называемых, ENGINE - плагинов, динамически подключаемых к прикладной программе. В составе OpenSSL 1.0.0 имеется специальный ENGINE ccgost, разработанный компанией КриптоКом для поддержки российских криптографических алгоритмов. Одним из важных вопросов, решаемых при организации информационной безопасности, является способ хранения криптографических ключей. В традиционных программах OpenSSL ключи хранятся в файлах, зашифрованных на пароле. Это означает, что в процессе работы программы ключ расшифровывается и какое-то время присутствует в памяти в открытом виде, что создает возможность его похищения. Более надежный способ хранения ключевого материала предоставляют аппаратные токены, которые принципиально не отдают ключи наружу, а сами способны генерировать ключи и производить с ними криптографические операции. Для работы с токенами создан специальный международный стандарт PKCS#11 (Cryptoki), определяющий протоколы и интерфейсы взаимодействия программы с токенами. Начиная с версии 2.30, в данном стандарте представлены российские криптографические алгоритмы. Для того чтобы токены можно было использовать в программах OpenSSL, компанией "ЛИССИ" разработан специальный lissi_engine, обеспечивающий подключение токенов через их родные библиотеки PKCS#11 для стандарта 2.30. Такое подключение практически работает для библиотек eToken GOST, Рутокен ЭЦП и ШИПКА. В отличие от штатного ENGINE ccgost, lissi_engine сам не выполняет никаких криптографических операций, а служит лишь посредником между прикладной программой и библиотекой токена PKCS#11. Поскольку lissi_engine в своей реализации использует некоторые экспериментальные средства OpenSSL, то для его работы создана специальная версия данной системы – LirSSL2. Новый программный комплекс является дальнейшим развитием традиций, заложенных в известном СКЗИ “LirSSL” компании "ЛИССИ". Таким образом, lissi_engine позволяет использовать токен в программах OpenSSL в качестве полноценного хранилища ключей и сертификатов. При этом обеспечивается функция генерации ключевой пары самим токеном без возможности извлечения закрытого ключа. Кроме того, обеспечиваются возможности сохранения сертификатов, листания и выборки объектов и т.д. К сожалению, многие аппаратные токены поддерживают стандарт PKCS#11 лишь частично, накладывая существенные ограничения реализации. Более того, и быстродействие аппаратных токенов зачастую недостаточно высокое. Поэтому компания "ЛИССИ" разработала библиотеку LirCryptoki2, достаточно полно реализующую поддержку стандарта PKCS#11 для программных токенов. В результате, прикладная программа имеет возможность загрузить два экземпляра lissi_engine, один из которых связан с аппаратным токеном, а другой - с программным. Операции с ключевым материалом на аппаратном токене выполняются аппаратным токеном, а все остальные - программным. Использование такой комбинации обеспечивает как безопасность ключевого материала, так и высокую производительность выполнения тех криптографических операций, которые не требуют доступа к закрытому ключу на аппаратном токене. При этом, все операции производятся через стандартные интерфейсы OpenSSL, что позволяет применять в прикладных программах множество мощных и гибких высокоуровневых функций. Немаловажной особенностью библиотек компании "ЛИССИ" является их кроссплатформенность. И lissi_engine, и LirCryptoki2 работают и в Windows, и в Linux, как в 32-битных, так и в 64-битных конфигурациях. Поскольку штатные средства OpenSSL сами по себе успешно функционируют на множестве платформ, то и прикладные программы можно также разрабатывать кроссплатформенными. Редактор раздела: Юрий Мальцев (maltsev@mskit.ru) Рубрики: ПО, Безопасность
наверх
Для того, чтобы вставить ссылку на материал к себе на сайт надо:
|
|||||
А знаете ли Вы что?