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

69 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Практическая работа №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. В разделе отчета, посвященном данной работе, должны быть приведены
- актуальность темы работы в контексте курса;
- цели и задачи работы;
- краткое описание особенностей используемого алгоритма симметричного шифрования, а также шифрования «с затравкой» и алгоритма Диффи-Хеллмана, если реализованы соответствующие требования;
- команды компиляции и сборки исполняемых модулей приложения;
- описание процедуры проверки работы приложения с примерами, включая выводы программы анализа трафика, подтверждающие реализацию требований передачи сообщений без шифрования, с шифрованием, с шифрованием и контролем целостности;
- описание проверки опции контроля целостности, в которой отправляются сообщения с некорректным хэш-значением;
- описание проверки шифрования «с затравкой» и алгоритма Диффи-Хеллмана, если реализованы соответствующие требования;
- текст разработанного приложения (клиентской и серверной частей) с комментариями - в приложении к отчету;
- выводы по проделанной работе.