Выпускная квалификационная работа

Декабрь 28, 2018  · 10 мин. чтения


Тема: Разработка протокола распределенной верификации аутентификационных данных в системах контроля доступа
Научный руководитель: Паротькин Н.Ю.
Язык программирования: C++
Среда разработки: Qt Creator
Смотреть: Полный текст ВКР в pdf (14,6 Мбайт)


Аннотация


Цель работы – повышение безопасности функционирования системы контроля и управления доступом за счет внедрения дополнительных механизмов защиты передаваемых аутентификационных данных.

Протокол – в рамках данной работы представялет собой процедуру взаимодействия узлов в рамках распределенного согласования верификации.

В данной работе рассмотрено назначение существующих систем контроля и управления доступом (далее СКУД), описаны основные разновидности и их отличия, а также проанализированы и выявлены характерные недостатки данных систем. Разработана новая структура работы систем контроля и управления доступом на базе технологии блокчейн, которая устраняет уязвимости и недостатки существующих систем контроля. Разработан протокол распределенной верификации аутентификационных данных и макет СКУД на основе разработанного протокола. Написаны три программных обеспечения – программное обеспечение взаимодействия с аппаратной частью, ПО «Клиент» и ПО «Сервер». Также проведено тестирование макета, результаты которого продемонстрировали корректную работу всех элементов системы.

Существующие проблемы СКУД


Система контроля и управления доступом – представляет собой комплекс программных и аппаратных средств, а также организационных мероприятий, с помощью которых производится контроль доступа к объектам и отслеживание перемещения людей по охраняемой территории.

В зависимости от задачи и цели выделяют несколько типов систем контроля и управления доступом.

  1. Автономные.
  2. Сетевые.

Основное отличие автономных систем от сетевых заключается в том, что конструкция автономных систем не содержит в своем составе центрального сервера управления на базе компьютерной техники.

Если отсутствует необходимость в обеспечении надежной защиты, то автономные системы контроля и управления доступом являются лучшим вариантом. Основным недостатком является то, что подобного вида системы не оснащены функциями хранения информации, вследствие чего, не способны вести учет перемещений персонала и их рабочего времени. Кроме этого, если данные системы используются на предприятии, где количество точек доступа достигает больших значений и каждая из них имеет разный уровень допуска, то своевременное редактирование кодов идентификаторов и их контроль невозможен в связи с конструкцией системы.

Сетевая система имеет в своем составе интерфейс, который производит обмен данными с центральным сервером (Рисунок 1). В качестве сервера выступает компьютер с узконаправленным и специализированным программным обеспечением.

Сетевая СКУД имеет значительный недостаток – уязвимость центрального сервера. В случае выхода из строя или взлома центрального сервера системы контроля и управления доступом, вся структура сети будет полностью неработоспособна.

Рисунок 1 – Классическая структура сетевой СКУД


Решение проблемы


Для устранения уязвимости центрального сервера необходимо внести ряд изменений в структуру системы контроля и управления доступом на базе центрального сервера.

Следует использовать распределенное размещение серверов и баз данных.

Использование технологии блокчейн в системе контроля и управления доступом предполагает использования распределенного хранения и обработки информации.

Благодаря применению данной технологии в структуре СКУД надежность всей системы возрастет.

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

Рисунок 2 – Распределенная структура СКУД


Блокчейн – это непрерывная и последовательная цепочка блоков, которая выстраивается по определенным параметрам и правилам, и содержит в своей структуре информацию различного типа (Рисунок 3).

Рисунок 3 – Цепочка блокчейн


Во время формирования нового блока, его проверкой занимаются участники сети. В случае, если большинство дает разрешение на его создание, новый блок присоединяется к концу цепочки. После добавления нового блока, внести какие-либо изменения в его структуру невозможно. Блок хранит в себе новую информацию, а также данные о предыдущих блоках в зашифрованном виде. Далее, система выполняет автоматическое обновление цепочки блоков на всех подключенных к сети узлах.

Одно из основных свойств технологии блокчейн – это распределенное хранение (Рисунок 4).

Рисунок 4 – Цепочка блокчейн


