Русский   English
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

З розвитком технологій і появляніем можливості зберігати дані на роздільних елементах і мати доступ для їх обробки в сучасному світі перед людиною постало завдання поділу доступу. В даний момент технології досить глибоко вкорінилися в повсякденне життя людини. Чим більше упращается життя людини-тим більше збільшується складність технології.

1. Актуальність теми

Веб-ресурси є найпоширенішим засобом для обміну інформацією. Дані ресурси використовуються в дуже багатьох сферах, що призвело до розвитку мережевих технологій і появлянію корпоративних мереж. Однак з'явилася найголовніша проблема - розподіл призначеного для користувача доступу до даних. Соглассно різними законами приватності кожен користувач повинен мати доступ до тих даних, до які необхідні для виконання його обов'язків. Таку політику конфіденційності використовують багато підприємств. Також розподіл доступу впливає на зажити даних. Чим точніше будуть описані правила. тим більш гнучкий доступ можна буде надати користувачеві.

2. Дослідження способів роздільного доступу користувачів до web-ресурсів

Дослідження доступу є не "наймолодшою" темою, але є найбільш цікавою і корисною темою виходячи з принципів того що поділ даних має чітко описувати права користувача. бути гнучким і недопускати несанкціонованому доступу до тієї інформації, яка повинна бути недоступною і не нести для користувача корисності з точки зору робочого процесу. Інформація завжди повинна бути доступна для користувача для продуктивного виконання робочого процесса.Существует різні моделі доступу побудовані на різних принципах і досить широко іспользущіеся. Різні моделі охожі для на одного тим, що успадковують деякі логічні принципи функціонування. Для розгляду обрані одні з найпопулярніших моделей - це Access Control List і Role Based Access Control.

Основні завдання дослідження:

  1. Аналіз розподілу доступів за допомогою моделі Access Control List.
  2. Аналіз розподілу доступів за допомогою моделі Role Based Access Control.
  3. Реалізація роздільного доступу модуля за допомогою моделі Role Based Access Control.
  4. Реалізація удосконалення моделі на мові Go.

Об'єкт дослідження: модель розподілу доступу Role Based Access Control.

Предмет дослідження: дослідження і реалізація поліпшення гнучкості моделі Role Based Access Control.

В рамках магістерської роботи планується отримання актуальнихнаукових результатів за наступними напрямками:

  1. Расспределеніе доспута користувачів.
  2. Вивчення популярних моделей розподілу доступу.
  3. Модифікація однієї з моделі розподілу доступу.

Для експериментальної оцінки отриманих теоретичних результатів і формування фундаменту наступних досліджень, як практичних результатів планується розробка мікросервіса з використанням мови програмування Go від компанії Google на основі запропонованих модифікацій з наступними властивостями:

  1. Авторизація з використанням Go.
  2. Реалізація модифікації моделі розподіленого доступу.

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. Реалізація роздільного доступу модуля на основі моделі RBAC

На данный момент самой популярной моделью является модель распределения доступа с исспользованием ролей. Добавленение роли каждому пользователю способствует более четкому и достаточно гибкому распределению ролей в системе, которая использует данную реализацию. Модель RBAC очень часто истользуется в веб-ресурсах, позволяя с легкостью определить доступы к данным для пользователя на основании заданной роли [3].

3.1 Алгоритм функціонування мікросервісов авторизації

Алгоритми функціонування мікросервісов авторизації будується на підставі URL-запитів і описаних всередині мікросервіса функцій обробки запиту. У сучасних веб-ресурсах процес авторизації є досить складною технологією, так як багато складності зводяться до основного моменту авторизації - безпека особистих даних і даних ресурсу. Важливою частиною є перешкоджання впровадження вірусних програм або різних частин шкідливого програмного коду, який після вбудовування в систему призводить до витоку персональних даних, а ковзнув при подальшій роботі з веб-ресурсом шкідливе ПО може завдати серйозної шкоди для всього ресурсу, як для частини клієнта, так і для серверної частини, в якій зачату виконується обробка певний даний які або прийшли в URL-запиті, або повинні оброблений програмно і повернути на частину клієнта певну запитану інф ормацію, яка розуміється як серверний відповідь на клієнтський запит. Мікросервіси створені щоб кардинально вплинути на проблему. Вони повинні з не великою складністю впроваджуватися в веб-ресурси і виконувати не тільки биструюобработку малої частини інформації, а й дотримуватися універсальності настколько це можливо, а так само мати гарний захист щоб надавати високий уроветь вірусної стійкість і збереження персональних даних [4].

3.2 Удосконалення моделі RBAC для розподілу прав доступу

Перед тим як вдосконалити щось необходио провести аналіз об'єкта дослідження, виявити преимущест і недоліки досліджуваного об'єкта, розробити та реалізувати поліпшення. На момент написання реферату, а саме січня 2019 р досліджені різноманітні моделі поділу доступу і найоптимальнішою і популярної обрана модель RBAC. Однак на певному прикладі можна помітити деякі її проблеми [2]. Сама модель реалізує принцип доступу до даних по ролі користувача і представлена на рисунку 1.

Принцип дії моделі RBAC

Рисунок 1 – Принцип дії моделі RBAC
(анімація: 20 кадрів, 10 циклів повторення, 58.1 кілобайт)

