Многомерная модель разграничения доступа к объектам в системе контроля версий

МЕТОДЫ И СИСТЕМЫ ЗАЩИТЫ ИНФОРМАЦИИ

УДК 004.056.52

МНОГОМЕРНАЯ МОДЕЛЬ РАЗГРАНИЧЕНИЯ ДОСТУПА К ОБЪЕКТАМ

В СИСТЕМЕ КОНТРОЛЯ ВЕРСИЙ А.И. Спивак, А.В. Разумовский, И.А. Зикратов

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

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

Введение

Разработка и эксплуатация сложных IT-систем предполагает участие в этих процессах коллектива разработчиков и пользователей. В частности, при разработке программного обеспечения 3Б-анимации объектами являются исходные тексты программ, отдельные графические сцены и т.д. Для координации усилий по разработке одних и тех же объектов со стороны множества разработчиков применяются системы контроля версий. Известно, что разграничение доступа в таких системах, как Subversion [1], CVS [2] обеспечивается на уровне объекта доступа и подразумевает все возможные его версии, которые были получены при совместной работе разработчиков. Однако реализовать разграничение доступа субъектов на уровне версии не представляется возможным, так как такой функционал не реализован в существующих системах контроля версий. В этом случае особую актуальность приобретает задача обеспечения совместной работы различных субъектов над одними и теми же объектами, что подразумевает независимое появление различных версий исходного объекта. Для решения этой задачи авторами взята за основу известная из теории информационной безопасности модель дискреционного разграничения доступа Харрисона-Руззо-Ульмана (HRU) [3, 4]. Доработка этой модели путем введения в ее состав совокупности матриц доступа, описывающих разграничение субъектов к версиям объектов, позволила реализовать механизм контроля версий при производстве мультимедийного контента в системе 3Б-анимации.

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

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

- блокировки мешают продуктивной работе, поскольку вынуждают ожидать освобождения блокированных файлов;

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

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

Основным отличием предлагаемой модели разграничения доступа является представление версий объектов не в виде древовидной структуры, количество узлов и ветвей в которой является случайными и трудно прогнозируемыми величинами, а виде совокупности матриц доступа. Согласно модели HRU, матрица доступа описывает права доступа именованных субъектов к именованным объектам, которые записаны на пересечении соответствующих строк и столбцов.

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

8

права к этой версии объектов со стороны субъектов. В случае отсутствия версий для какого-либо объекта ячейки, соответствующие его версиям, будут пустыми.

В соответствии с формальным описанием модели ИЯи обозначим: О - множество объектов; -множество субъектов; Я - множество прав доступа субъектов к объектам; V - множество версий объектов О. Для описания отношений между субъектами в модели принимается следующее отношение принадлежности множества субъектов к множеству объектов: 5 е= О.

Пространство состояний такой системы представляется в виде SxOxЯxV.

Матрица прав доступа М, где столбцами являются объекты, а строками - субъекты, содержит права доступа субъектов к объектам. При создании новой версии объекта (V) создается новая матрица ^[я, о], где содержатся права доступа субъектов к новой версии объекта. Для упрощения получения информации о последнем изменении объекта применяется сквозная нумерация версий объектов, при этом не имеет значения, какой именно субъект создал новую версию объекта. Суть модели поясняется рисунком.

M [s, о]

Рисунок. Совокупность матриц доступа субъектов к версиям объектов

На рисунке изображена трехмерная матрица прав доступа в системе контроля версий, в которой присутствуют различные права доступа к разным версиям. Отмеченные ячейки в матрице показывают наличие определенных прав субъекта к данному объекту для версии объекта W[s, о].

Формальное описание операций управления системой контроля версий

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

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

Q=(S, O, V, M, W),

где M[s, о] - ячейка, содержащая элементы из множества R, строки - субъекты, столбцы - объекты; Wv[s, о] - ячейка, содержащая элементы из множества R, строки - субъекты, столбцы - версии объектов.

