close

Вход

Забыли?

вход по аккаунту

?

5880.Объектная декомпозиция при реализации программных средств создания защищенного канала передачи данных в IP-сетях

код для вставкиСкачать
УДК 004.75
ОБЪЕКТНАЯ ДЕКОМПОЗИЦИЯ ПРИ РЕАЛИЗАЦИИ ПРОГРАММНЫХ СРЕДСТВ
СОЗДАНИЯ ЗАЩИЩЕННОГО КАНАЛА ПЕРЕДАЧИ ДАННЫХ В IP-СЕТЯХ
Буханов Дмитрий Геннадьевич, старший преподаватель, кафедра программного обеспечения
вычислительной техники и автоматизированных систем, Белгородский государственный
технологический университет имени В. Г. Шухова, Россия, Белгород, db.old.stray@gmail.com
Поляков Владимир Михайлович, к.т.н., доцент, заведующий кафедрой программного обеспечения
вычислительной техники и автоматизированных систем, Белгородский государственный
технологический университет имени В. Г. Шухова, Россия, Белгород, p_v_m@mail.ru
Пригорнев Иван Андреевич, студент, кафедра программного обеспечения вычислительной техники
и автоматизированных систем, Белгородский государственный технологический университет имени
В. Г. Шухова, Россия, Белгород, v1ar31@gmail.com
Введение
Современные информационные системы не могут функционировать без системы
обмена информацией между узлами. Узлами могут выступать как специализированные
серверы, так и пользовательские компьютеры. Лидирующее место по использованию в
качестве среды передачи данных является IP-сеть. Нарушения целостности или подмена
информации в сети могут привести к значительным убыткам. Для предотвращения
возможных убытков требуется обеспечение организации безопасного канала передачи
данных при взаимодействии узлов IP-сети.
Существует большое количество систем, как с открытым, так и с закрытым кодом,
решающих эту задачу. Например, OpenVPN [1], имеет большое количество разных
конфигураций систем туннелирования и шифрования [2]. Минусами использования
OpenVPN являются открытый порт UDP или TCP, который может быть подвержен DoSатакам.
TCP Fast Open (TFO) [3] может выдавать пользователям TFO-cookie, для открытия
соединения в будущем. На эту систему злоумышленник имеет возможность организовать
Spoofing-атаку, посылая серверу IP-адреса, и инициировать DDoS атаку на него. Transport
Layer Security (TLS) обеспечивает криптографическую защиту сети на транспортном уровне.
TLS широко распространен как основной уровень безопасности в веб-браузерах, однако,
многие Интернет-приложения избегают использования TLS [4]. Недостатком TLS является
поддержка его старых реализаций, т. е. злоумышленник может принудительно разорвать
соединение и заставить подключиться по SSL 3.0 протоколу.
Для образования безопасного канала передачи данных требуется организовать систему
передачи, которая будет лишена описанных недостатков. В данной статье предлагается
объектный подход для создания системы обеспечения безопасного взаимодействия сетевых
узлов, использующих IP-сети в качестве среды передачи.
1. Объектная декомпозиция
Проектирование и разработка системы обеспечения безопасного канала передачи
данных является сложной задачей, для решения которой такие традиционные методы
программирования, как процедурное или структурное программирование, не эффективны
[5]. При создании такой системы возникают проблемы при модификации и поддержке
программного кода. Объектно-ориентированный подход к программированию [6] позволяет
разрабатывать все алгоритмы, функции и методы в соответствии с законами математических
абстракций. Кроме описания классов, объектно-ориентированная модель содержит
диаграмму связей сущностей.
104
Для более полного понимания задачи разработки системы обеспечения безопасного
канала передачи данных выполнено построение объектной модели предметной области
(рис. 1).
Она состоит из Incoming Interface – интерфейса приема пакетов с сетевой карты;
Outgoing Interface – интерфейса приема пакетов со стороны операционной системы; Incoming
Filter, Outgoing Filter – совокупность фильтров, служащих для отбора пакетов из
защищаемого канала; Packet Queue – очередь пакетов, пришедших с интерфейсов и
принадлежащих защищенному каналу. Если пакет пришел из сети, то он нуждается в
расшифровании, если предназначен для отправки, – то в шифровании; Encryptor – объект,
который выполняет шифрование; Decryptor – объект, который выполняет расшифрование;
Gate – основной объект предметной области, который выполняет координацию пакетов в
защищенном канале связи.
Для практического применения сами объекты не интересны, важны взаимодействия
между ними. На рисунке 1 стрелками показаны взаимоотношения объектов. Подписи возле
стрелок обозначают сообщения, которыми обмениваются объекты для решения общей
задачи.
Все пакеты, приходящие из сети через интерфейс Incoming Interface (входящие пакеты),
фильтруются по полям “протокол”, “порт назначения”, “IP адрес получателя”, “IP адрес
отправителя” и другим полям с помощью объекта Incoming Filter. Если пакеты
удовлетворяют условиям фильтра, т.е. принадлежат защищаемому каналу, то они
отправляются на дальнейшую обработку и попадают в очередь пакетов Packet Queue. Иначе
они сразу попадают по своему назначению в систему через интерфейс Outgoing Interface.
Все пакеты, идущие из операционной системы (OS) в сеть (исходящие пакеты) через
интерфейс Outgoing Interface, подвергаются фильтрации. В зависимости от своей
принадлежности защищаемому каналу они попадают в очередь пакетов Packet Queue или
пропускаются в сеть через интерфейс Incoming Interface.
Рис. 1 – Объектная модель системы
В Packet Queue пакеты хранятся до тех пор, пока объект шифрования или объект
расшифрования не запросят их (Requet packet). Если пакет запрашивает Encryptor, то из
очереди извлекается первый исходящий пакет и передается в него для шифрования. Если
105
пакет запрашивает Decryptor, то передается первый входящий пакет для расшифрования.
После этапа шифрования/расшифрования пакеты попадают в координирующий объект Gate
для дальнейшей пересылки. В зависимости от направления, в котором был отправлен пакет,
Gate посылает его либо в сеть через интерфейс Incoming Interface (Send network packet), либо
в систему через интерфейс Outgoing Interface.
2. Диаграмма классов
Рассмотрим диаграмму классов предложенного решения задачи обеспечения
безопасного канала системы передачи данных. Объекты, имеющие схожую структуру,
объединены в классы (рис. 2).
Рис. 2 – Диаграмма классов
Класс Gate является основным классом, в котором содержится логика работы
предлагаемой системы. Он содержит в себе объект класса Sodium, реализованный от
интерфейса CryptoLib, а также включает методы: sendRequest(), который отправляет
обработанный пакет на сетевой интерфейс класса WinDivert; generatePkt(), который создает
заголовки пакетов; crypt() – метод шифрования/расшифрования полученных или созданных
106
сетевых пакетов. Gate вызывает метод crypt(), который вызывает методы класса Sodium. В
предложенном подходе Sodium является реализацией интерфейса CryptoLib.
WinDivert – это класс, который выполняет прослушивание сетевых интерфейсов.
Позволяет “перехватывать” все пакеты, проходящие через сетевую карту, а затем передавать
их обратно в сеть. Включает методы: open(), close(), send(), recv(), которые представляют из
себя обертки над стандартными API-методами библиотеки WinDivert, где send(), recv() это
отправка и прием сообщений в сеть; testFilter() является методом, который проверяет
валидность пакета, путем вызова метода filter() из объекта класса Filter; toQueue() – это
метод, отправляющий пакет в объект очереди класса SingleQueue.
Filter – это класс для обработки и фильтрации пакетов, полученных из сети, который
представляет из себя средство отбора пакетов защищаемого канала передачи данных для
дальнейшей обработки. Он содержит в себе список фильтров в бинарном виде bin. Включает
методы: filter() – является методом для проверки сообщения на валидность; load() – это
метод, который позволяет загрузить новые правила фильтрации.
Класс SingleQueue – это singleton. Он представляет собой очередь, в которой хранятся
все пакеты защищаемого канала передачи данных. Обладает стандартными методами класса
“очередь”, такие как pop() – выталкивание элемента, first() – возвращение первого элемента,
back() – возвращение последнего элемента, push() – проталкивание элемента.
Интерфейс CryptoLib предназначен для работы с процедурами шифрования и
расшифрования данных.
3. Анализ предложенного подхода
В таблице 1 показаны полученные экспериментальные результаты измерения времени
передачи данных между узлами сети с использованием разработанной программной системы
и без нее.
Таблица 1. Экспериментальные результаты работы программы
Размер, байт
20 1000 2000 5000 10000 20000 40000 65000
Без защищенного канала, мс
0,5
1
2
2,5
2,5
5,5
9,5
13
С использованием защищенного
канала, мс
0,5
1
3
3,5
4,5
7,5
13
18,5
Эксперимент проводился в изолированной среде, в которой отсутствовал весь внешний
трафик. В ходе эксперимента было измерено время двухсторонней передачи данных между
узлами сети. Объем передаваемых данных был выбран до 65000 байт, так как этот размер
примерно совпадает с одним IP пакетом.
Оценка эффективности программного средства создания защищенного канала передачи
данных была произведена в соответствии со следующей методикой:
1. Вычислить максимальное количество пакетов, передаваемых по каналу связи:
где Nmax – максимальное количество пакетов, передаваемых по каналу связи, Lframe –
максимальный размер пакета канального уровня.
2. Рассчитать количество передаваемых пакетов по защищенному каналу:
где Ncurr – текущее количество пакетов, передаваемых по каналу связи; traf – трафик,
переданный в одном направлении; t – время передачи данных в миллисекундах.
107
3. Найти эффективную долю пропускной способности сетевого канала. Для 100 Мб/c
Ethernet канала эффективная пропускная способность равна 60-80% от всей ширины канала.
4. Вычислить эффективную пропускную способность защищаемого канала:
Для 100 Мб/c сети Ethernet:
1.
;
2.
;
3. Коэффициент пропускной способности Kэф = 0,6;
Если для 100 Мб/с сети максимальное количество пакетов канального уровня равно
8300 в секунду, то полученная реализация позволяет отправлять 4800 пакетов/с. А так как
эффективное использование сети из-за возникновения коллизий составляет 60–80% от
пропускной способности канала, то данная реализация системы обеспечения безопасного
канала передачи данных позволяет защищать 96% всего проходящего трафика, проходящего
через узел.
Литература
1. OpenVPN – The Open Source VPN [Электронный ресурс]. – Режим доступа:
https://openvpn.net/, свободный. – Загл. с экрана.
2. Liu, J. A real–time network simulation infrastructure based on OpenVPN / J. Liu, Y. Li, N.
Van Vorst, S. Mann, K. Hellman // The Journal of Systems and Software. – 82, 2009 – P.
473–485.
3. Radhakrishnan, S. TCP fast open / S. Radhakrishnan, Y. Cheng, J. Chu, A. Jain, B.
Raghavan // Proceedings of the Seventh COnference on emerging Networking Experiments
and Technologies. – ACM, 2011. – 21 P.
4. Vratonjic, N. The inconvenient truth about web certificates / N. Vratonjic, J. Freudiger, V.
Bindschaedler, J. P. Hubaux // Economics of Information Security and Privacy III. –
Springer New York, 2013. – P. 79–117.
5. Неклюдова, С. А. Парадигмы программирования как инструменты разработчика
программных систем / С. А. Неклюдова, А. Р. Балса // Межвузовский сборник
научных трудов: Информационные технологии и системы. – №. 1. – С. 12.
6. Буч, Г. Объектно–ориентированный анализ и проектирование с примерами
приложений на С++. – СПб : Невский диалект, 1998.
УДК 004.04
ФОРМАЛЬНОЕ ОПИСАНИЕ ПРИКЛАДНЫХ ПРЕДМЕТНЫХ ОБЛАСТЕЙ В
ПОНЯТИЯХ УНИФИЦИРОВАННОЙ МЕТАМОДЕЛИ ОБЪЕКТНООРИЕНТИРОВАННЫХ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ
Олейник Павел Петрович, к.т.н, системный архитектор программного обеспечения,
ОАО "Астон", доцент, Шахтинский институт (филиал) Южно-Российского государственного
политехнического университета им. М.И. Платова, Россия, Ростов-на-Дону, xsl@list.ru
Для описания математической модели, позволяющей представить объектную модель
информационной системы любой прикладной предметной области, будем использовать
формальный аппарат теории множеств. Дальнейшим развитием данного решения может
быть модельно-ориентированный подход, при котором понятие типа основано на теоретико108
Документ
Категория
Без категории
Просмотров
6
Размер файла
303 Кб
Теги
создание, сетях, данных, канал, передача, декомпозиция, средств, объектная, защищённого, реализации, программное, 5880
1/--страниц
Пожаловаться на содержимое документа