Моделирование механизмов защиты компьютерной системы, страница 10

Множества, рассматриваемые в данной модели:

1.  В данной типизированной матрице доступа присутствуют:

2.  1.Конечное множество объектов компьютерной системы O=[oy], y = 0,…,9.

3.  2.Конечное множество субъектов компьютерной системы S=[sx], x = 0,…,9.

4.  3.Конечное множество прав доступа R=[rg], g =  1,…,3.

5.  4.Матрица прав доступа, содержащая права доступа субъектов к объектам A=[axy], x=1,…,11, y=1,…,12, каждый элемент матрицы axy  содержит права доступа субъекта sx к объекту oy.

6.  5.Множество типов, которые могут быть поставлены в соответствие объектам и субъектам системы  T = [ tb ], b =  0,…,5.

7.  6.Конечное множество команд С=[ cz (аргументы)], z=1,…,l.

Создание команды «удаление у субъекта права доступа к объектам матрицы прав доступа с учетом типов»:

Command Delete_ Sybgect ()

if oy of type tb Є O and if tb Є T and if oy of type tb Є O(Q0)

for y = 0,…,9

Delete rg from axy

Delete sy

End

Поведение системы при выполнении данной команды:

Множество объектов О не изменяется, а из множества субъектов S удаляется sx при переходе системы из состояния Q в состояние Q':  O' = O/oy и O' = O;

права доступа субъекта с родительским типом к объектам системы с дочерним типом уничтожается

                                            a'ij = ø, j =y, i = 0,…,9

остальные подмножества матрицы доступа остаются без изменения

                                            a'ij= aij, если i ≠ y 

при изменении i = 1,…,m и j = 1,…,m+n.

Типы объектов и субъектов остаются без изменения:

(oy : toy)' = (oy : toy), j = 0,…,9

(sx : tsx)' = (sx : tsx),  i = 0,…,9


Приложение

Добавление / удаление данных из аутентифицирующего объекта

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


Листинг приложения

Классы

Global.cs

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace TOKB_kursa4

{

    static class Global

    {

        public static КПользователь[] АутОбъект;

        public static void ДобавитьПользователя(КПользователь пользователь)

        {           

            КПользователь[] Пользователь = new КПользователь[АутОбъект.Length];

            int i = 0;

            foreach (КПользователь user in АутОбъект)

            {

                Пользователь[i] = user;

                i++;

            }

            АутОбъект = new КПользователь[АутОбъект.Length + 1];

            i = 0;

            foreach (КПользователь user in Пользователь)

            {

                АутОбъект[i] = user;

                i++;

            }

            АутОбъект[АутОбъект.Length - 1] = пользователь;

            К_запись_в_файл.File_Write(АутОбъект);

        }

        public static void УдалитьПользователя(int key)

        {

            КПользователь[] Пользователь = new КПользователь[АутОбъект.Length - 1];

            int count = 0;

            int index = 0;

            foreach (КПользователь user in АутОбъект)

            {

                if (count != key)

                {

                    Пользователь[index] = user;

                    index++;

                }

                count++;

            }

            АутОбъект = new КПользователь[Пользователь.Length];

            count = -1;

            foreach (КПользователь user in Пользователь)

            {