КриптоПро CSP  

Архитектура и встраивание СКЗИ на Windows/Unix

СКЗИ "КриптоПро CSP 5.0" разработано с учётом существующей в операционной системе Windows архитектуры использования криптографических функций: оно реализует специфицированный Microsoft интерфейс - Cryptographic Service Provider (CSP). В результате оно доступно для использования как в составе стандартного программного обеспечения, так и для встраивания в прикладное программное обеспечение.

Примечание. Требования и правила встраивания СКЗИ в прикладные системы и использования СКЗИ в стандартном программном обеспечении описаны в документе "КриптоПро СSP. Правила пользования", входящем в комплект поставки СКЗИ.

Архитектура криптографических функций в Windows

Использование СКЗИ в стандартном программном обеспечении

Программное обеспечение СКЗИ позволяет использовать российские криптографические алгоритмы и сертификаты открытых ключей (ключей проверки ЭП) стандарта X.509 совместно со следующим программным обеспечением (включая, но не ограничиваясь):

Использование СКЗИ в составе программных продуктов ООО "КРИПТО-ПРО"

СКЗИ "КриптоПро CSP 5.0" используется в составе следующих программных продуктов ООО "КРИПТО-ПРО" (включая, но не ограничиваясь):

Кроме того, обеспечена техническая совместимость СКЗИ с продуктами:

Встраивание СКЗИ "КриптоПро CSP 5.0"

Иерархическая архитектура криптографических функций в операционной системе Windows позволяет использовать российские криптографические алгоритмы, реализованные в "КриптоПро CSP 5.0" на самых различных уровнях.

Отладка в Windows

Для работы с любым отладчиком контроль целостности в драйвере должен быть отключен. Для этого следует в реестре значение HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CProIntegrity\CheckMode установить в 0. После этого необходимо перестартовать сервис.

Подключение на уровне CSP в Windows

В ОС Windows СКЗИ "КриптоПро CSP 5.0" может быть непосредственно подключено к прикладному программному обеспечению путем загрузки модуля cpcspi.dll с использованием функции LoadLibrary(). При такой реализации прикладному ПО доступен лишь ограниченный набор низкоуровневых криптографических функций, соответствующий интерфейсу Microsoft CSP.

Примечание. При использовании СКЗИ под управлением ОС iOS загрузка библиотек при помощи функции LoadLibrary() невозможна.

Подключение на уровне CryptoAPI 2.0 в Windows

"КриптоПро CSP 5.0" может быть подключено к прикладному программному обеспечению (как и любой другой криптопровайдер, поставляемый с ОС Windows) через интерфейс CryptoAPI 2.0, подробное описание которого приведено в программной документации MSDN (Microsoft Developer Network). В этом случае способ выбора криптографического алгоритма в прикладном ПО может определяться информацией, описывающей алгоритм открытого ключа отправителя/получателя, содержащейся в сертификатах открытых ключей Х.509.

Встраивание в ОС Unix

Для подключения СКЗИ к прикладному ПО необходимо пользоваться интерфейсом CAPILite. Подробности в документации на CAPILite.

Встраивание на уровне ядра

Для встраивания на уровне ядра пользуйтесь рекомендациями из Особенности использования интерфейса уровня ядра в OC Linux и Особенности использования интерфейса уровня ядра в Windows .

Функциональность CryptoAPI 2.0

Использование интерфейса CryptoAPI 2.0 в ОС Windows преследует две главные цели:

Функционально интерфейс CryptoAPI 2.0 делится на 5 групп.

Базовые криптографические функции

К базовым функциям относятся функции:

По своей функциональности базовые функции повторяют низкоуровневый интерфейс CSP.

Функции кодирования/декодирования

Данные функции предназначены для преобразования (кодирования) из внутреннего представления объектов, используемых в CryptoAPI, во внешнее представление и обратно. В качестве внешнего представления объектов используется формат ASN.1 (Abstracy Syntax Notation One), определенный серией рекомендаций X.680. К этой же группе функций можно отнести набор функций, позволяющих расширить функциональность CryptoAPI 2.0 путем реализации и регистрации собственных типов объектов.

