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

  • doc
  • 26.04.2020
Публикация в СМИ для учителей

Публикация в СМИ для учителей

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

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

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №11

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

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

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

Вид работы: групповой

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

Теоретические сведения

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

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

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

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

Рисунок 1 - Архитектура криптографических функций в ОС 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 2000/ХР/2003.

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

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

Порядок взаимодействия приложений с криптографическими модулями операционной системы регламентирует документ, который называется Microsoft Cryptographic Application Programming Interface (MS CryptoAPI). Функции, описанные в нем, поддерживаются Windows 9x и Windows NT/2000/XP. В последних ОС функции CryptoAPI содержатся в модулях crypt32.dll и advapi32.dll, но они не реализуют криптографических алгоритмов, а обращаются к другим модулям, называемым Cryptographic Service Providers (CSP). Одновременно в операционной системе можно установить несколько CSP. При первом обращении к CryptoAPI прикладная программа выбирает, с каким именно модулем CSP она будет работать в зависимости от того, какие криптографические алгоритмы ей необходимы (рис. 2). Следует отметить, что система по организации похожа на ту, что используется в Java.

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

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

Рисунок 2 – Схема архитектуры CryptoAPI

Задания к практической работе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 2. Адресная книга

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

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

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

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

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

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

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

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

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

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

Задание 2. Использование средств криптографической защиты в Outlook 2007 во многом совпадает с использованием в Outlook ранних версий. Однако стоит отметить следующие особенности:

1.     Почтовая программа Outlook 2007 поддерживается только криптопровайдером КриптоПро CSP версии 3.0 (с установленным пакетом обновления SP2) и выше.

2.     Криптопровайдер КриптоПро CSP поддерживает только формат S/MIME защищенных почтовых сообщений, и поэтому в настройках сервера Exchange должна стоять опция использования формата MIME и разрешения маршрутизации защищенных сообщений S/MIME.

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

4.     Для хранения сертификатов открытых ключей абонентов используйте локальную или общую (корпоративную) папку Контакты.

Конфигурация Outlook 2007

Выберите пункт меню Сервис, Центр управления безопасностью и нажмите на закладку Защита электронной почты. Нажмите кнопку Параметры.

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

Выберите пункт меню Сервис, Центр управления безопасностью и нажмите на закладку Защита электронной почты.

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

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

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

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

После того, как сообщение подготовлено к отправке, нажмите кнопку  Отправить.

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

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

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

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

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

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

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

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

После того, как сообщение подготовлено к отправке, нажмите кнопку  Отправить.

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

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

Для контроля проверки сертификатов на отзыв выполните следующие действия. Откройте полученное подписанное письмо. Нажмите кнопку  – признак подписанного сообщения.

Нажмите кнопку Сведения. Если сертификат действительный и не был отозван, то откроется окно, подобное этому:

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

Если же СОС обновлен, а письмо подписано отозванным сертификатом, то при нажатии кнопки  появится следующее предупреждение:

Нажмите кнопку Сведения для просмотра сведений о сертификате:

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

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

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

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

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

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

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

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

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

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

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

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

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


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