Научная статья на тему 'Объектно-ориентированный подход в построении политики безопасности. Системы с естественной иерархией'

Объектно-ориентированный подход в построении политики безопасности. Системы с естественной иерархией Текст научной статьи по специальности «Математика»

CC BY
73
14
Поделиться
Ключевые слова
ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД / ПОЛИТИКА БЕЗОПАСНОСТИ / СИСТЕМА ИЕРАРХИЕЙ / МОДИФИКАЦИЯ МОДЕЛИ / ДИСКРЕЦИОННЫЙ РАЗДЕЛ / ДОСТУПА HRU

Аннотация научной статьи по математике, автор научной работы — Усов С. В.

Проведена модификация модели дискреционного разделения доступа HRU для объектно-ориентированных компьютерных систем с учетом иерархии классов объектов.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Текст научной работы на тему «Объектно-ориентированный подход в построении политики безопасности. Системы с естественной иерархией»

УДК 65.012.810

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД В ПОСТРОЕНИИ ПОЛИТИКИ БЕЗОПАСНОСТИ. СИСТЕМЫ С ЕСТЕСТВЕННОЙ ИЕРАРХИЕЙ

С.В. Усов

Проведена модификация модели дискреционного разделения доступа II Г» 1, для объектно-ориентированных компьютерных систем с учетом иерархии классов объектов.

Введение

Традиционно рассматриваемая модель системы безопасности компьютерных систем строится на основе субъектно-объектного подхода. Однако в последнее время, в связи с распространением объектно-ориентированного подхода в построении программного обеспечения компьютерных систем, складывается двойственная ситуация, когда один и тот же набор данных в одном случае интерпретируется как объект (пассивный), в другом случае как субъект (активный). В связи с этим, для более адекватного описания компьютерных систем, необходимо применение объектно-ориентированного подхода и соответствующая модификация моделей политик безопасности. В частности, объектноориентированная модель компьютерной системы построена в работе [1], где даны и необходимые определения. В последующей работе [2] определены элементарные операторы в рамках модели безопасности Н1Ш [3] для объектноориентированных систем, а также установлена разрешимость проблемы безопасности системы для отдельных случаев, а именно для монооперационных НКи-систем и моноусловных монотонных ШШ-еиетем,

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

1. Классификация моделей безопасности объектноориентированных систем

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

Copyright (с

Омский государственный университет им. Ф.М. Достоевского. E-mail: raintower@mail. ru

отношения между уровнями доступа различных объектов различных классов. Однако наряду с HRU-подходом в сфере защиты информации распространен и иерархический подход [4], когда на множестве O объектов задан частичный порядок по уровню доступа.

Будем рассматривать компьютерную систему в виде множества объектов классов K, имеющих открытые поля f и скрытые поля р, а также методы обработки полей s. Пусть Ok С O - множество объектов класса k £ K, В случае, если требуется уточнить класс объекта, поле f объекта ok £ Ok будем обозначать ok.f, толе f класса k - k.f, Для скрытых полей и методов класса будем использовать аналогичные обозначения.

Все необходимые определения даны в работе [1], там же построена и модель системы безопасности для объектно-ориентированной компьютерной системы. Матрица доступа М в данном случае - скрытое (private) поле объекта. От объекта к объекту даже одного класса (типа) содержание этого поля может отличаться. Строки матрицы объекта о £ O соответствуют объектам компьютерной системы, столбцы - открытым (public) полям и методам объекта о, элементом матрицы является некоторое подмножество множества R видов доступа к полю, если столбец элемента соответствует public полю объекта и принимает значение 0 либо 1, если столбец элемента соответствует методу объекта, где «1» разрешает вызов метода, а «0» - запрещает.

Определение 1. HRU-модель системы безопасности называется иерархиче-

O

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

любой момент работы системы для любых двух объектов о, о' таких, что о' < о, для любого поля или метода x £ X, общего для объектов о и о', и для любого ПОЛЯ или метода y £ X объекта о'' верно еле дующее: о''.М [о, о''.х] С о''.М [о',о''.х] и о'.М[о'', о'.х] С о.М[о'', о.х]. Здесь и далее X - множество всевозможных полей и методов всех существующих в системе на данный момент времени объектов, ” < ” - отношение частичного порядка.

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

Однако в объектно-ориентированных системах классы (и, соответственно, объекты этих классов) уже связаны частичным отношением наследственности, поэтому в данном случае иерархия строится естественным образом.

