Математическая модель и технология разработки безопасных корпоративных информационных систем

Математическая модель и технология разработки безопасных корпоративных информационных систем

Г.П. Агибалов

Томский государственный университет

1. Введение

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

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

В изложении технологии сформулирована последовательность действий, которые следует осуществить разработчику для получения безопасной КИС как на этапе ее проектирования, так и на этапе реализации проекта. В частности, реализация репликации предполагает криптографическую защиту пересылаемых данных, а реализация разграничения прав доступа - аутентификацию субъектов. По этой технологии разработана безопасная корпоративная информационная система "Коммерсант" [4] для ОАО "Томскнефтепродукт" ВНК.

Работа выполнена при финансовой поддержке Минобразования РФ фундаментальных исследований в области технических наук (грант Т00-3.1-2851).

2. Математическая модель Таблицы

Пусть имеется конечное линейно упорядоченное множество А предметных переменных а1, ..., ап, называемых атрибутами, с областями возможных значений П1, ..., Б„ соответственно, называемыми их доменами и содержащими символ Л - неопределенное значение. Домены различных атрибутов могут совпадать. В этом случае атрибуты называются однотипными. Для любого подмножества МсА декартово произведение ВМ доменов всех атрибутов в М называется доменом подмножества М, а его элементы - значениями этого подмножества. Пара =(М, К), где

0^КсМсА, называется таблицей. В ней переменные в М называются атрибутами таблицы, а К -первичным ключом таблицы. Атрибут а таблицы I обозначается t.a. Значением таблицы I называется всякое подмножество £сОМ, для которого значения ключа К в различных кортежах из £ различны. Пустое множество считается значением любой таблицы. Пара (/,£), где £ - значение таблицы t, называется информационной таблицей, или и-таблицей. В ней £ называется информацией, а t -носителем информационной таблицы. Ее первичным ключом и атрибутами считаются соответственно первичный ключ и атрибуты носителя t. В случае £={^} информационная таблица (/,£) называется информационной строкой и обозначается Информационная строка (/,£), где яе£, называется строкой в (/,£). Информационная таблица (,0) обозначается t. Тем самым любая таблица t считается информационной с пустым значением.

Всюду далее для ЬсМсА и £сОМ через £[Ь] обозначается проекция на Ь подмножества £, т.е. множество всех тех наборов значений переменных в Ь, которые содержатся в кортежах из £. В частном случае, когда £={^}или Ь={а}, вместо £[Ь] пишем соответственно s[L], £[а] или 5[а]. Кроме того, если К - первичный ключ и а - атрибут и-таблицы (/,£), q - значение К, и $[К]=Ч, то пусть £[^,а]= s[a]. В этом случае символ ^,а] называют ячейкой таблицы (/,£) с координатами ^,а) и значением £^,а]. Величину £^,а] называют также значением атрибута а в таблице (/,£) на ключе q и записывают как t.a(q).

Наконец, для упрощения записи любой кортеж символов Л обозначается Л.

Отношение ссылочности

Отношением ссылочности на множестве таблиц Т называется бинарное отношение рсТ2, заданное таким образом, что если ^(М^К^, Ь=(М2,К2) и ^р^, то в М2 зафиксировано непустое подмножество К12, для которого выполнено следующее условие ссылочной целостности таблиц: : ^К[2 с . В этом случае К12 называют внешним ключом таблицы t1 в таблице Ь и говорят, что К12

ссылается на К1. Эти понятия распространяются на пары информационных таблиц (^£1) и (t2,£2) следующим образом: внешний ключ К12 первой во второй - это внешний ключ t1 в Ь и (^^р^,^) О t2рtl&£2[Kl2]с£l[Kl]^{Л}.

Объекты

Пара о=(1,р), где I - некоторое множество информационных таблиц с попарно различными носителями и р - отношение ссылочности на нем, называется объектом, если граф (1,р) имеет сток, т.е. вершину, достижимую из всех других его вершин; в этом случае сток графа (1,р) называется родительской таблицей, а ее первичный ключ - первичным ключом объекта о. По определению, каждая информационная таблица является объектом. Пара (Т,р), где Т={^ (^£)е!} - множество носителей всех и-таблиц в I, называется носителем, или типом объекта о. Объекты с общим носителем называются однотипными. По определению, однотипные объекты могут различаться только значениями таблиц в них. Их первичные ключи, понятно, одинаковы. Атрибуты и ячейки таблиц объекта называются атрибутами и ячейками самого объекта. Объект называется формальным, если каждая его таблица имеет пустое значение. В отличие от этого, все другие объекты можно называть информационными. Два объекта о1 и о2 не пересекаются, если не пересекаются множества таблиц их носителей.

Множество всех информационных таблиц в объектах некоторого множества объектов О обозначается далее как 1Т(О). В частности, 1Т(1,р)=1.

Подобъекты

Пусть о=(1,р) - некоторый объект, (^£) - его родительская таблица, К - ее (и объекта) первичный ключ и Qс£[K] - некоторое подмножество значений К в £. Определим множество

информационных таблиц I(Q) по следующим индуктивным правилам:

1) если R={s: seS & s[K]eQ}, то (^К^^) ;

2) если (t1,S1)GI(Q), (^^2)е1, ^р^, К1 - первичный ключ в Ь, К12 - внешний ключ t1 в Ь, ссылающийся на К1 и R={s2: s2eS2& s2[K12]eS1[K1]}, то (^,К)е!^);

