19.10.2010LirCryptoki - использование токенов 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 призван всесторонне обеспечить разработчиков высокоуровневыми средствами для работы с российской криптографией с использованием аппаратных токенов. О компании ЛИССИ