Files
cyber-security/lab5/lab5.md
2026-04-02 16:40:25 +03:00

7.0 KiB
Raw Permalink Blame History

Практическая работа №5

по дисциплине «Защита информации»
Тема работы: «Разработка клиент-серверного приложения для конфиденциального обмена сообщениями»
Преподаватель: Силиненко А.В.
Email: a_silinenko@mail.ru

1. Цель и задачи работы

1.1. Цель работы

Разработка клиент-серверного приложения для конфиденциального обмена сообщениями с использованием шифрования и контроля целостности.

1.2. Задачи работы

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

2. Требования к приложению

2.1. Общие требования

Разработать приложение типа «клиент-сервер», позволяющее обмениваться короткими сообщениями между клиентской и серверной частями приложения с обеспечением шифрования и контроля целостности.

2.2. Общие требования

  • протокол взаимодействия: TCP;
  • длина сообщения: не более 80 символов;
  • полнодуплексный обмен сообщениями: возможность одновременного приема и передачи сообщений;
  • IP-адрес и порт серверной части передается клиентской части приложения в качестве параметров запуска в командной строке;
  • приложение должно быть способно функционировать как при запуске клиентской и серверной частей приложения на одном компьютере, так и на разных сетевых узлах;
  • язык написания программы: любой.

2.3. Требования к функции шифрования

  • приложение должно поддерживать функцию шифрования сообщений на основе симметричного шифрования с использованием библиотеки crypto, входящей в API openssl, или другой аналогичной библиотеки;
  • алгоритм симметричного шифрования: согласно индивидуальному заданию; В моём варианте это 3DES
  • ключ шифрования длиной не менее 32 символов задается в файле;
  • права доступа к файлу: чтение только владельцем;
  • использование опции шифрования задается ключом командной строки при запуске программы.

2.4. Требования к функции контроля целостности

  • приложение должно поддерживать функцию контроля целостности на основе подсчета хэш-значения передаваемого сообщения;
  • алгоритм вычисления хэш-значения - в соответствии с индивидуальным заданием (см. практическую работу №2);
  • использование опции контроля целостности задается ключом командной строки при запуске программы;
  • предусмотреть режим тестирования, в котором при включенной опции контроля целостности отправляются сообщения с некорректным хэш-значением.

2.5. Необязательные требования

  • реализовать шифрование с «затравкой» («солью»), обеспечивающей разные шифрованные сообщения при одном и том же открытом тексте;
  • реализовать для разработанного приложения опцию выработки и использования сессионного ключа на основе алгоритма Диффи-Хеллмана вместо заранее заданного ключа.

3. Требования к отчету

3.1. В разделе отчета, посвященном данной работе, должны быть приведены

  • актуальность темы работы в контексте курса;
  • цели и задачи работы;
  • краткое описание особенностей используемого алгоритма симметричного шифрования, а также шифрования «с затравкой» и алгоритма Диффи-Хеллмана, если реализованы соответствующие требования;
  • команды компиляции и сборки исполняемых модулей приложения;
  • описание процедуры проверки работы приложения с примерами, включая выводы программы анализа трафика, подтверждающие реализацию требований передачи сообщений без шифрования, с шифрованием, с шифрованием и контролем целостности;
  • описание проверки опции контроля целостности, в которой отправляются сообщения с некорректным хэш-значением;
  • описание проверки шифрования «с затравкой» и алгоритма Диффи-Хеллмана, если реализованы соответствующие требования;
  • текст разработанного приложения (клиентской и серверной частей) с комментариями - в приложении к отчету;
  • выводы по проделанной работе.