Курсовая работа: Семантические базы данных

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

§ обладает возможностями формирования запросов к обязательным и необязательным графовым шаблонам вместе с их конъюнкциями и дизъюнкциями.

§ поддерживает тестирование расширенного значения и ограничение запросов с помощью исходного RDF-графа [45];

§ результаты запросов SPARQL могут быть представлены в виде результирующих наборов или RDF-графов.

Большая часть запросов SPARQL включает набор шаблонов триплетов, который называется основным графовым шаблоном. Шаблоны триплетов подобны RDF-триплетам, за исключением того, что каждый субъект, предикат и объект может быть переменной. Основной графовый шаблон соответствует подграфу RDF-данных, следовательно, RDF-термины данного подграфа могут быть заменены на переменные, а результатом также является RDF-граф. запрос программирование безопасность

1.1 Обеспечение безопасности семантических баз данных

Проблемы обеспечения безопасности

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

В настоящее время был разработан набор моделей, методов и алгоритмов обеспечения безопасности операционных систем [72 - 77] и реляционных баз данных [78 - 81], но они не могут быть применены для семантических БД, так как в СБД имеются сильная иерархическая связанность между элементами и возможность получения новой информации пользователями на основе известных фактов путём использования логических правил [3].

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

§ контроль доступа пользователей к отдельным элементам онтологий;

§ контроль доступа пользователей к триплетам и их компонентам (субъекту, предикату, объекту);

§ контроль доступа пользователей к RDF-графам в СБД.

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

Кроме этого, как уже было отмечено, в семантических БД на основе известных данных с помощью логических правил можно получать результаты логических выводов [82]. С использованием этого пользователи U могут получить информацию, к которой они не имеют права доступа. Вследствие этого, актуальной является задача контроля результатов логических выводов в семантических БД. В настоящее время существует метод контроля логических выводов в семантических БД путём контроля доступа пользователей к логическим правилам [90]. Данный метод не гарантирует, что пользователи будут получать результаты логических выводов в соответствии с их правами доступа.

Таким образом, можно выделить следующие две основные группы задач, которые необходимо решить для обеспечения безопасности семантических БД:

§ Контроль доступа пользователей к отдельным элементам СБД.

§ Контроль результатов логических выводов в СБД.

Средства контроля доступа

В настоящее время уже известны следующие методы, модели и системы контроля доступа пользователей к СБД:

§ Подсистема безопасности в хранилище BigData [83], созданная на основе модели контроля доступа пользователей к именованным RDF-графам.

§ Модель AC4RDF[84], разработанная на основе методов контроля доступа пользователей на уровне триплетов RDF-хранилища.

§ Подсистема безопасности AllegroGraph [91], разработанная на основе фильтров безопасности.

§ Система RAP (Policy-Based Access Control for an RDF Store) [88], созданная на основе политики контроля доступа к RDF-хранилищу.

§ Методы контроля доступа пользователей к онтологии [85 - 89].

§ Контроль логических правил [90].

Модель безопасности RDF-хранилища на уровне RDF-графов

В данной модели контроль доступа пользователей к данным RDF-хранилища выполняется следующим образом:

1. Все триплеты собираются в наборы триплетов, которые называются именованными графами.

2. Каждому именованному графу задаются уровень безопасности.

3. Каждому пользователю задаются роль и права доступа.

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

Данная модель обладает высокой эффективностью в случае, когда в каждом именованном графе сгруппирована большая группа триплетов. Однако если в именованном графе имеются только одно или два утверждения, то используется модель "statement level provenance" [92], которая позволяет определить происхождение каждого триплета с помощью SPARQL-запросов, таким образом можно реализовать политику безопасности для триплетов.

Данная модель использована для обеспечения безопасности данных в RDF-хранилище BigData.

Модель AC4RDF

Модель Access Control for RDF stores (AC4RDF) реализует контроль доступа пользователей на уровне триплетов RDF-хранилища. Данная модель используется для обеспечения безопасности RDF-хранилища Sesame. Это выполняется путём проверки прав пользователей, в результате которой определяется, кто имеет права доступа к RDF-триплету, хранящемуся в RDF-хранилище.

В данной модели, права доступа описываются владельцем RDF-данных с помощью редактора PolicyEditor [93], который позволяет задать доступ пользователей к каждому RDF-утверждению или к графу RDF-данных, которые хранятся в RDF-хранилище.

Общая архитектура системы AC4RDF показана на рисунке 1.9.

При отправке пользователями U запроса q к RDF-хранилищу модуль Access Control находит информацию об учётной записи пользователей и использует модуль "политик Protune" [92] для выбора политики, применяющейся для данного запроса пользователей. Модуль Rei перезаписывает запрос в соответствии с определённой политикой. Переписанный запрос отправляется в RDF-хранилище и пользователи U могут получить ответы на данный запрос.

Рисунок 1.9. Общая архитектура системы AC4RDF

Подсистема безопасности AllegroGraph 4.11

В семантической БД AllegroGraph 4.11 для контроля доступа пользователей к RDF-хранилищам применяется подсистема безопасности, построенная на основе фильтра безопасности (filter secrutiry) [91], который создаётся администратором хранилища.

Администратор имеет все права для управления данными и создания прав доступа для регистрированных пользователей. Пользователю задаётся роль, значение которой выбирается из множества {Superuser, Start sessions, Evaluate arbitrary code, Control replication} и права - из множества {чтение, запись, модификация или удаление}.

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

