Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САМАЯ ОСНОВНАЯ ЧАСТЬ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
828.63 Кб
Скачать

Вступ

Триваюче бурхливий розвиток комп'ютерних технологій і повсюдне впровадження в бізнес з використанням Інтернету докорінно змінює усталені способи ведення бізнесу. Системи корпоративної безпеки, що забезпечують бізнес, теж не можуть залишатися осторонь.

Про актуальність даної теми, говорить те, що засоби електронної пошти, використовуються не тільки для спілкування між людьми, а для передачі контрактів та конфіденційної фінансової інформації. Web сервера використовуються не тільки для рекламних цілей, а й для розповсюдження програмного забезпечення та електронної комерції. Електронна пошта, доступ до Web сервера, електронна комерція, VPN вимагають застосування додаткових засобів для забезпечення конфіденційності, аутентифікації, контролю доступу, цілісності та ідентифікації. В даний час в якості таких засобів повсюдно використовуються засоби криптографічного захисту системи керування цифровими сертифікатами.

Система керування цифровими сертифікатами допомагає налагодити видачу цифрових сертифікатів, необхідних для підтвердження особистості.

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

1 Аналітичний огляд

    1. Призначення системи

Головні цілі даної системи – спрощення роботи по випуску цифрових сертифікатів для спеціалізованих організацій, які в свою чергу мають діло з:

  • Шифруванням

  • Створенням цифрового підпису

  • Перевірка справжності користувача Інтернет

  • Захист електроної пошти

Для якісного виконання даних умов, дана система повинна бути раелізована у веб-додатку, який буде виконаний по триланковій архитектурі веб-сервер - веб-служба - БД. Логіка керування цифровими сертифікатами зосереджується на веб-службі, а саме відображення інформації на веб-сервері.

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

Система повинна обробляти запит користувача на отримання сертифіката, та видавати його, якщо адміністратор системи це підтвердить. Також система повина зберігати інформацію про користувачів та сертифікати у БД.

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

У даний час існує немаленька кількість центрів сертифікації з різними функіями. Вибір необхідного центру залежить від функцій, які користувач хоче отримати.

1.2. Функції системи

Визначимо завдання, які стоять перед користувачем даної системи:

  • Формування запиту на сертифікат

  • Обробка запиту на сертифікат

  • Видача сертифіката користувачу

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

Було прийнято рішення з'єднати компоненти цієї системи з готовим рішенням описаних іншою людиною (організацією), який надає готовий хостинг з веб-сервером. Природно, нам необхідно буде-де зберігати наші дані, які ми буде обробляти в процесі формування сертифіката і запита на нього. Тут нам допоможе База даних.

Однак база даних є лише засобом представлення структур даних і маніпулювання ними. Концепція баз даних припускає використання інтегрованих засобів зберігання інформації, що дозволяють забезпечити централізоване керування даними та обслуговування ними багатьох користувачів. При цьому БД повинна підтримуватися в середовищі ЕОМ єдиним програмним забезпеченням, званим системою управління базами даних. Основні функції СУБД, яким вона повинна відповідати:

• управління даними в оперативній пам'яті з використанням дискового кеша

• журнализация змін, резервне копіювання і відновлення бази даних після збоїв

• підтримка мов БД (мова визначення даних, мова маніпулювання даними)

1.3. Висновки

У процесі підготовки першої глави дипломного проекту було розглянуто багато теоретичних джерел стосовно цифрових сертифікатів, та центрів сертифікації. Хоча, всі центри сертифікації достатньо різні між собою, основні функції у них однакові, наприклад :

  • Формування запиту на сертифікат

  • Обробка запиту на сертифікат

  • Видача сертифіката користувачу

Отож, головною ціллю свого дипломного проекту є розробка системи керування цифровими сертифікатами, котрий буде видавати цифровий сертифікат на підставі даних получених з серверу.

2. Техническое предложение

2.1 Обзор существующих систем

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

Міжбанківський акредитований центр сертифікації ключів – це уряд метою якого є надання послуг електронного цифрового підпису органам державної влади, органам місцевого самоврядування, підприємствам, установам та організаціям всіх форм власності, іншим суб'єктам господарської діяльності та фізичним особам.

А лгоритм надання електронного фифрового підпису можно побачити на малюнку нижче.

Рис 1.1. – Алгоритм надання полсуги ЕЦП

