Добавил:
north memphis Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МБКС_лаб_2.pdf
Скачиваний:
0
Добавлен:
26.01.2026
Размер:
826.89 Кб
Скачать

ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ

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

Формулировка определений и их свойств

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

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

Рисунок 1. Пример матрицы доступа

4

Описание программы

Вкачестве языка программирования был выбран язык «Python» ввиду своей простоты и широкого выбора пользовательских библиотек.

Вданной программе (приложение А) каждый рассматриваемый работник – объект класса worker.

Данный класс состоит из следующих полей и методов:

name – поле, которое содержит имя работника

access – поле, которое является словарем, в котором по ключу доступа(“+”или“-“)можнополучитьсписокфайлов,ккоторымобъекткласса worker имеет или не имеет доступ.

__init__(self, name) – конструктор класса

printInfo(self) – метод, отвечающий за вывод в поток вывода полной информации, имеющейся в объекте класса. Является «Debug»- методом.

5

Методы программы:

getJSON(url) – метод, отвечающий, за получение матрицы доступа с веб-ресурса по ссылке url. Возвращает конвертированный из JSON словарь доступов.

writeToChangelog(str) – метод, отвечающий за запись подаваемой на вход строки str в файл log.txt

showLog(path) – метод, отвечающий за передачу в поток вывода полного содержимого файла по пути path. В данной программе – log.txt

send(user, file, value) – метод, отвечающий за отправку

новых данных о user, file, value, используя метод set API веб-ресурса.

readCorrectList(path) – метод, отвечающий за считывание корректной матрицы доступа по пути path и дальнейшего инстанцирования класса worker при помощи полученных данных.

readJSONList(data) – метод, отвечающий за считывание матрицы доступа из конвертированного в словарь JSON файла data, изначально полученного при помощи метода getJSON(url)

compareWorkers(JSONWorkers, correctListWorkers) –

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

userAccesses(objArray) – метод, отвечающий за вывод доступов к файлам у определенного работника из массива работников objArray.

changeUserAccess(objArray) – метод, отвечающий за реализацию функционалаизменения прав доступау конкретного работника из массива работников objArray к конкретному файлу.

makeTable(data) – метод, отвечающий за создание визуализации матрицы доступа на основе словаря data.

6

Соседние файлы в предмете Модели безопасности компьютерных систем