Реферат по предмету "Информатика, программирование"


Захист інформації в інформаційних системах

МІНІСТЕРСТВОНАУКИ І ОСВІТИ УКРАЇНИ
Одеськийнаціональний політехнічний університет
Кафедракомп’ютерних інтелектуальних систем та мереж
ЗАХИСТ ІНФОРМАЦІЇ В ІНФОРМАЦІЙНИХСИСТЕМАХ
Курсова робота
АМКР.АМ035м.0909

Зміст
Вступ… 3
Основна частина… 4
1.       Завдання… 4
2.       Проектування БДІС… 4
3.       Реалізаціяелементів безпеки… 5
4.       Реалізація елементів гарантованості… 10
Заключення… 16
Перелік літератури… 17

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

/>Основна частина
1.        Завдання
Спроектуватибазу даних, що відповідає вимогам: політика безпеки, гарантованість,підзвітність, документація. Для варіанту дев’ять база даних призначена для зберіганняінформації з предметної області «Банк», а саме
-           інформація про рахунки по філіях банку (accounts): номер рахунку,назва філії, що обслуговує рахунок, баланс на рахунку;
-           інформація про операції, що виконуються у філії (operations): код, дата, номеркредитного рахунку, номер дебетного рахунку, кошти переводу;
-           інформація про філії (branch): назва, адреса, капітал.
2.        Проектування БДІС
ER-діаграма бази данихзображена на рис. 1. Сутність Філія (Branch) містить багато Операцій(Operation)і Рахунків(Account).
/>
Рис. 1.
Відповіднасхема реляційної моделі зображена на рис. 2.
/>
Рис.2.
Зв'язок«багато-до-одного» у реляційній моделі виконують проміжні таблиці Рахунки(Accounts) і Операції(Operations).
Приведенареляційна модель реалізується наступними виразами мови SQL:
CREATETABLE Account (num INT PRIMARY KEY, balance INT NOT NULL, CHECK(balance>=0)).
CREATETABLE Operation (code INT PRIMARY KEY, dat DATE, credit_num INT, debet_num INT,change INT NOT NULL).
CREATETABLE Branch (num INT PRIMARY KEY, name VARCHAR(50) NOT NULL UNIQUE, adress VARCHAR(50),capital INT NOT NULL, CHECK(capital>=0)).
CREATETABLE Operations (branch INT REFERENCES Branch, operation INT REFERENCESOperation).
CREATETABLE Accounts (branch INT REFERENCES Branch, account INT REFERENCES Account).
3.        Реалізація елементів безпеки
Однієюз важливих складових безпеки є розподілення прав доступу між користувачами.
Створимодвох користувачів та одну групу. Для кожного користувача також створимо схему.
CREATEROLE user1;
CREATEROLE user2;
CREATEROLE users NOLOGIN;
GRANTusers TO user2;
CREATESCHEMA schema1;
ALTERSCHEMA schema1 OWNER TO user1;
ALTERSCHEMA schema2 OWNER TO user2;
Надамодеякі права новим користувачам.
GRANTINSERT ON Accounts TO user2;
GRANTSELECT ON Accounts TO users;
GRANTUPDATE ON Operations TO user2.
Більшгнучкішим засобом контролю за доступом до таблиць БД є віртуальна таблиця(view). Нижчеприведені SQL-запити для створення віртуальних таблиць для вибору щоденнихоперацій, рахунків одеської філії банку та операцій з переводами коштів дофілії:
CREATEVIEW Today_Operations AS
          SELECT* FROM Operation WHERE dat = CURRENT_DATE
CREATEVIEW Odessa_Branch_Accounts AS
          SELECT* FROM Account WHERE num IN (SELECT account FROM Accounts WHERE branch IN(SELECT num FROM Branch WHERE name = 'Odessa'))
CREATEVIEW Income_Operations AS
          SELECT* FROM Operation WHERE change > 0.