Определение 2. HRU-модель объектно-ориентированной системы безопасности называется моделью с естественной иерархией, если в любой момент работы системы для любых двух объектов оК1 о^ ^^^сов k и k' таких, что k' является потомком k, для любого толя или метода х, общего для классов k и k', и для любого поля или метода y £ X объекта ок выполняются следующие соотношения: о^'.М^k,оу'.х] С о^'.М[о^,оу'.х] и оу.М[о^^.х] С ok.М[о*''^k.х]. Здесь X

на данный момент времени объектов.

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

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

Определение 4. HRU-модель объектно-ориентированной системы безопасности называется однородной, все ее классы однородны.

Определение 5. HRU-модель объектно-ориентированной системы безопасности с естественной иерархией называется ациклической, если граф иерархии ацикличен.

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

k

Также отметим, что в работе [2] были рассмотрены свободные неоднородные HRU-модели объектно-ориентированных систем,

2. Однородные объектно-ориентированные системы с естественной иерархией

Определим следующие элементарные операции для работы с матрицей доступов:

1, Create^, k) - создает объект о класса k £ K, при этом O := O U {о},

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2, Destray(о, k) - уничтожает объект о, при этом O := O \ {о}.

Первые две операции никак не отражаются на матрице доступов,

3, Enter(r, k, k'.f) - вносит право доступа r в ^.М[k, k'.f], при этом матрица доступа изменяется по правилу: ^.М[k, k'.f] := ^.М[k, k'.f ] U {r}. Данная элементарная операция может быть выполнена только при следующих условиях:

а) для любого потомка ki класс а k, r £ ^.М [ki, k'.f ];

б) для любого родителя k2 класс а k', обладающего п олем f, r £ ^.М [k, k2 .f ].

4, De/ete(r, k, k'.f) - удаляет право r доступа из ^.М[k, k'.f ], при этом матрица доступа изменяется по правилу: ^.М[k, k'.f ] := ^.М[k, k'.f] \ {r}. Данная элементарная операция может быть выполнена только при следующих условиях:

а) для любого родителя ki класс а k, обладающего полем f, r / ^.М [ki, k'.f ];

б) для любого потомка k2 класс а k', r / ^.М [k, k2 .f ].

5, Grant(k, k'.s) - разрешает вызов объекту класса k метода k'.s, при этом матрица доступа изменяется по правилу k' .М [k, k' .s] := 1, Данная элементарная операция может быть выполнена только при следующих условиях:

а) для любого потомка ki класс а k ^.М [ki, k'.s] = 1;

б) для любого родителя k2 класс а k', обладающего методом s, k2.M [k, k2 .s] =

1

6, Deprive(k, k'.s) - запрещает вызов объекту класса k метода k'.s, при этом матрица доступа изменяется по правилу k'.М[k, k'.s] := 0, Данная элементарная операция может быть выполнена, только при выполнении следующих условий:

а) для любого родителя ki класс а k, обладающего методом s; k' .М [ki, k'.s] =

0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

б) для любого потомка k2 класса k' ^.М[k, k2.s] =0,

Условия а) и б) выполнения операций Enter Delete Grant Deprive будем называть условиями целостности.

Без ограничения общности можно считать, что не обладающий полем (или методом) х £ X класс все же таковым обладает, но это поле пусто (или метод ничего не выполняет), а доступом к такому полю (методу) обладают все классы,

t

будем понимать пару Q(t) = (O(t), М(t)), где O(t) = {о^} - множество всех объектов системы в момент времени t, а М(t) = {^М[](t), k £ K} - семейство всех

t

системы будем обозначать Q(0),

Состояния компьютерной системы в модели HRU изменяются под воздействием запросов па модификацию матрицы доступа в виде команд 7(х1 : ki,..., хт : km) следующего формата: if

