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


Практическое руководство. Построение и запуск примера CNG

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

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

Пример CNG написан на языке C#.Для его работы требуется Visual Studio 2008 или более поздней версии.

Построение примера

Пример CNG состоит из трех проектов Visual Studio. 

  • Alice

  • Bob

  • Mallory

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

В каждом проекте имеется файл CS с кодом, относящимся только к конкретному проекту (Alice.cs, Bob.cs и Mallory.cs).А файлы Utilities.cs, ChannelManager.cs и Communicator.cs являются общими для всех трех проектов.Они явным образом включены в проект Alice и неявным (через связи файлов) — в проекты Bob и Mallory.

Построение проектов Alice, Bob и Mallory

  1. Запустите Visual Studio.

  2. В меню Файл последовательно выберите пункты Создать и Проект.

    Откроется диалоговое окно Новый проект.

  3. В списке Типы проектов выберите Visual C#.

  4. В области Шаблоны щелкните Консольное приложение.

  5. В поле Имя введите Alice.

  6. В поле Расположение введите расположение для сохранения проекта Alice.

  7. Нажмите кнопку ОК.

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

  9. Скопируйте исходный код ChannelManager, Communicator и Utilities в отдельные файлы с именами ChannelManager.cs, Communicator.cs и Utilities.cs и сохраните их в папке проекта Alice.Добавьте эти три файла в проект Alice, выполнив следующие действия.

    1. В меню Вид выберите пункт Обозреватель решений.

    2. В обозревателе решений щелкните правой кнопкой мыши папку Alice, выберите команду Добавить и пункт Существующий элемент.

      Откроется диалоговое окно Добавление существующего элемента с папкой проекта Alice.

    3. Выберите файлы ChannelManager.cs, Communicator.cs и Utilities.cs и нажмите кнопку Добавить.

  10. Повторите шаги 2–8 для проектов Bob и Mallory.Удостоверьтесь, что исходный код файла Bob.cs сохранен в папке проекта Bob, а исходный код файла Mallory.cs — в папке проекта Mallory.

  11. Повторите шаг 9 для проектов Bob и Mallory.Но в шаге 9.c вместо выбора команды Добавить нажмите стрелку рядом с кнопкой Добавить и выберите вариант Добавить как связь.

  12. Настройте выходные каталоги проектов Bob и Mallory следующим образом.

    1. В меню "Проект" выберите Свойства, а затем перейдите на вкладку Построение.

    2. В поле "Путь выходного файла" укажите расположение построения, которое используется в проекте Alice.Скорее всего, оно имеет вид \bin\Debug\ в каталоге проекта Alice, выбранном в шаге 6.

  13. Для построения каждого из решений в меню Построение выберите команду Построить решение.

  14. Убедитесь, что построение всех проектов выполняется без ошибок, и что в каталоге проекта Alice появились исполняемые файлы Alice.exe, Bob.exe и Mallory.exe.

Запуск примера

Пример можно запускать из Visual Studio или как автономное приложение.Результат в обоих случаях будет одинаковым.

Запуск примера CNG

  1. Чтобы запустить пример из Visual Studio, дважды щелкните файлы SLN для всех трех проектов (Alice.sln, Bob.sln и Mallory.sln), чтобы открыть три экземпляра Visual Studio.В проекте Alice в меню Отладка выберите пункт Начать отладку.Повторите эту операцию для проектов Bob и Mallory.

    - или -

    Чтобы запустить пример как автономное приложение, скопируйте исполняемые файлы (EXE) всех трех проектов в один каталог.В проводнике Windows дважды щелкните файл Alice.exe.Программа Alice вызовет исполняемые файлы Bob.exe и Mallory.exe через встроенный автоматический загрузчик.

    Примечание

    Кроме того, исполняемый файл Alice можно запустить из окна консоли. Для этого необходимо перейти в каталог, в котором хранятся все три исполняемых файла, ввести в командной строке имя файла alice.exe.

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

  2. При появлении запроса версии системы безопасности введите в окне Alice номер от 1 до 5.Для первого испытания введите 1.

    Эти номера соответствуют пяти версиям программы, описанным в разделе Общие сведения о примере CNG.

  3. При выборе версий с номерами от 2 до 5 пользователь получит приглашение получать подробные выходные данные.Введите n для работы в обычном режиме и y для получения подробных результатов.

    • В обычном режиме отображаются только сообщения с открытым текстом

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

  4. При появлении приглашения отключить Мэллори, введите n, чтобы не делать этого, и y, чтобы отключить Мэллори.

    Если Мэллори отключен, он не будет получать сообщений и будет оставаться бездейственным.Алиса и Боб будут взаимодействовать без вмешательства Мэллори.

  5. Следите за сценарием общения между Алисой и Бобом.

    Содержание беседы зависит от номера версии, выбранного на шаге 2.Каждое окно создает цикл сообщений, который переключается между режимами приема и отправки.Режим отправки обозначается символами :>.На режим получения указывает пустая строка.Если Алиса находится в режиме отправки, Боб находится в режиме получения.Когда Боб получает сообщение, он переключается в режим отправки, а Алиса — в режим получения.

    Внимательно читайте сообщения Алисы и Боба.Мэллори изменяет второе сообщение Алисы Бобу и ответ Боба Алисе.

    После завершения заранее написанного сценария общения, Алиса предложит пользователю пообщаться с Бобом.

  6. Чтобы отправить собственное сообщение, в командной строке выполните следующие действия.

    1. Введите сообщение и нажмите клавишу ВВОД.Алиса отправит сообщение Бобу.

    2. Перейдите в окно Bob, введите сообщение и нажмите клавишу ВВОД.Боб отправит сообщение Алисе.

    3. Чтобы обменяться дополнительными сообщениями, повторите два предыдущих шага.

  7. Чтобы завершить работу, нажмите клавишу ВВОД в окнах Алисы и Боба, когда они находятся в режиме отправки (в них отображаются символы :>).

    Три окна будут возвращены к исходному состоянию, соответствующему шагу 2.

    Примечание

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

  8. Запустите пример с различными параметрами.При выборе режима подробного вывода и версий 2, 3, 4 или 5 можно сравнить зашифрованные строки, которые отправляет Алиса, с зашифрованными строками, которые получает Боб.Если Мэллори отключен, они должны в точности совпадать.Обратите также внимание на то, что знаки, код ASCII которых превышает 128, отображаются как знаки вопроса (?), поскольку их вывод невозможен.

См. также

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

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

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