В любой централизованный сервер и базу данных можно внести те или иные корректировки, которые приводят к угрозе безопасности информации со стороны злоумышленника. Данные хранятся не на одном сервере, а распределяются по множеству серверам по всему миру или в рамках организации. В случае взлома данной системы, злоумышленнику придется вывести из строя более половины из них. Вероятность данного сценария мала, для этого потребуются огромные ресурсы, как денежные, так и вычислительные мощности. В добавок к этому, у злоумышленника появляется существенное препятствие на пути взлома – различные алгоритмы шифрования.

Структура разработанного протокола


Рисунок 5 – Структура разработанного протокола


Применение технологии блокчейн и разработанного протокола в СКУД


В случае сетевой системы контроля и управления доступом на базе одного сервера, при любом количестве точек аутентификации, для получения полного доступа к системе злоумышленнику необходимо взломать только один сервер – центральный, на котором и строится вся работа системы.

В случае применения технологии блокчейн, вся структура системы полностью меняется. Каждая точка аутентификации является отдельным сервером, которая построена на базе одноплатного микрокомпьютера. На ее основе реализовано программное обеспечение взаимодействия с аппаратной частью, ПО «Клиент» и ПО «Сервер», а также запущена система управления базами данных для хранения необходимой информации (цепочек блокчейн).

Во время аутентификации пользователя в любой точке, сигнал с устройства считывания ключей идет в программное обеспечение взаимодействия с аппаратной частью, которая передает номер идентификатор в ПО «Клиент». Далее текущий запрос отправляется в программное обеспечение «Сервер».

С помощью внутренней сети организации данный запрос пересылается на все точки аутентификации и его проверкой занимаются все участники сети, после чего отправляют свой ответ отправителю. Проверка на вход выполняется на основе информации, которая содержится в базе данных каждого узла сети по каждому зарегестрированному идентификатору в сети (т.е. для каждого идентификатора создается своя цепочка блокчейн).

Рисунок 6 – Принципиальная схема взаимодействия между компонентами системы


В случае, если большинство дает разрешение на вход, пользователь получает доступ в помещение. Формируется новый блок информации аутентификации пользователя, который загружается в базу данных на каждом узле сети.

При повышении количества точек аутентификации увеличивается и общее количество серверов, к которым необходимо получить доступ, чтобы заполучить полный контроль над системой.

Процедура управления идентификаторами пользователя


Что касается процесса регистрации идентификаторов пользователей, то с организационной точки зрения данный процесс в разработанной системе контроля и управления доступом должен осуществляться следующим образом.

В начале процедуры регистрации пользователю выдается официальный печатный документ, в котором находятся вся служебная информация о данном сотруднике, а именно его персональные данные, форма допуска и номер присвоенного ему идентификатора.

Для регистрации идентификатора нового пользователя и последующего занесения его данных в базу данных системы контроля необходимо пройти процедуру регистрации на определенном количестве узлов сети и получить подписи в выданный печатный документ сотрудников организации, проводивших регистрацию на каждом узле (Рисунок 7).

Рисунок 7 – Процедура регистрации


Количество узлов регистрации может изменяться исходя из структуры организации и настроек системы контроля.

После прохождения процедуры регистрации, зарегистрированный идентификатор вместе с данными пользователя копируется по всем узлам системы контроля доступа.

Данная процедура регистрации и управления идентификаторами пользователей позволяет избавиться от централизованного управления и тех недостатков, которые присущи централизованным системам.

ПО Сервер


«Сервер» – программное обеспечение, предназначенное для работы и обмена данными с другими узлами сети, а также для взаимодействия с программным обеспечением клиента (Рисунок 8,9,10). Для связи с другими узлами сети сервер использует внутреннюю сеть Ethernet и стандартизированный физический сетевой интерфейс RJ-45.

Данное программное обеспечение выполняет следующие функции.

  1. Настройка сервера.
  2. Настройка пользователей.
  3. Просмотр логов приложения.
  4. Просмотр журнала событий.

Также разработаны следующие сетевые команды.

  1. Регистрация пользователя.
  2. Удаление пользователя.
  3. Обработка запроса от ПО Клиент.
  4. Обработка ответа от ПО Сервер.
  5. Добавление блока аутентификации в БД.
  6. Ping других ПО Сервер.