выражений вида, r £ ^.М[k,k'.f] ми k'.М[k, k'.s] = 1); then - последовательность элементарных операций.

Здесь аргументы х^, i = 1... m представляют собой поля или функции классов ki £ K, участвующие в качестве аргументов в условной части либо в элементарных операциях. Классы аргументами команды не являются: они определяют саму команду.

Отметим, что помимо уже входящих в команду условий каждая операция Enter Delete Grant Deprive по умолчанию добавляет в if-часть команды свои условия целостности, соединенные операцией конъюнкции. Таким образом, если хотя бы одно условие целостности не будет соблюдено, вся команда не будет выполнена.

Кроме того, не должно существовать команд, содержащих одновременно операции Enter(r, k, k''.f) и Delete(r, k, k'.f), либо Grant(k, k''.s) и Deprive(k, k'.s), либо Enter(r, k', k.f) и Delete(r, k'', k.f), либо Grant(k', k.s) и Deprive(k'', k.s), где k'' - потомок k'. Несоблюдение этого условия приведет к нарушению естественной иерархии. Действительно, пусть, к примеру, Enter(r, k',k.f) и Delete(r, k'',k.f) присутствуют в одной команде, и в момент, когда r £ ^М[k'',k.f], но r / ^М[k', k.f], команда выполняется, в результате

чего класс к'' (потомок) теряет право г па поле к./, а родительский класс к! его приобретает.

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

Наконец, обратимся к вопросу безопасности однородных систем с естественной иерархией.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Факт перехода системы под действием команды 7 из состояния ф(£), в котором она находилась в момент времени £, в состояние ф(£ + 1), в котором она находилась в следующий момент времени £+1, будем записывать в сокращенном виде: ф(г) * ф(г + 1),

Определение 7. Будем говорить, что состояние однородной системы ф(£) допускает утечку права доступа г € Я, если существуют такие команда 7, класс к и поле к'./ класса к', что г / к'.М[к, к'./](£), но г € к'.М[к,к'./](£ + 1), где

$(£) *7 $(£ + 1)-

Определение 8. Будем говорить, что состояние однородной системы ф(£) допускает утечку права вызова, если существуют такие команда 7, класс к и метод к' .5 класса к', что к'.М [к, к'.в] (£) = 0, но к'.М [к,к'з](£ + 1) = 1, где

$(£) *7 $(£ + 1)-

г