3) других информационных таблиц в I(<0) нет.

По определению, (I(Q),p) является объектом, однотипным объекту о, и называется подобъектом последнего. В случае Q={q} вместо 1^) пишем 1(ц) и называем (!(д),р) подобъектом в о, порожденным значением первичного ключа ц. Если о1 есть подобъект объекта о2, то пишем о1со2 и говорим, что о1 включен в о2.

Данные

Данное - это объект, родительская таблица которого является информационной строкой. В частности, любая информационная строка есть данное. Данным является также подобъект всякого объекта, порожденный любым значением ц его первичного ключа. Оно называется данным этого объекта, отвечающим значению первичного ключа ц. Таким образом, каждый объект о представляет собой множество данных, отвечающих различным значениям первичного ключа и порождаемых этими значениями в качестве подобъектов в о. В частности, если объектом служит информационная таблица, то его данными являются строки в этой таблице. Заметим также, что объект и его данные однотипны. Пара (о,ц), где о - имя объекта и ц - значение его первичного ключа, которому отвечает некоторое данное, называется далее идентификатором этого данного. Наконец, условимся значение первичного ключа К данного ё обозначать ё[К]. Таким образом, если ё=(о,ц) и - родительская таблица данного ё, то d{K]=q=s[K].

Логические выражения

Предполагается, что на доменах атрибутов могут быть заданы некоторые операции и предикаты. Всякое выражение/(х^ . ., хт), где/- некоторая т-арная операция, заданная на домене Д-, и х1, ..., хт суть элементы в А, или переменные, определенные на Д-, называется термом (на А), а выражение р/1, ...,/т), где р - некоторый т-местный предикат, заданный на Аь и/1, ...,/т суть термы на Аг-, называется элементарной формулой (на Аг). Примером элементарной формулы является сравнение где t[q,a] - ячейка некоторой таблицы и й?еАа. Выражения, построенные

обычным образом из элементарных формул при помощи логических связок —I, а, V, называются логическими выражениями. Примером логического выражения служит элементарная конъюнкция - конъюнкция конечного числа сравнений. Говорят, что терм/(х1, ..., хт), элементарная формула р(/1, ..., /т) или логическое выражение Р принадлежат объекту о, если переменные в них являются символами его ячеек, т.е. выражениями вида где t - информационная таблица в о, а -

ее атрибут и ц - значение ее первичного ключа. В этом случае значением терма/(х1, ..., хт) на А, для объекта о называется элемент/(¿1, ..., Ьт) в Аь где для каждого7=1, ..., т

Ь]=х]-, если х^Аи и Ь есть значение t.a(q) в о, если х7= t[q,a]; значение элементарной формулы р(/1, ..., /т) для о определяется как р(ц1, ..., цт)е{и,л}, где Ц] -значение/ для о,]= 1, ..., т; и наконец, значение логического выражения Р для о вычисляется по значениям для о элементарных формул в нем при помощи истинностных таблиц логических связок и обозначается Р(о).

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

Операции с объектами

Над однотипными объектами можно выполнять любые теоретико-множественные операции, в том числе: объединение - (1ьр)о(12,р)=(1,р), где ^{(^о^): (t,S1)^I1&(t,S2)^I2}, и вычитание -