УСКБД “Postgres” для віртуальних таблиць можлива заміна запитів UPDATE, INSERT, DELETE до цих таблиць назапити користувача.
CREATERULE Income_Operations_INSERT AS ON INSERT TO schema1.Income_Operations
DOINSTEAD INSERT INTO Income_Operations
SELECTNEW.code, NEW.dat, NEW.credit_num, NEW.debet_num
WHERENEW.change >0;
CREATERULE Income_Operations_UPDATE AS ON UPDATE TO schema1.Income_Operations
DOINSTEAD UPDATE Income_Operations SET
code=NEW.code,dat=NEW.dat, credit_num=NEW.credit_num, debet_num=NEW.debet_num
WHERENEW.change >0;
CREATERULE Income_Operations_DELETE AS ON DELETE TO schema1.Income_Operations
DOINSTEAD DELETE FROM Income_Operations WHERE NEW.change >0;
CREATERULE Today_Operations_INSERT AS ON INSERT TO schema1.Today_Operations
DOINSTEAD INSERT INTO Today_Operations
SELECTNEW.code, NEW.dat, NEW.credit_num, NEW.debet_num
WHERENEW.dat = CURRENT_DATE;
CREATERULE Today_Operations_UPDATE AS ON UPDATE TO schema1.Today_Operations
DOINSTEAD UPDATE Income_Operations SET
code=NEW.code,dat=NEW.dat, credit_num=NEW.credit_num, debet_num=NEW.debet_num
WHERENEW.dat = CURRENT_DATE;
CREATERULE Today_Operations_DELETE AS ON DELETE TO schema1.Today_Operations
DOINSTEAD DELETE FROM Income_Operations WHERE NEW.dat = CURRENT_DATE;
CREATERULE Odessa_Branch_Accounts_UPDATE AS ON UPDATE TOschema1.Odessa_Branch_Accounts
DOINSTEAD UPDATE Account SET
balance=NEW.balanceWHERE NEW.num IN (SELECT account FROM Accounts WHERE branch IN (SELECT num FROMBranch WHERE name = 'Odessa'))
CREATERULE Odessa_Branch_Accounts_DELETE AS ON DELETE TOschema1.Odessa_Branch_Accounts
DOINSTEAD DELETE FROM Account WHERE NEW.num IN (SELECT account FROM AccountsWHERE branch IN (SELECT num FROM Branch WHERE name = 'Odessa'))
Дляорганізації більш складної системи розмежування прав та введення рівнівсекретності треба створити окремі структури даних з цією інформацією та ввестидодаткові правила перевірки відповідності рівня користувача запиту рівнюдоступу до даної таблиці. Таблиця PERSONS містить список усіх користувачів, таблицяACCESS_LEVELS – рівні доступу, GROUPS_ACCESS_LEVEL – призначені рівні доступугрупам користувачів.
CREATESEQUENCE PERSON_ID;
CREATETABLE PERSONS (
          PERSON_IDINTEGER NOT NULL PRIMARY KEY DEFAULT NEXTVAL('PERSON_ID')
          NAMEVARCHAR(30)
          SEXCHAR(1)
          BIRTHDAYDATE
          CONSTRAINTVALID_SEX CHECK (SEX IN ('M','W')));
CREATETABLE ACCESS_LEVELS (
          ACCESS_LEVEL_IDINTEGER PRIMARY KEY
          ACCESS_LEVELVARCHARUNIQUE);
INSERTINTO ACCESS_LEVELS VALUES (1,'public');
INSERTINTO ACCESS_LEVELS VALUES (2,'private');
INSERTINTO ACCESS_LEVELS VALUES (3,'secret');
INSERTINTO ACCESS_LEVELS VALUES (4,'top secret');
CREATETABLE GROUPS_ACCESS_LEVEL (
          GROUP_NAMEVARCHAR PRIMARY KEY
          ACCESS_LEVELINTEGER REFERENCES
          ACCESS_LEVELS(ACCESS_LEVEL_ID));
