Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Программно-аппаратная защита информации

ПРОГРАММНО-АППАРАТНЫЕ СРЕДСТВА КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ

Принципы построения и использования криптографического интерфейса приложений операционной системы CryptoAPI

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

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

Криптографический интерфейс приложений операционной системы ?тс1о?8 представляет собой набор констант, типов данных и функций, предназначенных для выполнения операций шифрования, расшифрования, получения и проверки ЭЦП, генерации, хранения и распределения ключей шифрования. Эти услуги для приложений предоставляют провайдеры криптографического обслуживания (Cryptographic Service Provider — CSP) — динамически компонуемые библиотеки (DLL), экспортирующие единый набор объектов, определяемый интерфейсом CryptoAPI.

Взаимодействие между приложением и CSP строится на основе следующих принципов:

  • • приложение не имеет прямого доступа к изготовлению и хранению ключей шифрования (нет риска их потери из-за ошибок в приложении);
  • • приложение не определяет деталей выполнения криптографических операций, а лишь указывает на требуемые от CSP действия (например, зашифровать по заданному алгоритму данные и получить для них ЭЦП);
  • • приложение не обрабатывает данных, по которым проводится аутентификация пользователя, а предоставляет это CSP, который имеет лучшие возможности для проверки подлинности пользователя (например, может использовать аутентификацию на основе биометрических признаков или ключевой информации, размещенной на смарт-картах или других элементах аппаратного обеспечения); в этом случае из-за ошибок в приложении не может произойти утечка конфиденциальной информации о пользователе (например, его пароле).

На рис. 3.1 приведена архитектура криптографической подсистемы Windows. Вызовы функций CryptoAPI обрабатываются модулем операционной системы advapi32.dll, который преобразует их в вызовы функций интерфейса провайдера криптографического обслуживания (Cryptographie Service Provider Interface — CryptoSPI). Для обеспечения аутентичности и подлинности CSP он снабжается ЭЦП, которая периодически проверяется операционной системой в ходе сеанса работы пользователя. Получение ЭЦП производится корпорацией Microsoft на основе хеш-значения CSP, представленного изготовителем этой библиотеки.

Каждый CSP характеризуется своим присвоенным производителем именем (строкой символов) и типом (целым числом от 1

Взаимодействие прикладной программы и криптопровайдера до 999), определяющим поддерживаемые этим провайдером криптографические алгоритмы

Рис. 3.1. Взаимодействие прикладной программы и криптопровайдера до 999), определяющим поддерживаемые этим провайдером криптографические алгоритмы. В табл. 3.1 приведены некоторые предопределенные типы криптопровайдеров.

Таблица 3.1. Типы криптопровайдеров

Символическая константа типа (ее численное значение)

Алгоритм обмена сеансовыми ключами

Алгоритм

ЭЦП

Алгоритмы симметричного шифрования

Функции

хеширования

PROV_RSA_FULL (1)

RSA

RSA

RC2, RC4, DES, 3-DES

MD2, MD4, MD5, SHA

PROV_RSA_SIG (2)

RSA

MD5, SHA

PROV.DSS (3)

DSS

SHA

PR0V_F0RTEZZA (4)

DH

DSS

Skipjack

SHA

PROV_MS_EXCHANGE (5)

RSA

RSA

CAST

MD5

PR0V_SSL (6)

RSA

RSA

Разные

Разные

PROV_RSA_SCHANNEL (12)

RSA

RSA

RC4, DES, 3-DES

MD5, SHA

PROV_DSS_DH (13)

DH

DSS

CYLINK MEK

MD5, SHA

PROV_EC_ECDSA_SIG (14)

ЕС

SHA

PROV_DH_SCHANNEL (18)

DH

DSS

DES,3-DES

MD5, SHA

PROV_RSA_AES (24)

RSA

RSA

AES

MD2, MD4, MD5, SHA

