Научная статья на тему 'Управление доступом и защита беспроводной передачи картографической информации'

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

CC BY
176
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КАРТОГРАФИЧЕСКАЯ ИНФОРМАЦИЯ / БАЗА ДАННЫХ / АУТЕНТИФИКАЦИЯ / MAP INFORMATION / DATABASE / AUTHENTICATION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гибадуллин Р.Ф., Новиков А.А., Смирнов И.Н., Перухин М.Ю.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Управление доступом и защита беспроводной передачи картографической информации»

УДК 004.56:004.65

Р. Ф. Гибадуллин, А. А. Новиков, И. Н. Смирнов, М. Ю. Перухин

УПРАВЛЕНИЕ ДОСТУПОМ И ЗАЩИТА БЕСПРОВОДНОЙ ПЕРЕДАЧИ КАРТОГРАФИЧЕСКОЙ ИНФОРМАЦИИ

Ключевые слова: картографическая информация, база данных, аутентификация.

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

Keywords: map information, database, authentication.

Access management module for map database was developed. These map information can contain civil objects and classified government and military objects. That kind of information can be highly valuable and it is necessary to protect it against any unauthorized access and to provide pure transmission to authorized users.

Введение

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

Работа с информацией такого рода требует контролировать доступ пользователей к ней, обеспечивать ее защиту от перехвата и сохранность в процессе передачи [1].

Алгоритм работы программного модуля [2]

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

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

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

Добавление новых пользователей, изменение или удаление данных уже существующих пользователей происходит через стандартную для PostgreSQL СУБД PgAdmin.

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

ной работы стандартного функционала PgAdmin было достаточно.

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

Нового пользователя PostgreSQL также можно добавить посредством SQL-запроса. Пример такого запроса:

CREATE ROLE aleksey ENCRYPTED PASSWORD 'md509beaebe743c94f80a2f4b53696a 8f40' VALID UNTIL 'infinity';

Указанный запрос создает пользователя с именем aleksey, бессрочным временем действия (infinity) и паролем, хеш-сумма которого, вычисленная по алгоритму md5, представляет последовательность: 09beaebe743c94f80a2f4b53696a8f40.

Несмотря на то, что в программном модуле возможность выполнения команды CREATE заблокирована, такую команду по-прежнему можно выполнить непосредственно через СУБД PgAdmin.

После удачного создания пользователя окно PgAdmin отобразит список имеющихся пользователей, включая созданного.

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

фикационной информации пользователя, то в случае, если пользователь через какое-то время повторит запрос, опять возникнет конфликт. По этой причине было решено добавить к тексту системное время, а уже затем производить его хеширование. Системное время берется с точностью до секунд, что в рамках текущей задачи является достаточным. Первоначально планировалось вычислять хеш-сумму по алгоритму MD5, однако в процессе разработки было установлено, что в случае его применения возможно получение одинаковых значений хеш-сумм для различной информации. Алгоритм SHA-256 лишен этого недостатка, поэтому в итоге было решено применить его. Причем, при сохранении файла на свой компьютер, пользователь, разумеется, может задать для него другое имя.

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

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

Внести изменения в БД можно с помощью запросов, содержащих команды: alter, create, delete, drop, insert, update. Также следует исключить выполнение команды backup, т.к. она используется для создания резервных копий БД, которые потенциально могут попасть в руки противника. На случай попытки выполнения таких запросов в веб-модуле реализован вывод сообщений о некорректности запроса [2].

Далее приведено краткое описание исключаемых команд:

□ ALTER COLUMN — изменение столбца таблицы;

□ ALTER DOMAIN — изменение в определение домена;

□ ALTER TABLE — изменение структуры таблицы;

□ BACKUP — создание резервной копии;

□ CREATE TABLE — создание таблицы;

□ CREATE VIEW — создание представления;

□ CREATE INDEX — создание индекса;

□ DELETE — удаление записей из таблицы;

□ DROP TABLE — удаление таблицы;

□ DROP INDEX — удаление индекса;

□ DROP TABLE — удаление таблицы;

□ DROP VIEW — удаление представления;

□ INSERT INTO — добавление записей;

□ UPDATE — обновление записей.

После рассмотрения вышеупомянутых команд было решено заблокировать выполнение SQL-запросов, содержащих следующие команды:

□ ALTER;

□ BACKUP;

□ CREATE;

□ DELETE;

□ DROP;

□ INSERT;

□ UPDATE.

