поиск по сайту
"Поддержка российских криптографических алгоритмов в интерфейсе CRYPTOKI для ПСКЗИ ШИПКА"

Поддержка российских криптографических алгоритмов в интерфейсе CRYPTOKI для ПСКЗИ ШИПКА

Аршинова Н. А., Счастный Д. Ю., Россия, Москва, ОКБ САПР

Набор стандартов PKCS (Public Key Cryptography Standards) разработан лаботарией RSA для развития программного и аппаратного обеспечения, использующего криптографические возможности. Стандарт PKCS #11, описывает API (Application Programming Interface) для работы с устройствами, которые могут выполнять криптографические операции и содержать криптографические данные. Этот интерфейс получил название Cryptoki (Cryptographic key interface).

Определяемый в стандарте программный интерфейс между приложением и криптографическим устройством идентификации (токеном) изолирует приложение от особенностей реализации токена и позволяет ему работать с любыми видами устройств идентификации, поддерживающими стандарт PKCS #11. Такая универсальность достигается тем, что интерфейс Cryptoki задает единый набор функций, типов данных, параметров, констант, который должен поддерживаться разработчиками как конкретного устройства идентификации, так приложений верхнего уровня. Это позволяет обеспечить полноценное общение с криптографическим устройством идентификации:

  • функции для работы с паролем пользователя;
  • чтение и запись данных на токен;
  • выполнение криптографических операций;
  • возможность работы устройства в условиях многопоточности системы.

Для каждого криптографического алгоритма, рассматриваемого в PKCS #11, интерфейс Cryptoki определяет идентификаторы, атрибуты, объекты, необходимые для управления ключами и выполнения криптографических операций с использованием этого алгоритма:

  • зашифрование/расшифрование;
  • вычисление/проверка электронной цифровой подписи (ЭЦП);
  • вычисление/проверка хэш-значений;
  • генерация сеансовых ключей и ключевых пар.

PKCS #11 постоянно расширяется, охватывая все большее количество криптографических алгоритмов, а так же предоставляет разработчикам возможность добавлять свои определения для тех алгоритмов, которые еще не вошли в стандарт. К последним, в настоящее время, относятся и российские криптографические алгоритмы. В 2002 году ряд российских компаний, занимающихся разработкой систем защиты информации, подписали соглашение о сотрудничестве, целью которого было решение вопроса о поддержке протоколом TLS (Transport Layer Security) российских алгоритмов. Результатом этой работы стали пять проектов информационных документов. Один из этих проектов "Addition of GOST Ciphersuites to Transport Layer Security (TLS)" является дополнением к спецификации RFC 2246. Два документа завершены и имеют статус документов Internet-draft:

  • "Using the GOST R 34.10-94, GOST R 34.10-2001 and GOST R 34.11-94 algorithms with the Internet X.509 Public Key Infrastructure Certificate and CRL Profile" (предложение об использовании российских алгоритмов хэширования и вычисления ЭЦП в сертификатах формата X.509 и списках отзыва CRL);
  • "Using the GOST 28147-89, GOST R 34.11-94, GOST R 34.10-94 and GOST R 34.10-2001 algorithms with the Cryptographic Message Syntax (CMS)" (предложение об использовании этих же алгоритмов в CMS).

Таким образом, ведется работа по внедрению российских стандартов в TLS и CMS. Но в плане PKCS #11 подобной работы еще не проводилось, несмотря на то, что персональные устройства идентификации получают все большее распространение в Российской Федерации. Следовательно, разработчики прикладного программного обеспечения (ППО) имеют возможность работать по стандарту только c иностранными криптографическими алгоритмами. А при попытке работы с отечественными алгоритмами, они сталкиваются с проблемой совместимости различных программных продуктов, так как вынуждены использовать для PKCS #11 различные константы, типы данных и механизмы, которые не стандартизованы. Существенно затрудняется и переход на другой типа токена.

Персональное средство криптографической защиты информации (ПСКЗИ) ШИПКА не только поддерживает стандарт PKCS #11, но и имеет его расширение в части аппаратной реализации российских криптографических стандартов:

  • ГОСТ 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического пробразования". Стандарт описывает симметричный алгоритм шифрования и предусматривает четыре режима работы:
    • режим простой замены;
    • режим гаммирования;
    • режим гаммирования с обратной связью;
    • режим выработки имитовставки.
  • ГОСТ Р 34.11-94 "Информационная технология. Криптографическая защита информации. Функция хэширования".
  • ГОСТ Р 34.10-94 "Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма". В рамках этого стандарта может использоваться открытый ключ длиной 512 или 1024 бита. Оба варианта реализованы в ПСКЗИ ШИПКА.
  • ГОСТ Р 34.10-2001 "Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи". Стандарт описывает процесс формирования и проверки электронной цифровой подписи, реализуемой с использованием операций на группе точек эллиптической кривой.

Приложения, в которых предусмотрена возможность выполнения криптографических операций с использованием криптографических устройств идентификации, могут обращаться к ним через интерфейс Cryptoki. Работа, проведенная разработчиками ПСКЗИ ШИПКА по дополнению PKCS #11 необходимыми данными для российских криптографических алгоритмов, позволяет разработчикам таких приложений достаточно безболезненно перейти к использованию отечественных алгоритмов. Для того чтобы эти приложения смогли поддерживать отечественные криптографические стандарты, нет необходимости коренным образом перестраивать программный код. Достаточно внести объявления новых констант и типов данных и обеспечить корректную их обработку.

Разработчики ОКБ САПР готовы к сотрудничеству по согласованию значений констант и объектов данных, вводимых для алгоритмов ГОСТ. Они готовы поделиться своими наработками в этой области, будут рады выслушать предложения по вопросу реализации поддержки стандарта PKCS #11 в части российской криптографии со стороны других разработчиков персональных устройств идентификации и ППО и готовы провести тестовые испытания на предмет совместимости библиотеки PKCS #11 с другими ПСКЗИ.


Метки статьи:
криптография ШИПКА
ФорумФорум
Форум ОКБ САПР
ОбучениеОбучение
Кафедра «Защита информации» ФРТК МФТИ и собственные курсы стажировок по нашей продукции.