КриптоПро CSP  

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

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

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

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

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

Отладка в Windows

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

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

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

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

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

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

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

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

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

Функциональность CAPI 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 (RFC2315) или CMS (RFC2630) в Windows 2000.

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

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

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

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

Certificate Enrollment Control

COM интерфейс Certificate Enrollment Control (реализованный в файле 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 2000 Server. При помощи данных интерфейсов возможно изменить:

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

Кроме использования протокола 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.

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

Заключение

СКЗИ "КриптоПро CSP 4.0" позволяет использовать стойкие сертифицированные средства криптографической защиты информации в составе обширного инструментария и программного обеспечения корпорации Microsoft, для реализации различных защищенных систем документооборота и электронной коммерции, на основе Инфраструктуры Открытых Ключей (Public Key Infrastructure), соответствующей международным рекомендациям X.509, RFC 3280.