Простим прикладом прояву проблем цієї приклади можна представити наступний приклад. Уявімо простий портал-блог, за допомогою якого публікуються різні статті, коментарі, обговорення. На даному ресурсі є користувачі та згідно з принципом роботи моделі RBAC у них є такі ролі: admin- має доступ до всього функціоналу, user - має доступ до матеріалів порталу, moderator - повинен виконувати модерацію матеріалів на ресурсі. При такому простому поділі модель RBAC справляється відмінно, але що якщо припустити що адміністратор ресурсу хоче щоб користувачі з роллю moderator виробляли модерацію тільки окремих груп матеріалів? На цьому моменті проявляється головна проблема - гіпкость до точного і більш високого рівня поділу прав доступів. Більш правільнм рішенням і поліпшенням моделі RBAC буде доповнення цієї моделі атрибутами. Даний розділ докладніше буде розглянуто безпосередньо в самій роботі.

4. Реалізація удосконалення моделі на мові Go

Одним з шірокопопулярних і цікавих мов програмування на сьогоднішній день є мова програмування Go. Він був розроблений компанією Google і вперше був випущений в 2007 році. За своєю реалізації має схожий синтаксис на мову програмування Java і C. Мова прекрасно підходить для реалізації мікросервісов до веб-ресурсів, має високу продуктивність серед мов, які безпосередньо використовуються для написання веб-ресурсів, а саме PHP, Ruby, Python [1]. Ряд різноманітних особливостей принципів реалізації ООП і інших всеміізвестних принципів програмування робить його привабливим для написання мікросервісов. Незважаючи на відносну молодість мови, він уже на даний момент має різноманітні інструменти і різноманіття пакетів для реалізації поставлених цілей.

Графік вибору переваги ЯП для проекту

Рисунок 2 – Графік вибору переваги ЯП для проекту [7]

Вище представлений графік показує підвищений попит на мову програмування (ЯП) Go, тому що в порівнянні з усіма іншими представленими мовами він є одним з наймолодших мов. І вже за інформацією на 2018 рік поспіль входить до ТОП10 мов програмування має високий зріст спільноти і позитивну тенденцію на попит в застосуванні. Нижче представлений графік вибору мов програмування з травня 2012 року.

Графік вибору переваги ЯП з травня 2012 року

Рисунок 3 – Графік вибору переваги ЯП з травня 2012 року [7]

На скільки видно з графіка перша вісімка мов програмування має великий шанс на використання в комерційних і некомерційних проектах ще з 2012 року, в свою чергу неможливо не помітити стрімке зростання мови Go з 2016 року.

Графік вибору переваги ЯП для наступного проекту

Рисунок 4 – Графік вибору переваги ЯП для наступного проекту [7]

Golang впевнено замикає першу трійку мов, надають перевагу для реалізації подальшого проекту. Це не дивно, так як простота і висока продуктивність можуть щоб переконати розробника віддати свою перевагу саме цій мові.

Графік вибору переваги ЯП для особистого проекту

Рисунок 5 – Графік вибору переваги ЯП для особистого проекту [7]

Згідно з графіком персонального вибору все більше і більше розробників схиляються в бік вибору мови Go для персонального проекту. За даними звіту про вартість проектів на Go і середньостатистичних зарплатах, він так само займає дуже перспективне місце тим самим також залучає для вивчення і застосування в особистих цілях [7].

5. Висновки

На даний момент роботи над магістерською роботою вже досліджені різні моделі поділу прав доступів і пророблена робота з вивчення вибраної мови програмування. Розроблена концептуальна реалізація поліпшень зроблених в ході дослідження роботи. Проводиться подальший розгляд моделі RBAC в контексті моделі з атрибутами і вдосконалення методів програмної реалізації поставлених завдань.

При написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: червень 2011 року. Повний текст роботи і матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.

Перелік посилань

  1. 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков[Электронный ресурс]. — Режим доступа:https://habr.com/ru/company/mailru/blog/314804/. — Заглавие с экрана. — (Дата обращения: 01.11.2018)
  2. Элементы RBAC [Электронный ресурс]. — Режим доступа:https://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/com.ibm.aix.security/rbac_elements_of.htm. — Заглавие с экрана. — (Дата обращения: 06.11.2018).
  3. Role Based Access Control (RBAC) – новая модель управления доступом к Exchange 2010 (часть 2) [Электронный ресурс]. — Режим доступа: https://www.securitylab.ru/contest/395502.php. — Заглавие с экрана. — (Дата обращения: 20.11.2018)
  4. Система разделения прав доступа в веб-приложении [Электронный ресурс]. — Режим доступа: https://habr.com/ru/post/51327/. — Заглавие с экрана. — (Дата обращения: 23.11.2018)
  5. Разграничение доступа на основе атрибутов [Электронный ресурс]. — Режим доступа: https://ru.wikipedia.org/wiki/Разграничение_доступа_на_основе_атрибутов. — Заглавие с экрана. — (Дата обращения: 01.12.2018)
  6. ACL [Электронный ресурс]. — Режим доступа: https://ru.wikipedia.org/wiki/ACL. — Заглавие с экрана. — (Дата обращения: 11.12.2018)
  7. Рейтинг языков программирования 2018: Go и TypeScript вошли в высшую лигу, Kotlin стоит воспринимать серьезно [Электронный ресурс]. — Режим доступа: https://dou.ua/lenta/articles/language-rating-jan-2018/. — Заглавие с экрана. — (Дата обращения: 27.01.2019)