Предлагается способ разграничения доступа пользователей к хранилищу данных типа «ключ - значение», когда право на доступ вычисляется в зависимости от параметров запроса (тип операции, идентификатор данных, пароль). Данный способ апробирован при разработке NoSQL СУБД с сервером управления доступом и удалённым хранилищем данных.
Attribute based access control for key-value stores.pdf В современных СУБД нередко отсутствует реализация так называемого мелко гранулированного управления доступом к данным (fine-grained access control), когда требуется ограничить доступ пользователей к отдельным строкам таблицы (как в случае реляционной БД) или к отдельной паре «ключ - значение» (как в случае NoSQL-хра-нилища данных). В данной работе для этих целей предлагается использовать подход, который можно отнести к атрибутной модели управления доступом [1], когда субъект имеет право доступа к сущности, если истинен предикат, вычисленный от атрибутов субъекта и/или сущности. При этом рассмотрена ситуация, когда имеется возможность пользователям самим настраивать политику безопасности СУБД, определяя правила задания разграничительной политики доступа к ресурсам БД. Далее будем иметь дело с хранилищем данных типа «ключ - значение» (key - value), т.е. когда база данных представляет собой набор записей, идентифицируемых по ключу. Формально ключ будем рассматривать как слово в заданном алфавите. В простейшем случае каждый ключ ставится в соответствие значению в виде произвольных данных, в усложнённом варианте значение связано с определённым типом данных (целые, строки, списки, множества). Хранилище пар «ключ - значение» отличается упрощённой моделью запросов, используется малый набор операций: установка (set), получение (get), удаление (delete) значений по ключу. Предлагается задавать политику безопасности хранилища данных с помощью функции управления доступом C : K х O х P ^ {Allow, Deny, Pass}, где K - множество префиксов ключей; O = {set, get, delete, access} -множество операций, P - множество парольных слов. Значение функции C, равное Allow, изначально определяется не менее чем для одной тройки (k, access,p) Е K х O х P, и тот, кто знает пару (k,p), может условно считаться администратором хранилища данных. Кроме запросов к хранилищу на обработку данных по ключу (set, get, delete), возможны также запросы на изменение политики безопасности (access), т.е. на задание (изменение) значений функции C. Пусть запрос к хранилищу данных имеет следующие параметры: key (идентификатор данных), value (значение данных), op (операция), pas (пароль). С точки зрения управления доступом запрос обрабатывается, следуя двум правилам. Правило 1. Инициатору запроса разрешено произвести операцию op s O, если существует префикс pk слова key, такой, что C(pk,op,pas) = AZZow, и при этом выполняется условие: если функция C определена для некоторого префикса prefix слова pk, то C(prefix, op, pas) = Pass. Правило 2. Инициатору запроса запрещено произвести операцию op s O, если существует префикс pk слова k, такой, что C(pk,op,pas) = Deny, и при этом выполняется условие: если функция C определена для некоторого префикса prefix слова pk, то C(prefix, op, pas) = Pass. Считается, что префикс слова может совпадать с самим словом. Если условия правила 1 или правила 2 не выполняются, например, из-за того, что функция управления доступом не определена на параметрах запроса, то запрос не выполняется. В таблице приведён простой пример задания функции управления доступом с использованием псевдокода. Для запросов с паролем «p1» разрешается выполнять любые операции над данными с ключами, которые начинаются с «a». Для запросов с ключом «ab» разрешается чтение данных всем, а запись только тем, кто знает пароль «p2». Префиксы ключей Псевдокод вычисления значения функции управления доступом a IF password = p1 return ALLOW; ELSE return PASS; ab IF operation = get return ALLOW; IF operation = set IF password = p2 return ALLOW; ELSE return DENY;
Овсянников Станислав Владимирович | Национальный исследовательский Томский государственный университет | аспирант кафедры защиты информации и криптографии | naphaso@gmail.com |
Тренькаев Вадим Николаевич | Национальный исследовательский Томский государственный университет | кандидат технических наук, доцент, доцент кафедры защиты информации и криптографии | tvnik@sibmail.com |