REVOKEALL ON GROUPS_ACCESS_LEVEL FROM GROUP USERS;
GRANTSELECT ON GROUPS_ACCESS_LEVEL TO GROUP USERS;
INSERTINTO GROUPS_ACCESS_LEVEL VALUES ('users',2);
ALTERTABLE PERSONS
          ADDCOLUMN SPOT_CONF INTEGER DEFAULT 1
          REFERENCESACCESS_LEVELS(ACCESS_LEVEL_ID);
CREATEOR REPLACE VIEW PERSONS_LIST AS
          SELECTPERSON_ID, NAME, SEX, BIRTHDAY
          FROMPG_GROUP G, PG_USER U, PERSONS P
GROUPS_ACCESS_LEVELL
WHERE
USENAME= CURRENT_USER AND
U.USESYSID= ANY (G.GROLIST) AND
L.GROUP_NAME= G.GRONAME AND
P.SPOT_CONF
REVOKEALL ON PERSONS FROM GROUP USERS;
GRANTSELECT ON PERSONS_LIST TO GROUP USERS;
INSERTINTO PERSONS_LIST VALUES (1,'Tkachuk','M','23-02-1986');
UPDATEPERSONS SET SPOT_CONF = 4 WHERE PERSON_ID = 1;
INSERTINTO PERSONS_LIST VALUES (1,'Ivanov','M','15-03-1987');
UPDATEPERSONS SET SPOT_CONF = 1 WHERE PERSON_ID = 2;
DROPRULE PERSONS_LIST_INSERT ON PERSONS_LIST;
CREATERULE PERSONS_LIST_INSERT AS ON INSERT TO PERSONS_LIST DO INSTEAD
INSERTINTO PERSONS
SELECTCASE WHEN NEW.PERSON_ID IS NULL THEN NEXTVAL('PERSON_ID') ELSE NEW.PERSON_IDEND
NEW.NAME,NEW.SEX, NEW.BIRTHDAY, L.ACCESS_LEVEL
FROMPG_GROUP G, PG_USER U, GROUPS_ACCESS_LEVEL L
WHERE
U.USENAME= CURRENT_USER AND
U.USESYSID= ANY (G.GROLIST) AND
L.GROUP_NAME= G.GRONAME;
GRANTINSERT ON PERSONS_LIST TO GROUP USERS;
GRANTSELECT,UPDATE ON PERSON_ID TO GROUP USERS;
DROPRULE PERSONS_LIST_UPDATE ON PERSONS_LIST;
CREATERULE PERSONS_LIST_UPDATE AS ON UPDATE TO PERSONS_LIST
DOINSTEAD
UPDATEPERSONS SET PERSON_ID = NEW.PERSON_ID
NAME= NEW.NAME, SEX = NEW.SEX, BIRTHDAY = NEW.BIRTHDAY
SPOT_CONF= L.ACCESS_LEVEL
FROMPG_GROUP G, PG_USER U, GROUPS_ACCESS_LEVEL L
WHERE
PERSON_ID= OLD.PERSON_ID AND
SPOT_CONF= L.ACCESS_LEVEL AND
U.USENAME= CURRENT_USER AND
U.USESYSID= ANY (G.GROLIST) AND
L.GROUP_NAME= G.GRONAME;
GRANTUPDATE ON PERSONS_LIST TO GROUP USERS.
4.        Реалізація елементів гарантованості
Длястворення резервної копії бази даних СКБД Postgres слід виконати команду:
pg_dumpmy_database –f my_database_15.05.2008.dump
Шифруваннядампу виконується за допомогою бібліотеки openssl алгоритмом DES:
opensslenc –e –des-cbc –iv smart_initial_value –k very_good_long_key –inmy_database_15.05.2008.dump –out my_database_15.05.2008.dump.arh
Розшифруванняархівної копії:
opensslenc –d –des-cbc –iv smart_initial_value –k very_good_long_key –in my_database_15.05.2008.dump.arh–out my_database_15.05.2008.dump
Завантаження інформації з дампу до базиданих:
psql
5.        Реалізаціяелементів Підзвітності
a.         Забезпечення надійності з’єднання
Длягенерації сертифікатів центру сертифікації виконаємо наступну команду:
opensslreq –config $SSLDIR$/openssl.cnf –new –x509 –nodes –days 1000 –sha1 rsa:1024  –keyout$SSLDIR$/private/ca.key –out $SSLDIR$/ca.crt –subj‘/C=UA/ST=OdessaRegion/L=Odessa/O=ONPU/OU=CISN/CN=www.ae035.com.ua’
Длягенерації сертифікатів клієнтів виконаємо наступну команду:
opensslreq –new –sha1 –newkey rsa:1024 –nodes –keyout server.key –out request.pem–subj ‘/O=ONPU/OU=CISN/CN=www.ae035.com.ua’
Ікоманда підписання сертифікату:
openssl ca–config $SSLDIR$/openssl.cnf –policy policy_anything -noemailDN -out$SSLDIR/requests/signed.pem -infiles $SSLDIR/requests/request.pem
b.        Забезпечення журналювання змін
Длязабезпечення журналювання змін інформації в таблицях для кожної з нихстворюється таблиця-журнал та правила для операцій зміни:
CREATE TABLE Account_logs (
USERNAME VARCHAR DEFAULT CURRENT_USER,
OPER_TYPECHAR(1) CHECK (OPER_TYPE IN('I','U','D')),
OPER_TIMETIMESTAMP DEFAULT NOW(),
num_new INTEGER,
num_old INTEGER,
balance_new INTEGER,
balance_old INTEGER);
CREATE TABLE Operation_logs (
USERNAME VARCHAR DEFAULT CURRENT_USER,
OPER_TYPECHAR(1) CHECK (OPER_TYPE IN('I','U','D')),
OPER_TIMETIMESTAMP DEFAULT NOW(),
code_new INTEGER,
code_old INTEGER,
dat_new DATE,
dat_old DATE
credit_num_new INTEGER,
credit_num _old INTEGER
debet_num _new INTEGER,
debet_num _old INTEGER
change_new INTEGER,
change _old INTEGER);
CREATE TABLE Branch_logs (
USERNAME VARCHAR DEFAULT CURRENT_USER,
OPER_TYPECHAR(1) CHECK (OPER_TYPE IN('I','U','D')),
OPER_TIMETIMESTAMP DEFAULT NOW(),
num_new INTEGER,
num_old INTEGER,
name_new VARCHAR(50),
name_old VARCHAR(50),
address_new VARCHAR(50),
address_old VARCHAR(50),
capital_new INTEGER,
capital_old INTEGER);
DROP RULE Account_logs _INSERT ON Account;
CREATE RULE Account_logs _INSERT AS ONINSERT TO Account
DO
INSERT INTO Account_logs
(OPER_TYPE, num_new ,balance_new )
VALUES('I', NEW.num, NEW.balance);
DROP RULE Account_logs _UPDATE ONAccount;
CREATE RULE Account_logs _ UPDATE AS ONUPDATE TO Account
DO
INSERT INTO Account_logs
(OPER_TYPE, num_new ,balance_new,num_old, balance_old)
VALUES('U', NEW.num, NEW.balance, OLD.num, OLD.balance);
DROP RULE Account_logs _DELETE ON Account;
CREATE RULE Account_logs _DELETE AS ONDELETE TO Account
DO
INSERT INTO Account_logs
(OPER_TYPE, num_old ,balance_old,)
VALUES('D', OLD.num, OLD.balance);
DROP RULE Operation_logs _INSERT ON Operation;
CREATE RULE Operation_logs _INSERT AS ONINSERT TO Operation
DO
INSERT INTO Operation_logs
(OPER_TYPE, code_new ,dat_new,credit_num_new, debet_num_new, change_new )
VALUES('I', NEW.code, NEW.dat, NEW.credit-num, NEW.debet_num, NEW.change);
DROP RULE Operation_logs _UPDATE ON Operation;
CREATE RULE Account_logs _ UPDATE AS ONUPDATE TO Operation
DO
INSERT INTO Operation_logs
(OPER_TYPE, code_new ,dat_new,credit_num_new, debet_num_new, change_new,
code_old, dat_old, credit_num_old, debet_num_old,change_old)
VALUES('U', NEW.code, NEW.dat, NEW.credit_num, NEW.debet_num, NEW.change,
OLD.code,OLD.dat, OLD.credit_num, OLD.debet_num, OLD.change);
DROP RULE Operation_logs _DELETE ON Operation;
CREATE RULE Operation_logs _DELETE AS ONDELETE TO Operation
DO
INSERT INTO Operation_logs
(OPER_TYPE, code_old ,dat_old, credit_num_old,debet_num_old, change_old)
VALUES('D', OLD.code, OLD.dat, OLD.credit_num, OLD. debet_num, OLD.change);
DROP RULE Branch_logs _INSERT ON Branch;
CREATE RULE Account_logs _INSERT AS ONINSERT TO Branch
DO
INSERT INTO Branch_logs
(OPER_TYPE, num_new ,name_new,address_new, capital_new )
VALUES('I', NEW.num, NEW.name, NEW.address, NEW. capital);
DROP RULE Branch_logs _UPDATE ON Branch;
CREATE RULE Account_logs _ UPDATE AS ONUPDATE TO Branch
DO
INSERT INTO Branch_logs
(OPER_TYPE, num_new ,name_new, address_new,capital_new,
 num_old ,name_ old,address_ old, capital_ old )