(/1,р)-(/2,р)= (I1(Q),p) для Q=(R1-R2)\K\, где R1 и R2 - значения родительских таблиц в объектах (I1,p) и (I2,p) соответственно и K - их первичный ключ. Кроме того, на объект o можно действовать, замещая значение любой его ячейки t\q,a\ новым значением d из домена Da атрибута а. Эта операция называется присвоением на o и записывается как t\q,a\ := d. Конечная последовательность присвоений на объекте называется оператором присвоения на нем.

Вводятся также следующие четыре операции манипулирования с объектами: select - чтение, insert - запись, delete - стирание и update - обновление. Каждая такая операция является функцией от двух аргументов и записывается в форме name(o,P), где name - имя операции, o - объект и а -способ адресации данных. Адресация данных может быть прямой или косвенной. При прямой адресации данное указывается явно и операция называется безусловной, а при косвенной -посредством логического выражения и операция называется условной. Результатом операции является объект. Все объекты, участвующие в операции, однотипные.

Пусть o=(I,p) и d суть однотипные объект и данное с родительскими таблицами (t,S) и (t,s) соответственно и с первичным ключом K. Тогда

insert (о d) - o если *\K• delete (o d) - J o если s\K\ й S\K\; .

sert ^ d' - bud, в противном случае ; delete (0,d) - [ o - d в противном случае ;

d t ((t S) ) - J (t,S), если s\K\gS\K\; update ((t,S ),s) = | S-{s1})u{s}) в противном случае ,

где o1 - данное в o со значением первичного ключа s\K\.

Пусть, кроме того, P есть некоторое логическое выражение, принадлежащее объекту o, и объект o(P) является объединением всех данных объекта o, удовлетворяющих условию P, т.е. таких объектов o1e5(o), для которых Р^)=и. Пусть также S(P)={r: reS&P(t,r)}=^ Тогда

|o, если s\K\ e (S - S(P))\K\;

select

