СКЗИ "КриптоПро CSP 5.0" разработано с учётом существующей в операционной системе Windows архитектуры использования криптографических функций: оно реализует специфицированный Microsoft интерфейс - Cryptographic Service Provider (CSP). В результате оно доступно для использования как в составе стандартного программного обеспечения, так и для встраивания в прикладное программное обеспечение.
Примечание. Требования и правила встраивания СКЗИ в прикладные системы и использования СКЗИ в стандартном программном обеспечении описаны в документе "КриптоПро СSP. Правила пользования", входящем в комплект поставки СКЗИ.
Программное обеспечение СКЗИ позволяет использовать российские криптографические алгоритмы и сертификаты открытых ключей (ключей проверки ЭП) стандарта X.509 совместно со следующим программным обеспечением (включая, но не ограничиваясь):
СКЗИ "КриптоПро CSP 5.0" используется в составе следующих программных продуктов ООО "КРИПТО-ПРО" (включая, но не ограничиваясь):
Кроме того, обеспечена техническая совместимость СКЗИ с продуктами:
Иерархическая архитектура криптографических функций в операционной системе Windows позволяет использовать российские криптографические алгоритмы, реализованные в "КриптоПро CSP 5.0" на самых различных уровнях.
Для работы с любым отладчиком контроль целостности в драйвере должен быть отключен. Для этого следует в реестре значение HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CProIntegrity\CheckMode установить в 0. После этого необходимо перестартовать сервис.
В ОС Windows СКЗИ "КриптоПро CSP 5.0" может быть непосредственно подключено к прикладному программному обеспечению путем загрузки модуля cpcspi.dll с использованием функции LoadLibrary(). При такой реализации прикладному ПО доступен лишь ограниченный набор низкоуровневых криптографических функций, соответствующий интерфейсу Microsoft CSP.
Примечание. При использовании СКЗИ под управлением ОС iOS загрузка библиотек при помощи функции LoadLibrary() невозможна.
"КриптоПро CSP 5.0" может быть подключено к прикладному программному обеспечению (как и любой другой криптопровайдер, поставляемый с ОС Windows) через интерфейс CryptoAPI 2.0, подробное описание которого приведено в программной документации MSDN (Microsoft Developer Network). В этом случае способ выбора криптографического алгоритма в прикладном ПО может определяться информацией, описывающей алгоритм открытого ключа отправителя/получателя, содержащейся в сертификатах открытых ключей Х.509.
Для подключения СКЗИ к прикладному ПО необходимо пользоваться интерфейсом CAPILite. Подробности в документации на CAPILite.
Для встраивания на уровне ядра пользуйтесь рекомендациями из Особенности использования интерфейса уровня ядра в OC Linux и Особенности использования интерфейса уровня ядра в Windows .
Использование интерфейса 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) предназначена для аналогичных целей, что и группа высокоуровневых функций, но обладает большей функциональностью. Вместе с тем большая функциональность требует от прикладного программиста более детальных знаний в области прикладной криптографии.
"КриптоПро CSP 5.0" может быть использовано из COM интерфейсов, разработанных Microsoft.
COM интерфейс Certificate Enrollment API (реализованный в файле certenroll.dll, ранее xenroll.dll) предназначен для использования ограниченного количества функций CryptoAPI 2.0, связанных с генерацией ключей, запросов на сертификаты открытых ключей и обработкой сертификатов, полученных от Центра Сертификации, с использованием языков программирования Visual Basic, C++, JavaScript, VBScript и среды разработки Delphi.
Именно этот интерфейс используют различные Центры Сертификации (Verisign, Thawte и т. д.) при формировании сертификатов открытых ключей пользователей на платформе Windows.
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 включает в себя несколько COM интерфейсов, позволяющих изменить функциональность Центра Сертификации, входящего в состав ОС Windows Server. При помощи данных интерфейсов возможно изменить:
Кроме использования протокола 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.
На сервере Крипто-Про ведется Форум КриптоПро по вопросам использования криптографических функций и сертификатов открытых ключей.
Примечание. Подробную информацию об особенностях реализации и использования СКЗИ "КриптоПро CSP 5.0" см. в документах "КриптоПро CSP. Описание реализации" и "КриптоПро CSP. Руководство администратора безопасности. Использование СКЗИ под управлением ОС Windows", входящих в комплект поставки СКЗИ.