Тема: Использование функций криптографического интерфейса (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
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.