1. анализ применения контекстного механизма контроля


Download 1.31 Mb.
Pdf ko'rish
bet10/21
Sana19.06.2023
Hajmi1.31 Mb.
#1611011
TuriРеферат
1   ...   6   7   8   9   10   11   12   13   ...   21
Bog'liq
ВКР - АкмальА

Упрощение администрирования: RBAC упрощает процесс назначения и 
управления правами доступа, поскольку права связаны с ролями, а не с 
отдельными пользователями. 
Усиление безопасности: RBAC позволяет ограничить доступ 
пользователей только к тем ресурсам, которые необходимы для выполнения 
их роли, минимизируя риски несанкционированного доступа. 
Гибкость: RBAC позволяет гибко настраивать и изменять роли и права 
доступа в соответствии с изменяющимися требованиями организации. 
Удобство для пользователей: Пользователям назначаются роли, 
которые определяют их задачи и функциональности, что делает управление 
доступом более интуитивным и понятным. 
RBAC является широко применяемой моделью контроля доступа в 
различных системах, включая корпоративные информационные системы, 
базы данных, веб-приложения и другие. Она позволяет эффективно управлять 
доступом пользователей, обеспечивая безопасность и соблюдение политик 
безопасности организации. 
Атрибутивное управление доступом (Attribute-Based Access Control, 
ABAC) – это модель контроля доступа, основанная на анализе атрибутов 
пользователей, ресурсов и контекста для принятия решений о предоставлении 
доступа. В ABAC доступ к ресурсам определяется на основе установленных 
политик, которые учитывают атрибуты, такие как идентификаторы 
пользователей, роли, время, местоположение, уровень безопасности и другие 
контекстные данные. 
Основные концепции и компоненты модели ABAC включают: 


41 
1. 
Атрибуты 
(Attributes): 
Атрибуты 
представляют 
собой 
характеристики, свойства или параметры, которые могут быть присвоены 
пользователям, ресурсам или контексту. Например, атрибутами могут быть 
роль пользователя, уровень авторизации, время доступа и другие атрибуты, 
которые могут быть учтены при принятии решений о доступе. 
2. Политики (Policies): Политики определяют правила и условия, на 
основе которых принимаются решения о предоставлении доступа. Политики в 
ABAC могут быть достаточно гибкими и сложными, учитывая различные 
комбинации атрибутов и контекста. 
3. Политика оценки (Policy Evaluation): При запросе доступа система 
ABAC анализирует политики и атрибуты, связанные с пользователем, 
ресурсом и контекстом, для определения, может ли доступ быть предоставлен 
или запрещен. 
4. Атрибутные утверждения (Attribute Assertions): Атрибутные 
утверждения содержат информацию о конкретных значениях атрибутов 
пользователей, ресурсов или контекста. Эти утверждения используются для 
проверки соответствия политикам доступа. 
Преимущества атрибутивного управления доступом (ABAC) включают: 
Гибкость и выразительность: ABAC позволяет определить более 
сложные и гибкие политики доступа, учитывая различные атрибуты и 
контекстные данные. 
Динамическое принятие решений: ABAC может принимать решения о 
доступе в реальном времени, учитывая актуальные значения атрибутов и 
контекста. 
Масштабируемость: ABAC может быть масштабирован для обработки 
больших объемов данных и сложных сценариев доступа. 
Централизованное управление: ABAC может быть централизованно 
управляемым, что облегчает управление правами доступа в организации. 
В целом, ABAC представляет собой гибкую модель управления 
доступом, которая позволяет организациям эффективно управлять правами 


42 
доступа на основе атрибутов и контекста. Она предоставляет более точный и 
дифференцированный контроль доступа к ресурсам, способствуя повышению 
безопасности и соблюдению политик организации. 
Проектирование и разработка контекстного механизма контроля 
доступа. 
Домашняя автоматизация, или умный дом (англ. smart home) — система 
домашних устройств, способных выполнять действия и решать определенные 
повседневные задачи без участия человека. Домашняя автоматизация 
включает доступные через интернет домашние устройства [13]. Наиболее 
распространенные примеры автоматических действий в «Умном доме» — 
автоматическое включение и выключение света, автоматическая коррекция 
работы отопительной системы или кондиционера и автоматическое 
уведомление о вторжении, возгорании или протечке воды.
Рис.2.2 Пример системы «Умный дом» 
Домашняя автоматизация в современных условиях — чрезвычайно 
гибкая система, которую пользователь конструирует и настраивает 


