Реферат по теме выпускной работы
Содержание
- Введение
- 1. Актуальность темы
- 2. Исследование способов разделенного доступа исследования к веб-ресурсам
- 2.1 Обзор модели разделения доступов Access Control List
- 2.2 Обзор модели разделения доступов Role Based Access Control
- 3. Реализация раздельного доступа модуля на основе модели Role Based Access Control
- 3.1 Алгоритм функционирования микросервисов авторизации
- 3.2 Усовершенствование модели Role Based Access Control для распределения прав доступа
- 4. Реализация усовершенствованной модели на языке Go
- Выводы
- Список источников
Введение
С развитием технологий и появлением возможности хранить данные на отдельных элементах и иметь доступ для их обработки, в современном мире перед человеком появилась задача разделения доступа. В данный момент, технологии достаточно глубоко внедрились в повседневную жизнь человека. Чем больше упрощается жизнь человека-тем больше увеличивается сложность технологии.
1. Актуальность темы
Веб-ресурсы являются самым распространенным способом для обмена информацией. Данные ресурсы используются в очень многих сферах, что привело к развитию сетевых технологий и появлению корпоративных сетей. Однако появилась самая главная проблема - распределение пользовательского доступа к данным. Согласно разным законам приватности, каждый пользователь должен иметь доступ к тем данным, которые необходимы для выполнения его обязанностей. Такую политику конфиденциальности используют многие предприятия. Также распределение доступа влияет на защиту данных. Чем точнее будут описаны правила, тем более гибкий доступ можно будет предоставить пользователю.
2. Исследование способов разделенного доступа исследования к веб-ресурсам
Исследование способов разделенного доступа к веб-ресурсам. Исследование доступа является не самой «молодой» темой, но является самой интересной и полезной темой, исходя из принципов того, что разделение данных должно четко описывать права пользователя, быть гибким и не допускать несанкционированный доступ к той информации, которая должна быть недоступной и не нести для пользователя полезности с точки зрения рабочего процесса. Информация всегда должна быть доступна для пользователя, для продуктивного выполнения рабочего процесса. Существуют разные модели доступа построенные на разных принципах и достаточно широко использующиеся. Разные модели похожи для на друга тем, что наследуют некоторые логические принципы функционирования. Для рассмотрения выбраны одни из самых популярных моделей - это Access Control List и Role Based Access Control.
Основные задачи исследования:
- Анализ распределения доступов с помощью модели Access Control List.
- Анализ распределения доступов с помощью модели Role Based Access Control.
- Реализация раздельного доступа модуля с помощью модели Role Based Access Control.
- Реализация усовершенствованной модели на языке Go.
Объект исследования: модель распределения доступа Role Based Access Control.
Предмет исследования: исследование и реализация улучшения гибкости модели Role Based Access Control.
В рамках магистерской работы планируется получение актуальных научных результатов по следующим направлениям:
- Распределение доступа пользователей.
- Изучение популярных моделей распределения доступа.
- Модификация одной из модели распределения доступа.
Для экспериментальной оценки полученных теоретических результатов и формирования фундамента последующих исследований, в качестве практических результатов , планируется разработка микросервиса с использованием языка программирования Go от компании Google на основе предложеных модификаций со следующими свойствами:
- Авторизация с использованием Go.
- Реализация модификации модели распределенного доступа.
2.1 Обзор модели разделения доступов Access Control List
Access Control List или ACL — список управления доступом, который определяет, кто или что может получать доступ к объекту (программе, процессу или файлу), и какие именно операции разрешено или запрещено выполнять субъекту (пользователю, группе пользователей). В файловых системах для реализации ACL используется идентификатор пользователя процесса (UID в терминах POSIX).
Список доступа представляет собой структуру данных, содержащую записи, определяющие права индивидуального пользователя или группы на специальные системные объекты, такие как программы, процессы или файлы. Эти записи также известны как ACE (англ. Access Control Entries) в операционных системах Microsoft Windows и OpenVMS. В операционной системе Linux и Mac OS X большинство файловых систем имеют расширенные атрибуты, выполняющие роль ACL. Каждый объект в системе содержит указатель на свой ACL. Привилегии (или полномочия) определяют специальные права доступа, разрешающие пользователю читать из, писать в, или исполнять объект. В некоторых реализациях ACE (Access Control Entries) могут определять право пользователя или группы на изменение ACL объекта.
Концепции ACL в разных операционных системах различаются, несмотря на существующий «стандарт» POSIX [6]. (Проекты безопасности POSIX, .1e и .2c, были отозваны, когда стало ясно что они затрагивают слишком обширную область и работа не может быть завершена, но хорошо проработанные части, определяющие ACL, были широко реализованы и известны как «POSIX ACLs».)
В сетях ACL представляют список правил, определяющих порты служб или имена доменов, доступных на узле или другом устройстве третьего уровня OSI, каждый со списком узлов и/или сетей, которым разрешен доступ к сервису. Сетевые ACL могут быть настроены как на обычном сервере, так и на маршрутизаторе и могут управлять как входящим, так и исходящим трафиком, в качестве межсетевого экрана.
2.2 Обзор модели разделения доступов Role Based Access Control
Управление доступом на основе ролей (англ. Role Based Access Control, RBAC) — развитие политики избирательного управления доступом, при этом права доступа субъектов системы на объекты группируются с учётом специфики их применения, образуя роли.
Формирование ролей призвано определить чёткие и понятные для пользователей компьютерной системы правила разграничения доступа. Ролевое разграничение доступа позволяет реализовать гибкие, изменяющиеся динамически в процессе функционирования компьютерной системы правила разграничения доступа.
Такое разграничение доступа является составляющей многих современных компьютерных систем. Как правило, данный подход применяется в системах защиты СУБД, а отдельные элементы реализуются в сетевых операционных системах. Ролевой подход часто используется в системах, для пользователей которых чётко определён круг их должностных полномочий и обязанностей.
Несмотря на то, что Роль является совокупностью прав доступа на объекты компьютерной системы, ролевое управление доступом отнюдь не является частным случаем избирательного управления доступом, так как его правила определяют порядок предоставления доступа субъектам компьютерной системы, в зависимости от имеющихся (или отсутствующих) у него ролей в каждый момент времени, что является характерным для систем мандатного управления доступом. С другой стороны, правила ролевого разграничения доступа являются более гибкими, чем при мандатном подходе к разграничению [5].
Так как привилегии не назначаются пользователям непосредственно и приобретаются ими только через свою роль (или роли), управление индивидуальными правами пользователя по сути сводится к назначению ему ролей. Это упрощает такие операции, как добавление пользователя или смена подразделения пользователем.
3. Реализация раздельного доступа модуля на основе модели Role Based Access Control
На данный момент, самой популярной моделью является модель распределения доступа с использованием ролей. Добавление роли каждому пользователю способствует более четкому и достаточно гибкому распределению ролей в системе, которая использует данную реализацию. Модель RBAC очень часто истользуется в веб-ресурсах, позволяя с легкостью определить доступы к данным для пользователя на основании заданной роли [3].
3.1 Алгоритм функционирования микросервисов авторизации
Алгоритм функционирования микросервисов авторизации строится на основании URL-запросов и описанных внутри микросервиса функций обработки запроса. В современных веб-ресурсах процесс авторизации является достаточно сложной технологией, так как многие сложности сводятся к основному моменту авторизации - безопасность личных данных и данных ресурса. Важной частью является препятствование внедрения вирусных программ или разных частей вредоносного программного кода, который после встраивания в систему приводит к утечке персональных данных, а поскольку при дальнейшей работе с веб-ресурсом вредоносное ПО может нанести серьезный ущерб для всего ресурса, как для части клиента, так и для серверной части, в которой зачастую выполняется обработка определенный данных которые либо пришли в URL-запросе, либо должны обработаться программно и вернуть на часть клиента определенную запрошенную информацию, которая понимается как серверный ответ на клиентский запрос. Микросервисы созданы чтобы разрешить эту проблему. Они должны с небольшой сложностью внедряться в веб-ресурсы и выполнять не только быструю обработку малой части информации, но и придерживаться универсальности насколько это возможно, а также иметь хорошую защиту чтобы предоставлять высокий уровень вирусной устойчивость и сохранности персональных данных [4].
3.2 Усовершенствование модели Role Based Access Control для распределения прав доступа
Перед тем как усовершенствовать что-либо необходимо провести анализ объекта исследования, выявить преимущества и недостатки исследуемого объекта, разработать и реализовать улучшения. На момент написания реферата, а именно январь 2019 г., исследованы разнообразные модели разделения доступа и самой оптимальной и популярной выбрана модель RBAC. Однако на некотором примере можно заметить некоторые ее проблемы [2]. Сама модель реализует принцип доступа к данным по роли пользователя и представлена на рисунке 1. Описание рисунка 1: на рисунке показаны этапы получения доступа к данным ресурса. Первый этап - это присвоение пользователю заданной для него роли. На втором этапе, пользователь получает необходимые аттрибуты заданные для присвоенния ему роли. После получения аттрибутов происходит их обработка и в зависимости от аттрибута пользователь получает доступ к сообветственному типу данных, заданному аттрибутом. Последий этап заканчивается получением типизированных данных.
Простым примером проявления проблем этой модели, можно представить таким образом:представим простой портал-блог, с помощью которого публикуются разные статьи, комментарии, обсуждения. На данном ресурсе есть пользователи и согласно принципу работы модели RBAC у них есть следующие роли: admin - имеет доступ ко всему функционалу, user - имеет доступ к материалам портала, moderator - должен выполнять модерацию материалов на ресурсе. При таком простом разделении модель RBAC справляется отлично, но, что если предположить, что администратор ресурса хочет, чтобы пользователи с ролью moderator производили модерацию только отдельных групп материалов? На этом моменте проявляется главная проблема - гибкость к точному и более высокому уровню разделению прав доступов. Более правильным решением и улучшением модели RBAC будет дополнение этой модели атрибутами. Данный раздел подробнее будет рассмотрен непосредственно в самой работе.
4. Реализация усовершенствованной модели на языке Go
Одним из широко популярных и интересных языков программирования на сегодняшний день является язык программирования Go. Он был разработан компанией Google и впервые был выпущен в 2007 году. По своей реализации имеет похожий синтаксис на язык программирования Java и C. Язык прекрасно подходит для реализации микросервисов к веб-ресурсам, имеет высокую производительность среди языков, которые непосредственно используются для написания веб-ресурсов, а именно PHP, Ruby, Python [1]. Ряд разнообразных особенностей принципов реализации ООП и других всем известных принципов программирования делает его привлекательным для написания микросервисов. Несмотря на относительную молодость языка, он уже, на данный момент, имеет разнообразные инструменты и многообразие пакетов для реализации поставленных целей.
Выше представленный график показывает повышеный спрос на язык программирования (ЯП) Go, так как по сравнению со всеми остальными представленными языками он является одним из самых молодых языков. И уже по информации на 2018 год входит в ТОП10 языков программирования имеющий высокий рост сообщества и положительную тенденцию на спрос в применении. Ниже представлен график выбора языков программирования с мая 2012 года.
На сколько видно из графика первая восьмерка языков программирования имеет большой шанс на использование в коммерческих и некоммерческих проектах еще с 2012 года, в свою очередь невозможно не заметить стремительный рост языка Go с 2016 года.
Golang уверенно замыкает первую тройку языков, предпочетаемых для реализации последующего проекта. Это не удивительно, так как простота и высокая производительность имеют все шансы чтобы убедить разработчика отдать свое предпочтение именно этому языку.
Согласно графику персонального выбора все более и более разработчиков склоняются в сторону выбора языка Go для персонального проекта. По данным отчета о стоимости проектов на Go и среднестатистических зарплатах, он так же занимает очень перспективное место тем самым также привлекает для изучения и применения в личных целях[7].
Выводы
На данный момент, работы над магистерской работой уже исследованы разные модели разделения прав доступов, и проделана работа по изучению выбранного языка программирования. Разработана концептуальная реализация улучшений выбранной модели разделения доступа. Проводится дальнейшее рассмотрение модели RBAC, в контексте модели с атрибутами и улучшение способов программной реализации поставленных задач.
При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: июнь 2019 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.
Список источников
- 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков [Электронный ресурс]. — Режим доступа:https://habr.com/ru/company/mailru/blog/314804/. — Заглавие с экрана. — (Дата обращения: 01.11.2018)
- Элементы RBAC [Электронный ресурс]. — Режим доступа:https://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/com.ibm.aix.security/rbac_elements_of.htm. — Заглавие с экрана. — (Дата обращения: 06.11.2018).
- Role Based Access Control (RBAC) – новая модель управления доступом к Exchange 2010 (часть 2) [Электронный ресурс]. — Режим доступа: https://www.securitylab.ru/contest/395502.php. — Заглавие с экрана. — (Дата обращения: 20.11.2018)
- Система разделения прав доступа в веб-приложении [Электронный ресурс]. — Режим доступа: https://habr.com/ru/post/51327/. — Заглавие с экрана. — (Дата обращения: 23.11.2018)
- Разграничение доступа на основе атрибутов [Электронный ресурс]. — Режим доступа: https://ru.wikipedia.org/wiki/Разграничение_доступа_на_основе_атрибутов. — Заглавие с экрана. — (Дата обращения: 01.12.2018)
- ACL [Электронный ресурс]. — Режим доступа: https://ru.wikipedia.org/wiki/ACL. — Заглавие с экрана. — (Дата обращения: 11.12.2018)
- Рейтинг языков программирования № 7: PHP уходит с пьедестала [Электронный ресурс]. — Режим доступа: https://dou.ua/lenta/articles/language-rating-jan-2016/. — Заглавие с экрана. — (Дата обращения: 27.01.2018)