[(t, (S - S (P)) u (s j) в противном случае

В частном случае, когда объект o является информационной таблицей (t,S), эти операции можно переписать так:

insert ((t,S),s)-{('-Sx; delete((t,S),s)-J('• ?>' f™ 'M^'M; ;

vv [(t,S u {s}) в противном случае vv 7 7 [ (t, S - {s}), в противном случае

up^e ((t,S), s)-{противном случае , где и

select ((t,S),P)=(t,S(P)); delete ((t,S),P)=(t,S-S(P));

dt ((tS) P) Jo, если s\K\ e (S - S(P))\K\; update ((t,S),sP) - ^ s s( (j) .

[ (t, (S - S (P)) u (s j) в противном случае

Наконец, для любого множества данных D={d1, ..., dm}, однотипных объекту o, и для каждой операции namee {insert, delete, update} определяется

name(o,D) = name(.(name(name(o,d1), d2), ..., dm). Заметим, что, по определению, все операции с данными некоторого объекта могут изменить лишь значения таблиц в объекте, но не изменяют ни самих таблиц, ни отношения ссылочности между таблицами объекта.

Отношение подчиненности Для любых двух объектов o1=(I1,p) и o2=(I2,p) говорят, что o2 ссылается на o1, или o2 подчинен объекту o1, и пишут o2po1, если в I2 есть таблица с внешним ключом, ссылающимся на первичный ключ объекта o1, т.е. если в графе (I1uI2,p) есть дуга, соединяющая некоторую вершину в I2 со стоком графа o1. Отношение подчиненности между объектами, как видим, не зависит от значений

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

База данных

Пусть О есть некоторое множество попарно непересекающихся объектов, р^О2 - отношение подчиненности на О и %: р2—>{0,1,2} - функция, которая каждой паре объектов (о2,о1) в р ставит в соответствие число х(°2,°1)е{0,1,2}, называемое характеристикой подчиненности o2 объекту o1, так, что если o2po1 и для некоторой таблицы в o2, внешний ключ K12 которой ссылается на первичный ключ K1 объекта o1, имеет место K12n K1^0, то x(o2,o1)^2. Тогда тройка (О,р,х) называется базой данных, если выполнены следующие два условия:

1) условие определенности первичного ключа - для первичного ключа K любой информационной таблицы (t,S)&IT(ü) справедливо Л^^;

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

Вместе с условием ссылочной целостности таблиц эти условия называются условиями целостности базы данных.

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

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

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

Права доступа

Любое подмножество множества {ins, sel, del, upd} называется правом доступа. Элементы в нем называются правами записи, чтения, стирания и обновления данных соответственно. Права sel, del, upd называются правами модификации данных. Прямоугольная матрица M, в которой столбцы поставлены во взаимно однозначное соответствие данным некоторой базы данных B, представленным их идентификаторами, а элементами являются права доступа, называется матрицей прав доступа к этой базе. В ней строки называются субъектами базы, а элемент M[u,(o,q)] в строке u и столбце, соответствующем (o,q), - правом доступа субъекта u к данному (o,q). Если это право пустое, то говорят, что субъект u не имеет прав доступа к данному (o,q); если же какая-то из операций ins, sel, del или upd принадлежит к M[u,(o,q)], то говорят, что субъект u имеет по отношению к данному (o,q) право записи, чтения, стирания или обновления соответственно. Все столбцы, соответствующие данным (o,q) с фиксированным o, называются столбцами для объекта o.

Команды изменения прав

Допускаются следующие операции преобразования матрицы прав доступа M:

1) расширение права доступа какого-либо субъекта к какому-либо данному - в некоторый элемент матрицы вписываются дополнительные права;

2) сужение права доступа какого-либо субъекта к какому-либо данному - из некоторого элемента матрицы удаляются некоторые права;

3) создание объекта - введение в матрицу столбцов для нового объекта с пустым правом доступа в них всех субъектов;

4) уничтожение объекта - удаление из матрицы соответствующих столбцов;

5) создание субъекта - введение в матрицу новой строки с пустым правом доступа во всех столбцах;

6) уничтожение субъекта - удаление из матрицы соответствующей строки.

Если ф - любая из этих операций, то пусть ф(М) - это матрица, которая получается как результат применения ф к матрице M. Если ф=ф1 ф2 ... ф„ - произвольная последовательность указанных операций, то пусть ф(М)= ф„(.(ф2(ф1(М))).).

Если ф - произвольный набор из операций преобразования матрицы M и y(M) - формула алгебры высказываний, построенная из элементарных высказываний вида reM[u, (o,q)], где r -любое из прав записи, чтения, стирания или обновления и M[u, (o,q)] - произвольный элемент матрицы M, то пара к=(у(М),ф) называется командой изменения прав доступа, заданных матрицей M. В ней у называется условием для выполнения команды. Результатом применения команды к к M является матрица k(M) такая, что k(M)=M, если у(^)=л, и к(M)=ф(M) в противном случае. Если к=к1к2.к„ - произвольная последовательность команд изменения прав доступа в M, то результат ее применения к M определяется как матрица k(M) = k„(.(k2(k1(M))).). Множество результатов применения к матрице M всевозможных конечных последовательностей команд из некоторого множества К команд изменения прав доступа обозначается K*(M). Если M - это матрица прав доступа к базе B, то M и матрицы в K*(M) называются состояниями доступа базы B.

Ограниченные операции с объектами

В случае, когда информационные объекты принадлежат некоторой базе данных и доступ к данным в них ограничивается состоянием доступа этой базы, соответствующим образом ограничиваются и операции манипулирования с объектами: insert, select, delete, update. Обозначенные соответственно как ins, sel, del, upd, эти ограничения операций определяются следующим образом. Пусть u - произвольный субъект базы данных, д - ее состояние доступа, o - ее объект, d - произвольное данное, однотипное с o, s - значение первичного ключа в d и P -логическое выражение, принадлежащее объекту o. Тогда для name {ins, del, upd}

nam (и,ц, o, d) = í еслИ nam^[u,(o,s)],

v ^ 7 [ nam(o, d) в противномслучае

и, кроме того,

sel(u,^,o,P) = select(o-{(o,q): sel^^[u, (o,q)]}, P); del(u,^,o,P) = delete(o-{(o,q): del^^[u, (o,q)]}, P); upd(u,^,,o,dP) = update(o-{(o,q): upd^^[u, (o,q)]}, dP).

Операции с базами данных

Распространим предыдущие операции на базы данных, введя следующие четыре операции: Sel - чтение, Ins - запись, Del - стирание и Upd - обновление. Каждая из них является функцией от пяти аргументов и записывается в форме Nam(u,^,ß,o,a), где Nam - имя операции, Name {Sel, Ins, Del, Upd}, ß=(O,p,x) - база данных, u - субъект базы ß, д - ее состояние доступа, o - объект в ß и a -способ адресации данных. Операция действует лишь на данные в базе, изменяя значения таблиц в O и сохраняя параметры р, %. Результатом операции является база данных, однотипная с ß.

Первые две операции - Sel и Ins - выполняются как sel и ins независимо от отношения р и его характеристики х в базе B, а именно:

Ins^^ß^d^O*^^), где O*=O-{o}^{ins(u,|,o,d)};

SeKu^ß^PHO*^^), где O*={sel(u,|,o,P)}. Операции же Upd и Del выражаются через upd и del в зависимости от параметров р и х базы B следующим образом.

Если в О существует объект o2 такой, что o^o и х(o2,o)=0, то Del(u,|,ß,o,a)=Upd(u,|,ß,o,a)=ß; в противном случае Del^i^o^^O*^^ и Upd^^^a^^'^^), где О* (О1) получается из О по следующим индуктивным правилам:

1) o заменяется на del(u,|,o,a) (соответственно на upd (u,|,o,a));

2) для любых o1, o2 в О* (соответственно в О') таких, что o^o^ в таблице (t2,S) в o2, внешний ключ K12 которой ссылается на первичный ключ K родительской таблицы (t,s) в o1, при х^^)^ из S удаляется всякое s', для которого s'[K12]^s[K], а при х(o2,o1)=2 каждое такое s'[K12] заменяется символом Л.

По определению характеристики подчиненности, в последнем случае K12nK=0 и производимая замена не приводит к нарушению условия определенности первичного ключа.

Операции Sel, Ins, Del, Upd называются операциями манипулирования с базами данных, а три последние, т.е. Ins, Del, Upd - операциями модификации баз данных.

Информационная система

Информационная система, или ИС, - это тройка IS=(B,M,K), где B - формальная база данных, M - матрица прав доступа к ней и К - некоторое множество команд изменения прав доступа в M. Базы данных, однотипные с B, и матрицы в K*(M), называются соответственно базами данных и состояниями доступа данной ИС. База данных B называется ее начальной базой данных. ИС IS называется безопасной, если для любых субъекта u и данного (o,q) и для любого ее состояния доступа M* имеет место включение M*[u,(o,q)]e M[u,(o,q)]. Две ИС называются однотипными, если однотипны базы данных в них.

Производные ИС

Пусть для состояния доступа | и базы данных ß информационной системы IS множество баз данных П определено по следующим индуктивным правилам:

1) ßen;

2) если ß1en, Nam - операция модификации баз данных, u - субъект базы ß1, o - ее объект, a -подходящая для Nam адресация данных и ß2=Nam (u,|,ß1,o,a), то ß2en;