Также установлено, что блокировка этих слов не приведет к некорректному выполнению разрешенных запросов.

Для обеспечения удобства пользования модулем необходимо реализовать вывод сообщений в случае совершения пользователем ошибок. Самой распространенной ошибкой пользователя можно считать ввод некорректной пары логин-пароль. Логин должен содержать только цифры и латинские буквы, а пароль — цифры, латинские буквы, символы стандарта Юникод и UTF-8.

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

Интерфейс веб-модуля, разработанный с применением технологии CSS,

Тестирование программного модуля

Основная часть тестирования модуля проводилась на Microsoft Windows Server 2012 R2, установленной на виртуальной машине VMware Workstation. Цель такого тестирования - выявление ошибок и недочетов в программном модуле без использования сервера КНИТУ-КАИ.

После чего набор финальных тестов был проведен на сервере. В ходе финального тестирования никаких ошибок и недоработок выявлено не было.

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

Для проверки корректности работы модуля были произведены следующие разновидности тестирования:

1. тестирование на прохождение аутентификации с корректными парами логин-пароль;

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

3. тестирование на определение вредоносных запросов;

4. тестирование на корректность выполнения разрешенных запросов.

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

С помощью СУБД PgAdmin было создано 15 пользователей, каждому из которых назначен свой пароль. Далее указаны логины и пароли этих пользователей в формате логин;пароль:

шег_01 ;у190уЬ9М27К1К1И;

шег_02;7Ъуа1рШг2ЬЬРти;

шег_03;3КоШг67отМ108;

user_04;sH29HOiVx6YdpbM;

user_05;S7Wkc59BZqamEuU;

user_06;0G4O9YbisCKuAIp;

user_07;8EtF1nv3JxIJZ1B;

user_08;wmx9jQrpGkwCVIE;

user_09;ZoFvtEZQO9dEq3o;

user_10;oKRxwyEyRAWEORU;

user_11;CScJtSzsndeNebZ;

user_12;OTG18b3u14bnXHi;

user_13;Hag3L8fsOCsmhVk;

user_14;ZBiiGsQ1EutIKBA;

user_15 ;izVkFxQHBYVSD7T;

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

Далее было проведено тестирование программного модуля на отказ прохождения аутентификации с некорректными парами логин-пароль. На данном этапе тестирования необходимо проверить следующие варианты аутентификации [3]:

1. Аутентификация с несуществующими логином и паролем. Была произведена попытка аутентификации с несуществующим логином user_16 и паролем gpP1g79W5OQepVq6. В результате модуль выдал сообщение об ошибке: «Соединение не установлено. Проверьте правильность введенных данных» при неверном вводе аутентификацион-ных данных».

2. Аутентификация с существующим логином и несоответствующим ему паролем. Была произведена попытка аутентификации с логином user_10 и паролем mvYe11Dws6Br1cEn. В результате модуль также выдал сообщение об ошибке: «Соединение не установлено. Проверьте правильность введенных данных» при неверном вводе аутентификационных данных».

3. Аутентификация с существующим логином и пустым полем для пароля. Была произведена попытка аутентификации с логином user_08 и пустым полем для ввода пароля. В результате модуль выдал сообщение об ошибке: «Введите пароль».

4. Аутентификация с несуществующим логином и пустым полем для пароля. Была произведена попытка аутентификации с логином user_16 и пустым полем для ввода пароля. В результате модуль выдал сообщение об ошибке: «Введите пароль».

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

ленные на внесение изменений в БД либо создание ее копии.

Список таких команд:

□ ALTER;

□ BACKUP;

□ CREATE;

□ DELETE;

□ DROP;

□ INSERT;

□ UPDATE.

Были протестированы запросы со всеми вышеперечисленными командами. Модуль при этом каждый раз отображал ошибку «Введен некорректный запрос» и не позволял выполнить такой запрос.

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

1) SELECT "road-l-osm".id, "road-l-osm".name, "road-l-osm".geom, "road-l-osm".type, "road-l-osm".typerus FROM

public.settlements,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

public."road-l-osm"

WHERE

"road-l-osm".id_0 = 10;

В результате выполнения этого запроса посредством веб-модуля, получен файл, содержащий 365 строк, и имеющий имя: 9ac93d04bbc565b 0f62e3eed5d1e8d2519681b0cbaa360e470612e296e05 ffbd.geo.