Рисунок 8 – Интерфейс ПО «Сервер» №1


Рисунок 9 – Интерфейс ПО «Сервер» №2


Рисунок 10 – Интерфейс ПО «Сервер» №3


ПО «Клиент»


«Клиент» – программное обеспечения, представляет собой графическое приложение с окном для протоколирования работы программы и регистрацию событий отображения записей работы программы в хронологическом порядке (Рисунок 11).

Рисунок 11 – Интерфейс ПО «Клиент»


Данное программное обеспечение выполняет следующие функции.

  1. Обработка запроса пользователя.
  2. Передача запроса в ПО Сервер.
  3. Обработка ответа от ПО Сервер.
  4. Управление оборудованием доступа.

Команда запроса от программного обеспечения «Клиент» в программное обеспечение «Сервер» передает данные идентификатора пользователя, команду и номер помещения, в которое обращается пользователь.

После перечисленных процедур, программное обеспечение ожидает ответа от сервера, в случае если пришло разрешение на вход, подает сигнал на открытие двери в защищаемое помещение, и наоборот в случае запрета доступа.

Все перечисленные функции осуществляют свою работу в фоновом режиме без прямого взаимодействия с пользователей, а также само программное обеспечение всегда находится в режиме ожидания принятия данных идентификатора пользователя от программы взаимодействия с аппаратной частью.

ПО взаимодействия с аппаратной частью


Программное обеспечение взаимодействия с аппаратной частью – представляет собой скрипт, написанный на языке программирования Python, который выполняет сканирование идентификатора и передачу его номера в ПО «Клиент» (Рисунок 12).

Рисунок 12 – Интерфейс ПО взаимодействия с аппаратной частью


Данный скрипт в своем функционале имеет одну команду, с помощью которых происходит взаимодействие с программным обеспечением «Клиент» в локальном узле.

После поднесения идентификатора пользователя к считывателю, данный скрипт осуществляет передачу номера идентификатора в ПО «Клиент». После передачи номера идентификатора включается программная задержка – 3 секунды, которая позволяет избавиться от передачи большого количества потока данных номера идентификатора, что приведет к нарушению работы системы.

Текущий скрипт осуществляет свою работу в фоновом режиме и всегда находится в режиме ожидания для считывания идентификатора пользователя.

Тестирование


Для тестирования разработанного протокола обмена аутентификационными данными был реализован макет на базе одноплатного микрокомпьютера Raspberry Pi, считывателя идентификатора пользователя и других комплектующих, необходимых для работы данного макета (Рисунок 13).

Рисунок 13 – Макет для проведения тестирования


На всех этапах тестирования был запущен один физический микрокомпьютер с подключенным к нему считывателем идентификатора пользователя и три виртуальных микрокомпьютера. На виртуальных микрокомпьютерах информация идентификатора пользователя в ПО «Клиент» передавалась программно.

Заключение


В результате выполнения данной работы был разработан макет системы контроля и управления доступом на основе разработанного протокола обмена аутентификационными данных с использованием технологии блокчейн.

Использование технологии блокчейн в системе контроля и управления доступа позволило разработать абсолютно иную структуру работы СКУД, которая построена на базе распределенной системы хранения и обработки информации.

Также было проведено тестирование разработанной системы с использованием различных ситуаций функционирования и воздействия на систему. В ходе тестирования было выявлено, что весь разработанный функционал программной и аппаратной части выполняет корректную работу в различных сценариях воздействия на нее, а также устраняет основной недостаток классической сетевой системы контроля и управления доступом, которая построена на работе центрального сервера.

В разработанной системе применяются основные свойства технологии блокчейн, которые позволяют уйти от централизованного управления, а также распределить функции управления и хранения всей необходимой информации по множеству узлам СКУД.

Данное нововведение позволяет повысить безопасность и надежность системы контроля и управления доступом, при помощи тех особенностей и функций, которыми обладает технология блокчейн.

Для дальнейшего развития разработанной системы контроля необходимо производить установку дополнительных модулей, а также усовершенствовать программную часть путем добавления дополнительных функций, которые позволят максимально использовать возможности программного обеспечения и технологии блокчейн. Данное направление развития позволит увеличить производительность и надежность системы в целом.