Пример политики безопасности: пользователи U имеют права на просмотр всех триплетов, в которых содержится предикат rec:Sarary.

Система RAP

В процессе работы с триплетами в RDF-хранилище пользователь U может удалить или добавить основные триплеты, которые являются элементами онтологий или общей схемы, следовательно, структура схемы (онтологии) данных нарушена. Для решения данной проблемы была разработана система контроля доступа пользователей к RDF-хранилищу, основанная на политиках, определяющих права доступа пользователей [88].

Все действия пользователей над хранилищем проходят через модуль политики системы RAP, чтобы определить действие "разрешено" или "запрещено". В системе RAP все триплеты метаданных и политики доступа к ним хранятся в самом RDF-хранилище (рисунок 1.11).

Система RAP построена на основе фреймворка Jena, в которой поддерживает средство анализа и выполнения простого логического вывода на RDF, RDFS и OWL. Политики системы RAP задаются как правила, которые используются в её онтологии для работы со средствами логического вывода RETE [94]. Общая архитектура данной системы показана на рисунке 1.12. Система RAP поддерживает выполнение пользователями различных операций, таких, как добавления, удаление и модификация RDF-триплетов в соответствии с их правами доступа и с корректностью схемы данных в RDF-хранилище.

Рисунок 1.11. Данные в RDF-хранилище

Рисунок 1.12. Архитектура системы RAP

Методы контроля доступа к онтологиям

Проблема обеспечения безопасности онтологии рассматривалась многими авторами. Qin L. и Atluri V. [85] предложили схему политики безопасности для управления доступом к понятиям онтологий и их экземплярам. Понятиям онтологии создаются уровни безопасности, а пользователям - уровни доступа.

Управление доступом пользователей к онтологиям выполнено путём сравнения уровней безопасности понятий с уровнями доступа пользователей. Если уровень доступа пользователей обльше уровней безопасности понятий, то пользователи имеют доступ к понятиям онтологии, следовательно, они могут иметь доступ ко всем экземплярам данных понятий.

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

Yialelis N., Lupu E. и Sloman M. [85] создали систему контроля доступа пользователей к отдельным элементам онтологии, построенную на основе подхода CLP (constraint logic programming - логическое программирование в ограничениях). В данной системе создана модель, в которой содержатся схемы онтологий и семантических данных. Данные в этой модели представляются в виде RDF-дерева, на основе которого выполняются все операции, позволяющие контролировать доступ пользователей к элементам онтологии.

Кроме вышеперечисленных методов и систем контроля доступа пользователей к онтологии и RDF-хранилищам также существуют и другие методы, описанные в [88, 89].

Контроль логических правил

В настоящее время также предложены и разные методы контроля доступа к логическим правилам [90]. В основном все они основаны на использования уровней доступа для логических правил. В общем виде они могут быть описаны следующим образом: Пусть DBS = {O, М, R}, где O - онтологии; М - семантические метаданные; R = {r1, ..., rn} - множество логических правил. Тогда используется следующая политика безопасности семантических БД, включающих логические правила:

1. Определяется множество уровней безопасности SL = {sl1, ..., slk}.

2. Каждому пользователю U задаётся уровень доступа slU ? SL для выполнения логических правил.

3. Каждому логическому правилу ri ? R задаётся уровень доступа slri ? SL.

4. Если slU ? slri, то пользователь U может выполнять логическое правила ri; иначе он это правило использовать не может.

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

1.2 Средства обеспечения безопасности

Для каждого пользователя U семантической БД в системе поддержки безопасности создаётся учётная запись, содержащая сведения, которые пользователь U сообщает о себе системе обеспечения безопасности. Основными элементами учётной записи пользователя являются имя пользователя и пароль доступа. Значение пароля доступа хранится в зашифрованном или хэшированном виде [11] для обеспечения его безопасности.

Учётная запись может содержать также дополнительные данные, описывающие информацию о пользователях, такие, как имя, фамилия, отчество, пол, дата рождения, e-mail адрес, домашний адрес, рабочий адрес, номер домашнего теле- фона и т.п.

Учётная запись пользователей хранится в самой семантической БД.

Под политикой безопасности управления доступом (security policy ассеss control) понимается совокупность правил управления доступом пользователей к защищаемой информации (данным).

В настоящее время существует много политик безопасности. Наиболее известными являются дискреционная, мандатная и ролевая политики безопасности [9]. На основе данных политик создаётся система обеспечения безопасности работы с семантическими БД [5], в которой политика безопасности основывается на следующих правилах:

1. существует набор ролей Ur и прав доступа Up;

2. создаётся множество меток уровней безопасности MS;

3. всем данным в DBS задаются уровни безопасности slD;

4. каждому пользователю U задаётся уровень доступа slU;

5. владелец может указать уровень безопасности slD для своих данных.

6. пользователь имеет доступ к данным тогда, когда ему заданы права доступа к данным дискреционной политикой или slU ? slD.

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

Система поддержки безопасности работы с семантическими БД

Зарегистрированные пользователи U, имеющие уровень доступа slU и права доступа Up, могут отправлять SPARQL-запросы q к семантической БД для просмотра, получения, добавления или изменения их данных D и для выполнения логических правил r для получения результатов логических выводов rL.

Семантическая БД считается безопасной, если удовлетворяет следующим условиям [10]:

· пользователь U может иметь право доступа на просмотр данных D, если slU ? slD;

· пользователь U имеет права на изменение, удаление и добавление данных D, если slU ? slD и Up = {просмотр, изменение, удаление, добавление};