Поделиться через


Пример защищенного обмена данными с шифрованием CNG

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

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

Примечание

Классы CNG доступны только в Windows Vista и операционных системах Windows более поздних версий.

В этом разделе приведены общие сведения о данном примере CNG.В нем описаны следующие вопросы.

  • Сценарий примера

  • Уязвимости средства обмена мгновенными сообщениями

  • Версия 1. Именованные каналы

  • Версии 2–5. Последовательное совершенствование защиты

  • Результаты испытаний

  • Код примера

  • Соглашения об именах

  • Подробные сведения

Сценарий примера

Рекламное агентство разрабатывает средство обмена мгновенными сообщениями, которое работает на настольных компьютерах.Все сотрудники могут видеть сообщения, введенные в это средство.

Алиса и Боб работают в отделе продаж.Они используют средство обмена мгновенными сообщениями для передачи друг другу контактных данных клиентов.Мэллори работает инженером по сетям в отделе обслуживания систем.Он тайно отслеживает сообщения Алисы и Боба.Раз в месяц он копирует контактные данные ценных клиентов и продает их конкурентам для получения личной выгоды.

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

Уязвимости средства обмена мгновенными сообщениями

Компания выявила следующие уязвимости используемого средства обмена мгновенными сообщениями:

  • сообщения передаются в виде открытого текста (без шифрования);

  • сообщения распространяются по сети компании;

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

Компания решила, что для устранения этих проблем в новом средстве обмена мгновенными сообщениями будет использоваться взаимодействие "точка-точка" по сети компании.

Версия 1. Именованные каналы

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

Алиса и Боб получают следующие инструкции.

  1. Создать первоначальное подключение по каналу с именем PublicChannel.

  2. Отправить имя закрытого канала друг другу, а затем сразу отключиться от канала PublicChannel.

  3. Установить подключение по закрытому каналу и обмениваться контактными данными клиентов по нему.

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

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

Версии 2–5. Последовательное совершенствование защиты

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

  • В версии 2 добавлено шифрование на основе CNG с использованием пар открытых и закрытых ключей.

  • В версии 3 для подписывания ключей шифрования и сообщений используются цифровые подписи.

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

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

Результаты испытаний

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

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

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

Версия 5 идентична версии 4, но в ней сеанс завершается при первом нарушении системы безопасности.Сразу после установки этой версии кража контактных данных клиентов прекратилась.

Код примера

Входящий в состав примера код моделирует эти пять версий системы безопасности.Общие сведения о коде представлены в разделе Общие сведения об исходном коде (пример CNG).

Примечание

Этот пример не является полноценным решением для обеспечения безопасности.Он предназначен лишь для демонстрации возможностей интерфейса API CNG в реальной ситуации.Создание полноценного приложения для обеспечения безопасности выходит за рамки этого примера.

Соглашения об именах

В документации к этому примеру пять версий ПО и соответствующие уровни безопасности обозначаются номерами (например, "версия 1", "версия 2" и т. д.).

В зависимости от контекста имена Alice, Bob и Mallory могут относиться к трем действующим лицам описываемого сценария или к трем приложениям Visual Studio.Для простоты в документе используются одни и те же имена при упоминании элементов обоих типов.Например, фраза "Алиса автоматически загружает Боба и Мэллори" означает, что приложение Алисы автоматически загружает приложения Боба и Мэллори.

Подробные сведения

В следующих разделах приводятся более подробные сведения об этом примере и его коде.

См. также

Основные понятия

Службы криптографии

Модель криптографии .NET Framework

Службы криптографии

Другие ресурсы

Задачи криптографии