К основным атрибутам CSP относятся:

  • • обязательно поддерживаемый алгоритм ЭЦП (всегда единственный);
  • • обязательно поддерживаемая функция хеширования;
  • • длина ключей асимметричного шифрования;
  • • формат ЭЦП;
  • • форматы блоков, в которых открытый и (возможно) закрытый ключи асимметричного шифрования экспортируются из CSP;
  • • необязательно поддерживаемый алгоритм обмена сеансовыми ключами симметричного шифрования (всегда единственный);
  • • необязательно поддерживаемые алгоритмы симметричного шифрования (конкретный CSP может поддерживать только часть таких алгоритмов, определенных для соответствующего типа криптопровайдера);
  • • алгоритм генерации сеансового ключа из хеш-значения;
  • • длины сеансовых ключей (в зависимости от алгоритма);
  • • формат блока сеансового ключа при его экспорте из CSP;
  • • режимы симметричного шифрования, принятые по умолчанию (например, режим СВС).

Информация об установленных на компьютере криптопровайдерах содержится в реестре Windows в разделе HKEY_ LOCAL_ MACHINESoftwareMicrosoftCryptographyDefaults. В подразделе Provider размещается информация о пути к библиотеке, ЭЦП и типе каждого CSP (по его имени), а в подразделе Provider Types — сведения о полных именах криптопровайдера и его типа.

Для каждого зарегистрированного у него пользователя или конкретного приложения CSP хранит контейнер ключей асимметричного шифрования (key set), который может включать в себя две пары ключей — открытый и закрытый для обмена сеансовыми ключами, а также открытый и закрытый для ЭЦП. Ключи симметричного шифрования (сеансовые ключи) не сохраняются CSP и об их сохранении (или правильной повторной генерации) должно позаботиться приложение.

Контейнер ключей может храниться криптопровайдером в реестре Windows, в файле на диске или на защищенном от несанкционированного чтения съемном носителе (смарт-карте, USB-ключе и т. п.).

Вместе с операционной системой Windows корпорацией Microsoft поставляются несколько встроенных криптопровайдеров типа PROV RSA FULL:

  • • Microsoft Base Cryptographic Provider vl.O — поддерживает алгоритмы симметричного шифрования RC2 и RC4 с длиной ключа от 40 (по умолчанию) до 64 бит, DES, алгоритм ЭЦП с длиной ключа от 384 до 16 384 бит (по умолчанию 512), алгоритм обмена сеансовыми ключами с длиной ключа от 384 до 1024 бит (по умолчанию 512);
  • • Microsoft Enhanced Cryptographic Provider vl.O — поддерживает алгоритмы симметричного шифрования RC2 и RC4 с длиной ключа от 40 до 128 бит (по умолчанию), DES, 3-DES, 3-DES Two Key, алгоритмы ЭЦП и обмена сеансовыми ключами с длиной ключа от 384 до 16 384 бит (по умолчанию 1024);
  • • Microsoft Strong Cryptographic Provider — поддерживает алгоритмы симметричного шифрования RC2 и RC4 с длиной ключа от 40 (по умолчанию в Windows 2000) до 128 бит (по умолчанию в Windows МЕ/ХР), DES, 3-DES, 3-DES Two Key, алгоритмы ЭЦП и обмена сеансовыми ключами с длиной ключа от 384 до 16 384 бит (по умолчанию 512 в Windows 2000 и 1024 в Windows МЕ/ХР).

Первый из указанных выше криптопровайдеров является криптопровайдером, используемым по умолчанию. Все эти криптопровайдеры хранят контейнеры ключей пользователей в реестре Windows.

Существуют две версии CryptoAPI — 1.0 и 2.0. В Crypto- API 1.0 поддерживаются базовые функции для выполнения всех основных криптографических операций. В CryptoAPI 2.0 (библиотека crypt32.dll) введены дополнительные функции для поддержки инфраструктуры открытых ключей.

Для доступа к криптографическим функциям из программ и сценариев на языках Visual Basic, VBScript, JavaScript и аналогичных им в операционной системе Windows предназначен набор многокомпонентных объектов CAPICOM (CryptoAPI Component Object Model, библиотека capicom.dll).

 
Посмотреть оригинал
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >
 

Популярные страницы