3) других баз данных в П нет.

Базы данных в n-{ß} называются производными информационной системы IS от ß в состоянии доступа | .

Обозначая через 5y(o) множество данных объекта o в базе данных у, можно для любой производной ß'en и для любого объекта oeß с первичным ключом K определить множества данных 5i(o), 5u(o) и 5d(o), которые при образовании ß' из ß соответственно записаны в объект o, обновлены в объекте o и стерты в объекте o:

5i(o) = {d: de5ß'(o) & d[K]^5p(o)[K]}, 5u(o) ={d: de5ß'(o)-5ß(o) & d[K]e5ß(o)[K]}, 5d(o) = {d: de5ß(o) & d[K]^5ß<o)[K]}. По определению, множества 5i(o), 5u(o) и 5d(o) попарно не пересекаются и удовлетворяют соотношению

ôp'(o) = insert(update(delete(o,ôd(o)), ôu(o)), ôi(o)).

Собственные базы данных ИС

Для ИС IS определим индуктивно множество баз данных Е следующим образом:

1) ВеЕ;

2) если РеЕ и в' - производная IS от в в некотором состоянии доступа системы, то Р'еЕ;

3) других баз данных в Е нет.

Базы данных в множестве Е называются собственными базами данных ИС CIS, а данные в них - собственными данными этой ИС. Последние и только они возможны в ИС в процессе ее функционирования - модификации данных ("законопослушными" субъектами) и управления доступом (администратором).

