LirCryptoki - использование токенов c российской криптографией в прикладных системах
Сегодня все более широкое применение находят электронные системы с использованием электронно-цифровой подписи (ЭЦП). Это и сдача налоговой отчетности, и электронные торги, доступ к Web-сайтам по https, системы электронного документооборота, банковские системы, и прежде всего - Электронное Правительство.
Наиболее критичным элементом в этих системах является закрытый ключ, дискредитация которого может привести к печальным последствиям. Избежать таких последствий призваны аппаратные токены, которые должны не только надежно хранить закрытые ключи, но и выполнять все операции с закрытым ключом внутри себя. Когда сегодня говорят «мы храним закрытый ключ на токене», то имеется ввиду именно это – храним, и не более того, закрытый ключ на токене как на обыкновенной флэшке. Любая операция, требующая закрытого ключа, приводит к извлечению закрытого ключа в оперативную память со всеми последствиями.
К счастью, сегодня на рынке уже появились или готовятся к появлению аппаратные токены с поддержкой российской криптографии (прежде всего с реализацией алгоритма ГОСТ Р 34.10 - 2001), которые не только хранят, но самое главное - выполняют все криптографические операции с закрытым ключом внутри себя. Такими токенами являются, например, eTokenGOST, FoxToken, ruTokenECP, Шипка. Все они поддерживают протокол PKCS#11 и, как правило, имеют поддержку для операционных систем MS Windows и Linux.
Вместе с тем, интерфейс протокола PKCS#11 – это интерфейс сравнительно низкого уровня. При работе с криптографией сегодня широко используются высокоуровневые кроссплатформенные интерфейсы OpenSSL или NSS, а на платформе MS Windows – MS CryptoApi, где в качестве криптоядра используется MS CSP. И, конечно же, - интерфейсы криптопровайдеров Java.
В интересах поддержки разработчиков прикладного программного обеспечения, ООО «ЛИССИ» завершила разработку проекта LirCryptoki, включающего в себя:
- программный токен LirCryptoki, поддерживающую расширенную версию стандарта PKCS#11 v.2.30, включая механизмы протокола TLS с российской криптографией;
- библиотеку lissi-nss, обеспечивающую применение токенов с российской криптографией в проектах, использующих интерфейса NSS;
- интерфейсный модуль lissi-engine, обеспечивающий применение токенов с российской криптографией в проектах, использующих OpenSSL (LirSSL);
- криптопровайдер Java LirPKCS11, обеспечивающий применение токенов с российской криптографией в проектах, использующих Java;
- библиотеку LISSI-CSP, обеспечивающую применение токенов с российской криптографией в проектах, использующих MS Windows CryptoAPI;
- утилиту CertManager для управления сертификатами на токенах.
Особо следует отметить программный токен LirCryptoki. Он играет в этом проекте существенную роль. Поскольку набор функций аппаратных токенов ограничен, то программный токен эффективно дополняет набор аппаратных механизмов до более полной поддержки стандарта PKCS#11 v.2.30, включая и механизмы TLS.
При автономном использовании программного токена LirCryptoki он, помимо хранения программных токенов в файловой системе, поддерживает также хранение ключевых объектов на, так называемых, “старых” токенах eToken и ruToken.
Таким образом, проект LirCryptoki призван всесторонне обеспечить разработчиков высокоуровневыми средствами для работы с российской криптографией с использованием аппаратных токенов.© Издание 12NEWS (ИП Маринин А.Л.) 12news.ru, 2010