Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




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

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

Криптографический интерфейс приложений операционной системы? тс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)

К основным атрибутам 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).

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...