Недоліки :

  1. Технологічна несумність АЦСК (Акредитованого центру сертифікації ключів)

  2. Низький рівень захисту особистих ключів

  3. Складність інтеграції засобів ЕЦП (Електронно цифрового підпису) в автоматизовані банківські системи (АБС) та системи електроного документообігу (СЕДО)

Переваги:

  1. Економія банками коштів, необхідних для обслуговування посилених сертифікатів ЕЦП для власних потреб (на 1-2 порядки)

  2. Зменшення витрат банків при запровадження електронного документообігу з державними структурами (ДСА, ДВС, ДПА, ПФУ, ПВБКІ, ДМСУ, Мінюст, МВС, МТССБУ тощо)

  3. Прискорене впровадження надійних засобів ЕЦП в АБС та правил посиленох сертифікації в діяльності банку[1].

Акредитований центр сертифікації ключів «ІВК»

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

В якості носіїв ключової інформації абонентів можуть використовуватися:

  1. з’ємні диски (гнучкі диски 3,5”, електронні диски із внутрішнім ПЗП (flash-диски) та інші);

  2. компакт-диски (CD-R, CD-RW та інші);

Акредитований центр сертифікації ключів компанії "ІВК" побудовано на сучасній апаратно-програмній платформі. Це забезпечує клієнтам широкий спектр можливостей при роботі з електронним цифровим підписом, зокрема:

Переваги:

  1. автоматичне формування позначки часу

  2. обробка запитів на формування та скасування сертифікатів в режимі реального часу

  3. оn-line доступ до сертифікатів та їх статусів

  4. можливість самостійного блокування сертифіката клієнтом.

Недоліки :

  1. Можлива висока ціна

  2. Необхідність постійно оновлювати сертифікат після того, як мине термін дії сертифіката

  3. Можливість втратити носій ключів[2].

Акредитований центр сертифікації ключів “Masterkey”

Акредитований центр сертифікації ключів (АЦСК) «MASTERKEY» є сервіс-провайдером Електронного цифрового підпису (ЕЦП). Займається обслуговуванням клієнтів, надаючи повний комплекс послуг, пов'язаних з використанням ЕЦП.

На підтвердження компетентності, центр сертифікації ключів «MASTERKEY» пройшов акредитацію в Центральному засвідчувальному органі, отримав свідоцтво, що дозволяє надавати послуги ЕЦП підприємствам усіх форм власності та фізичним особам з можливістю видавати посилені Сертифікати.

Одним з основних завдань ЕЦП є спрощення обміну документацією з державними установами. Слід зазначити, що державні установи, згідно законодавству України, зобов'язані працювати виключно з посиленими сертифікатами відкритих ключів, тобто такими, які видаються акредитованими Центрами сертифікації ключів, і формуються з використанням надійних засобів ЕЦП, що регламентуються законодавством України.

Переваги:

1. Реєстрація Клієнтів.

2. Генерація ключів ЕЦП, формування посилених Сертифікатів.

3. Надання програмного забезпечення для використання ЕЦП і для криптографічного захисту електронних документів.

4. Надання послуги блокування, відновлення і скасування посилених Сертифікатів Клієнтів АЦСК «MASTERKEY».

5. Публікація списків блокованих, відновлених і скасованих посилених Сертифікатів Клієнтів на сайті АЦСК «MASTERKEY».

6. Надання послуги формування відмітки точного часу.

7. Підтвердження достовірності ЕЦП електронних документів.

Недоліки :

  1. Низький рівень захисту особистих ключів

  2. Необхідність постійно оновлювати сертифікат після того, як мине термін дії сертифіката

  3. Технологічна несумність АЦСК (Акредитованого центру сертифікації ключів)[3].

2.2 Выбор метода решения проблемы

Виходячи з недоліків і переваг вищеперелічених і краткоопісаних систем, я хочу запропонувати вирішення проблеми, шляхом, виконати систему керування цифровими сертифікатами, яка складається з :

  1. Веб-сервер (надаваний власником хостингу)

  2. База даних

  3. Веб-служба

Кожному з елементів системи потрібно скласти вимоги, які зроблять систему конкурентно-спроможною та поставлять її в один ряд з іншими системами такого ж типу і функціоналу. Таку систему можна буде використовувати в реальних компаніях і організаціях, не боячись за якість та зручність.

Також треба вирішити деякі питання зв’язані з базою даних :

  1. На які таблиці можно розбити дані, що підлягають зберіганню у базі даних

  2. Яке ім’я можно привласнити кожній таблиці

  3. Які найцікавіші характеристики (з точки зору користувача) можно виділити?

  4. Які імена можна приивласнити обраним характеристикам