Сепарабельные ИС

ИС называется сепарабельной, если выполнены следующие два условия:

1) первичные ключи всех объектов в ИС имеют атрибут "Имя ИС", область значений которого совпадает с множеством возможных имен информационных систем;

2) матрица прав доступа ИС не содержит прав модификации данных, у которых значение атрибута "Имя ИС" отличается от имени этой ИС.

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

Отношение вложенности

Если SIS - некоторое множество ИС, O(SIS) - множество всех объектов в них и а - бинарное отношение на O(SIS), удовлетворяющее условиям:

1) однотипность - если о1ао2, то объекты o1, o2 однотипны и принадлежат разным ИС в SIS;

2) транзитивность - o1ao2& o2ao3^ o1ao3;

3)рефлексивность - oаo для любого oeO(SIS),

то а называется отношением вложенности, или вложенностью, для этого SIS. В частности, пустое отношение 0 является вложенностью для любого SIS. В случае o1ao2 говорят, что объект o1 вложен в объект o2; если же o1ao2 и o2ao1, то объекты o1 и o2 называют эквивалентными и пишут o1~o2.

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

Команды изменения вложенности

Всякое отношение вложенности а можно изменять, применяя операции:

1) сокращение - исключение из а некоторой пары (o1,o2)ea для o1^o2,

2) расширение - включение в а некоторой пары (o1,o2)^a, удовлетворяющей условию однотипности, с последующим транзитивным замыканием отношения для удовлетворения условию транзитивности.

Если h - любая из этих операций, то пусть И(а) - это отношение, которое получается как результат применения h к а. Если h=h1 h2 ... hn - произвольная последовательность указанных операций, то пусть h^)= hn(.. ,(Ы(Ы(а)))...). Если, кроме того, g(а) - формула алгебры высказываний, построенная из элементарных высказываний вида o^o2, где o1, o2 - любые объекты в

SIS, то пара c=(g(a),h) называется командой изменения вложенности для SIS. В ней g(o) называется условием для выполнения команды. Результатом применения команды c к а является отношение вложенности с(а) такое, что с(а)=а, если ^(а)=л, и c(a)=h(a) в противном случае. Если c=c1c2_ cn -произвольная последовательность команд изменения вложенности, то результат ее применения к а определяется как отношение c(a) = cn(_(c2(c1(a)))^). Множество результатов применения к а для SIS всевозможных конечных последовательностей команд из некоторого множества C команд изменения вложенности обозначается С*(а, SIS). Пусть далее C*(SIS)= C*(0, SIS).

Корпоративная информационная система

Корпоративная информационная система, или КИС, - это тройка CIS=(SIS,p,C), где SIS=(ISb ..., ISm} - конечное множество сепарабельных ИС с отношением вложенности 0, р - отношение подчиненности на O(SIS) и C - некоторая система команд изменения вложенности для SIS.

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

Пусть далее S есть декартово произведение множеств баз данных информационных систем в КИС CIS. Его элементами являются наборы p=p1p2.pm, где рг- для i=1, ..., m есть база данных ИС ISj. Объекты в р1, ..., pm называются объектами в р. Множество всех данных объекта о в в обозначается бр(о). Набор Pes называется базой данных КИС CIS для отношения вложенности а, если выполнено следующее условие сохранения вложенности данных: для любых объектов о1, о2 в P справедливо о1ао2^5р(о1)^0р(о2) и о1~о2^5р(о1)=5р(о2). В этом случае говорят также, что P согласуется с а. По определению, набор B1B2.Bm, где Bj для j=1,., m есть начальная база в ИС ISj, является базой данных КИС CIS для любого отношения вложенности. Он называется начальной базой данных этой КИС.

Производные КИС

Пусть р=р1р2... Pm есть база данных КИС CIS для некоторого отношения вложенности. Наборы и p°=p°1p°2...p°m, где дj и р° для i=1, ..., m суть соответственно состояние доступа ИС ISj и производная последней от ее базы данных Pj в этом состоянии доступа, называются соответственно состоянием доступа КИС CIS и ее производной от базы данных P в состоянии доступа д. Заметим, что производная от базы данных КИС может не быть базой данных последней, так как в ней может не сохраняться вложенность данных. Вместе с тем, если в базе данных КИС базы данных ее составляющих ИС собственные, то в производной от нее базы данных отдельных ИС также собственные.