VALUES('U', NEW.num, NEW.name, NEW.address, NEW.capital,
OLD.num,OLD.name, OLD.address, OLD.capital);
DROP RULE Branch_logs _DELETE ON Branch;
CREATE RULE Branch_logs _DELETE AS ON DELETETO Branch
DO
INSERT INTO Branch_logs
(OPER_TYPE, num_old ,name_old,address_old, capital_old)
VALUES('D', OLD.num, OLD.name, OLD.address, OLD.capital);

/>Заключення
Вданій роботі проведено проектування та реалізація БД у СКБД Postgres. Реалізованінаступні елементи безпеки ІС:
-           цілісність даних на рівні таблиць, перевірка їх коректності;
-           облік користувачів, груп користувачів та їх прав, рівнісекретності, контроль доступу до таблиць;
-           організація захищеного з’єднання з СКБД за допомогою протоколу SSL;
-           організація журналювання змін таблиць засобами самої СКБД.

/>Перелік літератури
1.  Грабер М. SQL. – М: Лори, 2003. – 642с.
2.  Дейт К. Дж. Введение всистемы баз данных. – К: Диалектика, 1998. – 784 с.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Влияние алкоголя, никотина и наркотических веществ на развитие личности и состояния здоровья
Реферат Исполнители: И. М. Жилявичюс (руководитель темы), Л. Г. Кушнерева, Л. С. Хлынцева, Р. О. Борк, Л. Н. Притула, М. А. Подольный, С. Ф. Сандлер, А. А. Гуцол, Ю. В. Цветков, М. В
Реферат Логіка як наука минуле і сучасність
Реферат Возрастные изменения ассоциативных связей (на материале полей «простой», «легкий», «трудный», «тяжелый», «сложный»)
Реферат Администрация муниципального образования кувандыкский район оренбургской области постановление
Реферат Экзотизмы в русском языке
Реферат Национальная инновационная система как ключевой элемент развития экономики России
Реферат Анализ хозяйственной деятельности потребительского общества Батыревского района
Реферат Ходжаев, Усман
Реферат Аналіз регуляторного впливу до проекту постанови Кабінету Міністрів України “Про внесення змін до постанови Кабінету Міністрів України від 9 червня 2011 №641”
Реферат Экологически чистая технология термо- диффузионного цинкования на ООО «НПО «Защита металлов»
Реферат Толстой Камни
Реферат Генезис теоретичних знань у класичній науці
Реферат Тема двойничества в романе Ивлина Во
Реферат Статистика миграции населения