Правильна структура бази даних є основою для створення ефективної бази даних. База даних має відповідати вимогам тих, хто безпосередньо з нею працювати. Для цього потрібно визначити теми, які повинна покривати база даних, звіти, які вона має видавати, проаналізувати форми, які зараз використовуються для запису даних, порівняти створювану базу даних із добре спроектованої, подібною їй базою.

Для нашого завдання буде достатньо наступних таблиць:

Сертифікати – найбільша таблиця, в неї входить більшість інформації, так як вона зв’язна з багатьма іншими таблицями (користувачі, компанії)

    1. Користувачі – список користуваччів, ім’я, пароль та т.п.

    2. Компанії – список компаній

    3. Типи користувачів – список типів користувачів

Також треба подбати про підтриманність коду. Іншим спеціалістам, які будуть працювати з ціїю системою необхідго знати як вона построєна та працює. Кожна змінна названа непонятним ім’ям може прибавити деякий час при пошуках багів та помилок.

    1. Висновки

У процесі підготовки другої глави дипломного проекту було розглянуто багато джерел стосовно різних центрів сертифікації, їх переваги, недоліки та принципи дії та послуги, які вони надають. Також, у данній главі було запропоновано рішення проблеми. Створення системи керуваня цифровими сертифікатами з основними функціями. Були представлені вимоги, які стають перед системою та її компонентами.

  1. Эскизный проект

    1. Разработка структурной схемы системы

Рис 3.1 Функціональна схема

Шар веб-серверу

Самий верхній рівень додатку з інтерфейсом користувача. Головна функція інтерфейсу уявленнязадач та результатів зрозумілих користувачу.

Шар веб-служби

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

Шар даних

Тут зберігається та витягується інформація з бази даних та файлової системи. Інформація відправляється у шар веб-служби для обробки, та у кінці вертається користувачу.

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

Одною з важливих гілок роботи – було налаштування серверу OpenSSL через бібліотеку OpenSSL.

Рис. 3.2 Файл налаштувань центру сертифікації.

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

Немало важливим моментом є те, що майже кожна функція має обробку помилок, для уникнення неприятних моментів для користувача.

    1. Вибір мови програмування

У данній дипломній роботі я намагаюся використовувати мову програмування C#, розбробленої компанією Microsoft.

Головною особливістю мови C # є її орієнтованість на платформу Microsoft .NET - Творці C# ставили своєю метою надання розробникам природних засобів доступу до всіх можливостей платформи .NET. Мабуть, це рішення можна вважати більш-менш вимушеним, оскільки платформа .NET спочатку пропонувала значно більшу функціональність, ніж будь-яка з існуючих на той момент мов програмування.

Одними з перевагами мови C# є :

  1. Заборона прямої маніпуляції пам'яттю

  2. Більш строгі правила перетворення типів

  3. Відмова від провалу в наступну гілку в switch

  4. Заборона множинного спадкоємства

C # має стиль С синтаксису (для керуючих конструкцій, блоків коду, описи сигнатури методів та ін.). Багато спільного з Java (відсутність множинного спадкоємства і шаблонів, наявність збирача сміття) і Делфі (орієнтованість на створення компонент), в той же час має і свій колорит.

Тобто навчитись програмувати на C# може програміст, який раніше писав на мовах, які були згадані вище. Мається наувазі – це можна зробити легче, чим тим, хто раніше не писав програми.

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

C# об'єктно-орієнтована мова, як і вся платформа .NET. Більш того, це мова, орієнтована на написання компонент. C# створений для програмування в керованому середовищі з присутнім складальником сміття, але дозволяє писати і некерований (unmanaged) код.

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

При створенні мови розглядалася не тільки простота написання додатків, але і їх підтримки - у зв'язку з чим в мову включили підтримку XML коментарів і контролю версій. Справжній подарунок для програмістів.

