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

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ

УДК 004.56:004.65

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

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

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

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

Keywords: map database, encryption, data compression.

This paper describes map database protection mechanism. A new software module makes parallel encryption of map data and also compresses it. Few testes were run at different computing platforms.

Введение

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

Было проведено исследование возможностей работы ГИС QGIS с СУБД PostgreSQL, а также разработка программного модуля обеспечивающего параллельное шифрование/дешифрование картографических данных с возможностью их сжатия с последующим анализом работы модуля на экспериментальной БД для получения экспериментальных оценок быстро -действия шифрования/дешифрования.

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

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

Тестовая база данных

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

Существует два типа пространственных данных geometry и geography. Тип данных geometry поддерживает планарные или эвклидовы данные (система координат для плоской Земли). Geometry соответствует спецификации «Simple Features for SQL» консорциума OGC версии 1.1.0 и стандарту SQL MM (стандарт ISO). Тип данных geography, используется для хранения эллиптических данных, таких как координаты GPS широты и долготы.

В данной работе был использован тип geometry.

Для работы была выбрана тестовая база данных, представленная картой Российской Федерации [1].

Данные в открытом наборе геоданных представлены послойно, в векторном формате. Данные находятся в географической системе координат WGS84, проекция отсутствует. Названия файлов данных и слоёв в проектах англоязычные: Автодороги - highway-line ,Административные границы -boundary-polygon и т.д. Кодировка атрибутивных данных Win1251. Для других форматов - UTF-8.

База данных состоит из 14 слоев (таблиц):

1. Административные границы

2. Автодороги

3. Границы экорегионов

4. Гидросеть полигональная

5. Гидросеть линейная

6. Охраняемые природные территории

7. Точечки интереса (рестораны автозаправки и т.п.) (poi-point) Тип слоя - точечный.

8. Железные дороги (railway-line) Тип слоя: векторный, линейный.

9. Населенные пункты - точечные

10. Населенные пункты - полигональные

11. Растительность

12. Здания - точечные

13. Здания - полигональные

14. Землепользование

Смысл функциональности пространственных

баз данных заключается в выполнении запросов к базе данных, для которых иначе потребовалась бы настольная ГИС.

Пространственный запрос - это структурированный запрос к пространственным данным, критериями которого являются условия, связанные с координатами векторной геометрии. К примеру,

запрос запрашивающий наличие точек пересечения каких либо линейных объектов.

С пространственными данными может быть связана также любая неграфическая информация, дополнительно характеризующая тот или иной объект в системе. Более того, любой объект информационной модели в ГИС может быть представлен совокупностью пространственных объектов и наборов, связанных с ними семантических атрибутов, описывающих этот объект точно так же, как если бы он был представлен в любой неграфической системе. Допустим, если ГИС использует для хранения своих данных СУБД, то семантическая часть описания объектов - это записи в таблицах реляционной базы данных. Довольно часто структурированные запросы к данным под управлением ГИС представляют собой симбиоз традиционных SQL запросов к базе данных и параметров пространственных запросов. Отчасти SQL основан на формальном языке запросов, реляционной алгебре, его отличают простота использования, интуитивность и универсальный характер. Системы управления пространственными базами данных представляют собой частный случай расширяемых СУБД и работают как с пространственными, так и с непространственными данными, поэтому вполне естественно попытаться найти расширение SQL, позволяющее обращаться к пространственным данным.

Вообще говоря, запросы можно разделить на две категории: те, что требуют однопроходного просмотра (single-scan queries), и те, что требуют многопроходного просмотра (multiscan queries). При обработке запроса первой категории обращение к запрашиваемой записи (кортежу) таблицы (отношения) должно производиться не более одного раза. Следовательно, при реализации наихудшего с точки зрения времени сценария каждая запись будет извлекаться из таблицы и подвергаться проверке на предмет соответствия критерию поиска.

Примером запроса, требующего многопроходного просмотра, является запрос соединения (join query). Чтобы выдать ответ на запрос соединения, СУБД должна произвести выборку и комбинирование двух таблиц базы данных. Если в запросе необходимо обработать более двух таблиц, они могут обрабатываться попарно. Две таблицы «соединяются» по общему атрибуту. Поскольку записи в одной таблице могут быть связаны более чем с одной записью в другой таблице, есть вероятность того, что для завершения соединения одного обращения к записи будет недостаточно. В контексте пространственных БД, когда атрибуты соединения являются пространственными по своей природе, такой запрос носит название запроса пространственного соединения (spatial-join query).

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

тем управления базами данных, именуемой объектно-реляционная СУБД.

Выбор алгоритма шифрования

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

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

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

При выборе алгоритма шифрования были рассмотрены следующие алгоритмы: DES, ГОСТ, AES.

