§ обладает возможностями формирования запросов к обязательным и необязательным графовым шаблонам вместе с их конъюнкциями и дизъюнкциями.
§ поддерживает тестирование расширенного значения и ограничение запросов с помощью исходного 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 = {просмотр, изменение, удаление, добавление};