СКЗИ "КриптоПро CSP 4.0" разработано с учётом существующей в операционной системе Windows архитектурой использования криптографических функций: оно реализует специфицированный Microsoft интерфейс - Cryptographic Service Provider (CSP). В результате оно доступно для использования как в составе стандартного программного обеспечения, так и для встраивания в прикладное программное обеспечение.
Иерархическая архитектура криптографических функций в операционной системе Windows позволяет использовать российские криптографические алгоритмы, реализованные в "КриптоПро CSP 4.0" на самых различных уровнях.
Для работы с любым отладчиком контроль целостности в драйвере должен быть отключен. Для этого следует в реестре значение HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CProIntegrity\CheckMode установить в 0. После этого для Windows XP, 2003 необходимо перестартовать сервис, а для Windows 2000 перегрузить машину.
В ОС Windows СКЗИ "КриптоПро CSP 4.0" может быть непосредственно подключено к прикладному программному обеспечению путем загрузки модуля cpcspi.dll с использованием функции LoadLibrary(). При такой реализации прикладному ПО доступен лишь ограниченный набор низкоуровневых криптографических функций, соответствующий интерфейсу Microsoft CSP.
"КриптоПро CSP 4.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 (RFC2315) или CMS (RFC2630) в Windows 2000.
Данная группа функция (Low Level Message Functions) предназначена для аналогичных целей, что и группа высокоуровневых функций, но обладает большей функциональностью. Вместе с тем большая функциональность требует от прикладного программиста более детальных знаний в области прикладной криптографии.
"КриптоПро CSP 4.0" может быть использовано из COM интерфейсов, разработанных Microsoft.
COM интерфейс Certificate Enrollment Control (реализованный в файле 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 2000 Server. При помощи данных интерфейсов возможно изменить:
Кроме использования протокола TLS в интерфейсе Internet Explorer, прикладное программное обеспечение может использовать протокол TLS с СКЗИ "КриптоПро CSP 4.0" для аутентификации и защиты данных, передаваемых по собственным протоколам на основе TCP/IP и HTTPS.
Примеры WebClient и WebServer для встраивания протокола TLS входят в комплект примеров, поставляемых вместе с Platform SDK.
СКЗИ "КриптоПро CSP 4.0" поставляется с тестовым программным обеспечением, содержащим примеры вызовов основных функций CryptoAPI 2.0. Большое количество примеров использования функций CryptoAPI 2.0, CAPICOM, Certificate Services содержится в документации MSDN и в инструментарии разработчика Platform SDK.
На сервере Крипто-Про ведется Конференция Крипто-Про по вопросам использования криптографических функций и сертификатов открытых ключей.
СКЗИ "КриптоПро CSP 4.0" позволяет использовать стойкие сертифицированные средства криптографической защиты информации в составе обширного инструментария и программного обеспечения корпорации Microsoft, для реализации различных защищенных систем документооборота и электронной коммерции, на основе Инфраструктуры Открытых Ключей (Public Key Infrastructure), соответствующей международным рекомендациям X.509, RFC 3280.