ет такой последовательность команд 71... дагагаат, что ф(£ — 1) *7( ф(£), £ = 1, 2 ... Т, и ф(Т) допускает утечку права г либо утечку права вызова.

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

г

однородной объектно-ориентированной модели (в том числе, и для модели с естественной иерархией).

Доказательство. Мы исходим из предположения, что рассматриваемая система не является динамической относительно своей классовой структуры, в частности, количество классов постоянно и их структура определена заранее, В таком случае конечным является и множество состояний всех матриц доступа этих классов (т.к. множество прав доступа Я конечно, и множество классов К конечно), А значит, конечно и количество операций, изменяющих состояния ячеек матрицы доступа. Наконец, отсюда следует, что конечно количество различных команд, которые можно составить из этих операций.

Будем искать цепочку команд наименьшей длины, переводящую систему в

г

не должна содержать команд, не изменяющих ни одну матрицу доступа (как,

г

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

г

Допустим,

ф(°) *71 ^(1) * ■ ■ ■ *7Т-1 ^(Т — 1) *7т ^(Т),

где д(Т) допускает утечку права г € Я в ячейку к.М[к', к./](Т),

В такой цепочке одна и та же команда не может выполняться после одинаковых состояний системы: действительно, пусть в цепочке присутствует фрагмент

^(£1) *7 ^(£2)

и фрагмент

^(£з) *7 ^(£4)>

причем

ф(*1) = ф(гз),

но тогда

Ф(*2) = Ф(*4),

и цепочку можно сократить:

ф(*1) * ф(*4).

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

3. Неоднородные объектно-ориентированные системы с естественной иерархией

Во-первых, отметим, что такие системы довольно сложны в реализации, Дейк

к

к

на произвольный метод или поле х каждого объекта класса к предъявляется (по включению) прав не меньше, чем на соответствующий метод любого объекта к

к

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

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

Определение 10. Неоднородные объектно-ориентированные системы с естественной иерархией будем называть финально-неоднородными, если все ее

k

та ок, его поля или метода х и произвольного объекта о', содержащего поле или метод х', выполнено: ок.М[о', ок.х] С k.M[о',^х] и о'.М[k,o'.x'] С о'.М[ок, о'.х'].

Заметим, что неоднородная система сводится к финально-неоднородной до-

k k'

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

k

Данный подход обладает следующим недостатком: пусть k'' - неоднородный

k

о'' k'' о

k о'

k' о''

о''

описанное нами сведение не является (в контекстном смысле) эквивалентным. Для построения HRU-модели финально-неоднородной объектноориентированной системы с естественной иерархией определим следующие элементарные операции:

1, Create^, k) - создает объект ок класса k £ K, при этом O := O U {ок}, ок .М [] := k.M [], и в матрицу доступа каждого объекта о'к/, k £ K системы добавляется строка, соответствующая объекту ок, причем о'к .М[ок, о'к .х] = о'к.М[^о'^.х] для всех полей и открытых методов х объекта о'к ,

2, Destray(ок) - уничтожает объект ок, при этом O := O \ {ок},

3.1 Enter(r, ок, о'к.f) - вносит право доступа r в о'к.М[ок, о'к.f], где ок -объект класса k, о'к - объект класса k'. При этом матрица доступа изменяется по правилу о'к .М[ок, о'к .f] := о'к .М[ок, о'к .f]U{r}, Данная элементарная операция

k k'

следующие условия целостности:

а) r £ k'.M[ок, k'.f];

б) r £ о'к.М[k, о'к.f],

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3.2 Enter(r, ок, k'.f) - вносит право доступа r в k'.M[ок, k'.f], вде ок - объект класса k, При этом матрицы доступа изменяются по правилу: k'.M[ок,k'.f] := k'.M[ок, k'.f] U {r}, и о'к.М[ок, о'к.f] := о'к.М[ок, о'к.f] U {r} для всех объектов о'к класса k'. Данная элементарная операция может быть выполнена, только

k k'

целостности:

а) r £ k'.M[k, k'.f];

б) для любого родителя k2 класс а k', обладающего п олем f, r £ k2.M[ок, k2.f^

3.3 Enter(r, k, о'к.f) - вносит право доступа r в о'к.М[k, о'к.f], где о'к - объект кл асса k'. При этом матрицы доступа изменяются по правилу о'к .М[^о'к/.f] := о'к .М[^о'к/.f] U {r} и о'к.М[ок, о'к.f] := о'к.М[ок, о'к.f] U {r}

для всех объектов ок класс a k. Данная элементарная операция может быть

k' k следующие условия целостности:

а) для любого потомка ki класс a k, r £ о'к .М [^о'^ .fl;

б) r £ k'.M[k,k'.f].

3,4 Enter(r, k, k'.f) - вносит право доступа r в k'.M[k, k'.f], при этом матрицы доступа изменяются по правилу k'.M[k, k'.f] := k'.M[k,k'.f] U {r} и о'к .M[ок, о'к .f ] := о'к .M[ок, о'к .f ] U {r} для всех объектов о'к классa k' и всех объектов ок классa k. Данная элементарная операция может быть выполнена, k k'

лостности:

а) для любого потомка ki класс a k, r £ k'.M [ki, k'.f ];

б) для любого родителя k2 классa k', обладающего полем f, r £ k2.M[k, k2.f],

Delete Grant Deprive Enter

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Определение 11. Под состоянием компьютерной системы в момент времени t будем понимать пару Q(t) = (O(t),M(t)), где O(t) = {о^-} - множество всех объектов системы в момент времени t, а М(t) = {y.M[](t), y £ KUO} - семейство

t

Начальное состояние системы будем обозначать Q(0),

Состояния компьютерной системы в модели HRU изменяются под воздействием запросов на модификацию матрицы доступа в виде команд Y(х1 : ki,..., хт : km) следующего формата: if

выражений вида, r £ y'.M[y,y'.f] ми y'.M[y,y'.s] = 1); then - последовательность элементарных операций.

Здесь y, y' £ K U O}, а каждый аргумент х^ i = 1... m представляет собой либо объект, либо поле или функцию класса, либо поле или функцию объекта

ki K

ной части либо в элементарных операциях. Классы не являются аргументами команды, они определяют саму команду (как содержащиеся в теле команды операторы либо условия): так, например, если xi - это объект, то он может быть только предзаданного класса k^. Создаваемый операцией Create объект также не является аргументом команды, т.к. важен только его класс.

Напомним, что помимо уже входящих в команду условий каждая операция Enter Delete Grant Deprive if

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

К тому же, не должно существовать команд, содержащих одновременно операции Enter(r,y,y''.f) и Delete(r,y,y'.f), либо Grant(y,y''.s) и Deprive(y,y'.s), либо Enter(r, y', y.f) и Delete(r, y'', y.f), либо Grant(y', y.s) и Deprive(y'', y.s), y'' y' y'' K y'' y'

y'' £ Oy , Несоблюдение этого условия приведет к нарушению естественной

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

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

Определение 12. Будем говорить, что HRU-модель объектноориентированной системы с естественной иерархией почти монотонна, если ни одна из операций Create Enter Grant не может находиться в одной команде с одной из операций Destroy, Delete Deprive,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

Определение 13. Будем говорить, что состояние финально-неоднородной системы Q(t) допускает утечку права доступа r £ R, если существуют такие команда 7, класс либо объект y и поле y'.f класса, либо объекта y', что r / y'.M[y,y'.f](t), но r £ y'.M[y,y'.f](t + 1), где Q(t) ^7 Q(t + 1).

Определение 14. Будем говорить, что состояние финально-неоднородной системы Q(t) допускает утечку права вызова, если существуют такие команда 7, класс, либо объект y и метод y'.s класса либо объекта y', что y'.M[y, y'.s](t) = 0, но y'.M[y, y's](t + 1) = 1, где Q(t) ^7 Q(t + 1).

r

почти монотонной финально-неоднородной объектно-ориентированной модели с естественной иерархией.

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

Будем искать цепочку команд наименьшей длины, переводящую систему в

r

такая цепочка не должна содержать команд, не изменяющих ни одну матрицу доступа.

Допустим,

Q(0) ^71 Q(1) ^------>7т- Q(T - 1) ^7Т Q(T),

где Q(T) допускает утечку права r £ R в ячейку М[](T),

Во-первых, в такой цепочке не может быть более одной «деструктивной» команды, содержащей операции Destroy, Delete Deprive (одна такая команда может потребоваться в том случае, если изначально в матрице М[](0) право r

ней содержится не более |K | команд, содержащих только операции Create - по одному новому объекту ок для каждого класса k £ K,

Под ой будем понимать первый созданный объект класса к (возможно, он присутствовал в состоянии ф(0) системы, но позже был удален единственной командой, содержащей операцию Дез^гоу, Пусть теперь о/й - новый объект класса к, созданный позже оК В аргументах всех последующих команд заменяем о/й на ой (сделать это возможно, т.к. они одного типа), при этом матрица доступов ой .М [](£) в любой момент времени будет содержать в точности те права доступа, которые содержали до замены ой.М[](£) и о/й.М[](£) в совокупности, поскольку в цепочке больше не встретятся «деструктивные» команды. Если утечка права

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

к

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

Таким образом, за время работы системы будут изменяться матрицы доступов не более чем 10(0)| + |К| объектов, не более чем 10(0)| + |К| строчек в каждой и не более, чем N столбцов, максимум Я прав в каждой ячейке таблицы, Здесь 0(0) - множество объектов в состоянии ф(0), а N - наибольшее количество полей и методов в классе. Поскольку каждая команда добавляет хотя бы одно право в какую-то ячейку какой-то матрицы (кроме единственной «деструктивной» команды), то, очевидно, не более чем за 2(|0(0)| + |К|)^Я +1

г

Назовем две команды 71 и 72 условно-эквивалентными, если при замене в них всех аргументов каждого из классов к на объект о&, определенный выше, команды будут совпадать по изменению матриц доступа во всех возможных состояниях Q системы. Условная эквивалентность является отношением эквивалентности и, таким образом, разбивает множество команд (вообще говоря, бесконечное) на классы эквивалентности. Таких классов эквивалентности

е

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

На самом деле команды 7е не обязаны принадлежать системе. Но для цепочки команд представителем каждого класса эквивалентности можно всегда выбирать команду, наименьшую по максимальному числу объектов одного класса

г

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

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

к

отсутствовали в Q(0). Но это не повлияет на конечность задачи (придется лишь

слегка изменить понятие условной эквивалентности),

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Литература

1. Белим С.В., Белим С.Ю. Объектно-ориентированная модель компьютерной системы // Математические структуры и моделирование. 2008. Вып. 18. С. 98-101.

2. Белим С.В., Усов С.В. Объектно-ориентированный подход в построении политики безопасности // Математические структуры и моделирование. 2009. Вып. 20. С. 153-159.

3. Michael A. Harrison, Walter L. Ruzzo, and Jeffrey D. Ullman. Protection in operating systems. Communications of the ACM, 19(8):461—471, August 1976.

4. Гайдамакин H.A. Разграничение доступа к информации в компьютерных системах. Уральский университет, 2003.