Функции работы со справочниками сертификатов

Эта группа функций предназначена для хранения и обработки сертификатов в различных типах справочников. Причем в качестве справочника могут использоваться самые различные типы хранилищ: от простого файла до LDAP.

Высокоуровневые функции обработки криптографических сообщений

Именно эта группа функций (Simplified Message Functions) в первую очередь предназначена для использования в прикладном ПО. С помощью этих функций можно:

Эти функции (как и функции низкого уровня) оперируют сертификатами открытых ключей X.509 для адресации отправителя/получателя данных. В качестве формата данных используется формат PKCS#7 или CMS.

Низкоуровневые функции обработки криптографических сообщений

Данная группа функция (Low Level Message Functions) предназначена для аналогичных целей, что и группа высокоуровневых функций, но обладает большей функциональностью. Вместе с тем большая функциональность требует от прикладного программиста более детальных знаний в области прикладной криптографии.

Использование COM интерфейсов

"КриптоПро CSP 5.0" может быть использовано из COM интерфейсов, разработанных Microsoft.

Certificate Enrollment API

COM интерфейс Certificate Enrollment API (реализованный в файле certenroll.dll, ранее xenroll.dll) предназначен для использования ограниченного количества функций CryptoAPI 2.0, связанных с генерацией ключей, запросов на сертификаты открытых ключей и обработкой сертификатов, полученных от Центра Сертификации, с использованием языков программирования Visual Basic, C++, JavaScript, VBScript и среды разработки Delphi.

Именно этот интерфейс используют различные Центры Сертификации (Verisign, Thawte и т. д.) при формировании сертификатов открытых ключей пользователей на платформе Windows.

CAPICOM

CAPICOM (реализованный в файле capicom.dll) предоставляет COM интерфейс, использующий основные функции CryptoAPI 2.0. Этот компонент является добавлением к COM интерфейсу Certificate Enrollment Control (xenroll.dll), который реализуют клиентские функции генерации ключей, запросов на сертификаты открытых ключей и обмена с центром сертификации.

С выпуском данного компонента стало возможным использование функций формирования и проверки электронной цифровой подписи, построения и проверки цепочек сертификатов, взаимодействия с различными справочниками сертификатов (включая Active Directory) с использованием Visual Basic, C++, JavaScript, VBScript и среды разработки Delphi. Использование CAPICOM позволяет реализовать функциональность "тонкого" клиента в интерфейсе браузера Internet Explorer.

Компонент CAPICOM является свободно распространяемым и поставляется в составе Redistributable инструментария разработчика Microsoft Platform SDK.

Certificate Services

Certificate Services включает в себя несколько COM интерфейсов, позволяющих изменить функциональность Центра Сертификации, входящего в состав ОС Windows Server. При помощи данных интерфейсов возможно изменить:

Использование протокола TLS в прикладном ПО

Кроме использования протокола TLS в интерфейсе Internet Explorer, прикладное программное обеспечение может использовать протокол TLS с СКЗИ "КриптоПро CSP 5.0" для аутентификации и защиты данных, передаваемых по собственным протоколам на основе TCP/IP и HTTPS.

Примеры WebClient и WebServer для встраивания протокола TLS входят в комплект примеров, поставляемых вместе с Platform SDK.

Примеры использования средств криптографической защиты

СКЗИ "КриптоПро CSP 5.0" поставляется с тестовым программным обеспечением, содержащим примеры вызовов основных функций CryptoAPI 2.0. Большое количество примеров использования функций CryptoAPI 2.0, CAPICOM, Certificate Services содержится в документации MSDN и в инструментарии разработчика Platform SDK.

На сервере Крипто-Про ведется Форум КриптоПро World Wide Web link по вопросам использования криптографических функций и сертификатов открытых ключей.

Примечание. Подробную информацию об особенностях реализации и использования СКЗИ "КриптоПро CSP 5.0" см. в документах "КриптоПро CSP. Описание реализации" и "КриптоПро CSP. Руководство администратора безопасности. Использование СКЗИ под управлением ОС Windows", входящих в комплект поставки СКЗИ.