Использование Schannel CSP

Подсистема протокола SSL (Schannel) использует поставщик служб шифрования (CSP) при выполнении криптографических операций. Криптографические приложения могут вызывать CryptAcquireContext с помощью поставщиков PROV_RSA_SCHANNEL и PROV_DH_SCHANNEL.

В этом разделе определяются типы CSP RSA и Diffie-Hellman Schannel, а также описаны функциональные возможности, которые должен поддерживать поставщик служб CSP для обеспечения совместимости с Schannel.dll, подсистемой криптографических протоколов. Подсистема протокола — это программа, которая устанавливает безопасный канал связи между клиентом и серверным приложением.

Приложения не должны пытаться использовать сведения в этой документации для использования PROV_RSA_SCHANNEL или PROV_DH_SCHANNEL напрямую. Скорее, в этой документации объясняется, как разработчики и поставщики CSP должны писать CSP Schannel, совместимые с поставщиками Microsoft Schannel.

Эта документация предназначена для того, чтобы помочь разработчикам CSP реализовать совместимые RSA или Diffie-Hellman Schannel CSP. Предполагается, что разработчики знакомы с протоколом SSL версии 3.0, криптографией с открытым ключом , цифровыми сертификатами и набором функций CryptoAPI. Разработчикам, не знакомым с этими разделами, рекомендуется ознакомиться со спецификацией протокола SSL 3.0 и документацией по основным компонентам шифрования в этом пакете SDK. Кроме того, разработчики RSA и Diffie-Hellman CSP должны знать спецификации протокола TLS, а также соответствующие алгоритмы RSA и Diffie-Hellman.

Пример, используемый подсистемой протоколов Майкрософт, см. в разделе Создание главного ключа. Вызовы криптографических функций в этом примере приводят к вызовам функций CP, которые должен реализовать CSP. Чтобы написать совместимый поставщик служб CSP, разработчик должен понимать спецификацию SSL 3.0 и сочетать эти знания с пониманием кода подсистемы протокола, аналогичного используемому в этом примере.

Так как в будущем использование протокола технологии частных коммуникаций будет минимальным, разработчикам новых поставщиков облачных служб не требуется поддержка этого протокола. Модуль протокола Schannel поддерживает его строго для обеспечения обратной совместимости.