Перечень сокращений и обозначений 3
Введение 4
1 Анализ темы 5
1.1 Актуальность темы 6
1.2 Анализ аналогов 7
1.3 Постановка задачи 11
2 Выбор средств и инструментов разработки 13
2.1 IDE Visual Studio 2019 13
2.2 Язык программирования С 14
2.3 WDK 14
2.4 Windows SDK 15
2.5 NDIS 15
2.6 Язык программирования C# 16
2.7 NET 17
3 Архитектура драйвера 18
4 Реализация программного обеспечения 26
4.1 Регистрация драйвера 26
4.2 Работа с реестром 28
4.3 Получение сетевых листов и выделение заголовков из пакетов 30
4.4 Получение полезной нагрузки для шифрования 34
4.5 Разбор алгоритма шифрования 39
4.6 Обработка IOCTL запросов 42
5 Установка и тестирование 46
5.1 Настройка реестра и оснастки 46
5.2 Установка драйвера 49
5.3 Тестирование 54
5.3.1 Тестирование без шифрования 55
5.3.2 Тестирование с шифрованием 58
5.3.3 Тестирование с неправильно настроенным шифрованием 63
5.3.4 Тестирование скорости передачи данных 67
6 Безопасность жизнедеятельности 70
Заключение 71
Список использованных источников 72
Приложение А 73
Приложение А.1 - Диаграмма развёртывания 74
Приложение А.2 - Диаграмма последовательностей 75
Приложение А.3 - Диаграмма деятельности 1 76
Приложение А.4 - Диаграмма деятельности 2 77
Приложение Б 78
Приложение В 111
В современном мире, персональных или конфиденциальных данных, находящихся в сети интернет или внутренних базах данных различных компаний, учреждений и отдельных пользователей с каждым годом становится всё больше. Так же в ходе использования этих данных и во время их передачи по сети они могут быть украдены и использованы третьими лицами.
Кроме персональных и конфиденциальных данных по сети передаются большое количество других различных сетевых пакетов, которые используются различными приложениями или браузерами. Такие пакеты могут быть так же перехвачены и изменены злоумышленниками, что может нарушить работу используемых пользователем приложений, сайтов и оборудования, а также обеспечить злоумышленникам полный доступ к данным.
Так как стандартная защита передаваемых по сети данных, такая как защищённые протоколы по типу HTTPS, FTP и другие, зачастую является недостаточной, разработка программной защиты передаваемых сетевых пакетов всегда будет актуальной темой.
В ходе выполнения данной выпускной квалификационной работы на тему «Программа реализации защищенного соединения» были получены и закреплены навыки разработки сетевых драйверов для операционной системы Windows, взаимодействия с ядром операционной системы и сетевым стеком NDIS. В результате выполнения работы был разработан драйвер сетевого фильтра NDIS, оснастка для его настройки, а также отчёт, в котором представлены результаты тестирования разработанного программного обеспечения, описание разработки и подробный разбор его основных функциональных особенностей.
Разработанный драйвер позволяет создавать защищённые соединения путём шифрования методом гаммирования передаваемых сетевых пакетов, использующих транспортные протоколы UDP или TCP, между двумя компьютерами, а также оснастка для настройки параметров шифрования в данном драйвере. Проведённое тестирование показало, что разработанный драйвер соответствует всем поставленным в начале работы требованиям и работает корректно, не вызывая критических ошибок в системе, что является частой проблемой драйверов операционной системы Windows.
В дальнейшем данный драйвер можно усовершенствовать, добавив поддержку шифрования всех транспортных протоколов, поддержку протокола IPv6, а также увеличить безопасность шифрования, путём усложнения алгоритма генерации и работы с ключами и ключевой информацией для шифрования. Разработанную оснастку в свою очередь можно улучшить путём добавления возможности выключения защиты определённого соединения, добавления поддержки IPv6 адресов, а также общее улучшения качества графического интерфейса.