Изменения в состояние системы могут быть внесены посредством команд a(x\, ..., xn), которые содержат условия выполнения команды и базовые операторы:

if V\n ^MXsi,Xoi] and ... and rm ^MxsmXon] ... and rXm ^Wvl[xsl, Xoi] and ... and rnm e Wvm[xsm, XoJ and.

then

C\

Cp

r\,..., rn e R - права доступа;

с\, ..., cp - набор операторов, в которых в качестве параметров принимаются x\, ..., xn. При выполнении команды a() система переходит из состояния Q в состояние Q'. Элементарные операторы модели Харрисона-Руззо-Ульмана с учетом расширения модели приобретают следующий вид:

1. Добавление права субъекту по отношению к объекту Enter r M[s,o].

Начальное состояние q=(S, O, V,M, W): seS, o^O, r eR, v^V.

Конечное состояние q=(S', O', V', M', W'): S'=S, O'=O, V'=V, W' [s, o] = W[s, o], M'[s, o]=M[s, o]u {r}, если (Xs, Xo)^(s, o)^ M' [Xs, X,]=M[XS, Xo].

2. Удаление права у субъекта по отношению к объекту Delete r M[s,o]. Начальное состояние q=(S, O, V, M, W): s^S, oEO, r£R, v£V

Конечное состояние q=(S', O', V', M', W) S'=S, O'=O, V'=V, W' [s, o] = W[s, o], M'[s, o]=M[s, o]\{r}, если (Xs, Xo)^(s, o)^ M' [xs, x,]=M[xs, Xo].

3. Создание субъекта Create s'. Начальное состояние q=(S, O, V, M, W): s'iS.

Конечное состояние q=(S', O', V', M', W'): S"=S'^{s'}, O'=Ou{s'}, ¥'=¥, для V(xs xo)eSxO ^ M'[xs,x0]=M[xs, Xo], W'[Xs, Xo] = W[Xs, Xo], M'[s', Xo]= 0 для VxoeO', M'[s', x] = 0 для VxseS', для Vve V, Vo^O' ^ Wv'[s', o]= 0.

4. Удаление субъекта Destroy s'. Начальное состояние q=(S,O,V,M,W): s'eS.

Конечное состояние q=(S',O',V',M',W'): S'=S\{s'}, O'=O\{s'}, для V(xs, xo)eS'xO' ^

M'[Xs, Xo]=M[Xs,Xo], W'[Xs, Xo] = W[Xs, Xo].

5. Создание объекта Create o'. Начальное состояние q=(S,O,V,M,W): o'iO.

Конечное состояние q=(S',O',V',M',W'): S'=S, O'=Ou{o'}, для V(xs, xo)^SxO ^ M' [xs, xo]=M[xs, xo], W' [xs, xo]=W[xs, xo], для Vxs^S' ^ M' [xs, o]=0, для Vv^V' и VxseS' ^ Wv' [хяо'] = 0.

6. Удаление объекта Destroy o'.

Начальное состояние q=(S,O,V,M,W): o'eO,o'iS.

Конечное состояние q=(S',O',V',M',W'): S'=S, O'=O\{o'}, для V(xs, xo)eS'xO' ^ M' [xs, xo]=M[xs, xo],

W'[Xs, Xo] = W[Xs, Xo].

Наличие в новой модели версий объектов приводит к следующим дополнительным операциям:

1. Добавление права субъекту по отношению к версии объекта Enter r W[s, о]. Начальное состояние q=(S, O, V,M, W): seS, o^O, reR, v^V.

Конечное состояние q=(S', O', V', M', W'): S'=S, O'=O, V'=V, Wv' [s, o] = Wv[s, o]u{r}, если

(Xs, Xo)^(s, o) ^ Wv' [Xs, Xo] = Wv [Xs, Xo], M [s, o] =M[s, o].

2. Удаление права у субъекта по отношению к версии объекта Delete r W[s, о]. Начальное состояние q=(S, O, V,M, W): seS, o^O, reR, v^V.

Конечное состояние q=(S', O', V',M', W'): S'=S, O'=O, V'=V, Wv' [s, o]= Wv [s, o]\{r}, если

(Xs, Xo)^(s, o) ^ Wv'[Xs, Xo] = Wv [Xs, Xo], M [s, o]=M[s, o].

3. Создание версии объекта Create v'. Начальное состояние q=(S, O, V, M, W): v'$V.

Конечное состояние q=(S', O', V', M', W'): S'=S, V'=Vu{v'}, для V (xs, xo)eSxO ^ M' [s, o]=M[s, o], Wv' [Xs, Xo]= 0.

4. Удаление версии объекта Delete v'. Начальное состояние q=(S, O, V, M, W): v'e V.

Конечное состояние q=(S', O', V',M\ W'): S'=S, O'=O, V'=V\{v'} для V(xs, xo)eS'xO' ^ M [s, 0]=M[s, 0], Wv' [Xs, Xo]=Wv[Xs, Xo].

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

Реализация модели разграничения доступа

Описанная в работе дискреционная модель разграничения доступа реализована в программном модуле системы хранения и контроля версий (СКВ) больших бинарных файлов инновационной системы 3Б-анимации. Модуль включает в себя несколько обособленных программных блоков.

Функционал модели реализуется компонентом контроля доступа. В его составе выделяются блок управления субъектами и объектами, блок управления правами доступа, блок проверки прав доступа.

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

Блок управления правами доступа ответственен за редактирование прав доступа между субъектами и объектами, в данном случае происходит внесение в ячейки матриц M[s,o] и Wv[s,o] прав r.

Задачи по предоставлению прав субъектов к объектам решаются блоком проверки прав доступа. Благодаря реализованной модели, у пользователей появилась возможность более гибко настраивать права на версии объектов (файлов). Это, в частности, позволяет делать «срез» по правам объектов на определенный момент времени и тем самым избежать использования устаревших версий объектов, что очень важно при работе над сложной сценой в большом фильме с участием множества разработчиков.

Архитектура СКВ имеет распределенный характер. В СКВ выделены три компонента: ядро СКВ, агенты СКВ и клиент СКВ. Благодаря тому, что данные (файлы) передаются только между агентом и клиентом, такая архитектура позволяет снизить нагрузку на ядро СКВ.

Интерфейсы компонентов для общения между собой и программными модулями, использующими СКВ для получения файлов и их версий, унифицированы и представляют собой REST-интерфейс [5].

Все компоненты реализованы на языке Java. Это позволяет развернуть компоненты на базе любой операционной системы, имеющей JVM.

Разработка модели выполнена в рамках ФЦП ГК № 07.524.11.4009 «Разработка инновационной системы 3Б-анимации».

Заключение

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

Литература

1. Система управления версиями Subversion [Электронный ресурс]. - Режим доступа: http://subversion.apache.org/, свободный. Яз. англ. (дата обращения 01.03.2012).

2. Система управления версиями CVS [Электронный ресурс]. - Режим доступа: http://cvs.nongnu.org/, свободный. Яз. англ. (дата обращения 01.03.2012).

3. Девянин П.Н. Теоретические основы компьютерной безопасности. - М.: Радио и связь, 2001. - 192 с.

4. Малюк А. А. Информационная безопасность: концептуальные и методологические основы защиты информации. - М.: Горячая линия - Телеком, 2004. - 280 с.

5. Roy Thomas Fielding. Architectural Styles and the Design of Network-based Software Architectures [Электронный ресурс]. - Режим доступа: http://www.ics.uci.edu/Efielding/pubs/dissertation/top.htm, свободный. Яз. англ. (дата обращения 01.03.2012).

Спивак Антон Игоревич

Разумовский Андрей Владимирович

Зикратов Игорь Алексеевич

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кандидат технических наук, доцент, anton.spivak@gmail.com

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, кандидат технических наук, ассистент, xrew@yandex.ru

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, доктор технических наук, доцент, зав. кафедрой, zikratov@cit.ifmo.ru