Репликация на производную

Для заданных р=ра и р°=рд, где ра - база данных КИС CIS для некоторого отношения вложенности а и рд - производная CIS от нее в некотором состоянии доступа д, репликация на производную заключается в преобразовании р относительно р° по следующим правилам, выполняемым для каждого объекта о в O(SIS):

1) все данные множества 5^о) записываются (операцией insert) во всякий такой объект о' в р, что оао';

2) все данные множества би(о) обновляются (операцией update) во всяком таком объекте о' в р, что о'ао';

3) все данные множества б^о) стираются (операцией delete) во всяком таком объекте о' в р, что о'ао или оао'.

Результат этого преобразования обозначается далее ^(ра,рд) и называется репликой базы данных ра на производную от нее рд. По определению, ^(ра,рд) является базой данных КИС CIS для

отношения вложенности а.

Репликация на вложенность

Для заданных в и а, где в - некоторая база данных КИС CIS и а - произвольное отношение вложенности на O(SIS), репликация на вложенность заключается в преобразовании в относительно а по следующему итеративному правилу, выполняемому для любых двух объектов о и о' в O(SIS): если оао', то все данные множества 5p(o)-5p(o') записываются (операцией insert) в объект о'.

Результат этого преобразования обозначается далее ^(в,а) и называется репликой базы данных в на вложенность а. По определению, ^(в,а) является базой данных КИС CIS для отношения вложенности а. В случае, если в согласуется с а, имеем ^(в,а)=в-

Собственные базы данных КИС

Для КИС CIS определим индуктивно множество баз данных Q следующим образом:

1) начальная база данных CIS принадлежит Q;

2) если в^^ и в* - реплика в на производную от в в некотором состоянии доступа CIS или на вложенность в C*(SIS), то в*еф

3) других баз данных в Q нет.

Базы данных в множестве Q называются собственными базами данных КИС CIS.

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

Безопасные КИС

КИС CIS=(SIS,p,C) называется безопасной, если 1) безопасна каждая ИС в ней и 2) для каждого ае^^К) выполнено следующее условие сохранения вложенности подчиненных объектов: для любых объектов о1, о2, о'1 и о'2 в O(SIS) таких, что о2ро1 и о'2ро'1, имеет место о2ао'2^о1ао'1 и о2~о'2^о1~о'1.

Смысл первого условия безопасности КИС состоит в исключении несанкционированного манипулирования субъектами отдельных ее ИС собственными данными в этих ИС, а смысл второго - в сохранении целостности данных, представленных в нескольких ИС. Несанкционированная модификация несобственных данных исключается вторым условием сепарабельности ИС в КИС.

3. Технология разработки безопасных КИС

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

Технология проектирования

1. Изучение предметной области - сбор сведений о предметной области, исследование документооборота корпорации, определение и классификация объектов описания предметной области.

2. Структурирование КИС - представление КИС как совокупности информационных систем в соответствии с информационной структурой корпорации: каждому подразделению корпорации, сообщающемуся с другими ее подразделениями через Internet, сопоставляется своя ИС, имеющая своих субъектов - пользователей.

3. Структурирование ИС - представление каждой ИС в КИС как совокупности информационных объектов.

4. Описание объектов - определение атрибутов объектов и их доменов, первичных ключей. Атрибуты и первичные ключи вводятся с соблюдением условий сепарабельности.

5. Структурирование объектов ИС - декомпозиция каждого объекта на составляющие его таблицы и представление его структуры в виде стокового графа.

6. Определение отношения подчиненности между объектами ИС и его характеристики.

7. Описание данных - перечисление всех типов данных и назначение им идентификаторов.

8. Задание политики безопасности ИС - выработка политики разграничения доступа субъектов ИС к ее данным и описание этой политики матрицей прав доступа.

9. Задание системы команд изменения прав доступа субъектов ИС к ее данным и обоснование адекватности этой системы избранной политике безопасности.

10. Введение отношения вложенности между объектами из разных ИС в КИС.

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

Технология реализации проекта

1. Выбор конкретной реляционной СУБД для каждой ИС в КИС. Он обусловливается многими факторами: личные предпочтения разработчиков, предполагаемый объем обрабатываемых данных, стоимость СУБД и т.п. Если во всех ИС в КИС используется одна и та же СУБД, то в результате получим гомогенную КИС, иначе - гетерогенную.

