Использование функций криптографического интерфейса (CryptoAPI) операционной системы Windows 7 для защиты информации

  • doc
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 65. Практическая работа по теме Использование функций криптографического интерфейса (CryptoAPI).doc

ПРАКТИЧЕСКАЯ РАБОТА № 8

Тема: Использование функций криптографического интерфейса (CryptoAPI) операционной системы Windows 7 для защиты информации

Цель формирование умений использования функций криптографического интерфейса (CryptoAPI) операционной системы Windows 7 для защиты информации на примере Outlook Express

Оборудование: персональный компьютер, ОС Windows 7, приложение Outlook Express, Internet.

Время выполнения: 4 часа

Теоретический материал

Использование CryptoAPI в ОС Windows 7 преследует две главные цели:

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

Обеспечить одновременное использование разных алгоритмов и различных их реализаций как программных, так и аппаратных.

Общая архитектура криптографических функций показана на рисунке 4.

Рисунок 4 - Архитектура криптографических функций в ОС Windows

Общая архитектура CryptoAPI 2.0 представлена пятью основными функциональными группами:

Базовые криптографические функции

К базовым функциям относятся:

- функции инициализации (работы с контекстом).

Эти функции предоставляют приложению возможность выбрать определенный криптопровайдер по типу имени или по требуемой функциональности;

- функции генерации ключей.

Эти функции предназначены для формирования и хранения криптографических ключей различных типов;

- функции обмена ключами.

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

Функции кодирования/декодирования

Данные функции предназначены для преобразования (кодирования) из внутреннего представления объектов, используемых в CryptoAPI, во внешнее представление и обратно. В качестве внешнего представления объектов используется формат ASN.1 (Abstract Syntax Notation One), определенный серией рекомендаций X.680.

К этой же группе функций относится набор функций, позволяющих расширить функциональность CryptoAPI, путем реализации и регистрации собственных типов объектов.

Функции работы со справочниками сертификатов

Эта группа функций предназначена для хранения и обработки сертификатов в различных типах справочников. Причем в качестве справочника могут использоваться самые различные типы хранилищ: от простого файла до LDAP.

Высокоуровневые функции обработки криптографических сообщений

Эта группа функций (Simplified Message Functions) в первую очередь предназначена для использования в прикладном ПО. С помощью этих функций можно

Зашифровать/расшифровать сообщение от одного пользователя к другому.

Подписать данные.

Проверить подпись данных.

Эти функции (так же как и функции низкого уровня) оперируют сертификатами открытых ключей X.509 для адресации отправителя/получателя данных. В качестве формата данных, формируемых функциями, используется формат PKCS#7 (RFC 2315) или CMS (RFC 2630) в Windows 7

Низкоуровневые функции обработки криптографических сообщений

Данная группа функций (Low Level Message Functions) предназначена для аналогичных целей, что и группа высокоуровневых функций, но обладает большей функциональностью и требует от прикладного программиста более детальных знаний в области прикладной криптографии.

Порядок взаимодействия приложений с криптографическими модулями операционной системы регламентирует документ, который называется Microsoft Cryptographic Application Programming Interface (MS CryptoAPI). Одновременно в операционной системе можно установить несколько CSP. При первом обращении к CryptoAPI прикладная программа выбирает, с каким именно модулем CSP она будет работать в зависимости от того, какие криптографические алгоритмы ей необходимы (рис. 5). Следует отметить, что система по организации похожа на ту, что используется в Java.

CryptoAPI позволяет шифровать данные, подписывать документы цифровой подписью и многое другое. Существуют и встроенные средства, например Microsoft Base Cryptographic Provider. Имеется возможность использовать CryptoAPI в таких программах разработки, как Visual Studio, то есть автоматически осуществляется поддержка таких языков, как Visual C++, Visual Basic, Visual FoxPro и др.

Примером функции генерации ключей может быть CryptGenKey(), а шифрования и дешифрования — CryptEncrypt() и CryptDecrypt() и т.д.

Рисунок 5 - Схема структуры


Задания:

Программное обеспечение Outlook Express версии 5.0 и выше полностью поддерживает Инфраструктуру Открытых Ключей для обеспечения конфиденциальности, целостности, авторства почтовых сообщений, передаваемых по протоколам SMTP, IMAP, POP3. Для этих целей Outlook Express использует функции CryptoAPI 2.0 и сертификаты открытых ключей X.509. В качестве формата защищенных сообщений используется формат, описанный в рекомендациях Secure Multipurpose Internet Mail Extensions (S/MIME).

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

Выберите пункт меню Сервис, Настройка учетных записей… и нажмите на закладку Электронная почта. В отображаемом списке учетных записей выберите ту, которую необходимо настроить, и нажмите кнопку Свойства. В отображаемом диалоге выберите закладку Безопасность. Отображаемый диалог позволяет пользователю указать свои личные сертификаты, которые будут использоваться при выборе личных ключей пользователя для формирования электронной цифровой подписи и расшифрования входящих сообщений. Как уже было отмечено раннее, в диалоге выбора сертификата отображаются только сертификаты, имеющие совпадающий адрес электронной почты и разрешенные для защиты электронной почты (рис.6).

Рисунок 6 – Окно диалога выбора сертификата

Выберите пункт меню Сервис, Параметры… и нажмите на закладку Безопасность (рис.7).

 

Рисунок 7 – Окно вкладки «Безопасность»

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

Нажмите кнопку Дополнительно. В отображаемом диалоге установите следующие режимы:

Шифровать при отправке шифрованной почты самому себе. Установка режима включения дает возможность отправителю расшифровывать отправленные им сообщения.

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

Кодировать сообщения перед подписыванием (непрозрачная подпись). При включенном режиме сообщения и все вложения будут объединены в единое вложение с включенной в него цифровой подписью. Если режим выключен – подпись формируется в виде одного отдельного вложения для всех вложений.

Автоматически добавлять сертификат отправителя в адресную книгу. При включенном режиме сертификаты, передаваемые в составе подписанного сообщения, будут автоматически добавляться в адресную книгу (рис.8).

 

Рисунок 8 – Добавление сертификата

Проверять, не были ли отозваны сертификаты:

только при нахождении в сети – установка флага проверки приводит к тому, что каждая операция формирования или проверки электронной цифровой подписи будет сопровождаться проверкой на отзыв сертификата. Для проверки на отзыв используется список отозванных сертификатов (CRL), информация о нахождении которого, записывается в виде дополнения в сертификате каждого пользователя. По умолчанию данная опция не включена, и Outlook Express не отслеживает факта компрометации ключей пользователей.

никогда не проверять – проверка на отзыв не выполняется.

Отправка подписанных сообщений

Для создания и отправки подписанного сообщения нажмите кнопку  Создать сообщение или выберите пункт меню Файл, Создать, Сообщение.

Выберите получателя сообщения (поле Кому) и введите тему сообщения. Если письмо будет содержать некоторые файлы, добавьте их в письмо, используя кнопку  Вложить. Для отправки сообщения в подписанном виде проверьте состояние кнопки  Подписать. Она должна быть нажата и должен быть виден признак подписанного сообщения  в правой части экрана (рис.9).

 

Рисунок 9 – Окно сообщения

После того, как сообщение подготовлено к отправке, нажмите кнопку  Отправить. Если в ответ появится следующее предупреждение, то это означает, что сертификат был отозван (рис.10).

Рисунок 10 – Предупреждение об отзыве сертификата

Получение сертификата открытого ключа абонента для шифрования сообщений

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

Для контроля добавления выполните следующие действия. Откройте полученное подписанное письмо. Установите курсор на адрес отправителя и, нажав правую кнопку мыши, выберите пункт Добавить в адресную книгу (рис.11).

Рисунок 11 – Добавление в адресную книгу

Для того, чтобы проверить наличие сертификата абонента в адресной книге, нажмите на кнопку  Адреса в основном меню и выберите запись с требуемым абонентом (рис.12). Если в записи абонента отсутствует сертификат или сертификат не обновился (у абонента был старый сертификат), удалите полностью запись абонента из адресной книги и получите от него подписанное сообщение еще раз. При этом должно произойти автоматическое создание записи с сертификатом.

Рисунок 12 – Проверка наличия сертификата абонента в адресной книге

Отправка шифрованных сообщений

Для создания и отправки подписанного сообщения нажмите кнопку  Создать сообщение или выберите пункт меню Файл, Создать, Сообщение.

Выберите получателя сообщения (поле Кому) и введите тему сообщения. Если письмо будет содержать некоторые файлы, добавьте их в письмо, используя кнопку  Вложить. Для отправки сообщения в зашифрованном виде проверьте состояние кнопки  Зашифровать. Она должна быть нажата и должен быть виден признак шифрованного сообщения  в правой части экрана. После того, как сообщение подготовлено к отправке, нажмите кнопку  Отправить.

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

Рисунок 13 – Предупреждение об ошибке

Проверка сертификата на отзыв

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

Для контроля проверки сертификатов на отзыв выполните следующие действия. Откройте полученное подписанное письмо. Нажмите кнопку  – признак подписанного сообщения. Как уже было отмечено раннее, для автоматической проверки подписи на отзыв необходимо установить флаг Проверять, не были ли отозваны сертификаты: только при нахождении в сети. В противном случае, в открывшемся диалоге в закладке Безопасность увидите следующее (рис.14):

 

Рисунок 14 – Окно вкладки «Безопасность»

При установленном флаге проверки, если сертификат не отозван, в графе Состояние отзыва получите Сертификат не был отозван, или не удалось получить информацию об отзыве этого сертификата.

Если же сертификат отозвали, то при открытии письма появится предупреждение (рис.15) :

Рисунок 15 – Предупреждение системы безопасности

А при нажатии кнопки , в открывшемся окне во вкладке Безопасность будет значиться: Этот сертификат был отозван.

Контрольные вопросы:

1. Что называется провайдером криптографического обслуживания?

2. На каких принципах строится взаимодействие прикладной программы и криптопровайдера?

3. Как обеспечиваются в операционной системе аутентичность и целостность криптопровайдера?

4. Что хранится в контейнере ключей пользователя при работе с криптопровайдером?

5. Как создаются в CryptoAPI сеансовые ключи шифрования?

6. Как может быть осуществлен обмен ключами шифрования в CryptoAPI?

7. Какие функции CryptoAPI предназначены для шифрования и расшифрования данных?

8. Что должно сохраняться вместе с зашифрованным файлом?

9. Как изменить режим шифрования при использовании функций CryptoAPI?

10.Какие функции CryptoAPI используются для получения и проверки электронной цифровой подписи?

11.Каков порядок вызова функций CryptoAPI при получении ЭЦП?

12.Как могут быть совмещены процессы шифрования (расшифрования) и хеширования при использовании CryptoAPI?


Скачано с www.znanio.ru