Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ІСМ
Звіт
до лабораторної роботи №8
з дисципліни
“Технології захисту інформації”
на тему:
“Реалізація дискретної (матричної) та мандатної моделей політики безпеки”
Львів-2017
Мета роботи: навчитися реалізувати політики безпеки в комп'ютерних системах на прикладі дискретної та мандатної політик безпеки.
Індивідуальне завдання:
1. Початкові дані: нехай множина S можливих операцій над об’єктами комп’ютерної системи задана наступним чином: S={«Доступ на читання», «Доступ на запис», «Передача прав»}. Необхідно отримати дані про кількість користувачів і об'єктів комп'ютерної системи та реалізувати програму, що створює матрицю доступу користувачів до об'єктів комп'ютерної системи. Вибрати ідентифікатори користувачів, які будуть використовуватися при їх вході в комп'ютерну систему. Реалізувати програмний модуль, який демонструє роботу в дискретній моделі політики безпеки.
/
2. Нехай задана множина атрибутів безпеки A={«Цілком таємно», «Таємно», «Відкриті дані»}. Реалізувати програму, що імітує мандатну модель політики безпеки. Вибрати ідентифікатори користувачів-суб'єктів, які будуть використовуватися при їх вході в комп'ютерну систему.
Короткі теоретичні відомості:
Під політикою безпеки розуміють набір норм, правил і практичних прийомів, які регулюють управління, захист і розподіл цінної інформації. Політика безпеки задає механізми управління доступу до об'єкта, визначає як дозволені, так і заборонені доступи. При виборі та реалізації політики безпеки в комп'ютерній системі, як правило, виконують такі кроки:
1. В інформаційну структуру вноситься структура цінностей (визначається цінність інформації) і проводиться аналіз загроз і ризиків для інформації та інформаційного обміну.
2. Визначаються правила використання для будь-якого інформаційного процесу, права доступу до елементів інформації з врахуванням даної оцінки цінностей.
Мандатна модель політики безпеки передбачає нормативне управління доступом суб'єктів до об'єктів з використанням міток безпеки. Мандатну модель можна визначити наступною групою аксіом:
1. Є множина атрибутів безпеки. В якості таких атрибутів досить часто використовується наступна множина: {«Цілком таємно», «Таємно», «Відкриті дані»}.
2. Кожному об'єкту комп'ютерної системи присвоюється певний атрибут безпеки, який відповідає його цінності.
3. Кожному суб'єкту присвоюється певний атрибут безпеки, який визначає рівень його допуску. Він рівний максимальному з атрибутів безпеки об'єктів, до якого суб'єкт буде мати доступ.
Результати роботи:
Реалізовуємо програму, що створює матрицю доступу користувачів до об'єктів комп'ютерної системи та аутентифікує користувача при вході у систему.
Код програми:
public class Lab_08 {
public static void main(String[] args) {
String[] S = {"Read", "Write", "Right"};
int Syb = 4, Obj = 5;
String[] sybj = {"Admin", "Korust1", "Korust2", "Korust3"};
String[] objec = {"File1", "File2", "File3", "File4", "File5"};
String[] osoba = {"Ivav", "Petro", "Sergiy", "Anton"};
System.out.println("Матриця доступу користувачів");
for (int i = 0; i < sybj.length; i++) {
System.out.println("Права доступу " + sybj[i]);
for (int j = 0; j < matrx.length; j++) {
if(matrx[i][j]==123){
System.out.print("Read/Write/Right" +" ");}
else if(matrx[i][j]==0){
System.out.print("Not prav" +" ");}
else{
int k = matrx[i][j]-1;
System.out.print(S[k] + " "); } }
System.out.println(); }
System.out.println();
System.out.println("Права доступу користувачів");
for (int i = 0; i < sybj.length; i++) {
System.out.println("Доступу " + osoba[i]);
for (int j = 0; j < matrx.length; j++) {
if(matrx1[i][j]==123){
System.out.print("Read/Write/Right" +" ");}
else if(matrx1[i][j]==0){
System.out.print("Not prav" +" ");}
else{
int k = matrx1[i][j]-1;
System.out.print(S[k] + " "); } }
System.out.println(); }
String smnogin2 = null;
Scanner in = new Scanner(System.in);
System.out.println("Введіть користувача");
boolean a = true;
int m =-1;
while (a) {
smnogin2 = in.nextLine();
if (smnogin2.equals("")) {
System.out.println("Ви не ввели користувача!!!");
System.out.println("Введіть користувача:");
a = true;
} else
a = false; }
for (int i = 0; i < osoba.length; i++) {
if(smnogin2.equals(osoba[i])){
m = i;
break;} }
System.out.println("Ващі права");
for (int j = 0; j < matrx.length; j++) {
if(matrx1[m][j]==123){
System.out.print("Read/Write/Right" +" ");}
else if(matrx1[m][j]==0){
System.out.print("Not prav" +" ");}
else{
int k = matrx1[m][j]-1;
System.out.print(S[k] + " "); } }
smnogin2 = in.nextLine();} }
Результати виконання програми:
/
Реалізовуємо програму, що імітує мандатну модель політики безпеки, вибирає ідентифікатори користувачів-суб'єктів.
Код програми:
public class Lab_081 {
public static void main(String[] args) {
String[] A = {"Цілком таємно", "Таємно", "Відкриті дані"};
int Syb = 4, Obj = 5;
String[] OV = {"File1", "File2", "File3", "File4", "File5"};
String[] korust = {"Ivav", "Petro", "Sergiy", "Anton"};
String smnogin2 = null;
Scanner in = new Scanner(System.in);
System.out.println("Введіть користувача");
boolean a = true;
int m =-1;
smnogin2 = in.nextLine();
for (int i = 0; i < korust.length; i++) {
if(smnogin2.equals(korust[i])){
m = i;
break; } }
System.out.println("Рівень доступу " + smnogin2);
for (int j = 0; j < UV.length; j++) {
System.out.println("До файлу " + OV[j] + " такі права:");
if(UV[m][j]==0){
System.out.print("Not prav" +" ");}
else{
int k = UV[m][j]-1;
System.out.print(A[k] + " "); } } } }
Результати виконання програми:
/
Висновок: Під час виконання даної лабораторної роботи було реалізовано політику безпеки в комп'ютерних системах на прикладі дискретної та мандатної політик безпеки.