2. Создание объектно-реляционной базы данных для каждой ИС в КИС. На языке СУБД (обычно это - язык SQL) в базу вносятся объекты в структурированном виде, т.е. в виде набора таблиц и отношения ссылочности между ними. Каждому атрибуту таблицы ставится в соответствие некоторый домен, поддерживаемый выбранной СУБД. Если КИС гетерогенная, то предпочтительно использовать домены, существующие во всех используемых СУБД, иначе потребуется процедура перевода данных из одного домена в другой при реплицировании данных. Первичный ключ целесообразно строить из двух атрибутов, один из которых обязательно - имя ИС. Объекты связываются отношением подчиненности с заданными характеристиками.

3. Построение матрицы прав доступа ИС и приложения для администратора, реализующего команды ее изменения. В большинстве существующих СУБД заложены матрицы доступа субъектов к таблицам. Для построения матрицы доступа к данным необходимо приложение, декомпозирующее команды изменения прав субъектов к данным на команды изменения прав субъектов к таблицам, составляющим эти данные. Это приложение должно предоставлять администратору ИС удобный пользовательский интерфейс для просмотра матрицы доступа и выполнения команд изменения прав.

4. Построение матрицы отношения вложенности между объектами в КИС и приложения для администратора, реализующего команды ее изменения.

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

6. Разработка модуля репликации. Для выполнения репликации строится соответствующее приложение, в задачи которого входит как выполнение процесса репликации, так и защита

пересылаемых между ИС данных. Репликация может осуществляться по различным каналам связи, например, с помощью протоколов TCP/IP, SMTP/POP3 или в виде файлов, переносимых на внешних носителях. Для обеспечения защиты пересылаемых данных необходимо использовать криптографические средства - шифрование, хэширование, электронную подпись.

7. Разработка или модернизация модуля аутентификации субъектов ИС для установления их подлинности с целью безошибочного предоставления им прав доступа. Это необходимо в случае, если средства аутентификации в избранной СУБД чем-то не удовлетворяют заказчика (например, у него нет к ним доверия).

4. Заключение

В соответствии с изложенными моделью и технологией каждая ИС в безопасной КИС строится из следующих функциональных блоков: объектная база данных под управлением реляционной СУБД; рабочее место администратора ИС, управляющего правами доступа к ее данным; рабочее место пользователя, обеспечивающее санкционированный доступ к данным, и модуль аутентификации, контролирующий подлинность пользователя. Реализация безопасной КИС содержит также общесистемные функциональные блоки: рабочее место администратора КИС, управляющего отношением вложенности между ее объектами, и модуль защищенной репликации, осуществляющий пересылку данных между ИС и обеспечивающий им криптографическую защиту. Созданные таким образом КИС, в случае подходящей реализации в них всех перечисленных функциональных блоков в полном объеме, могут удовлетворить требованиям любого класса безопасных автоматизированных информационных систем по существующей классификации [5].

Данные модель и технология опробованы на практике: с их помощью за 36 человеко-месяцев разработана, наполнена конкретными данными, отлажена, протестирована и введена в промышленную эксплуатацию реальная безопасная КИС "Коммерсант" [4] для ОАО "Томскнефтепродукт"ВНК, состоящая из 2 информационных систем с общим количеством объектов свыше 100.

Литература

1. Дейт К.Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. - К.;М.;СПб.: Издательский дом "Вильямс", 2000. - 848 с.

2. Зегжда Д.П., Ивашко А.М. Основы безопасности информационных систем. - М.: Горячая линия - Телеком, 2000. - 452 с.

3. Коннолли Т.М., Бегг К.Е. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ. - К.;М.;СПб.: Издательский дом "Вильямс", 2000. - 1120 с.

4. Скутин А.А. Вопросы защищенности информации в корпоративной информационной системе "КОММЕРСАНТ" // Материалы 3-й межрегиональной научно-практической конференции "Проблемы информационной безопасности общества и личности". - Томск, ТУСУР, 2001. - С. 181184.

5. Гостехкомиссия России. Руководящий документ. Автоматизированные системы. Защита от несанкционированного доступа к информации. Классификация автоматизированных систем и требования по защите информации. - М., 1992.