Далее было произведено выполнение этого запроса посредством СУБД PgAdmin. В результате получен ответ из 365 строк. Этот ответ был скопирован в файл test.txt. Было произведено его сравнение с файлом, полученным с помощью модуля. Сравнение было произведено программой WinMerge. Сравнение показало полную идентичность файлов, что говорит о корректной обработке запроса модулем.

2) SELECT settlements.id_0, settlements.name, settlements.type FROM

public.settlements WHERE

settlements.id_0 < 10;

В результате выполнения этого запроса посредством веб-модуля, получен файл, содержащий 9 строк, и имеющий имя: c2143b1956e26a ea98756a78f8961336be50d041a40d6fa72274417ee43 7582a.geo.

Далее было произведено выполнение этого запроса посредством СУБД PgAdmin. В результате получен ответ из 9 строк. Этот ответ был скопирован в файл test.txt. Было произведено его сравнение с файлом, полученным с помощью модуля.

Сравнение было произведено программой WinMerge. Сравнение показало полную идентичность файлов, что говорит о корректной обработке запроса модулем.

3) SELECT settlements.id_0, settlements.name, settlements.type FROM

public.settlements WHERE

settlements.type = 'city';

В результате выполнения этого запроса посредством веб-модуля, получен пустой файл, имеющий имя: ce2872f62869ddc0f35c3a1cd1bc29ca6c635273 404a058dde3cd72f02bf4cc6.geo.

Далее было произведено выполнение этого запроса посредством СУБД PgAdmin. В результате также получен пустой ответ [4]. Таким образом, запрос № 3 также был корректно обработан программным модулем.

4) SELECT settlements.id_0, settlements.name, settlements.type FROM

public.settlements WHERE

settlements.type = 'пгт';

В результате выполнения этого запроса посредством веб-модуля, получен файл, содержащий 17 строк, и имеющий имя: 5b5670078c70030d6767794ee5 cee1f6cf4648a6989a87bac1c215d2de120511.geo.

Далее было произведено выполнение этого запроса посредством СУБД PgAdmin. В результате получен ответ из 17 строк. Этот ответ был скопирован в файл test.txt. Было произведено его сравнение с файлом, полученным с помощью модуля. Сравнение было произведено программой WinMerge. Сравнение показало полную идентичность файлов, что говорит о корректной обработке запроса модулем.

Литература

1. Бабенко Л.К., Басан А.С., Журкин И.Г., Макаревич О.Б. Защита данных геоинформационных систем: учеб. Пособие для студентов вузов / Под ред. И.Г. Журкина. - М.: Гелиос АРВ, 2010. - 336 c.

2. Параллельное управление защищенными картографическими базами данных в среде PostgreSQL / Гиба-дуллин Р.Ф., Новиков А.А., Курочкин Г.В., Рахматул-лин Ф.Р., Рябов А. И., Гарипов Р.М., Диаров М.М. // Геодезия, картография и маркшейдерия: Всероссийская научная Интернет-конференция с международным участием : материалы конф. - Казань: ИП Синяев Д. Н., 2014. C. 7-10.

3. Вершинин И.С. Стойкость ассоциативной защиты к атаке со знанием открытого текста // Вестник Казан. технол. ун-та. - 2014. - № 11 - С. 218-220.

4. Вершинин И.С., Гибадуллин Р.Ф., Пыстогов С.В., Перухин М.Ю. Импорт/экспорт ассоциативно защищенных картографических данных с их обработкой в системе Security Map Cluster // Вестник технол. ун-та. - 2015. - № 10 - С. 174-180.

© Р. Ф. Гибадуллин - к.т.н.; доцент кафедры компьютерных систем КНИТУ им. А.Н. Туполева -КАИ, landwatersun@mail.ru; А. А. Новиков - аспирант; ассистент той же кафедры, novikov.cs@kstu-kai.ru; И. Н. Смирнов- магистрант; ассистент той же кафедры, 1fraer1@mail.ru; М. Ю. Перухин - к.т.н.; доцент кафедры автоматизированных систем сбора и обработки информации КНИТУ, perukhin@inbox.ru.

© R. Gibadullin - PhD associate professor of computer system department of KNRTU named after A.N.Tupolev -KAI, landwatersun@mail.ru; A. Novikov - postgraduate; assistant of the same Department, novikov.cs@kstu-kai.ru; I. Smirnov - master student; assistant of the same Department, 1fraer1@mail.ru; М. Peruhin - PhDassociate professor of automated systems for the collection and processing of information department of KNRTU, perukhin@inbox.ru.

i Надоели баннеры? Вы всегда можете отключить рекламу.