Алгоритм DES на сегодняшний день считается устаревшим и не удовлетворяет текущим требованиям криптостойкости, а поддержка алгоритма шифрования ГОСТ в СУБД PostgreSQL отсутствует. Поэтому были рассмотрены три варианта -aes128, aes192 и aes256. Для оценки быстродействия работы с данными алгоритмами проведены экспериментальные замеры времени шифрования 100 000 ячеек поля geom из таблицы highway-line тестовой БД (рис. 1).

Рис. 1

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

Параллельный модуль шифрования/ дешифрования [3]

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

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

В качестве алгоритма сжатия был выбран алгоритм zlib - zip с метаданными и блоками CRC, со степенью сжатия 6, поскольку дальнейшее увеличение степени сжатия отрицательно сказывается на быстродействии программы.

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

Для проверки быстродействия параллельного шифрования/дешифрования данных программа была запущена на узле вычислительного кластера (Рис. 2). В качестве тестовых данных были выбраны первые 2000000 ячеек поля geom таблицы highway-line [4]. Эмпирическим путем был подобран объем пакета задания в 10000 ячеек.

Рис. 2

На рисунке 2 представлены временные результаты выполнения шифрования/дешифрования при следующих параметрах:

1. 12 потоков пакетами по 10 000 ячеек;

2. 8 потоков пакетами по 10 000 ячеек;

3. 4 потока пакетами по 10 000 ячеек;

4. 2 потока пакетами по 10 000 ячеек;

5. 1 поток без пакетной обработки.

Использование параллельных технологий дало

прирост в быстродействии до 5 раз в случае работы на 12 ядрах против работы на одном ядре. Однако в процессе работы загрузка ядер ЦП узла кластера в среднем составляла 60% в случае обработки в 12 потоков. Данный факт дал основание для гипотезы - причиной меньшего прироста быстродействия может стать недостаточная скорость дисковой подсистемы узла кластера, а точнее большое время доступа к требуемым

секторам диска. Данную проблему могла бы решить установка накопителей с меньшим временем доступа, например, твердотельных (Solid-State Drive) накопителей.

Для проверки данной гипотезы было принято решение запустить программу с аналогичными тестовыми данными на домашнем ПК в двух конфигурациях (Рис. 3):

- В конфигурации с твердотельным накопителем Plextor M6S;

- В конфигурации с традиционным дисковым накопителем Seagate - ST1000DM003.

Рис. 3

На рисунке 3 представлены временные результаты выполнения шифрования/дешифрования при следующих параметрах:

1. 4 потока пакетами по 10 000 ячеек;

2. 2 потока пакетами по 10 000 ячеек;

3. 1 поток без пакетной обработки.

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

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

Рис. 4

На рисунке 4 представлены временные результаты выполнения шифрования/дешифрования при следующих параметрах:

1. 4 потока пакетами по 10 000 ячеек;

2. 2 потока пакетами по 10 000 ячеек;

3. 1 поток без пакетной обработки.

Заключение

Полученные экспериментальные данные позволяют утверждать, что на текущем этапе развития процессорных мощностей так называемым «Бутылочным горлышком» при параллельной обработке большого количества данных с большой вероятностью будет дисковая подсистема ЭВМ. Однако данную проблему позволяет решить использование высокоскоростных 88Б-накопителей либо использование оперативной памяти сервера в качестве дискового накопителя (технология гаш^к).

Литература

1. Параллельные модули импорта и экспорта защищенной картографической базы данных / Гибадуллин Р.Ф., Гари-пов Р.М., Диаров М.М. // Поиск эффективных решений в

процессе создания и реализации научных разработок в российской авиационной и ракетно-космической промышленности: Международная научно-практическая конференция, 5 - 8 августа 2014 г.: сборник докладов. Том II. - Казань: Изд-во Казан. гос. техн. ун-та, 2014. С. 418-421.

2. Параллельный модуль исполнения пространственных запросов к защищенной картографической базе данных / Гибадуллин Р.Ф., Новиков А.А. // Поиск эффективных решений в процессе создания и реализации научных разработок в российской авиационной и ракетно-космической промышленности: Международная научно-практическая конференция, 5 - 8 августа 2014 г.: сборник докладов. Том II. - Казань: Изд-во Казан. гос. техн. ун-та, 2014. С. 421-424.

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

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

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

© R. Gibadullin - PhD associate professor of computer system department of Kazan National Research Technical University named after A.N.Tupolev - KAI (KNRTU-KAI), landwatersun@mail.ru; А. Novikov - postgraduate; assistant of computer system department KNRTU-KAI, novikov.cs@kstu-kai.ru; N. Hevronin - master student; assistant of computer system department KNRTU-KAI, kukemas@mail.ru; М. Peruhin - PhD associate professor of automated systems for the collection and processing of information department of KNRTU, perukhin@inbox.ru.