Математическая модель и технология разработки безопасных корпоративных информационных систем
Г.П. Агибалов ([email protected]), А.А. Скутин ([email protected])
Томский государственный университет
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 (o,P)=o(P); delete (o,P)=o-o(P); update (o,dP) s s(P))
[(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.