Общие сведения о Microsoft Crypto API

Уже несколько лет программисты из Microsoft включают в новые версии операционных систем Windows средства для реализации технологий шифрования. Эти средства добавляются к стандартному набору компонентов Windows при установке браузера Internet Explorer. Начиная с ОС Windows 2000, средства для реализации технологий шифрования уже входят в состав ядра системы. Однако если вы используете более раннюю версию ОС, например Win 9x и у вас установлен Internet Explorer версии 3.02 или более поздней, то вы уже сможете работать с этими средствами, причем доступ к ним выполняется через вызовы функций специального интерфейса прикладного программирования Crypto API. Таким образом, освоить методику работы с этими функциями под силу любому программисту, имеющему опыт написания приложений.

При создании средств для реализации технологий шифрования, встроенных в ОС, программисты из Microsoft изначально приняли концепцию гибкой и расширяемой программной системы. Совершенно очевидно, что разным приложениям понадобятся различные средства шифрования, которые отличаются уровнем надежности и соответственно сложности и производительности. Кроме того, следует учесть и возможность появления в будущем новых алгоритмов решения подобных задач, которые также нужно встраивать в существующий пакет API.

Таким образом, была сформулирована концепция такого API, который, с одной стороны, позволял бы включать по мере разработки новые функции, а с другой – не  требовал бы после этого изменения и обновления всех ранее созданных приложений. Была выбрана структура пакета, в которой обращение к функциям API представляло собой уровень связи с приложениями, а за ним располагался другой уровень, открытый для обновления и включения новых функций в виде встраиваемых компонентов, в том числе и таких, которые разрабатываются независимыми производителями. Эта структура иллюстрируется схемой на рис. 1.

Встраиваемый компонент такого типа, реализующий тот или иной алгоритм шифрования, называется провайдером службы шифрования – Cryptographic Service Provider (CSP). В составе операционной системы Windows пользователь получает несколько таких CSP, которые реализуют наиболее часто используемые методы шифрования.

Рисунок 1. Структура Microsoft Crypto API

В такой структуре на Crypto API практически не возлагаются иные функции, кроме передачи сообщений между приложением и выбранным CSP. Таким образом, при необходимости можно достаточно быстро настроить приложение на другой алгоритм шифрования, указав при вызове функций Crypto API новый компонент CSP.

 

 Краткое описание наиболее употребительных провайдеров служб шифрования, используемых в операционной системе Windows

 

Наименование провайдера Описание
1. Microsoft Base Cryptographic Provider v1.0 Базовый провайдер службы шифрования в операционной системе Windows. Поддерживает полный спектр всех функций криптографии.
2. Microsoft Strong Cryptographic Provider Этот компонент представляет собой дополнение к Microsoft Base Cryptographic Provider и доступен только в операционных системах Windows 2000, XP. Поддерживает функции как Microsoft Base Cryptographic Provider, так и Microsoft Enhanced Cryptographic Provider, но позволяет использовать более длинные ключи, чем базовый компонент. Ключи прежнего размера формируются этим компонентом по умолчанию.
3. Microsoft Base DSS and Diffie-Hellman Cryptographic Provider Этот компонент обеспечивает выполнение всех функций, связанных с оформлением цифровой подписи и ее проверки, что и Microsoft Base DSS Cryptographic Provider, но при этом поддерживает обмен ключами Диффи-Хеллмана, которые имеют длину 40 бит.
4. Microsoft Base DSS Cryptographic Provider Этот компонент поддерживает только функции хэширования, оформления цифровой подписи и проверки ее достоверности и не реализует функции шифрования.
5. Microsoft Enhanced Cryptographic Provider v1.0 Этот компонент поддерживает функционирование тех же алгоритмов, что и Micrisoft Base Cryptographic Provider, но использует при этом более длинные ключи и дополнительные алгоритмы.
6. Microsoft RSA SChannel Cryptographic Provider Этот компонент поддерживает выполнение алгоритма RSA при хэшировании, оформлении цифровой подписи и ее проверке. Также поддерживает протоколы аутентификации клиента SSL3 и TLS1. Доступен только в операционных системах Windows 2000, XP.
7. Microsoft DH SChannel Cryptographic Provider Этот компонент поддерживает обмен ключами Диффи-Хеллмана и протокол SChannel.

 

Источник информации: Чепмен Д. Разработка защищенных приложений в среде Visual Basic. – Москва – Санкт-Петербург – Киев: Вильямс, 2000

 

Hosted by uCoz