43 
самостоятельно в зависимости от собственных потребностей. Это 
предполагает, что каждый владелец умного дома самостоятельно определяет, 
какие устройства и где установить и какие задачи и как они будут исполнять. 
Проектирование и разработка контекстного механизма контроля 
доступа в данном коде включает несколько ключевых компонентов: 
1. Хранение логинов и паролей в базе данных: В коде используется база 
данных SQLite для хранения информации о пользователях. При регистрации 
пользователей в базу данных сохраняются хэшированные пароли, а не сами 
пароли. Это обеспечивает безопасность, так как хэширование делает сложным 
восстановление исходных паролей из базы данных, даже если она будет 
скомпрометирована. 
2. Проверка учетных данных: Метод check_credentials в классе 
AccessControl выполняет проверку введенных пользователем логина и пароля 
с данными из базы данных. Пароль, введенный пользователем, хэшируется и 
сравнивается с хэшем, сохраненным в базе данных. Если данные совпадают, 
пользователю предоставляется доступ, а его имя сохраняется в переменной 
current_user. 
3. Матрица доступа: Класс AccessControl содержит матрицу доступа, 
где каждому ресурсу (например, "дверь", "освещение", "система 
безопасности", "термостат") сопоставлен список пользователей, имеющих 
доступ к этому ресурсу. Метод grant_access проверяет, имеет ли текущий 
пользователь доступ к запрошенному ресурсу. Если доступ разрешен, 
создается экземпляр AccessContext для управления доступом к ресурсу, в 
противном случае создается экземпляр NullContext. 
4. Управление доступом к ресурсам: Класс AccessContext представляет 
контекст доступа к определенному ресурсу. При входе в контекст вызывается 
метод __enter__, который ничего не делает. При выходе из контекста 
вызывается метод __exit__, который также ничего не делает. Это позволяет 
управлять временным доступом пользователя к ресурсу. 


44 
5. Выполнение команд: Метод execute_command класса AccessControl 
выполняет команду для указанного ресурса. В данном случае, после 
получения команды от пользователя, код отправляет POST-запрос с 
информацией о ресурсе, команде и аутентификационном коде на условное API 
автоматизированной системы управления. Результат запроса проверяется, и в 
зависимости от статуса ответа выводится сообщение об успешном 
выполнении команды или об ошибке. 
Сервис контроля доступа
Правила 
задания уровня 
доверия
Правила 
распределения 
ролей
Правила 
сопоставления 
ролей
Контекст
Умная среда
Пользователь
Сервис
Результат выполнения операции
Запрос уровня 
доступа
Уровень доступа
Запрос выполнения 
операции
Запрос выполнения 
операции
Рис.2.3. Обобщённая архитектура контекстного механизма контроля 
доступа 
6. Логирование: Для обеспечения безопасности и мониторинга системы 
в коде используется модуль logging, который записывает информацию о 
действиях пользователей в файл журнала (access.log). В данном случае, 
каждый раз при выполнении команды записывается информация о 
пользователе, выполняющем команду, команде и ресурсе. 
7. Пользовательский интерфейс: Класс SmartHome представляет 
пользовательский интерфейс. Метод login запрашивает у пользователя логин 
и пароль, затем вызывает метод check_credentials для проверки доступа. Если 
доступ разрешен, вызывается метод start_menu, который предлагает 
пользователю выбрать ресурс для управления. В зависимости от выбора 


45 
пользователя, вызывается метод access_resource, который запрашивает 
команду и выполняет соответствующие действия. 
Таким образом, разработанный контекстный механизм контроля 
доступа обеспечивает проверку учетных данных, управление доступом к 
ресурсам, выполнение команд и логирование действий пользователей. Он 
также обеспечивает хранение паролей в зашифрованном виде, использование 
сильных паролей, ограничение доступа к базе данных и мониторинг системы 
на предмет подозрительной активности. Это помогает обеспечить 
безопасность системы и предотвратить несанкционированный доступ к 
ресурсам. 
Начало
Получение запроса
Отправка запроса адресату
Обновление контекста 
согласно запросу
Конец
Получение результата 
выполнения запроса
Запрос выполняется в 
соответствии с правилами 
контроля доступа
Запрос выполнен
да
нет
да
нет
Рис.2.4. Алгоритм анализ запросов для обновления контекста 


46 
Объяснение работы кода на примере блок-схемы: 
1. Создаются необходимые импорты для использования модулей 
`hashlib`, `sqlite3`, `logging` и `requests`. 
2. Инициализируется класс `SmartHome`, который содержит методы для 
авторизации, работы с ресурсами и контроля доступа. 
3. Инициализируется класс `AccessControl`, который управляет 
доступом и аутентификацией пользователей. 
4. В методе `login` класса `SmartHome` запрашиваются у пользователя 
логин и пароль. Если учетные данные верны, вызывается метод `start_menu`, 
иначе выводится сообщение о неверном логине или пароле. 
5. Метод `start_menu` предлагает пользователю выбрать ресурс и вводит 
соответствующую команду. Ресурс и команда передаются методу 
`access_resource`. 
6. В методе `access_resource` получается текущий пользователь и 
вызывается метод `grant_access` объекта `AccessControl` для проверки доступа 
пользователя к ресурсу. Если доступ разрешен, создается объект контекста 
доступа `AccessContext`, иначе создается объект контекста `NullContext`. 
7. В методе `execute_command` класса `AccessControl` выполняется 
команда для выбранного ресурса. Он также регистрирует информацию о 
команде в лог-файле и отправляет соответствующий запрос на API-эндпоинт. 
8. Класс `AccessContext` и `NullContext` используются для реализации 
контекстного менеджера для управления доступом к ресурсу. 
9. Создается база данных SQLite, создается таблица пользователей и 
добавляются тестовые пользователи. 
10. Создается экземпляр класса `SmartHome` и вызывается метод `login` 
для запуска программы. 
После запуска программы пользователь будет приглашен ввести свои 
учетные данные. Затем ему будет предложено выбрать ресурс, для которого 
нужно выполнить команду. После выбора ресурса пользователю будет 


47 
предложено ввести команду для выполнения. Команды и информация о 
выполнении будут зарегистрированы в лог-файле "access.log". 

Download 1.31 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling