This commit is contained in:
2026-04-02 16:40:25 +03:00
parent c373e8f5d9
commit 642e3cf0c7
17 changed files with 815 additions and 0 deletions

68
lab5/lab5.md Normal file
View File

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