Всю систему криптографической защиты ОС Windows, основанную на инфраструктуре открытых ключей, можно представить в виде схемы, изображенной на Рисунке 6.6:
Рисунок 6.6. – Архитектура криптографических функций для ОС Windows
Как видно, криптографические функции поделены на два уровня CryptoAPI 2.0 и CryptoAPI 1.0. Это прикладные программные интерфейсы, позволяющие разработчикам добавлять криптографические функции в разрабатываемые продукты.
Уровень CryptoAPI 2.0 реализует криптографические функции более верхнего уровня. Как правило, именно эти функции вызываются из конечных приложений. Набор этих функций призван удовлетворить все запросы в области криптографии со стороны программиста. И в действительности этот набор функций очень сильно ускоряет процесс реализации функций конечных приложений связанных с криптографией и защищенной передачей данных.
Следующий уровень иерархии криптографических функций — CryptoAPI 1.0, который описывался ранее. Эти функции в свою очередь вызываются из функций уровня CryptoAPI 2.0.
|
|
Приложение и функции CryptoAPI 2.0 вызывают не сами реализации криптографических функций, а промежуточные, «абстрактные» функции CryptoAPI 1.0, которые экспортируются системной библиотекой advapi32.dll.
Все функции CryptoAPI 2.0 можно разделить на несколько групп:
Таблица 6.6. – Группы функций интерфейса CryptoAPI 2.0
Группа функций | Описание |
Кодирующие/декодирующие функции | Предназначены для перевода объектов из структур языка С в ASN.1 структуры и обратно. |
Функции работы с хранилищами сертификатов | Установка и отображение свойств хранилища, открытие для записи и закрытие, добавление хранилища в коллекцию и другие функции управления хранилищами сертификатов. |
Функции работы с сертификатами | Создание и редактирование сертификата, проверка подписи, работа с хранилищем сертификатов, |
Функции работы со списком отозванных сертификатов (СОС или CRL) | Добавление информации о сертификате в СОС, поиск сертификата в СОС, работа с хранилищем |
Список доверенных сертификатов (CTL) | Добавление информации о сертификате в CTL, поиск сертификата в CTL, работа с хранилищем |
Варианты применения криптопровайдеров