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


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

Обновлен: Июль 2008

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

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

В этом разделе приведены общие сведения о данном примере 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).

Cc488018.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

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

См. также

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

Общие сведения о криптографии

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

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

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

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

Журнал изменений

Дата

Журнал изменений

Причина

Июль 2008

Добавлен раздел.

Улучшение информации.