Д. Н. Петров, Д. Ю. Счастный Россия, Москва, ОКБ САПР Особенности реализации PKCS#11 для программноаппаратного комплекса ШИПКА Программно-аппаратный комплекс (ПАК) ШИПКА представляет собой малогабаритное устройство в виде брелока с USB-интерфейсом и может быть использован в приложениях, где ранее использовались пароли, смарт-карты и другие идентификаторы. В отличие от смарт-карт ШИПКА не требует применения специальных считывателей (ридеров), что делает его доступным для использования самым широким кругом пользователей. Внутренняя операционная система ПАК ШИПКА может быть в кратчайшие сроки адаптирована под индивидуальные потребности заказчика. В отличие от большинства представленных на рынке идентификаторов зарубежного производства, ШИПКА может содержать аппаратную реализацию российских стандартов шифрования. Это дает возможность применять комплекс в системах информационной безопасности в соответствии с российским законодательством. Стандартом де-факто для взаимодействия с криптографическими токенами является PKCS #11, разработанный RSA Laboratories. PKCS #11 – это один из стандартов криптографии с открытым ключом (Public Key Cryptography Standards, PKCS). Эти стандарты были разработаны для обеспечения совместимости между различными реализациями алгоритмов криптографии с открытым ключом, поставляемыми различными разработчиками устройств и программного обеспечения. Стандарт PKCS #11, также известный под названием Cryptoki, распространяется на программирование криптографических аппаратных токенов, таких как ШИПКА. Он описывает интерфейс прикладного программирования (API) для устройств, которые несут в себе криптографическую информацию и способны выполнять криптографические преобразования. Стандарт определяет общий набор команд для выполнения криптографических функций. Эти команды могут использоваться независимо от конкретной аппаратной реализации токена. Библиотека PKCS#11 для токена ШИПКА соответствует спецификации 2.20 и работает под операционными системами Windows 95-2003. Библиотека представляет собой динамически подключяемую dll. К отличительным чертам в реализации стандарта PKCS#11 для ПАК ШИПКА можно отнести аппаратную поддержку различных алгоритмов хэширования MD5, SHA1, ГОСТ Р 34. 11 – 94, шифрования RSA, RC2, RC4, ГОСТ 28147 - 89, электронно-цифровой подписи RSA, ГОСТ Р 34. 10 – 94. Реализация стандарта PKCS#11 в библиотеке ШИПКА имеет некоторые ограничения, связанные с аппаратными характеристиками устройства. Например, в PKCS#11 в качестве владельцев токена рассматриваются пользователь и администратор (security officer). Только пользователь может получить доступ к защищенным объектам (ключам, данным) в токене. Роль администратора состоит в инициализации токена, установки PIN. В ПАК ШИПКА роль администратора и пользователя закреплена за владельцем ключа, что допускается стандартом PKCS#11 версии 2.20. Реализация PKCS#11 для ПАК ШИПКА не поддерживает некоторые двойственные (дуальные) функции такие как: одновременное подписание и шифрование, одновременное вычисление хэш-функции и шифрование и т. п., которые, тем не менее, в случае востребованности со строны приложения, могут быть выполнены при помощи пары аналогичных функций. При этом весь необходимый минимум функций доступен. Наличие подобных ограничений допускается стандартом PKCS #11. PKCS #11 не определяет стандартные идентификаторы для российских криптографических алгоритмов, поэтому для их поддержки в библиотеки используется расширение списка механизмов. Поддержка стандарта PKCS#11 позволяет использовать функции ШИПКИ в различных приложениях. К таким приложениям, например, относится PGP (Pretty Good Privacy). После подключения библиотеки PKCS#11 к PGP становятся доступны все возможности по хранению ключей и шифрованию для систем обмена мгновенными сообщениями (ICQ), электронной почты (Outlook), шифрования данных. Возможно использование ПАК ШИПКА в программных продуктах Strong Disk, F-Secure ssh, Lotus Notes и многих других. Реализация библиотеки позволит, также, внедрить поддержку ПАК ШИПКА для различных корпоративных решений PKI, таких как Entrust PKI, iPlanet CMS, RSA Keon Certification Authority, Baltimore UniCERT PKI.