Крім збирача сміття та безпеки роботи з типами для уникнення помилок в мові також застосовується автоматична ініціалізація змінних. Всі типи, які розміщуються в стеку (value types, до яких відносяться примітивні типи, структури та інші спадкоємці класу ValueType) ініциалізуються нулями. Об'єкти інших типів розміщуються в купі, доступ до них здійснюється по об'єктної посиланням, і посилання ці инициализируются в значення null (яка говорить, що це посилання не має асоційованого об'єкта в купі).

У C # представлена ​​концепція просторів імен, аналогічна пакетам в Java. Це дозволяє ієрархічно структурувати Вашу систему типів, роблячи код набагато більш зрозумілим і дозволяючи уникнути проблем з ім'ям. Ви можете розглядати простору імен як директорії, а мовні типи як файли в цих директоріях.

До переваг C# також можна віднести :

C# дозволяє використовувати при розробці парадигму атрибутивного програмування, коли в компіляційних модулях разом з типом може зберігатися мета-інформація. Дана інформація згодом може бути отримана і використана під час виконання. Більше того, цією інформацією може скористатися компілятор або, скажімо, дизайнер, що дозволяє, не запускаючи компонент, отримувати інформацію про нього.

Робота з атрибутів дозволяє використовувати COM, COM + і DLL в C# додатках, що працюють в середовищі .NET.

Перерахування дозволяють захистити роботу з перераховуванними типами.

Реалізація структур як типів, робота з якими йде за значенням, укупі з можливістю використовувати не тільки вкладені масиви (як в Java), а й багатовимірні, дозволяє оптимізувати продуктивність додатків[4].

Обов’язково треба сказати про кращу середу розробки для цієї мови від компанії, яка створила цю мову - Visual Studio.

Microsoft Visual Studio - лінійка продуктів компанії Microsoft, що включають інтегроване середовище розробки програмного забезпечення і ряд інших інструментальних засобів. Дані продукти дозволяють розробляти як консольні додатки, так і додатки з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, а також веб-сайти, веб-додатки, веб-служби як в рідному, так і в керованому кодах для всіх платформ, підтримуваних Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework і Silverlight.

Visual Studio включає в себе редактор вихідного коду з підтримкою технології IntelliSense і можливістю найпростішого рефакторінга коду. Вбудований відладчик може працювати як відладчик рівня вихідного коду, так і як відладчик машинного рівня. Решта вбудованих інструментів включають в себе редактор форм для спрощення створення графічного інтерфейсу додатку, веб-редактор, дизайнер класів і дизайнер схеми бази даних. Visual Studio дозволяє створювати і підключати сторонні додатки (плагіни) для розширення функціональності практично на кожному рівні, включаючи додавання підтримки систем контролю версій вихідного коду (як, наприклад, Subversion і Visual SourceSafe), додавання нових наборів інструментів (наприклад, для редагування і візуального проектування коду на предметно-орієнтованих мовах програмування) або інструментів для інших аспектів процесу розробки програмного забезпечення (наприклад, клієнт Team Explorer для роботи з Team Foundation Server)[5].

    1. Вибір системи керування базами даних

Як інструмент побудови бази даних спочатку планувалося використовувати Microsoft Access. З самого початку цю СУБД відрізняла простота використання в поєднанні з широкими можливостями з розробки закінчених додатків.

Але мій вибір пав на Базу даних Oracle, до якою ми будем підключатися та створювати свої таблиці.

Дана СУБД Oracle Database XE – вважається однією з кращих (як вважають багато спеціалістів), також вона безкоштовна для розробки, розгортання та продажу, швидко скачується і проста в адмініструванні.

Oracle - це найбільша в світі компанія з розробки програмного забезпечення для підприємств. Спеціалізація Oracle є розробка систем управління базами даних, таких як Oracle Database, а також інших бізнес-додатків.

Oracle Database - це об'єктно-реляційна система управління базами даних (RDBMS або Relational DataBase Management System). Багато найбільших компаній світу в якості бази даних вибирають саме Oracle Database.

У 2013 році вийшла версія 12c, де “c” означає cloud (хмара).

Дана СУБД підтримує багато платформ, наприклад: Linux x86, Linux x86-64, як 32 розрядні Windows так і 64, Solaris x86, Solaris SPARC (64-біт), Mac OS X Server і ще багато інших.

В Oracle Database використовується мова програмування PL / SQL (Procedural Language / Structured Query Language) це розширення мови SQL яке розробила компанія Oracle. Наприклад, також компанія Microsoft для своєї СУБД розробила мову Transact-SQL.

Безкоштовний Інтернет-форум для зареєстрованих користувачів

Всі зареєстровані користувачі Oracle Database XE отримують ексклюзивний доступ до Інтернет-форуму, уважно відстежуємий Oracle-експертами, в число яких входить і «зірка» і постійний автор Oracle Том Кайт (Tom Kyte), що є ведучим популярної рубрики «Запитуйте Тома» («Ask Tom »). Доступний в режимі он-лайн в рамках Oracle Technology Network (OTN) форум включає в себе відповіді на типові запитання, дискусії, «історії успіху», рішення проблем, поради та багато іншого.

Форум - це основний спосіб зворотного зв'язку з командою підтримки Oracle Database XE і єдина доступна форма підтримки по Oracle Database XE. Для отримання традиційної платної технічної підтримки користувачі повинні провести оновлення до Oracle Standard Edition One, Standard Edition або Enterprise Edition.

Oracle Database XE - чудовий стартовий СУБД для:

  • Розробників, що працюють з PHP, Java, .NET, XML і додатками з відкритим кодом

  • Адміністраторів баз даних, яким потрібна невелика безкоштовна СУБД

  • Незалежних вендорів, які хочуть безкоштовну СУБД стартового рівня для продажу без зайвих витрат

  • Навчальних закладів і студентів, яким необхідна безкоштовна СУБД

За допомогою Oracle Database XE можна розробляти і впроваджувати додатки з потужною інфраструктурою, а коли необхідно - оновлювати систему без дорогих складних міграцій.

Oracle Database XE – це одна з найкращих СКБД з кращою підтримкою, да дуже зручним інфтерфейсом, та одною з кращих причин обрати саме її – безкоштовна поставка[6].

    1. Висновки

У третьому розділі даного дипломного проекту були приведені огляди обраних мови програмування і системи управління базами даних, причини такого рішення були аргументовано описані в кожній з під глав. Також була представлена функціональна схема всієї системи і описаний загальний алгоритм роботи і приведені кожен з елементів системи.

4. Технічний проект

4.1 Розробка бази даних

4.1.1. Розробка інфологічної моделі предметної області

Інфологічна модель БД наглядно демонструє сутності, склад сутностей, ключі сутностей, та зв’язки між сутностями, що у свою чергу, розкриє БД більш детально та зрозуміло. Це детально показано на рис. 4.1.

І нфологічна модель є моделлю даних типу «сутність-зв’язок». Саме з цієї сутності у подальшому можуть з’явитись такі моделі даних, як ієрархічна, мережна або ж, взята за основу даної роботи – реляційна. Також, інфологічна модель даних має за мету отримання концепції створюваної БД, що відобразить обрану предметну область.

Рис. 4.1 – Інфологічна модель БД

До складу інфологічної моделі увійшло 6 сутностей та 6 зв’язків між ними.

Сутності відображають структуру майбутньої БД системи управління малим підприємством.

  1. Сутність «Сертифікати» – містить інформацію про сертифікат, який зв’язан з окремим користувачем ;

  2. Сутність «Клієнти» – містить особисту інформацію про клієнта, його належність до компанії, та особистого типу;

  3. Сутність «Компанії» – містить інформацію зареєстровані компанії в системі;

  4. Сутність «Типи користувачів компанії» – включає в себе дані про типи користувачів (адміністратор, менеджер, користувач)

Зв’язки, які були використані в даній дипломній роботі, мають типи:

  • 1:1 – зв’язок «один-до-одного»;

  • N:1 – зв’язок «багато-до-одного»;

Розглянемо на прикладі спроектованих сутностей декілька зв’язків. Зв’язок «один-до-одного» застосовано між сутностями «Сертифікати» – «Користувачі». Він передбачає, що один користувач може мати один сертифікат.

Зв’язок «багато-до-одного» використовується у випадку між сутностями «Користувачі» - «Тип користувачів компанії». Цей тип зв’язку означає – багато клієнтів можуть належати до одного типу.

4.1.2 Перетворення інфологічної моделі в логічну модель

Після проектування інфологічної моделі БД, потрібно перетворити її у зрозумілий формат. У нашому випадку була обрана реляційна БД. Кожній розглянутій сутності ставиться у відповідність певна таблиця реляційної бази даних. Кожен з атрибутів сутностей інфологічної моделі перетворюється в поле відповідної таблиці бази даних, тобто формує стовпець таблиці.

Для організації зв’язку між таблицями реляційної бази даних у відповідності із розробленими зв’язками між сутностями інфологічної моделі та їхніми типами в деякі таблиці додається поле так званого зовнішнього ключа.

Перетворення можна здійснити декількома методами:

  1. Ручне перетворення інфологічної моделі предметної області в схему бази даних, яке виконується відповідно до методик, що досить чітко обговорюють всі етапи такого перетворення;

  2. Автоматизована компіляція інфологічної моделі предметної області в схему бази даних, найчастіше реляційну. Це можливо за допомогою спеціалізованих програмних пакетів, які мають зв’язок з певною СКБД;

  3. Безпосередня робота з базою даних у семантичній моделі, тобто застосування систем управління базами даних, заснованих на семантичних моделях даних.

Найзручнішим та більш швидким засобом перетворення інфологічної моделі в логічну буде використання спеціалізованого автоматизованого пакету моделювання для БД. Але, оскільки в рамках дипломної роботи була обрана система керування цифровими сертифікатами, яка не буде являтись великою за обсягом, то доречно проробити ручне перетворення інфологічної моделі у логічну.

4.1.3 Розробка структури таблиць бази даних

Сформувавши інфологічну та логічну моделі БД системи керування цифровими сертифікатами, розробимо структуру БД, створимо усі потрібні атрибути, зв’яжемо таблиці між собою, у відповідності з інфологічною моделлю. Інформаційна модель зображена на рисунку 4.2.

Рис. 4.2 – Інформаційна модель

Згідно інформаційної моделі, програма буде взаємодіяти з сутностями, переліченими в таблиці 4.1.

Таблиця 4.1 – Перелік сутностей системи

Сутність

Опис

CompanyUserCertificates

містить інформацію про сертифікат користувача

CompanyUser

містить особисту інформацію про користувачів

Companies

містить інформацію про компанії

CompanyUserTypes

містить інформацію про типи користувачів

Кожна сутність несе в собі набір атрибутів, для зберігання щонайповнішого набіру даних про себе. Перелік атрибутів кожної сутності та їх типи даних наведено в таблиці 4.2.

Таблиця 4.2 – Атрибути сутностей та їх типи даних

Сутність

Атрибут

Тип даних

CompanyUserCertificates

ID_Cert

Символьний(20), ключове поле

ID_User

Символьний(20), зовнішній ключ

ID_Company

Символьний(5), зовнішній ключ

Dat

Дата

DataReqFile

Символьний (великий)

DataFile

Символьний (великий)

Received

Числовий

CompanyUser

ID_ User

Символьний(20), ключове поле

ID_Company

Символьний(5), зовнішній ключ

ID_Type

Числовий(2), зовнішній ключ

Name

Символьний(250)

Email

Символьний(250)

Password

Символьний(20)

Active

Числовий(1)

RegDate

Дата

CloseDate

Дата

Memo

Символьний(4000)

Companies

ID_Company

Символьний(5), ключове поле

Name

Символьний(250)

Memo

Символьний(4000)

CompanyUserTypes

ID_Type

Числовий(2), ключове поле

ID_Company

Символьний(5), зовнішній ключ

Name

Символьний(250)

Memo

Символьний(4000)

Таблиця 4.3 – Перелік зв’язків між сутностями

Сутність 1

Тип зв’язку

Сутність 2

CompanyUserCertificates

1:1

CompanyUser

CompanyUserCertificates

N:1

Companies

CompanyUser

N:1

Companies

CompanyUser

N:1

CompanyUserTypes

CompanyUserTypes

N:1

Companies

      1. Створення таблиць в БД для зберігання даних

CREATE TABLE companyusertypes ();

Наведемо приклад деяких запитів до зробленої базі даних:

Створювання таблиці COMPANYUSERCERTIFICATES з її основними полями

CREATE TABLE COMPANYUSERCERTIFICATES

(id_cert varchar2(20) PRIMARY KEY,

dat date,

datareqfile clob,

datafile clob,

received int);

Створювання таблиці COMPANYUSER з її основними полями

CREATE TABLE "COMPANYUSER" (таблиця користувачів

    "id_user" varchar2(20) NOT NULL PRIMARY KEY, первинний ключ

    "Name" varchar2(250) NOT NULL, ім'я користувача

    "Email" varchar2(250) NOT NULL, електронна адреса

    "Password" varchar2(20) NOT NULL, пароль користувача

    "Active" number(1) NOT NULL, статус користувача

    "Regdate" date NOT NULL, дата реєстрації

    "Closedate" date NOT NULL, дата закриття користувача

    "Memo" varchar2(4000) NOT NULL, коментарії

Створювання таблиці COMPANYUSERCERTIFICATES з її основними полями

CREATE TABLE "COMPANYUSERCERTIFICATES" (таблиця сертифікатів

    "id_cert" varchar2(20) NOT NULL PRIMARY KEY, первинний ключ

    "Dat" date NOT NULL, дата створювання сертифіката

    "DataReqFile" clob NOT NULL, файл запиту на сертифікат

    "DataFile" clob NOT NULL, файл сертифікату

    "Received" number(1) NOT NULL, статус сертифікату

    

Отримуємо інформацію про 2-й тип користувачів:

SELECT * FROM companyusertypes WHERE id_type = 2

Отримуємо список всіх користувачів з n-ної компанії:

SELECT * FROM companyuser WHERE id_company = n

Фоміруємо новий тип для компанії P2 (компанія P2, тип 3, Охоронники, ""):

INSERT INTO companyusertypes (id_company, id_type, name) VALUES ("P2", "3", "Охоронники")

Додаємо i-того користувача до n-ного типу:

UPDATE companyusers SET id_type = n WHERE id_user = i

Отримуємо інформацію про i-ого користувача:

SELECT * FROM companyusers WHERE id = i

Отримуємо кількість учнів n-ного типу:

SELECT COUNT (*) AS count FROM companyusers WHERE id_type = n

Також, для кращого функціоналу, були написані та використані процедури, які будуть описані далі.

Процедура (stored procedure) - це програма, яка виконує деякі дії з інформацією в базі даних і при цьому сама зберігається в базі даних. В Oracle збережені процедури можна можна писати на мовах PL / SQL і Java.

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

База даних даноъ системи має такі процедури :

        1. UpdateCertificates – обнова сертифікату

        2. ViewCertificates - перегляд сертифікату

        3. DeleteCertificate - видалення сертифікату

        4. GetCertificate - отримання сертифікату

На цьому роботу над проектуванням бази даних ми закінчили. База даних створена.

    1. Розробка програми

Р озробка нашої системи буде проводитись за допомогою мови C# та бібліотеки OpenSSL. Веб-служба це декілька класів, які описують методи(функції), змінні, властивості.

Рис. 4.2 – Алгоритм системи

Після авторизації користувача на сервері, сервер генерує певне меню для користувача щодо його ролі. Меню включає пункт запиту на сертіфікікат. При виклику клієнтом сторінки запиту на сертифікат, клієнтові передається файл сторінки за допомогою якого, клієнт формує запит на сертифікат на своїй стороні. Після чого готовий запит на сертифікат методом POST повертається на веб сервер, веб сервер кожен запит передає на веб службу разом з такими параметрами як: логін, пароль, запит, термін дії.

Веб служба обробляє запит, фіксує в БД запит на сертифікат і сформований сертфікат а також передає сформований сертифікат назад на веб сервер.

public string SignRequestCertificateN(string pLogin, string pPassword, string p_strReq, int cntDays = 365)

{

string strReq = base64Decode(p_strReq);

PasswordGenerator pwdGen = new PasswordGenerator();

string strUnn = pwdGen.Generate();

4.2.1. Розробка функції SignRequestCertificateN

Функція формування сертифікату, приймає чотири параметра від веб-серверу а саме : логін, пароль, запит, термін дії. Для передачі файлу по HTTP протоколу його необідно перетворити у base64, а потім знову перетворити назад до початкового стану, для цього ми перетворюємо наш запит у UTF8. Далі для уникнення конфліктів імен файлів, є необзідним генерювати унікалні імена файлів.

PasswordGenerator pwdGen = new PasswordGenerator();

string strUnn = pwdGen.Generate();

Визначаємо константи імен файлів запиту на сертифікат, файлу сертифікату, файлу конфігурації, та файлу openssl.

Для уніфікації формату повернення даних, ми формуємо шляхом створення таблиць (Dataset) та наступного перетворення в xml послідовність.

XML(англ. eXtensible Markup Language - розширювана мова розмітки) - це універсальний, що не залежить від платформи мова розмітки, який можна використовувати для представлення ієрархічних даних та уніфікації переданої інформації.

Через те що, веб-сервер з’єднується з веб-службою через SOAP протокол, а він підтримує XML, ми винні перетворювати dataset у xml. Тому, у даній системи, ми розробили метод перетворення Dataset у XML.

DataSet – це об’єкт ADO .NET, який знаходиться у пам’яті, використовуваний в додатку для представлення даних; він визначає узгоджену реляційну модель бази даних, яка не залежить від джерела його даних. Ступінь повноти моделі визначається завданнями, які вирішує додаток.

Об'єкт DataSet може представляти абсолютно точну модель бази даних, і в такому разі ця модель повинна буде включати повний набір структурних елементів бази даних, включаючи таблиці, що містять дані, з урахуванням встановлених обмежень і відносин між таблицями.

SOAP (від англ. Simple Object Access Protocol - простий протокол доступу до об'єктів) - протокол обміну структурованими повідомленнями в розподіленої обчислювальної середовищі.Зараз протокол використовується для обміну довільними повідомленнями у форматі XML.

SOAP може використовуватися з будь-яким протоколом прикладного рівня: SMTP, FTP, HTTP, HTTPS та ін. Однак його взаємодія з кожним із цих протоколів має свої особливості, які повинні бути визначені окремо. SOAP є одним із стандартів, на яких базуються технології веб-служб.

4.2.2. Розробка функції base64Decode

Н ижче представлений алгоритм роботи данної функції для наглядного уявлення.

Рис. – 4.2.2. Алгоритм функції base64Decode

З Рис. – 4.2.2. можно здогадатися, що функція досить проста.

private string base64Decode(string encodedData)

{

byte[] encodedDataAsBytes = System.Convert.FromBase64String(encodedData);

string returnValue = System.Text.UTF8Encoding.Default.GetString(encodedDataAsBytes);

return returnValue;

}

Робота метода починається з прийняття рядку для розшифрування з формату base64, який далі записується у масив байтів та конвертується у зручний для нас формат UTF8. У кінці всього ми вертаємо розшифрований рядок.

4.2.3. Розробка функції OracleProcedureExecute

Структура нашої системи складається з елементу веб-служби та бази даних, для того, щоб вони могли спілкуватися між собою, необхідно налагодити зв’язок між ними, для цього і служить функція OracleProcedureExecute.

Вона приймає ім’я процедури та параметри бази даних в одному рядку, для того щоб керувати цими даними, ми перетворюємо рядок в об’єкт ArrayList, де кожен елемент з нового рядка, як окремий елемент (список).

ArrayList arr = ParseParam(Proc); //

string sConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;

OracleConnection con = new OracleConnection(sConnectionString);

OracleCommand cmd = new OracleCommand(arr[0].ToString(), con);

OracleParameter oparam = cmd.Parameters.Add(arr[1].ToString(), OracleDbType.RefCursor);

oparam.Direction = ParameterDirection.InputOutput;

    1. Тестування твоєї системи на працездатність

Тестування буде проводитись через веб-сервер.Існує 3 типа користувачів : менеджер, адміністратор та користувач.

Адміністрато має усі функції : створення нових користувачів, створення запиту на сертифікат, продивлюватись списки існуєчих користувачів та ін.

Рис. 4.3.1 - Сторінка адміністратора

М енеджер має функції створювати нових користувачів.

Рис. 4.3.2 - Сторінка менеджера

Та сторінка користувача, яка нас і хвилює. Користувач має функцію тільки запиту на сертифікат.

Рис. 4.3.3 – Сторінка користувача

Якщо користувач визове функцію запиту на сертифікат, то виникне перехід на сторінку оформлення сертифікату, перше, що він побаче, це вікно з попередженням про його дії. Стандартна практика з сертифікатами.

Рис. 4.3.4 – Підтвердження дій користувача

Після підтвердження необхідно заповнити поля Email, Місто, Регіон – які будуть указані у сертифікаті. Також, необхідно обрати розмір ключа та помітити - “экспортируемый”, це дозволяє завантажити його собі на персональний компьютер. У кінці всього натиснути кнопку – Выдать.

Рис. 4.3.5 – Запит на сертифікат

П ісля закінчення операції на головній сторінці користувача з’явиться повідомлення.

Рис. 4.3.6 – Повідомлення про строверння сертифікату

Після того, як адміністратор підтверде видачу сертифікату конкретному користувачу через свою сторінку.

Рис. 4.3.7 – Підтвердження видачу сертифіката

Адміністратор отримує повідомлення про то, що сертифікат успішно сформований.

Рис. 4.3.8 – Повідомлення про створення сертифікату

Далі, користувачу треба знову зайти на свою сторінку, якщо він вийшов з неї, або просто оновити, та на головній сторінці він побачить ссилку на завантаження свого сертифікату.

Рис. 4.3.9. Завантаження готового сертифікату

У кінці всього, користувач отримує свій цифровий сертифікат.

Рис. 4.3.10 – Готовий цифровий сертифікат

4.4. Висновок

У четвертому розділі дипломного проекту були показані основні моменти розробки бази даних, створення таблиць, полів, показана інфологічна модель та інформаційна зі всіма зв’язками мі таблицями. Був описан основний алгоритм роботи веб-служби, приведений програмний код та описані принципи роботи кількох функцій. Було проведено тестування веб служби через веб-сервер. Були показаній усі моменти від запиту на сертифікат до його отримання.