Реалізація дискреційної моделі політики безпеки

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
Захисту інформації
Кафедра:
Захист інформації

Інформація про роботу

Рік:
2014
Тип роботи:
Практична робота
Предмет:
Менеджмент

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра «Захист інформації» / ЗВІТ До виконання практичної роботи № 1 «Реалізація дискреційної моделі політики безпеки» з курсу: « Менеджмент у сфері захисту інформації» Варіант 3 Мета роботи – практичне засвоєння студентами механізму реалізації дискреційної моделі політики інформаційної безпеки в інформаційних системах. Короткі теоретичні відомості Дискреційна політика інформаційної безпеки Основу дискреційної (виборчої) політики ІБ складає дискреційне управління доступом, яке характеризується такими властивостями:  усі суб’єкти та об’єкти повинні бути ідентифіковані;  права доступу суб’єкта до об’єкта системи визначаються на основі деякого зовнішнього щодо ІС правила. Правила дискреційного управління доступом часто задаються матрицею доступів. У такій матриці рядки відповідають суб’єктам, а стовпці – об’єктам ІС. Елементи матриці описують права доступу для відповідної пари «суб’єкт –об’єкт». Цей тип управління доступом найчастіше використовується в операційних системах, що пов’язано із відносною простотою реаліції. У цьому випадку, правила управління доступом часто описуються списками управління доступом (англ. «Access Control List», скор. ACL). Список пов’язаний з об’єктом, що захищається і зберігає перелік суб’єктів та їх прав на даний об’єкт. Наприклад, використання ACL для опису прав доступу користувачів до файлу у файловій системі NTFS в операційних системах сімейства Windows. Нехай O – множина об’єктів ІС, над якими можуть здійснюватися різні операції, U – множина користувачів (суб’єктів) ІС, які можуть проводити операції над об’єктами, S – множина операцій (дій) суб’єктів над об’єктами. Дискреційна політика безпеки визначає відображення OU (об’єктів на користувачів-суб’єктів). Згідно з даним відображенням, кожен об’єкт Oj O оголошується власністю відповідного користувача Uk U , який може виконувати над ними певну сукупність дій Si  S , до якої можуть входити кілька елементарних дій (читання, запис, модифікація тощо). Користувач, що є власником об’єкта, іноді має право передавати частину або всі права іншим користувачам (делегування прав). Зазначені права доступу користувачів-суб’єктів до об’єктів ІС записуються у вигляді матриці доступу. На перетині i -го рядка і j –ого стовпця даної матриці розташовується елемент Sij – множина дозволених дій j -ого суб’єкта над i -им об’єктом. Завдання Номер варіанту завдання відповідає порядковому номеру студента в журналі викладача. Нехай множина S можливих операцій суб’єктів над об’єктами комп’ютерної системи (КС), як складової частини ІС, задано у вигляді: S = {«Доступ на читання», «Доступ на запис», «Делегування прав»}. Необхідно: 1. Отримати з Додатку А інформацію про кількість суб’єктів та об’єктів КС, відповідно до Вашого варіанту. 2. Реалізувати програмний модуль (на будь-якій мові програмування), що формує матрицю доступу суб’єктів до об’єктів КС у вигляді, аналогічному до табл. 1. Реалізація даного модуля передбачає реалізацію таких кроків: 2.1. Обрати ідентифікатори користувачів, які будуть використовуватися при їх вході в КС (по одному ідентифікатору для кожного користувача, кількість користувачів задається відповідно до варіанту). Наприклад, множина з 3-ох ідентифікаторів користувачів {Petrenko, Ivanov, Cybulenko}. Один з даних ідентифікаторів повинен відповідати адміністратору КС (користувачеві, що має повні права доступу до всіх об’єктів). 2.2. Створити і випадковим чином заповнити матрицю доступу суб’єктів до об’єктів у вигляді, аналогічному до табл. 1. При заповненні матриці врахувати: один з користувачів-суб’єктів повинен бути адміністратором системи. Для нього права доступу до усіх об’єктів КС повинні бути встановлені як «Повні»; користувач ж може мати декілька прав доступу до деякого об’єкту КС: мати повні права, або зовсім не мати прав. 3. Реалізувати програмний модуль (на будь-якій мові програмування), що демонструє роботу користувача згідно дискреційнійної моделі політики інформаційної безпеки. Даний модуль повинен виконувати такі функції: 3.1. при запуску модуля повинен робитися запит на отримання ідентифікатора користувача (повинна проводитися ідентифікація користувача). У випадку успішної ідентифікації користувача повинен здійснюватися вхід в систему, в випадку неуспішної – виводитиметься відповідно підготовленне студентом повідомлення. 3.2. при вході в систему після успішної ідентифікації користувача, на екрані повинен відображатися список всіх доступних об’єктів КС із зазначенням переліку всіх доступних прав доступу ідентифікованого користувача до даних об’єктів. 3.3. після виведення на екран переліку прав доступу користувача до об’єктів КС, розроблена програма повинна очікувати вказівок користувача на здійснення дій над об’єктами в комп’ютерній системі. Після отримання команди від користувача, на екран повинне виводитися повідомлення про успішність або невдачу операції. При виконанні операції делегування прав (grant), повинна модифікуватися матриця доступів. Повинна підтримуватися операція виходу з системи (quit), після якої повинен робитися запит на інший ідентифікатор користувача. Завдання за номером варіанту № варіанта Кількість суб’єктів доступу Кількість об’єктів доступу  3 5 4   Лістинг програми package Lab; import static java.lang.System.out; import java.io.*; public class Main { public static int[][] matrix = {{1, 1, 1, 1}, {2, 3, 3, 6}, {3, 6, 3, 3}, {7, 6, 3, 6}, {2, 3, 3, 2}}; public static String Check(int number, int cod, int fileUsers) { int True = 0; if(number == 1) { if(matrix[cod][fileUsers] == 1 || matrix[cod][fileUsers] == 3 || matrix[cod][fileUsers] == 7 || matrix[cod][fileUsers] == 6) True = 1; } if(number == 2) { if(matrix[cod][fileUsers] == 1 || matrix[cod][fileUsers] == 4) True = 1; } if(number == 3) { if(matrix[cod][fileUsers] == 1 || matrix[cod][fileUsers] == 5 || matrix[cod][fileUsers] == 6) True = 1; } if(True==1) return "Операція успішно виконана"; else return "Відмовлено в доступі"; } public static void test(int name) { switch(name) { case 1: out.println("Повні права");break; case 2: out.println("Заборона");break; case 3: out.println("Читання");break; case 4: out.println("Делегування прав");break; case 5: out.println("Запис");break; case 6: out.println("Читання та запис");break; case 7: out.println("Читання та делегування прав");break; } } public static void main(String[] args) throws IOException { out.println("Список користувачів:"); out.println("Admin"); out.println("User1"); out.println("User2"); out.println("User3"); out.println("User4"); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); out.print("Введіть ім\'я користувача:"); String password1 = "12345"; String password2 = "11111"; String password3 = "22222"; String password4 = "33333"; String password5 = "44444"; String name = reader.readLine(); out.print("Введіть пароль:"); String password = reader.readLine(); int cod; if(name.equals("Admin") && password.equals(password1)) { out.println(name + " ідентифікація пройшла успішно."); cod = 0; for(int i = 0; i < 4; i++) { out.printf("File%d: ", i+1); test(matrix[cod][i]); } out.println("1. File1"); out.println("2. File2"); out.println("3. File3"); out.println("4. File4"); out.println("Вкажіть файл(вкажіть номер фалу)> "); int fileUsers = Integer.parseInt(reader.readLine()); out.println("1. Читання "); out.println("2. Делегування прав "); out.println("3. Запис "); out.print("Очікую ваших вказівок(вкажіть номер операції)> "); int number = Integer.parseInt(reader.readLine()); out.println(Check(number,cod, fileUsers)); } //------------------------------------------------------------------ if(name.equals("User1") && password.equals(password2)) { out.println(name + " ідентифікація пройшла успішно."); cod = 1; for(int i = 0; i < 4; i++) { out.printf("File%d: ", i+1); test(matrix[cod][i]); } out.println("1. File1"); out.println("2. File2"); out.println("3. File3"); out.println("4. File4"); out.println("Вкажіть файл(вкажіть номер фалу)> "); int fileUsers = Integer.parseInt(reader.readLine()); out.println("1. Читання "); out.println("2. Делегування прав "); out.println("3. Запис "); out.print("Очікую ваших вказівок(вкажіть номер операції)> "); int number = Integer.parseInt(reader.readLine()); out.println(Check(number,cod, fileUsers)); } ///----------------------------------------------------- if(name.equals("User2") && password.equals(password3)) { out.println(name+ " ідентифікація пройшла успішно."); cod = 3; for(int i = 0; i < 4; i++) { out.printf("File%d: ", i+1); test(matrix[cod][i]); } out.println("1. File1"); out.println("2. File2"); out.println("3. File3"); out.println("4. File4"); out.println("Вкажіть файл(вкажіть номер фалу)> "); int fileUsers = Integer.parseInt(reader.readLine()); out.println("1. Читання "); out.println("2. Делегування прав "); out.println("3. Запис "); out.print("Очікую ваших вказівок(вкажіть номер операції)> "); int number = Integer.parseInt(reader.readLine()); out.println(Check(number,cod, fileUsers)); } //------------------------------------------------------------- if(name.equals("User3") && password.equals(password4)) { out.println(name+ " ідентифікація пройшла успішно."); cod = 3; for(int i = 0; i < 4; i++) { out.printf("File%d: ", i+1); test(matrix[cod][i]); } out.println("1. File1"); out.println("2. File2"); out.println("3. File3"); out.println("4. File4"); out.println("Вкажіть файл(вкажіть номер фалу)> "); int fileUsers = Integer.parseInt(reader.readLine()); out.println("1. Читання "); out.println("2. Делегування прав "); out.println("3. Запис "); out.print("Очікую ваших вказівок(вкажіть номер операції)> "); int number = Integer.parseInt(reader.readLine()); out.println(Check(number,cod, fileUsers)); } //--------------------------------------------------- if(name.equals("User4") && password.equals(password5)) { out.println(name+ " ідентифікація пройшла успішно."); cod = 4; for(int i = 0; i < 4; i++) { out.printf("File%d: ", i+1); test(matrix[cod][i]); } out.println("1. File1"); out.println("2. File2"); out.println("3. File3"); out.println("4. File4"); out.println("Вкажіть файл(вкажіть номер фалу)> "); int fileUsers = Integer.parseInt(reader.readLine()); out.println("1. Читання "); out.println("2. Делегування прав "); out.println("3. Запис "); out.print("Очікую ваших вказівок(вкажіть номер операції)> "); int number = Integer.parseInt(reader.readLine()); out.println(Check(number,cod, fileUsers)); } } } Матриця доступу дискреційної політики безпеки Паролі Користувачі/файли File1 File2 File3 File4  12345 Admin Повні права Повні права Повні права Повні права  11111 User1 Заборона Читання Читання Читання, запис  22222 User2 Читання, делегування прав Читання, запис Читання Читання, запис  33333 User3 Читання, делегування прав Читання, запис Читання Читання, запис  44444 User4 Заборона Читання Читання Заборона   Результат виконання програми / / / / Висновок: в даній лабораторній роботі було засвоєно на практиці механізм реалізації дискреційної моделі політики інформаційної безпеки в інформаційних системах. Було реалізовано програму на мові програмування Джава. В ній передбачено 5 користувачів, один з який, є Адміністратором. При запуску програми виводиться список всіх користувачів, яких потрібно обрати одного. В кожного користувача є свій пароль для ідентифікації, після проходження, якої виводиться список всіх доступних файлів та права на кожен файл для окремого користувача. Якщо користувач не пройшов ідентифікації, то в доступі буде відмовлено. Далі користувач повинен вибрати один з файлів та дію, яку він хоче зробити. Якщо права користувача дозволяють виконати вказану дію над вибраним файлом, тоді дія виконується, якщо ні – в доступі відмовлено. Всі права і паролі користувачів вказані в матриці дискретної політики безпеки.
Антиботан аватар за замовчуванням

25.04.2015 01:04-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!