Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6330| Title: | Дослідження двофакторної аутентифікації користувачів для захисту автоматизованих систем |
| Authors: | Міценко, Сергій Анатолійович Партицький, Олександр Володимирович |
| Issue Date: | Jan-2023 |
| Abstract: | Кваліфікаційна робота полягала у розробці та дослідженні алгоритму автентифікації користувачів інформаційно-комунікаційних систем на основі другого фактору. Метод двофакторної автентифікації створено на основі генерації одноразового пароля (другого фактору), який обчислюється з використанням вибраної тригонометричної функції посиленням захисту інформаційної системи. Проведено аналіз нормативно-правових актів з питань та проблем забезпечення інформаційної безпеки на тему дослідження. Здійснено аналіз відомих алгоритмів та протоколів двофакторної автентифікації, криптографічних алгоритмів та додатків для захисту інформації в інформаційній системі. Описано математичну модель системи захисту інформації при автентифікації користувача на основі генерації одноразового пароля. Розроблено алгоритм посилення засобів захисту в інформаційній системі. Проведені науково-дослідні роботи з розроблення та аналізу систем захисту інформації при ідентифікації та автентифікації користувача на основі двофакторної автентифікації спрямовані на вирішення завдань із забезпечення інформаційної безпеки. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6330 |
| Appears in Collections: | 174 Автоматизація, комп'ютерно-інтегровані технології та робототехніка (Автоматизація та комп'ютерно-інтегровані системи та компоненти) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| М_151_2022_Партицький.pdf Restricted Access | 1.02 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ КОМП’ЮТЕРНИХ
СИСТЕМ
Пояснювальна записка
до кваліфікаційної роботи
освітнього ступеню «магістр»
на тему: ДОСЛІДЖЕННЯ ДВОФАКТОРНОЇ АУТЕНТИФІКАЦІЇ
КОРИСТУВАЧІВ ДЛЯ ЗАХИСТУ АВТОМАТИЗОВАНИХ СИСТЕМ
Виконав: студент 2 курсу, групи МАКІТ-2109
спеціальності 151 Автоматизація та
комп’ютерно-інтегровані технології,
освітня програма «Комп’ютерно-
інтегровані технологічні процеси і
виробництва»
Партицький О.В.
(прізвище та ініціали)
Керівник Міценко С.А.
( прізвище та ініціали)
Рецензент
(прізвище та ініціали)
Черкаси 2022 року
2
ЗМІСТ
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ ........................................................................ 3
ВСТУП ......................................................................................................................... 4
РОЗДІЛ 1 АНАЛІЗ МЕТОДІВ І ЗАСОБІВ ЗАХИСТУ ІНФОРМАЦІЙНИХ
СИСТЕМ НА ОСНОВІ ДВОФАКТОРНОЇ АУТЕНТИФІКАЦІЇ ........................... 8
1.1. Принципи побудови захисту в інформаційній системі при автентифікації
користувача .............................................................................................................. 8
1.2. Алгоритми та протоколи аутентифікації з використанням одноразового
пароля ..................................................................................................................... 16
1.3. Атаки та засоби захисту інформаційних систем ......................................... 22
Висновки ................................................................................................................ 34
РОЗДІЛ 2 МОДЕЛЬ ІНФОРМАЦІЙНОЇ СИСТЕМИ ДВОХФАКТОРНОЇ
АУТЕНТИФІКАЦІЇ .................................................................................................. 36
2.1. Система аутентифікації користувача з урахуванням генерації
одноразового пароля ............................................................................................. 36
2.2. Розробка алгоритму двофакторної автентифікації ..................................... 38
2.3. Створення генераторів на формування одноразового пароля
двухфакторної аутентифікації ............................................................................. 42
2.4. Розробка моделі аутентифікації користувача на основі другого фактора 51
Висновки ................................................................................................................ 52
РОЗДІЛ 3 РЕАЛІЗАЦІЯ ТА АНАЛІЗ ЗАХИСТУ ІНФОРМАЦІЙНОЇ СИСТЕМИ
ЗА ДОПОМОГОЮ ДВОФАКТОРНОЇ АУТЕНТИФІКАЦІЇ ............................... 54
3.1. Розробка архітектури системи аутентифікації ............................................ 54
3.2 Реалізація захисту інформації при автентифікації користувача на основі
одноразового пароля ............................................................................................. 60
3.3. Практична реалізація системи захисту інформації при автентифікації
користувача на основі одноразового пароля ...................................................... 68
Висновки ................................................................................................................ 72
ЗАГАЛЬНІ ВИСНОВКИ .......................................................................................... 73
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................................. 75
3
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ
2FA – Двофакторна автентифікація
API – Програмний інтерфейс програми
ASCII – American standard code for information interchange (Американський
стандартний код обміну інформацією)
DDOS – Distributed Denial of Service (Розподілена атака типу «відмова в
обслуговуванні»)
OTP – OneTimePassword (Одноразовий пароль)
SMS – Short Message Service (Служба коротких повідомлень)
SSL – Secure Socket Layer (Рівень захищених сокетів)
TLS – Transport Layer Security (Безпека транспортного рівня);
АСУ – Автоматизована система управління
БД – База даних
ЗІ – Захист інформації
ІС – Інформаційна система
ІКС – Інформаційно-комунікаційні системи
ЛІБ – Лабораторія інформаційної безпеки
НСД – Несанкціонований доступ
ОС – Операційна система
СУБД – Система управління базами даних
4
ВСТУП
Актуальність. Розвиток інформаційно-телекомунікаційних технологій
дозволяють використовувати нові можливості в Інтернеті. З'явилася можливість
здійснювати віддалені покупки товарів з будь-якої точки країни, відстежувати
стан та виконання робіт, не перебуваючи у місцях їх проведення. В даний час
існує можливість оформити практично будь-яку довідку, не виходячи з дому,
завдяки електронному цифровому підпису та інформаційному порталу
державних послуг.
Більшість інформації зберігається в інформаційних системах, які
необхідно захищати. В атаках на інформаційні системи зловмисники
використовують як помилки у написанні та адмініструванні програм, так і
методи соціальної психології для отримання бажаної інформації. Розробники
ресурсів, на яких передбачається робота з даними користувачів, зобов'язані ці
дані захищати та запобігати можливості їх витоку.
Одним із основних засобів захисту інформаційних систем від стороннього
втручання є ідентифікація та автентифікація, оскільки механізми захисту
інформації розраховані на роботу з поіменованими суб'єктами та об'єктами.
Автентифікація та ідентифікація користувача є взаємозалежними діями
розпізнавання та автентифікації. Основною метою автентифікації користувача
інформаційної системи є зниження загроз безпеці, а саме порушення
конфіденційності та цілісності інформації. Несанкціонований доступ – одне із
найпоширеніших видів порушень, що становить безпосередню загрозу
працездатності системи. Аутентифікація використовується для доступу до
соціальних мереж, електронної пошти, інтернет магазинів, інтернет-банкінгу,
платіжних систем тощо. В даний час використання парольної автентифікації є
доступною та поширеною через простоту застосування. Цей метод захищеності
веде до збільшення міцності концепції захисту інформації. Одним із ефективних
методів захисту інформації є двофакторна автентифікація для входу в систему.
5
Вона передбачає подвійний захист даних за допомогою прив'язки облікового
запису до системи захисту. Після прив'язки користувачеві необхідно буде
взаємодіяти з системою для верифікації даних.
Завданнями безпеки інформації, розмежування доступу та автентифікації
на основі другого фактору займалися зарубіжні вчені Една Елізабет [4], С. Нівета
[14], Фазех Садат Бабамір [22], Мурвет Кірчі [15], І Юй [10], Цзінша Хе [31],
Нафе Чжу [43] та інші. Важливою частиною є також захист інформації, що
зберігається в базах даних s програмно-апаратні засоби для обробки та передачі
інформації.
У зв'язку з вищезгаданим, тема даної роботи з розробки та дослідження
методу автентифікації користувачів інформаційно-комунікаційних систем на
основі другого фактору є актуальною. У даній роботі як другий фактор
використовується одноразовий пароль.
Мета роботи – дослідження та реалізація двофакторної автентифікації для
забезпечення захисту інформації в інформаційно-комунікаційних системах.
Завдання дослідження, що реалізують мету дослідження:
− проведення огляду та аналізу існуючих систем захисту інформації в
інформаційно-комунікаційних системах та алгоритмів багатофакторної
автентифікації;
− розробка методу автентифікації користувачів інформаційно-
комунікаційних систем з використанням одноразового пароля.
− створення інформаційної системи для забезпечення цілісності та
захисту інформації в інформаційно-комунікаційних системах.
Об’єкт дослідження – процеси інформаційної взаємодії користувачів
інформаційно-комунікаційних систем та їхня автентифікація за допомогою
цифрового одноразового пароля.
Предмет дослідження – двофакторна автентифікація користувачів для
захисту автоматизованих систем.
Методи дослідження. Методи досліджень включають: методи
математичного аналізу, лінійної алгебри, теорії безперервних та імпульсних
6
систем, систем автоматичного регулювання, чисельні методи математики,
статистики та цифрової фільтрації, методи імітаційного моделювання і методи
теорії планування експериментів.
Наукова новизна проведених досліджень та отриманих у роботі
результатів:
− удосконалено метод двофакторної аутентифікації користувача,
заснований на генерації тригонометричних функцій шляхом
ускладнення масштабування функцій при обчисленні одноразового
пароля. Масштабування виконується матричним поданням варіантів
тригонометричних функцій та використанням хеш-функцій для
обчислення координат і параметрів, що генерується тригонометричною
функцією за поточним часом, секретним рядком, логіном і паролем
першого автентифікаційного коду;
− удосконалено модель процесу двофакторної аутентифікації
користувача на основі другого фактору, яка відрізняється від відомих
тим, що модель відкрита і може генерувати набори функцій отримання
другого аутентифікаційного коду для кожної окремої системи;
− запропонована схема інформаційної системи реалізації двофакторної
аутентифікації з використанням мобільного пристрою для її
впровадження та використання в закритій мережі.
Практичне значення одержаних результатів. Розроблено алгоритм
автентифікації користувача в інформаційній системі на основі другого фактору.
Проведено чисельні дослідження та експериментальну оцінку пропонованих
моделей та алгоритмів. Розроблено архітектуру клієнт-серверної системи
автентифікації та здійснено реалізацію запропонованої системи автентифікації
користувача при генерації одноразового пароля з використанням комп'ютерної
програми аутентифікатора та мобільного телефону.
Апробація результатів роботи. Результати кваліфікаційної роботи
доповідалися й обговорювалися на студентських і наукових конференціях:
− дні студентської науки ЧДТУ, 20-21 квітня, м. Черкаси, 2021;
7
− дні студентської науки ЧДТУ, 19-20 квітня, м. Черкаси, 2022;
− «Проблеми інформатизації»: Тези доповідей десятої міжнародної
науково-технічної конференції: (24-25 листопада 2022 р., Черкаси),
2022. – С. 51.
Публікації. Результати досліджень опубліковані в:
1. Двофакторна аутентифікація користувачів для захисту
автоматизованих систем / Міценко С. А., Партицький О. В.,
Могильний О.А. // «Проблеми інформатизації»: Тези доповідей десятої
міжнародної науково-технічної конференції: (24-25 листопада 2022 р.,
Черкаси), 2022. – С. 51.
Структура та обсяг кваліфікаційної роботи. Кваліфікаційна робота
складається із списку умовних скорочень, вступу, трьох розділів, висновку та
списку використаних джерел. Загальний обсяг роботи складає 82 сторінки,
20 рисунків, 4 таблиці. Список використаних джерел містить 52 найменування.
8
РОЗДІЛ 1
АНАЛІЗ МЕТОДІВ І ЗАСОБІВ ЗАХИСТУ ІНФОРМАЦІЙНИХ СИСТЕМ
НА ОСНОВІ ДВОФАКТОРНОЇ АУТЕНТИФІКАЦІЇ
1.1. Принципи побудови захисту в інформаційній системі при
автентифікації користувача
Сучасне суспільство використовує інформаційні ресурси, які є основним
інструментом для обміну, передачі та зберігання інформації. У вік глобальної
інформатизації, майже кожна компанія будь-якого напряму використовує
інформаційні системи для електронного документообігу [21].
Інформація – це головний об'єкт, який використовується для обробки та
зберігання даних. Дані мають конкретну ціну, отже, придбання даних
зловмисниками дає конкретний дохід, послабивши ймовірність суперництва з
конкурентами. Головною метою зловмисника є отримання даних щодо
предметної діяльності, які є конфіденційними. Зазвичай зловмисникам цікава
інформація, що містить економічні відомості, персональні відомості
співробітника, клієнта, покупця, власності об'єкта, дослідження діяльності
конкурентів, методи та засоби платіжних систем.
Основна мета конкурентів чи зловмисників полягає у внесенні зміни до
структури даних, які циркулюють у предметах секретної зацікавленості. Подібні
дії можуть призвести до дезінформації в конкретній області під час роботи з
даними. Найбільш небезпечними вважаються знищення зібраного масиву даних
у програмних додатках. У зв'язку з розглянутими інцидентами величезної
значущості набуває формування результативних концепцій інформаційної
захищеності [22]. Кожна організація, використовуючи інформаційні ресурси,
здійснює заходи щодо захисту даних, застосовуючи політику безпеки компанії.
Захист та безпека інформаційної системи полягає у збереженні цілісності та
конфіденційності даних, а також моніторингу доступності до інформації для
мінімізації наслідків, які можуть виникнути у разі модифікації або руйнування
даних.
9
В рамках захищеної інформаційної системи слід враховувати дії, які
запобігають доступу, обробці або крадіжці інформації, коли до неї здійснюється
доступ або вона передається через мережу [23-25].
Подані дані підтверджують необхідність проведення заходів, пов'язаних із
захистом таких інформаційних ресурсів, як сховища даних, операційні системи,
програмне забезпечення та інші компоненти інфраструктури.
Бази даних є основним компонентом будь-якої інформаційної системи, у
яких структурується, зберігається та обробляється інформація.
База даних є структурою, що складається з названих об'єктів, що мають
високу структуризацію даних [26]. Бази даних класифікуються і поділяються за
способом збереженої інформації (документальні, фактографічні), методу при
збереженні даних (розподілені, централізовані), системі організації даних
(мережеві, ієрархічні, табличні). В даний час дані можуть зберігатися в об'єктно-
реляційних та хмарних сховищах. Для формування, керівництва, а також для
колективного застосування баз даних численними користувачами
використовується система управління базами даних (СУБД) [27].
Рис. 1.1. Методи захисту
10
Загроза злому секретних даних, що зберігаються в БД, здатна спричинити
її безповоротну втрату, внаслідок чого організації можуть втратити важливу
інформацію про фінанси, клієнтів і т.д. У зв'язку з цим необхідно забезпечити
захист інформаційної системи з використанням апаратних, програмних,
процедурних, структурних або організаційних методів захисту [28, 29] (рис. 1.1).
Організаційні методи захисту використовуються для обмеження кількості
осіб, які набувають права доступу до інформаційної системи (ІС). Ці заходи
включають організацію режиму доступу в ІС, заходи щодо забезпечення
надійного зберігання носіїв інформації, регламентують технологічні схеми
автоматизованої обробки інформації, що захищається, процес взаємодії
користувачів з інформаційною системою, завдання та обов'язки обслуговуючого
персоналу ІС і користувачів БД і т.д.
Процедурні методи захисту уможливлюють доступ до даних та передачу
їх лише тим користувачам, які мають відповідні повноваження. До зазначених
методів відноситься встановлення різноманітних паролів користувачів,
присвоєння документам грифів секретності, проведення занять з персоналом з
метою підвищення рівня відповідальності.
Найчастіше процедурні методи захисту використовуються на етапах
первинної обробки даних, управління процесом функціонування системи та на
етапі видачі інформації користувачам.
Структурні методи захисту застосовуються на етапах проектування
структур БД (канонічних та логічних). Вони покликані забезпечити таку
структуризацію даних, при якій розподіл даних за групами та логічними
записами, а також встановлення між ними відповідних взаємозв'язків дозволяє
підвищити рівень захищеності збережених даних.
Процедури аналізу та синтезу структур БД та відповідні їм механізми
захисту повинні забезпечувати:
− розподіл усієї збереженої інформації БД на загальнодоступні та
індивідуальні (або конфіденційні) дані;
− ідентифікацію прав користувачів;
11
− захист даних та взаємозв'язків між ними.
Апаратні засоби захисту інформації є різноманітними електронними
пристроями, що вбудовуються до складу технічних засобів обчислювальної
системи або сполучаються з ними за допомогою стандартного інтерфейсу. До
апаратно реалізованих методів захисту, призначених для контролю звернення до
даних, що зберігаються в оперативній пам'яті, належать блоки захисту пам'яті,
схеми переривань та ін.
В даний час розроблені пристрої розпізнавання користувачів, які
базуються на порівнянні аудіограм їх голосів, відбитків пальців та інших
індивідуальних характеристик людини (однозначно її ідентифікують), з тим, що
записано в пам'яті терміналу. Слід зазначити, що ці пристрої відрізняються
високою надійністю виконання ідентифікаційних функцій. Криптографічний
захист інформації БД може бути реалізований за допомогою спеціальної
апаратури шифрування або кодування.
Програмні методи відіграють найважливішу роль у створенні ефективних
систем захисту інформаційних ресурсів баз даних від несанкціонованого
доступу. Під програмними засобами захисту розуміються спеціальні програми,
призначені для виконання функцій забезпечення безпеки даних. Програмні
методи захисту можуть бути реалізовані шляхом включення розроблених
програм до складу використовуваних операційних систем та СУБД, або
виділення їх у спеціальні самостійні пакети програм, які ініціюються перед
початком процесу обслуговування запитів користувачів [30].
Апаратні та програмні методи захисту використовуються в основному на
етапах обробки даних. Вони забезпечують обслуговування лише користувачів,
які успішно пройшли ідентифікацію у системі; доступ до об'єктів, що
захищаються відповідно до встановлених правил і прав; можливість зміни
правил, встановлених для взаємодії користувачів із об'єктами захисту;
можливість отримання інформації про безпеку та безпеку об'єктів захисту [31].
При розробці сучасних інформаційних систем виникає необхідність у
створенні нових підходів та методу захисту інформації в базах даних. Це також
12
пов'язано з тим, що постійне прискорення зростання обсягу даних є невід'ємним
елементом сучасних реалій – з'явилися «Великі дані», обробка та аналіз яких
потребує нових підходів, інструментів та методів, які можуть істотно
відрізнятися від класичних [32]. При цьому дані можуть бути структурованими,
слабоструктурованими та неструктурованими, що не дозволяє ефективно
керувати ними та обробляти традиційним чином. Великі дані, які є джерелами
для аналізу, можуть містити конфіденційну інформацію [33]. Порушення
конфіденційності роботи з такими даними може призвести до серйозних
проблем.
Першим бар'єром в інфокомунікаційних системах є парольна
автентифікація, яка розпочала свій розвиток з появою операційних систем.
Першим етапом для входу до операційної системи є автентифікація користувача,
що дозволяє розмежовувати права доступу. Незважаючи на свою простоту
застосування, ця методика захисту забезпечує безпеку в багатьох організаціях.
Але з розвитком процесів інформатизації та електронного документообігу стало
необхідно ускладнювати методи та засоби захисту. Для цього почала
використовуватися двофакторна автентифікація користувача, заснована на
генерації одноразового пароля, що діє певний проміжок часу.
Питаннями створення двофакторної аутентифікації почали займатися в
1980-х роках, коли компанія Security Dynamics Technologies запатентувала
«Метод і пристрій для точної ідентифікації особистості». До 2000-х років
інфраструктура та виробничі можливості були доступні для забезпечення
розробки власних засобів двофакторної автентифікації. У 2005 році користувачі
стали більше замислюватися про конфіденційність та цілісність своїх даних, і
використання двофакторної автентифікації почало набирати обертів.
Застосування двофакторної автентифікації і є актуальним, і є додатковим
бар'єром захисту інформаційної системи від несанкціонованого доступу.
Двофакторна аутентифікація використовується у банківських системах, а також
в автоматизованих інформаційних системах. Перевагою створеної системи
двофакторної аутентифікації є відкритість коду реалізації, оскільки готові
13
програми закриті і, що відбувається при підключенні їх до наших систем
невідомо.
При виборі двох різних каналів для автентифікації з'являється можливість
захисту логінів користувача від віддалених атак, мета яких – використання
чужих особистих або ідентифікаційних даних [34]. 2FA вимагає не лише
введення імені користувача та пароля, але й використання такої інформації, яку
знає лише автор або інформація, яка негайно буде доступна лише цьому автору.
Такі дані можуть включати те, що відомо вам (наприклад, унікальне ім'я
користувача та пароль), належить вам (наприклад, смартфон із додатком для
підтвердження запиту автентифікації) або те, що є частиною користувача
(наприклад, біометричні дані – відбиток пальця або скан сітківки). Так, першим
фактором може бути пароль, а другим фактором те, що відправляється через
програму або повідомлення на смартфон для підтвердження.
У сучасному світі використовується також понад 5 мільярдів мобільних
пристроїв, і застосування телефону, як засіб автентифікації допомагає швидко
вирішити завдання посиленого захисту, скорочення додаткових витрат і
затримок доставки. Проблема витоку інформації актуальна у всьому світі та
застосування двофакторної автентифікації для захисту інформації стане
додатковим бар'єром для зловмисників. Методи двофакторної автентифікації
розглядаються як механізми посилення стійкості автентифікаторів.
Двофакторний захист досить надійний бар'єр, що серйозно ускладнює
доступ до чужих даних і в якійсь мірі нівелює недоліки класичного парольного
захисту [35]. У роботі до зв'язків класичного використання логін/пароль
застосовується додатковий бар'єр захисту, який називається другим фактором,
володіння яким необхідно підтвердити, з метою прийняття прав доступу до
облікових та інших даних [36].
Двофакторна аутентифікація використовується для здійснення доступу до
інформаційних систем, акаунтів у соціальних мережах, до пошти та інших
сервісів. На рис. 1.2 представлена схема двофакторної аутентифікації, де описані
типи, способи реалізації та стійкість.
14
Рис. 1.2. Схема двофакторної аутентифікації
Розглянемо найпоширеніші типи аутентифікації користувачів
інформаційних систем та відзначимо їх переваги та недоліки [37]:
1. SMS-код. Після успішної авторизації користувача, на номер телефону
надходить SMS з кодом, який діє певний проміжок часу і вводиться в аккаунт
системи. Повторний вхід можливий при надсиланні нового SMS з кодом.
Перевагою такого методу автентифікації є доступність, так як йде прив'язка до
телефонного номера користувача, і сесія для нової генерації пароля
повторюється. Недоліком є відсутність стільникового зв'язку, а також заміна
номера. Відмова від використання SMS для обробки другого фактору полягає у
15
небезпеці цього методу. Стільникові мережі використовують «SignalSystem 7»
для взаємодії між собою. Але в цій системі виявлено серйозні вразливості, що
дозволяють перехоплювати вхідні дзвінки та SMS абонентів [38].
2. Перевірка входу за допомогою мобільних програм. Вхід у систему
здійснюється на смартфоні із встановленим спеціальним додатком. Смартфон
зберігає ключ та забезпечує вхід до інформаційної системи. Переваги: немає
необхідності вводити пароль, не потрібний стільниковий зв'язок для отримання
SMS-повідомлень та Інтернет. Недоліки: якщо пройде перехоплення приватного
ключа, то можлива фальсифікація особистого номера.
3. Апаратні (фізичні) токени. Вважається найбільш міцним та надійним
методом двофакторної аутентифікації – USB ключ. Він має свій процесор, який
здійснює генерацію одноразового пароля для автентифікації користувача при
приєднанні до комп'ютера. Вибір ключа залежить від певної послуги. Перевага:
цілком незалежний прилад не потребує смартфона. Недоліки: прилад береться
окремо; не всі пристрої мають можливість використовувати цей спосіб; на один
обліковий запис, один токен.
4. Програми – автентифікатори. Створюється генерація пароля на
пристрої за допомогою розробленої спеціальної програми. У період опції user
набуває первинного ключа для генерації одноразового пароля за допомогою
криптографічного алгоритму, з конкретним терміном часу, зазвичай до
1 хвилини. Переваги: потрібний Інтернет з метою відкриття сесії. Недоліки:
ймовірність перехоплення первинного ключа, тоді правопорушник може
генерувати подальші паролі.
5. Біометрична автентифікація. Автентифікація користувача за його
унікальними біометричними характеристиками, такими як відбиток пальця,
структура сітківки ока, риси обличчя, голос і т.д. При реєстрації біометричного
автентифікатора відбувається зчитування та запис зразка відповідної
біометричної характеристики користувача за допомогою спеціального пристрою
для зчитування. Потім програмний алгоритм обробляє отриманий зразок, і
система зберігає його як шаблон бази даних. При наступній автентифікації, коли
16
користувач пред'являє біометричний ідентифікатор, система порівнює наданий
ідентифікатор з шаблоном за допомогою алгоритму зіставлення. Користувач
визнається легітимним і отримує доступ тільки в тому випадку, якщо ступінь
схожості наданого ідентифікатора зі збереженим у базі даних шаблоном
відповідає встановленому пороговому значенню. Переваги: ідентифікатор
невіддільний від людини, його не можна забути, втратити, передати.
Перевіривши ідентифікатор, можна говорити про те, що було ідентифіковано
саме цю людину. Недоліки: необхідність наявності певних навколишніх умов
для проведення біометричної ідентифікації можуть виникати ситуації, коли
біометричні ідентифікатори пошкоджені або недоступні для зчитування, а також
не дешева вартість сканерів.
Резервні ключі. Це запасний варіант, що використовується у разі втрати
мобільного телефону, який служив елементом захисту, оскільки приймав
одноразові підтвердження коди для входу в інформаційну систему. При роботі з
двофакторною автентифікацією проводиться налаштування, що дозволяє
отримувати резервні ключі для їх застосування у позапланових ситуаціях.
Аналіз сучасних інформаційних систем підтверджує необхідність
використання двофакторної аутентифікації як додаткового бар'єру захисту
доступності, цілісності та конфіденційності даних, що зберігаються і
оброблюються в інформаційній системі. Методи застосування – аутентифікатори
та перевірка входу за допомогою мобільних додатків є більш захищеними,
практичними та зручними для програмної реалізації інформаційної системи
двофакторної аутентифікації. У зв'язку з цим розробці цих методів присвячені
дослідження роботи. Використання цих методів дозволить посилити захист
інформації, що зберігається в інформаційній системі.
1.2. Алгоритми та протоколи аутентифікації з використанням
одноразового пароля
Двофакторна аутентифікація дозволяє забезпечувати більш високий
ступінь захисту порівняно з однофакторною автентифікацією, коли користувач
17
пропонує тільки один фактор, зазвичай пароль, який використовується для
контролю доступу до чутливих систем і даних.
Пропонована в роботі система двофакторної автентифікації складається із
двох етапів. На першому етапі автентифікації користувач вводить свій логін та
пароль. У разі успішного проходження цього етапу необхідно пройти другий
етап, на якому розглядається генерація одноразового пароля на основі програми
автентифікації та смартфона [39].
Розглянемо основні протоколи, що використовуються у дослідженні.
OAuth – сервер від DnC (OAuthSD) – це сервер автентифікації, який
реалізує протокол OAuth та систему OpenID Connect [40].
OpenID – відкрита децентралізована система, що дозволяє
використовувати єдиний обліковий запис користувача для автентифікації web
додатків, не пов'язаних один з одним. Завдяки централізації автентифікації
програм та користувачів сервер OpenID Connect дозволяє повністю
контролювати доступ до конфіденційної інформації [40].
OAuth – протокол авторизації, що надає конкретному сервісу або програмі
повноваження на допуск до ресурсу користувача на іншому сервісі або програмі.
Протокол OAuth дає можливість без вказівки даних для авторизації
використовувати сторонню програму, а також дозволяє видавати набір прав під
час налаштування. Він базується на застосуванні веб-технологій, запитів та
HTTP - це дає можливість використання на різних платформах, якщо є глобальна
мережа Інтернет та браузер.
Протокол OAuth має загальну структуру роботи:
− доступ для авторизації;
− застосування до ресурсів захисту.
Підсумком авторизації вважається "токен доступу" - конкретний ключ, що
дозволяє надати доступ до захищених ресурсів. Протокол HTTPS дає можливість
звернутися до них, вказавши його в заголовках або як один з параметрів
отриманого токена доступу. Види авторизації представлені рисунку 1.3.
18
Рис. 1.3. Види авторизації
Загальний принцип роботи з протоколом OAuth полягає у наступних
кроках (рис. 1.4).
Рис. 1.4. Робота з протоколом OAuth
Безпека OAuth ґрунтується на використанні криптографічного протоколу
SSL, який забезпечує захищену передачу інформації в Інтернеті [41].
Захищеність передачі є необхідною у роботі високонавантажених систем.
Більшість сучасних систем аутентифікації ґрунтуються на застосуванні функцій
обчислення хеш, які обчислюють хеш на основі вхідного рядка для подальшого
використання в системі кодування. Як вхідний рядок для хеш-функції можуть
19
бути використані такі дані облікових даних користувача (логін, пароль),
поточний час, додатковий секретний рядок і т.д. Хеш-функція є односторонньою
функцією, що реалізується засобами симетричного шифрування шляхом
зв'язування блоків електронного повідомлення. Результат шифрування
результуючого блоку (що залежить від попередніх) є результатом виконання
хеш–функції (чи хешування), тобто. хеш-значенням [44].
При ідентифікації/автентифікації користувач вводить пароль, а каналом
зв'язку надсилається його хеш-значення (далі хеш). Система, що перевіряє,
порівнює цей введений хеш з хешом, що зберігається в інформаційній системі
цього користувача. У разі збігу їх значень дозволяється доступ до системи. У
системі не зберігаються паролі підвищення її захищеності, але у разі можливий
перехоплення хеш для аутентифікації.
Для реалізації алгоритму двофакторної автентифікації використовується
SHA256. Ця функція використовувалася для обчислення хешу через її
особливості. Зміна одного біта вхідного рядка впливає на всі біти хешу, що
обчислюється, що дозволяє виключити обчислювану залежність одержуваного
хешу від вхідного рядка [45].
Розглянемо основні алгоритми аутентифікації, що використовуються у
дослідженні.
HOTP (HMAC – Based One – Time Password Algorithm) – алгоритм
захищеної автентифікації за допомогою використання одноразового коду, що
базується на SHA–1. Він є алгоритмом односторонньої аутентифікації, який
передбачає аутентифікацію клієнта за сервера [46]. Алгоритм вперше формально
описаний командою Internet Engineering Task Force (IETF), яка займається
розвитком глобальної мережі Інтернет, у грудні 2005 року. Параметром, що
відповідає за динаміку генерації паролів, є факт генерації або сама подія. Щоразу
під час створення нового пароля лічильник подій збільшує значення на одиницю.
Саме таке монотонне зростання використовується як основний параметр
алгоритму. Другим параметром, який відповідає за генерацію одноразових
паролів, є симетричний ключ, якому необхідно бути унікальним для кожного
20
клієнта і одночасно закритим від усіх, крім сервера і самого клієнта. Системи
захисту, побудовані з використанням HOTP, мають високий ступінь надійності.
HOTP стійкий до широко поширених криптографічних атак.
Алгоритм HOTP заснований на збільшенні значення лічильника та
статичного симетричного ключа, публічному токені та валідації надання послуг.
Для того, щоб створити значення HOTP, використовується HMAC Алгоритм
SHA–1 – алгоритм захищеної автентифікації за допомогою використання
одноразового коду, це вимога, яка встановлена в RFC 2104 (Request for
Comments), документ, що містить стандарт роботи глобальної мережі Інтернет
[47]. Оскільки значення обчислення HMAC-SHA-1 складає 160 біт, необхідно
зменшити значення, встановлене користувачем (формула 1.1).
HOTP (K, C) = Truncate (HMAC-SHA-1 (K, C)),
де Truncate – функція, яка перетворює HMAC-SHA-1 значення HOTP; K –
ключ; C – лічильник.
Значення, що видаються генератором HOTP, сприймаються як великий
зворотний порядок байтів.
Генерація значення HOTP включає 3 етапи
1: Генерація значення HMAC-SHA-1:
HS = HMAC-SHA-1 (K, C),
де HS є 20-байтовим рядком.
2: Генерація 4-байтового рядка (динамічний зріз):
Sbits = DT (HS),
де DT повертає 31-бітний рядок.
3: Обчислити значення HOTP:
21
Snum = StToNum (Sbits),
де Snum – перетворення на число 0 ... 2 степені 31 -1
Return D = Snum mod 10 ^ Digit ,
де D - Число в діапазоні 0 ... 10 в степені {Розряд} -1.
Функція усічення виконується у 2-му та 3-му етапах, тобто проводиться
динамічне усічення та скорочення за модулем 10. Мета цих перетворень полягає
в тому, щоб витягти 4-байтовий динамічний двійковий код з 160-бітного (20-
байтового) результату HMAC -SHA-1.
Необхідність маскування найзначнішого біта P полягає в тому, щоб
правильно проводилися обчислення по модулю. Деякі процесори можуть
здійснювати дані операції по-різному, відзначаючи підписаний біт, очищаючи
розпливчастість. Шестизначний код вважається найменшим.
TOTP (Time-based One-Time Password Algorithm) - алгоритм створення
одноразових паролів для захищеної автентифікації (2008) [48]. Він, як і HOTP, є
алгоритмом односторонньої аутентифікації, у якому сервер засвідчується в
справжності клієнта. На відміну від HOTP у ньому параметром, що відповідає
динаміку генерації паролів, є час. Використовується часовий інтервал із
встановленими межами, а не конкретний час.
Концепція одноразових паролів разом із сучасними криптографічними
способами застосовується з метою здійснення достовірних систем віддаленої
аутентифікації. Алгоритм створення одноразових ключів є стабільним до
криптографічних атак, припущення злому є. Наприклад, можливий такий варіант
атаки як «людина посередині» - це коли зловмисник змінює зв'язок між
сторонами, що передають, які вважають, що вони безпосередньо спілкуються
один з одним.
Реалізація TOTP може використовувати функції HMAC-SHA-256 або
HMAC-SHA-512, засновані на хеш-функціях SHA-256 або SHA-512.
22
Алгоритм TOTP є варіантом алгоритму HOTP, що ґрунтується на поданні
лічильника, як фактора часу.
TOTP = HOTP (K, T),
де T – ціле число, яке становить проміжок часу між початковим значенням
та поточним системним часом; K – ключ.
Тоді формула 1.7 буде такою:
T = (Поточний час ОС - T0) / X,
де Т - представляє кількість тимчасових кроків X між початковим T0 і
поточним часом операційної системи (ОС).
Наприклад, якщо поточний час ОС становить 59 секунд і значення T0 = 0,
а тимчасовий крок X = 30, то отримаємо, T = 1. Якщо поточний час ОС становить
60 секунд, з тими ж параметрами T0 = 0 і тимчасовим кроком X = 30, тоді
отримаємо T = 2. Реалізація даного алгоритму має підтримувати значення часу
T, більшого, ніж 32-розрядне ціле число. Значення системних параметрів X і T0
попередньо встановлюються протягом процесу забезпечення і передається між
перевіряючим верифікатором, як частина кроку ініціалізації. Потік забезпечення
виходить за межі цього документа. За замовчуванням пропонується крок = 30
секунд як баланс між безпекою і зручністю використання.
Описані алгоритми задають фундамент розробки одноразових паролів
захищеної аутентифікації, і використовується для реалізації.
1.3. Атаки та засоби захисту інформаційних систем
Згідно зі статистикою компанії InfoWatch [49], кількість витоків даних у
світі безперервно зростає, за 2019 рік 1748 випадків витоків конфіденційної
інформації – що на 22,5% більше (рис. 1.5). Обсяги скомпрометованих даних
зростають через збільшення «потужності» зовнішніх та внутрішніх витоків. При
23
цьому витоки по всіх каналах, крім мережевих, часто просто не фіксуються.
Група компаній InWatch спеціалізується на захист корпорацій від витоків
інформації та цільових атак ззовні, а також контролює ринок систем захисту
конфіденційних даних.
У світі за 2021 рік каналом витоку домінує мережа 70%, а в Україні 62%. З
організацій фінансового сегменту на кшталт інцендентів за 2021 рік у світі
некваліфікований витік склав 79,8%, шахрайство з використанням даних 19,3%,
перевищення прав доступу 0,9%. Зовнішні атаки, що призвели до десяти із
двадцяти зафіксованих «мега-витіків», із них 8,74 мільярдів дискредитованих
записів (97% загальної кількості). У 41 варіанті обсяг дискредитованих даних
перевищив 1 мільйон записів. У 44,8% витоків винними виявилися працівники
організацій, у 2% - керівники організацій, а також обрані користувачі.
Рис. 1.5 – Кількість витоків інформації у 2015 – 2021 роках.
Захист баз даних починається з ретельного аналізу неврахованих
вразливостей при їх здійсненні. Нерідко фактом втрати або злому можуть бути
невраховані або не функціонуючі на належному рівні стандартні методи
забезпечення безпеки інформації, що зберігається в базах даних, у зв'язку з тим,
що СУБД встановлюється в сукупності з іншими програмами (операційними
24
системами та серверами). Питання забезпечення інформаційної безпеки в БД
привертають увагу дослідників.
Зі звіту компанії TAdviser виявлення інциндентів інформаційної безпеки за
2020 – 2021 рік: 54% програми – здирники, 52% – DDOS, 39% – цілеспрямовані
атаки, 39% – фішинг, 31% – мобільне шахрайство, 23% – розкрадання фінансів
через інтернет-банкінг, [50].
За даними компанії PositiveTechnologies у 2021 році для хакерів найбільш
привабливою є інформація про персональні дані (60%), облікові записи та
парольна інформація для доступу до різних сервісів та систем, у тому числі й до
онлайн-банків приватних осіб [51]. За даними цієї компанії виділено поширені
вразливості: використання застарілих версій програмного забезпечення та
відсутність актуальних оновлень безпеки для операційних систем; множинні
помилки конфігурації (у тому числі надлишкові привілеї користувачів та
програмного забезпечення, а також встановлення паролів локальних
адміністраторів через групові політики); використання словникових паролів
привілейованими користувачами; відсутність двофакторної аутентифікації для
доступу до критично важливих систем.
Дослідження з практичної безпеки за 2021 р. показали, що механізми
використання двофакторної аутентифікації в онлайн-банках та веб-додатках
недостатньо надійні, виявлено 77% уразливостей [52].
Ці дані підтверджують необхідність використання надійної автентифікації
користувача на базі двофакторної автентифікації для підвищення рівня безпеки.
За даними дослідження інцидентів безпеки Verizon's Data Breach
Investigations Report (DBIR) у 2021 році 95% порушень включають використання
вкрадених персональних даних [53]. Стандартні процедури безпеки (особливо
онлайн) вимагають простого введення імені користувача та пароля, і злочинці
можуть легко оволодіти персональними даними користувача – особистою та
фінансовою інформацією – з метою подальшого її використання для здійснення
шахрайських дій, в основному у сфері фінансів.
25
За даними компанії «СерчІнформ» у 2021 році 59% українських компаній
зіткнулися з витоком інформації (рис. 1.6) [44]. Як видно з наведених даних, ця
проблема є актуальною для всього світу. Великий відсоток витоку припадає на
інформацію про клієнтів та угоди, технічну інформацію, а також персональні
дані. Деякі компанії приховують подібні інциденти і не роблять жодних
сповіщень про витік інформації в їхніх компаніях.
Таким чином, виникає проблема захисту конфіденційної інформації від
атак зловмисників. Одним із засобів захисту є парольний захист з використанням
другого фактора.
Рис. 1.6. Дані про виток інформації за 2012-2021 роки
Двофакторна автентифікація від Infobip вирішує цю проблему за
допомогою SMS – повідомлення, що надсилається на мобільний телефон та
голосових технологій. Використовувати як другий фактор авторизації SMS –
26
повідомлення - не є найбезпечнішим рішенням. Телефонний номер може бути
прив'язаний лише один, а значить і пристрій, що підтверджує, буде один:
− при знаходженні в зоні невпевненого прийому SMS – повідомлення від
сервісу може не прийти;
− номер можуть вкрасти разом з телефоном або спробувати зробити його
дублікат для авторизації замість господаря телефону;
− можуть бути проблеми з авторизацією у закордонних поїздках,
наприклад, SMS – повідомлення довго доходить, роумінг не працює
або замість рідної карти вирішили використати місцеву.
Таблиця 1.1
Світові кібератаки за 2021-2022 роки
Січень 70 12 6 94 14 5
Лютий 49 17 6 115 12 1
Березень 56 6 3 75 19 3
Квітень 63 18 3 81 11 3
Травень 51 14 0 95 12 6
Червень 44 6 4 85 12 1
Липень 58 7 1 105 19 3
Серпень 70 9 5 66 16 2
Вересень 65 9 1 93 10 0
Місяць
Кіберзлочинність
2021
Кібершпигунство
2021
Хакерскі атаки
2021
Кіберзлочинність
2022
Кібершпигунств
2022
Хакерскі атаки
2022
27
Всі ці незручності можна уникнути при використанні спеціальних сервісів
і додатків, які можуть виступати другим фактором авторизації [45].
Будь-яка компанія, яка зберігає та обробляє інформацію в базах даних
(БД), може зіткнутися з розкраданням конфіденційних відомостей.
Для проведення атак на інформаційні системи зловмисники
використовують широкий спектр технологій – DDoS атаки, отримання
несанкціонованого доступу шляхом компрометації облікових записів
користувачів, шкідливе програмне забезпечення різних типів, злом служби
доменних імен та додатків.
Значна частка успішних зовнішніх атак на інформаційні системи було
проведено за допомогою SQL-ін'єкцій [16]. Проведено аналіз кібератак за 2018–
2021 рік у світі, результати якого наведено у таблиці 1.1 та на рисунку 1.7.
Рис. 1.7. Кібератаки за 2020–2021 роки
28
По ОСІ "X" вказано кількість кібератак, а по ОСІ "Y" число місяців. Як
видно з наведених даних, ця проблема кібератак є актуальною. Кіберзлочинність
посилюється з кожним роком, у зв'язку з чим виникає необхідність збільшення
застосування засобів захисту. У цій таблиці представлені дані за 2021-2022 роки,
оскільки звіт за 2020 рік виходить у першій декаді 2022 року.
Розглянемо атаки на хеш-функції. Існують різні види атак на хеш-функції:
наприклад, словникова атака – метод розтину інформації шляхом перебору, де за
основу безлічі паролів взято слова, які завантажуються у словники; метод грубої
сили - перебір значень, що хешуються; пародокс «День народження»; метод
пошуку колізій; метод зустрічі посередині і т.д. Зазначимо також, що хеш-
функція у цій роботі використовується лише визначення координат
тригонометричної функції та її параметрів. Під час обчислення значення цієї
функції генерується одноразовий пароль.
Розглянемо деякі компанії, які надають послуги захисту інформації, що
зберігається в БД:
− IBM SecurityGuardium. Запобігання витоку інформації з баз даних,
сховищ даних та середовищ великих даних, таких як Hadoop,
забезпечує цілісність інформації та автоматизує контроль відповідності
в гетерогенних середовищах. Рішення захищає структуровані та
неструктуровані дані в базах даних, середовищах великих даних та
файлових системах від загроз та забезпечує відповідність вимогам.
Також надає масштабовану платформу, яка забезпечує безперервний
моніторинг структурованого та неструктурованого трафіку даних, а
також застосування політик для доступу до конфіденційних даних у
масштабах усього підприємства [27].
− Компанія Imperva. Відома компанія, що займається захистом веб-
додатків і систем управління базами даних. Основна мета роботи
компанії полягає у проведенні моніторингу та контролю даних, що
здійснює перевірку потоку інформації від сховища на сервері до
застосування обробки [38].
29
− Imperva Database Security Secure Sphere. Основний вид діяльності -
організація захисту інформації, що зберігається в базі даних, мета -
забезпечення доступності та цілісності роботи з даними в
інформаційній системі. Компанія надає послуги з оптимізації рішень
для забезпечення захисту бази даних за рахунок проведення аналізу та
сканування мережної активності за допомогою агентів додатків [29].
− DataCenter Security Suite for Databases. Надає можливість отримувати
повну інформацію про загальний стан та рівень захищеності баз даних.
Це програмне рішення для захисту баз даних не вимагає ні внесення
змін до архітектури, ні встановлення дорогого обладнання. У режимі
реального часу рішення виявляє та блокує спроби атак та вторгнень без
необхідності відключати бази даних та тестувати програми [6].
− Vulnerability Manager for Databases. Здійснює автоматичне виявлення
бази даних, наявної у мережі, визначення установок новітніх пакетів
виправлень, проведення перевірки наявність поширених уразливостей.
− Trustwave AppDetectivePRO. Сканер сховищ даних та великих даних,
надає можливість виявити помилки в налаштуваннях, виявити
труднощі контролю доступу та ідентифікації користувача, відсутні
патчі та небезпечні композиції опцій, можуть бути основою для DoS–
атак, розподілу привілеїв користувача та неприпустимої зміни
інформації. Простота установки та інтуїтивно зрозумілий інтерфейс
AppDetectivePRO не вимагає від користувача експертних знань у сфері
баз даних. Усього за кілька хвилин можна миттєво проаналізувати стан
безпеки, отримати оцінку ризиків та скласти звіт про відповідність
вимогам для будь-яких БД та сховищ BigData – як локальних, так і
хмарних. AppDetectivePRO є чудовим доповненням до інших сканерів
мереж та додатків [22].
− DbProtect: платформа для забезпечення безпеки даних, що дозволяє
миттєво виявляти помилки в конфігурації. Її, проблеми ідентифікації та
контролю доступу, недостатні патчі та небезпечні комбінації
30
налаштувань, здатні призвести до атак типу «підвищення привілеїв»
або «відмова в обслуговуванні» (DoS–атакам), витоків та
несанкціонованої зміни даних. За рахунок використання розрахованої
на багато користувачів рольової моделі доступу та розподіленої
архітектури з інструментами аналітики та звітності корпоративного
класу DbProtect захищає всі реляційні СУБД та сховища BigData в
інфраструктурі компанії, розгорнуті як локально, так і в хмарі [16].
− FUDO SECURITY – провідна польська компанія, постачальник
інноваційних рішень у галузі ІТ-безпеки. Компанія спеціалізується на
управлінні привілейованим доступом, аутентифікації та авторизації
користувачів, а також перевірці зашифрованого SSL/TLS трафіку.
− FUDO PAM – ефективне управління та контроль привілейованих
користувачів. FUDO PAM – передове рішення, доступне у вигляді
фізичного чи віртуального пристрою. Запис сесії, проактивний
моніторинг на основі штучного інтелекту, сучасне сховище паролів та
бізнес-аналітика – все це в одному пристрої, що встановлюється за
кілька годин [34].
Усі перелічені компанії надають недешеві послуги, у зв'язку з цим жодна
компанія може собі дозволити їх використовувати. Для вирішення проблем,
пов'язаних з безпекою даних компанії, зазвичай знаходять вигідніший і зручний
варіант вирішення проблеми. У даний час практично всі найбільш значущі
ресурси та послуги використовують 2FA. На першому етапі автентифікації
користувач вводить свій логін та пароль, при успішному проходженні цього
етапу, необхідно пройти другий етап. Як другий етап - використовується OTP
автентифікація за допомогою SMS або e-mail розсилки, або з використанням
програмного генератора паролів, встановленого на мобільний пристрій.
Розглянемо кілька найпопулярніших автентифікаторів та його можливості.
Незважаючи на те, що базова функція у всіх додатків одна і та ж - створення
одноразових кодів по тому самому алгоритму, деякі аутентифікатори мають
додаткові функції або особливості інтерфейсу.
31
1. Google Authenticator. Підтримувані платформи: Android, iOS. Google
Authenticator є програмою, створеною для автентифікації користувача
на основі другого фактора. Google Authenticator не має налаштувань,
які полегшують роботу цієї програми [45].
2. Duo Mobile. Підтримувані платформи: Android, iOS. Duo Mobile має
ряд переваг: таких як простота використання, мінімалістичний і не
вимагає додаткових налаштувань [33]. Для відображення коду
потрібний токен.
3. Microsoft Authenticator. Підтримувані платформи: Android, iOS. Ця
програма має можливість робити налаштування токена, так що при
запуску токена може бути прихований. Microsoft Authenticator –
простий у використанні і є функціональним [36].
4. FreeOTP. Підтримувані платформи: Android, iOS. Програмне
забезпечення з відкритим кодом [68]. Розмір програми дорівнює
750 Кбайт для платформи iOS, мінімальний з усіх. Програма Google
Authenticator має розмір 14 Мбайт, Authy дорівнює 44 Мбайта.
Програма FreeOTP має можливість налаштовувати токен у ручну, що в
інших немає.
5. Authy. Працює на платформах Android, iOS, Windows, MacOS, Chrome
[19]. Ця програма дозволяє використовувати хмарні сервіси для
зберігання токенів, що є перевагою. Хмарні послуги дозволяють з будь-
яких пристроїв надати доступ до токену. Обов'язковим є те, що
програма використовує обліковий запис, прив'язаний до телефонного
номера і без цього робота неможлива.
Основними характеристиками додатків автентифікаторів є:
1. Незалежність – передбачає існування каналу зв'язку, яким може бути
інтернет чи оператор стільникового зв'язку;
2. Потреба синхронізації - дана якість передбачає потребу декодування з
сервером аутентифікації. Пристрій генерації одноразових паролів
(OTP) функціонує самостійно, проте можливе порушення в часі, у
32
цьому випадку отриманий пароль не буде достовірним і необхідно
згенерувати його заново;
3. Відновлення автоматизації – дозволяє визначити доступність
поновлення до сервісу автентифікаційного приладу, не вдаючись до
допомоги IT фахівців, це буде можливим у разі автоматичного коду
відновлення;
4. Допоміжний метод аутентифікації – демонструє, чи є послуга
беззбиткового способу аутентифікації, крім застосування на смартфоні.
Наприклад, не маючи мобільного телефону при собі, можна
скористатися списком одноразових кодів для входу в сервіс певної
інформаційної системи;
5. Захист програми паролем – відображає, чи реалізований механізм
парольного захисту для самого мобільного додатка;
6. Введення даних з клавіатури – наявність цієї властивості говорить про
те, що сервіс вимагає введення будь-яких даних за допомогою
клавіатурного введення. Наприклад, для використання будь-якого
сервісу необхідно спочатку ввести свій логін та пароль, а потім ввести
код аутентифікації, отриманий з мобільного додатка;
7. Застосовність до інших систем – цей пункт говорить про те, що одна
програма може використовуватися для автентифікації на різних
ресурсах. Також, мається на увазі можливість додавання нових систем;
8. Необхідність реєстрації – якщо є дані характеристики, то
обслуговування, надає послугу, яка передбачає попередню реєстрацію
у ньому. Іншими словами, створення облікового запису із вказуванням
логіну та паролю і, можливо, із заповненням інших даних;
9. Передача секретів сервісу – цей параметр свідчить, що сервіс зберігає
секретну інформацію користувача, вказану під час його аутентифікації.
Характеристики додатків двофакторної аутентифікації, описані вище,
представлені в таблиці 1.2.
33
Таблиця 1.2
Характеристики додатків двофакторної автентифікації
Google Duo Microsoft Free
Автентифікатор Authy
Authenticator Mobile Authenticator OTP
Незалежність + + + + +
Потреба
+ + + + +
синхронізації
Відновлення
– + + – –
автоматизації
Допоміжний
метод + – – – –
автентифікації
Захист
програми – – – + –
паролем
Введення даних
+ + + + +
з клавіатури
Застосовність – – – – –
Необхідність
+ + + + +
реєстрації
Передача
+ + + + +
секретів сервісу
Розглянувши готові рішення з двофакторної аутентифікації, можна дійти
невтішного висновку, що головним недоліком використання готових рішень є
використання одного набору генерації всім підключень, і навіть можливість
контролю та доступом до інформації фірмою розробником.
34
Готові рішення мають закритий код і простежити за роботою алгоритму
неможливо, є ймовірність того, що всі дані можуть бути доступні. При
підключенні готового рішення 2FA з прив'язкою до облікових записів, нам не дає
повного захисту, у зв'язку з цим, необхідно розробляти вітчизняні системи
захисту 2FA, в яких код алгоритму буде відкритий і його можна переглянути. Це
дозволить посилити захист даних в інформаційній системі. Більшість компаній,
які мають доступ до конфіденційної інформації, особистих даних, особливо
фінансових, прагнуть максимально достовірно визначати особистість своїх
користувачів.
Висновки
У цьому розділі досліджено методи та засоби захисту інформації в базах
даних та двофакторну автентифікацію. Викладено структурні методи захисту баз
даних. Розглянуто методи та типи двофакторної аутентифікації. Описані
переваги та недоліки кожного з наведених типів. Розглянуто деякі відомі
протоколи, алгоритми авторизації та аутентифікації. Алгоритм HOTP захищеної
аутентифікації за допомогою одноразового коду, заснованого на SHA–1.
Алгоритм TOTP – алгоритм створення одноразових паролів для захищеної
автентифікації.
Розглянуті алгоритми послужили основою для розробки представленого в
роботі алгоритму. Наведено статистичні дані щодо атак та засобів захисту
інформаційних систем. Розглянуто дослідження деяких відомих компаній щодо
витоку конфіденційної інформації та кібератак. Проведено аналіз зовнішніх та
внутрішніх атак, який показав, що великий відсоток витоку припадає на
інформацію про клієнтів та угоди, технічну інформацію, а також персональні
дані. Одним із засобів захисту інформації в інформаційних системах є парольний
захист з використанням другого фактора, який є актуальним на сьогоднішній
день, оскільки весь банківський сектор та компанії, що займаються питаннями
безпеки, використовують двофакторну автентифікацію як додатковий метод
захисту. Описано організації, які надають можливість використання
35
двофакторної автентифікації на основі одноразових кодів для захисту
інформації. Розглянуто деякі наявні додатки двофакторної аутентифікації та
наведено порівняльний аналіз готових додатків. Виділено основні
характеристики додатків, що ґрунтуються на огляді засобів двофакторної
аутентифікації.
36
РОЗДІЛ 2
МОДЕЛЬ ІНФОРМАЦІЙНОЇ СИСТЕМИ ДВОХФАКТОРНОЇ
АУТЕНТИФІКАЦІЇ
2.1. Система аутентифікації користувача з урахуванням генерації
одноразового пароля
У ході дослідження було розглянуто методи автентифікації користувача на
основі генерації одноразового пароля щодо ефективності роботи алгоритмів.
Одноразові паролі OTP (One – Time Passwords) – генеруються для
одноразового входу до інформаційної системи з використанням програмних чи
апаратних методів захисту [71]. Невразливість цих паролів ґрунтується на
використанні заданого інтервалу часу. У зв'язку з цим вирішується проблема
перехоплення згенерованого одноразового пароля.
Навіть якщо зловмиснику вдасться перехопити одноразовий пароль,
скористатися ним, у кращому випадку, він зможе лише в дуже обмежений
проміжок часу, оскільки пароль дійсний лише один раз протягом короткого
проміжку часу. Як можливі пристрої для генерації одноразових паролів
використовуються різні програмні методики. Загалом, для застосування
одноразових паролів користувач повинен мати щось (мобільний телефон, список
паролів тощо), що є автентифікацією «на основі володіння чимось».
Для застосування аутентифікації на основі одноразового пароля
використовуються криптографічні алгоритми посилення його стійкості. Дані
аутентифікації є секретним ключем користувача, що базується на використанні
методу шифрування. Секретний ключ зберігається певний час на сервері і
доступний клієнту за його успішної ініціалізації в інформаційній системі [22].
Після закінчення часу функціонування пароля здійснюється його повторна
генерація. Для забезпечення двофакторної аутентифікації в інформаційних
системах одноразові паролі часто використовуються в групі з паролями, що
зберігаються. Загалом цей алгоритм виглядає так (рис. 2.1).
37
Рис. 2.1. Схема двофакторної аутентифікації
Використання одноразових паролів для проходження двофакторної
аутентифікації здійснюється таким чином:
− проводиться введення облікових даних користувача (логін/пароль);
− облікові дані надсилаються на сервер аутентифікації;
− провадиться перевірка введених користувачем даних на сервері
аутентифікації;
− на стороні сервера формується запит, який генерує одноразовий код та
відправляє його на пристрої;
− одноразовий пароль вводиться користувачем та передає його на сервер;
− сервер здійснює перевірку подібності паролів;
− перевірка задовільна, автентифікація вважається успішною.
Основними джерелами одноразових паролів, що використовуються в
інформаційних системах є:
1. Програмні токени, які генерують одноразові паролі, використовуючи
секретний ключ, та поточний момент часу (системний час ОС).
Секретні ключі користувачів зазвичай зберігаються на сервері, але за
потреби можна використовувати додаткове сховище.
2. Коди, які генеруються випадковим чином, відображаються
користувачеві або як SMS-повідомлення, або з використанням іншого
каналу зв'язку.
3. Запис попередньо сформованих одноразових паролів або Scratch card.
При кожному вході в систему знадобиться введення нового
38
одноразового паролю з вказаним номером. Найпоширенішими
методами аутентифікації є програмні токени, які більш затребувані та
вимагають додаткових витрат.
2.2. Розробка алгоритму двофакторної автентифікації
Розроблено алгоритм двофакторної аутентифікації для захисту інформації
в інформаційно-комунікаційних системах, що дозволяє використовувати
комбінацію постійного та тимчасового (одноразового) паролів.
Постійний пароль користувач вибирає сам. Тимчасовий пароль
генерується за певними алгоритмами та діє протягом певного часу. Для
отримання одноразового пароля використовується додаткове програмне
забезпечення. Генерація одноразового пароля можлива онлайн. У цьому режимі
додаткове програмне забезпечення надсилає запит на сервер авторизації для
генерації тимчасового пароля.
Для отримання одноразового пароля відбувається його генерація на
стороні сервера і надається користувачеві в додатковому програмному
забезпеченні. Одноразовий пароль може містити певний термін дії до однієї
хвилини. Генерація одноразового пароля виконується на основі результату
обраної певної тригонометричної функції, яка матиме ряд змінних параметрів.
Функції будуть об'єднані в масив значень розмірністю 256 на 256, їх
кількість дорівнює 65536. Вибір тригонометричної функції та її початкових
параметрів здійснюється на основі результату обчислення хеш-функції SHA256.
Також, для обчислення тригонометричної функції та її початкових параметрів
може бути використаний будь-який тип хеш-функції. Вхідним рядком для
обчислення хеш-функції є комбінація обліку даних користувача, поточного
моменту часу та додаткового секретного рядка.
Отримана хеш-функція поділяється на окремі числа, які будуть індексами
для вибору тригонометричної функції та початковими даними [13].
Перед отриманням одноразового числового пароля необхідно провести
одноразову ініціалізацію алгоритму за допомогою наступних параметрів: f(t) та
39
w, де f(t) – функція отримання системного часу/дати, що видає значення t, a w –
згенероване секретне слово.
Обчислення одноразового числового пароля провадиться за формулою:
Pas = S (L, P),
де Pas – результат обчисленого числового пароля; S – це функція
обчислення одноразового числового пароля на основі ідентифікації користувача
за введеними параметрами L та P: L – логін користувача; P – пароль користувача.
Розкриваємо функцію S (L,P) наступним чином:
S (L, P) = T [i, j] (a, b, c, x, y, p1, p2),
де T[i,j] – це масив функцій ti,j для обчислення одноразового числового
пароля:
де i,j – позиція функцій у масиві T[i,j]; a,b,c,x,y,p1,p2 – параметри функції
обчислення з масиву T[i,j]. Позиція функції в масиві T[i,j] та її параметри є
результатом отримання певного числа зі згенерованого хешу. Потім знаходимо
значення параметрів функції:
40
де K (H, zk) – є функцією отримання; zk – значення хешу H.
Обчислюємо хеш із отриманих результатів:
H = F (L, P, t, w),
де F (L, P, t, w) – функція обчислення хешу з урахуванням вхідних
параметрів L, P, t, w; t – поточний системний час/дата, w – згенероване секретне
слово.
Запропонований роботі алгоритм генерації одноразового пароля з
використанням програми аутентифікатора та мобільного телефону базується на
моделі генерації одноразового ключа для аутентифікації користувача на основі
другого фактора.
Для реалізації описаного алгоритму використовується хеш функція
SHA256 [20]. Цей алгоритм хешування створено Агентстві Національної Безпеки
США (АНБ, National Security Agency). Хеш-функції перетворюють деякий набір
елементів значення фіксованої довжини і застосовуються для аутентифікації
користувача [14]. SHA256 застосовується для стиснення цифрових даних до
довжини 2,31 екзабайт.
Алгоритм Меркла-Дамгарда служить базою виконання сімейства хеш-
функції SHA-2, завданням якої є поділ вихідного повідомлення довільної
довжини на блоки заданої довжини. Дії з цими блоками здійснюються
послідовно з використанням функції стиснення [75].
Розглянемо приклад отримання одноразового пароля. Вхідними даними
будуть такі значення:
− логін користувача: user16;
− пароль користувача: pass17word;
− поточний момент часу/дати: 21 листопада 202215:19:31;
− секретний рядок: saLte.
Вхідний рядок для обчислення хешу набуде вигляду:
user16pass17word20221121151931saLte
41
Результатом хеш-функції буде наступне вираз:
90CC9939B3C05AA8D36A16B95EE5416B19632332CFB30C4D37DFDE3F7DB7
Для вибору тригонометричної функції використовуються перші символи
результату. Отримані числа «90,CC» необхідно перевести з шістнадцяткової
системи числення в десяткову систему, отримані значення «144, 204» будуть
індексами для вибору тригонометричної функції з масиву розмірністю 256x256.
Нехай, наприклад, за цим індексом буде обрано таку функцію:
де p1 і p2 – початкові параметри.
Як початкові параметри візьмемо два шістнадцяткових числа з кінця
значення хеш-функції, а як значення x візьмемо шістнадцяткове число з позиції
10. Тоді вони приймуть такі значення:
p1 = 125 (7D); p2 = 183 (B7); x = 60 (3С).
Тоді результат функції буде наступним:
Як одноразовий пароль беремо числа після коми, починаючи з 5 позиції і
довжиною 6 цифр. Тоді одноразовий пароль є числом 511132. Використання
розглянутого алгоритму двофакторної аутентифікації, засноване на розробці
програми-аутентифікатора та смартфона для генерації одноразового пароля,
42
дозволить посилити захист інформації в ІС та уникнути несанкціонованого
злому. Дана система 2FA дозволяє забезпечити захист інформації як від
внутрішніх, так і від зовнішніх вторгнень.
Запропонована система двофакторної аутентифікації може
застосовуватися в інформаційній системі компанії як додатковий бар'єр захисту
при електронному документообігу.
Вона заснована на спільному використанні двох факторів аутентифікації,
що значно підвищує безпеку використання інформації з боку користувачів, що
підключаються до інформаційних систем захищеними та незахищеними
каналами комунікацій [36].
2.3. Створення генераторів на формування одноразового пароля
двухфакторної аутентифікації
На першому етапі створення одноразового пароля використовувалися
вхідні дані, де секретне слово вводилося користувачем з клавіатури самостійно.
Під час дослідження алгоритму виникла необхідність створення генератора
секретних слів. Даний метод реалізації дозволить посилити захист даних, що
вводяться при генерації одноразового пароля.
Для формування секретного рядка розроблено генератор, що дозволяє
рандомно формувати слова. Словники слів були використані, оскільки слова, які
у словнику, легше зламати.
Генератор секретних слів заснований на використанні латинського
алфавіту великих та великих символів у загальній сумі, що дорівнює 52. Довжина
згенерованого слова – 5 символів.
Для проведення оптимізації можна використовувати такі методи як [17]:
− повний перебір;
− застосування математичних моделей;
− аналітичне дослідження системи;
− метод комбінаторики;
− використання програмних засобів.
43
Для аналізу стійкості генератора використовувався метод повного
перебору. За цим методом враховується довжина рядка та швидкість перебору за
секунду. На швидкість перебору впливають характеристики програмного
забезпечення та обладнання. До характеристик програмного забезпечення
належать антивірусні програми, захист екранів, операційні системи тощо. До
характеристик обладнання відносяться пропускна здатність шини даних,
швидкість роботи накопичувачів інформації, пропускна здатність мережі,
наявність віртуалізації і т.д.
Дані характеристики суттєво впливають на швидкість роботи алгоритму та
не можуть перевищувати швидкості перебору 1000000 за секунду. 64 ядерний
процесор може перебрати 1000000 слів за секунду.
У розробленому алгоритмі автентифікації користувача на основі другого
фактора генератор секретних слів працює за описаним вище алгоритмом і
генерує слова, що складаються з 5 символів. Швидкість перебору була взята 100
000 слів на секунду, яку може перебрати 4 ядерний процесор, що для
використання обробки на персональному комп'ютері є оптимальним [78].
Кількість варіантів розраховується за формулою, а час пошуку
розраховується за формулою:
S = An
де S – кількість варіантів; А – кількість символів; n – довжина рядка.
S = S / P
де ST – час пошуку; S – кількість варіантів; P – швидкість пошуку.
Розрахуємо час перебору: S = 525 = 380204032, ST = 380204032 / 100000 =
3802, 04032 секунд / 60 = 63 хвилини.
Приклад аналізу генератора представлено таблиці 2.1. Стійкістю
визначається міра оцінки часу, яка використовується для підбору (розпізнавання)
44
пароля, при цьому враховується кількість спроб, які зробили для того, щоб
вгадати пароль. Також стійкістю визначається залежність функції від довжини
пароля у символах, його випадковість та непередбачуваність.
Таблиця 2.1
Параметри генератора секретного рядка
Кількість Кількість
Довжина Час перебору
знаків варіантів
1 52 5 біт Менше секунди
2 2704 10біт Менше секунди
3 140608 15 біт 1 секунда
1 хвилина 22
4 7311616 21біт
секунди
5 380204032 26 біт 63 хвилини
6 19770609664 31біт 55 годин
Випадкові паролі формуються шляхом підбору випадковим способом
будь-якої кількості символів та типу шрифту з можливим використанням
регістрів тексту. Тоді вибір будь-якого символу з деякого набору символів є
рівноймовірним. Надійність випадкового пароля залежить від ентропії
застосовуваного генератора випадкових чисел, часто застосовуються генератори
псевдовипадкових чисел. Застосування обмеженої ентропії використовується в
бібліотеках програмних продуктів, які застосовуються для генерації випадкових
чисел, також можуть бути застосовані стандартні словники. Програми створення
одноразових паролів мають у результаті згенерований пароль, що складається з
певної довжини символів [79]. Для визначення складності випадкового пароля,
що вимірюється в термінах інформаційної ентропії, обчислюється за формулою:
45
де H – результат, що вимірюється в бітах, N – це кількість можливих
символів; L – кількість символів у паролі.
У розробленому алгоритмі аутентифікації користувачів інформаційно-
комунікаційних систем, що базується на генерації одноразового пароля,
створено генератор секретних рядків, який є одним із вхідних параметрів. Даний
генератор секретних слів використовує 52 символи з 26 великих і 26 – великих
латинських літер, розрахований відповідно до формули:
біт
З таблиці 2.1 видно, що 5 символів достатньо для генерації секретного
слова, оскільки секретне слово є лише одним з параметрів для генерації хешу. У
зв'язку з тим, що відповідно до розробленого алгоритму двофакторної
аутентифікації генерація одноразового пароля відбувається кожні 20 секунд,
ймовірність злому згенерованого секретного слова дуже мала. Цим
підтверджується ефективність роботи пропонованого генератора.
Таблиця 2.2
Таблиця залежності пароля від часу розтину
Довжина пароля у символах Час розтину в секундах
1 0,000052
2 0,002704
3 0,140608
4 7,311616
5 380,204032
6 19770,609664
7 1028071,702528
8 53459728,531456
9 2779905883,63571
10 144555105949,057
Розглянемо також вплив довжини пароля на час його розтину, що дорівнює
1000000 слів в секунду. Якщо використовувати метод повного перебору для
46
перевірки стійкості алгоритму, зі збільшенням числа символів у паролі
збільшується кількість варіантів перебору. За основу візьмемо 52 символи, а
швидкість 1000000 слів в секунду (це характеристики вищі, ніж у персональних
комп'ютерів, що зазвичай використовуються, наприклад в ІІВТ). Результати
наведених змін наведено в таблиці 2.2.
Графік побудови на основі результатів зміни часу представлений на
рисунку 2.2.
Рис. 2.2. Результат залежності довжини пароля (по вертикалі) від часу підбору в
секундах
По ОСІ «Х», вказано час розтину в хвилинах, а ОСІ «Y» представлені
значення довжини пароля в символах. Далі проводиться генерація
тригонометричних функцій. При генерації повинні бути відсутні закономірності
чи передбачуваності у подіях. Відповідно до теорії Рамсея ідеальна випадковість
неможлива, особливо великих структур. Випадкова послідовність подій,
символів часто не має порядку і не слідує зрозумілому шаблону або комбінації.
47
У математиці визначенням випадковості є теорія ймовірності та
статистики. У статистиці випадкова величина є присвоєнням числового значення
кожному можливим результатом простору подій. Ця подія полегшує
ідентифікацію та розрахунок ймовірностей. Випадкові змінні можуть бути у
випадкових послідовностях. Випадковим процесом є деяка послідовність
випадкових величин, що описується розподілом ймовірностей.
Випадковий вибір, коли він тісно пов'язаний з простою випадковою
вибіркою, є методом вибору предметів із сукупності, де ймовірність вибору
конкретного предмета є часткою цих предметів у сукупності.
У ситуаціях, коли набір складається з різних елементів, механізм
випадкового вибору вимагає рівних ймовірностей для будь-якого елемента, який
буде обраний [81].
Існує три механізми, відповідальних за випадкову поведінку в системах:
− випадковість, що виходить з навколишнього середовища;
− випадковість, що виходить з початкових умов. Цей підхід
досліджується з використанням концепцій безладдя і також
простежується у концепціях, дії яких дуже помітні до незначних змін
початкових обставин;
− випадковість, внутрішньо породжена системою. Випадковість
внутрішньо породжена системою використовується в генераторах
випадкових чисел. Для генерації випадкових чисел розроблено
алгоритми, які дозволяють визначити поведінку системи,
використовуючи її початковий стан.
Дані методи працюють швидше, ніж отримання «справжньої»
випадковості із навколишнього середовища. Це спричинило створення різних
способів генерації випадкових даних, званих псевдовипадковими. Дані способи
відрізняються тим, наскільки вони непередбачувані чи статистично випадкові, і
скільки часу витрачають на генерацію випадкових чисел.
До появи генераторів псевдовипадкових чисел багато часу витрачалося на
формування великої кількості випадкових чисел [32].
48
Як зазначено вище, генерація одноразового пароля здійснюється на основі
результату вибраної тригонометричної функції, яка має низку змінних
параметрів. Вибір здійснюється відповідно до результату отриманої хеш-функції
стандартів SHA256, які будуть індексами в таблиці розмірністю 256x256.
За цим індексом буде обрано функцію та визначено її параметри. За
підсумками обчислення як одноразовий тимчасовий пароль беруться цифри
після коми, починаючи з 5-ї позиції і довжиною в 6 цифр. Для реалізації цього
методу а розроблено генератор тригонометричних функцій, використання якого
значно полегшить формування цих функцій [23]. Схема алгоритму генератора
тригонометричної функції представлена на рисунках 2.3–2.5. Для створення
тригонометричної функції за основу береться кількість змінних. У цьому
генераторі їх 7: a, b, c, x, y, p1, p2.
Спочатку формується список змінних, внаслідок чого отримуємо
випадкове число variablesCount від 1 до кількості змінних мінус 1. Потім
проходить перебір по масиву з певними змінними N-раз, ґрунтуючись на
випадковому числі від 0 до довжини масиву мінус 1. Зчитується з масиву змінна,
яка додається до нового масиву і видаляється зі старого. Після завершення циклу
формується перелік змінних для функції. На основі цього списку формуються
складові (Math.sin(a), 1/Math.tan(p2)) формату – “['Math.sin()', 'Math.cos()',
'Math.tan( )', '(1/Math.tan())', '()']”. Функція ComponentsСount (кількість елементів
мінус 1) запускає цикл масиву зі сформованими змінними. У циклі на кожному
кроці формується випадкова кількість компонентів індексу від 0 до
componentsCount. Елемент з відповідним значенням componentIndex індексу
перетворюється, замінивши символ на змінну зі списку та додається до нового
масиву. У результаті формується перелік складових елементів із змінними. Далі
формуються ряди, ґрунтуючись на випадковому числі від 1 до 3. У циклі
випадковим чином зливаються складові, розділені знаками математичних
виразів. Після отримання рядків відбувається їхнє об'єднання, розділене
математичними виразами. В результаті роботи генератора отримуємо малу
функцію, яка буде оброблятися на стороні сервера.
49
Рис. 2.3. Алгоритм функції getFunc
Рис. 2.4. Алгоритм функції getComponents
50
Рис. 2.5. Алгоритм функції getFunction
51
У результаті отримуємо генеровану рядкову функцію, яка
використовується для обчислення одноразового пароля двофакторної
автентифікації.
Застосування генераторів для роботи у формуванні одноразового пароля
дозволяє посилити рівень захисту системи, що описується. Не всі випадковості
створено однаково. Є два види випадковості: однаковість та непередбачуваність.
Генератор випадкових чисел забезпечує «рівномірний» висновок, якщо всі числа
будуть однаково часто. Це корисно для моделювання випадкових процесів, але
замало безпеки.
Для комп'ютерної безпеки випадкові числа мають важко вгадуватися, вони
мають бути непередбачуваними. Передбачуваність чисел визначається кількісно
у міру, названою ентропією.
Ентропія відрізняється від статистичної випадковості. Перегляд
статистичних властивостей потоку чисел не гарантує, що потік містить якусь
ентропію. Наприклад, цифри числа пі виглядають випадковими практично за
будь-якою статистичною мірою, але не містять ентропії, оскільки існує добре
відома формула для їх обчислення та точного прогнозування наступного
значення. Для криптографічних ключів кількість ентропії, яка використовується
для їх створення, пов'язана з тим, наскільки важко їх вгадати. 128-бітний ключ,
створений із джерела з 20-бітною ентропією, не більш безпечний, ніж 20-бітний
ключ. Хороше джерело ентропії необхідне створення безпечних ключів [24].
2.4. Розробка моделі аутентифікації користувача на основі другого
фактора
При розробці системи захисту інформації пропонується модель
двофакторної аутентифікації (рис. 2.6).
Розроблена модель ґрунтується на двох типах двофакторної
аутентифікації: додаток – аутентифікатор та перевірка входу за допомогою
мобільних додатків.
52
Описана модель та алгоритм запропонованого способу захисту інформації
в інформаційній системі управління ґрунтуються на використанні комбінації
двох факторів: постійного та тимчасового пароля.
Постійний пароль (перший фактор) користувач вибирає сам і використовує
під час реєстрації облікового запису. Перед авторизацією необхідно пройти
реєстрацію у додатку.
Після цього необхідно запустити програму для введення даних
користувача (логіна та пароля), які повинні відповідати зареєстрованим даним.
При успішному введенні даних необхідно увійти до програми на мобільному
пристрої та ввести початкові дані для генерації тимчасового пароля.
Одноразові паролі, які використовуються як додатковий фактор,
генеруються на сервері за описаним вище алгоритмом і діють протягом
фіксованого відрізка часу, що дорівнює двадцяти секундам для одного сеансу
аутентифікації. Згенерований пароль повторно не використовується, що є
бар'єром для зловмисника, який його перехопив [85, 86]. Зазначимо, що довжина
пароля дорівнює 6-ти символам і він змінюється кожні 20 секунд. У зв'язку з цим,
для його злому необхідно буде перебрати 1000000 паролів, що за вказаний
проміжок часу є складним завданням.
Рис. 2.6. Модель запропонованої двофакторної автентифікації
Розглянутий у цій роботі алгоритм двофакторної аутентифікації на основі
генерації одноразового ключа є результатами дослідження щодо аналізу
можливості застосування в інформаційній системі.
Висновки
У цьому розділі розглянуто отримані результати розробки моделі та
алгоритму захисту інформаційної системи за допомогою двофакторної
аутентифікації на основі генерації одноразового пароля.
53
Описано запропоновану математичну модель системи захисту інформації
при аутентифікації користувача на основі генерації одноразового пароля.
Розроблено алгоритм посилення засобів захисту інформаційної системи.
Алгоритм заснований на виборі певної тригонометричної функції та ряду
змінних параметрів. Вибір параметрів заснований на результаті хеш-функції
SHA256. Як вхідний рядок для хеш-функції використовуються облікові дані
користувача, поточний момент часу за Грінвічем та додатковий секретний рядок.
Результати хеш-функції є індексами для вибору тригонометричної функції та
початкових даних з масиву 256х256. Наведений та докладно описаний приклад
виконання алгоритму з докладним описом.
Проведено аналіз стійкості розробленого генератора секретних слів з
використанням методу повного перебору, а також генератора тригонометричних
функцій, що базується на рандомному формуванні масиву. З результату
обчислення функції формується часовий код, який відображається тільки в
мобільному додатку користувача, прив'язаному до логіну on-line системи. Для
успішної авторизації в системі користувачеві необхідно ввести отриманий код
після спроби авторизації з коректними даними на запит. Розроблена модель та
алгоритм дозволяє посилити засоби захисту інформаційної системи на основі
двофакторної аутентифікації.
Можливість подальшого розвитку запропонованої системи двофакторної
аутентифікації полягає у розширенні компонентів (наприклад, використовується
вже така термінологія, як «Композитна аутентифікація»), застосуванні
вітчизняних криптографічних алгоритмів, розробці додаткових інструментів та
оптимізації рішень з метою підвищення продуктивності.
54
РОЗДІЛ 3
РЕАЛІЗАЦІЯ ТА АНАЛІЗ ЗАХИСТУ ІНФОРМАЦІЙНОЇ СИСТЕМИ ЗА
ДОПОМОГОЮ ДВОФАКТОРНОЇ АУТЕНТИФІКАЦІЇ
3.1. Розробка архітектури системи аутентифікації
Для програмної реалізації запропонованого алгоритму розроблено
діаграма розгортання, що складається з трьох компонентів:
− сервер – база даних;
− клієнт – мобільний додаток;
− генератор ключів.
Архітектура інформаційної системи представлена рис. 3.1.
Рис. 3.1. Діаграма розгортання
Користувач при вході до інформаційної системи має пройти реєстрацію
для здійснення подальшої взаємодії із сервісом. При реєстрації користувачеві
необхідно створити логін та пароль, пароль бажано створити сильний,
дотримуючись рекомендованих стандартів. При вході до інформаційної системи
користувач авторизується, вводячи свої облікові дані та одноразовий пароль. Для
отримання одноразового пароля користувач повинен мати мобільний телефон та
встановлений на нього додаток [17].
Мобільний додаток – клієнтська частина захисту інформаційної системи із
використанням двофакторної аутентифікації. Він дозволяє користувачеві
взаємодіяти з системою шляхом реєстрації власних інформаційних ресурсів або
вибору одного з доступних та генерувати одноразовий тимчасовий пароль для
входу [28].
Мобільний додаток складається з таких основних файлів:
− App.js – початковий файл, у якому відбувається налаштування
маршрутизації програми.
55
− AccountScreen.js– сторінка авторизованого профілю підключеного
інформаційного ресурсу З цієї сторінки відкривається доступ до
перегляду API серверної частини розробленої системи. API є системою
запитів, куди сервер коректно надасть відпові.
− UserAccountScreen.js – сторінка авторизованого облікового запису
користувача, з якого відкривається доступ до вибору підключених
ресурсів та генерації секретного коду.
− ConnectScreen.js – сторінка підключення інформаційного ресурсу до
свого облікового запису.
− CreateCode.js – сторінка для здійснення генерації тимчасового пароля
та його відображення користувачеві.
− LoginScreen.js – сторінка авторизації профілю підключеного
інформаційного ресурсу.
− UserLoginScreent.js – сторінка авторизації користувача облікового
запису.
− MainScreen.js – початкова сторінка з навігаційними кнопками.
− RegistrationScreen.js – сторінка для здійснення реєстрації профілю та
підключення інформаційного ресурсу.
− UserRegistrationScreen.js – сторінка реєстрації користувача облікового
запису.
− ResourcesListScreen.js – сторінка, що містить список доступних
інформаційних ресурсів, у яких здійснено захищену авторизацію за
допомогою розробленої системи двофакторної автентифікації. З цієї
сторінки при виборі одного з ресурсів відкривається доступ до сторінки
генерації одноразового пароля.
Фреймворки та бібліотеки, що використовуються для реалізації
мобільного програми:
− React – фреймворк для розробки клієнтської частини веб-додатків.
56
− Expo – клієнтська оболонка, що дозволяє проводити компіляцію коду
написаного на ReactNative у повноцінному мобільному додатку. Також
використовується для налагодження програми під час розробки.
− ReactNative – фреймворк для розробки мобільного додатку,
ґрунтуючись на коді JavaScript з використанням фреймворку React.
− Axios – підхід до побудови інтерактивних користувачів інтерфейсів
веб-додатків, що полягає у «фоновому» обміні даними браузера з веб-
сервером.
Серверна частина – основний модуль у роботі проекту, якому реалізовано
алгоритм генерації тимчасового пароля для здійснення захищеного входу до
підключених інформаційних ресурсів.
Для безпечного зберігання інформації використовуються криптографічні
алгоритми захисту баз даних та стандартні засоби захисту, такі як підключення
до бази даних за допомогою логіну та паролю адміністратора бази даних [19].
У роботі для захисту інформації використовується механізм кодування
Base64. Це механізм кодування, що використовується для подання та потокової
передачі двійкових даних через носії, обмежені лише друкованими символами
[10]. Основна ідея технології кодування Base64 полягає в тому, щоб взяти три
символи, кожен з яких представлений у 8 бітах, і перетворити їх на чотири
символи, кожен з яких представлений у 6 бітах. Результатом є три символи в
ASCII.
Кожен символ відображається у 8-бітове число від 0 до 255 на основі
таблиці ASCII: представлення трьох символів з 8 бітів кожен та їх з'єднання для
одержання 24 біт. Наступним кроком є поділ 24 біт на чотири рівні частини по
6 біт у кожній частині та переклад кожної частини з використання таблиці
Base64. Кожні 6 біт мають 64 варіанти представлення із символів, доступні такі
символи: цифри, малі та великі літери, а також символи "+" та "/". Кодування
Base64 розбиває вхідний текст на частини по три символи і кодує ці три символи.
Наприкінці процесу може виникнути проблема у тому, що невистачає
одного або двох символи для завершення останнього тріо. Для вирішення цієї
57
проблеми при кодуванні додають один або два символи "0" в кінці, щоб створити
останню 3-байтову групу. Потім кодування Base64 перетворює останні символи
на '='. У результаті отримаємо кодований у Base64 текст, який закінчується
одним або двома символами '='.
Незалежно від того, який рядок закодовано, після багаторазового
кодування в Base64 завжди отримуємо один і той же фіксований префікс, який
починається з "Vm0wd". Причина цього явища у тому, як працює кодування,
тобто як літера «V» поводиться при кодуванні. Кодується літера «V» за
допомогою Base64. В ASCII літера «V» дорівнює 86, яке у 8-бітному поданні має
вигляд 01010110. Після кодування та ігнорування заповнення, оскільки потрібен
лише префікс, будуть використані тільки перші 6 біт представлення, що означає
010101. У Base64 це 21, що також є «V». В результаті виходить, що щоразу при
кодуванні всього, що починається з літери «V», отримаємо закодований рядок,
який також починається з «V», що означає, цикл нескінченний.
Результат перекодування Base64 для кожного ASCII – символу, що
читається та цифри, представлено на рис. 3.2. Кожен колір є відстань кодування
до літери V: синій – чотири ітерації кодування; зелений – три ітерації кодування;
жовтий – дві ітерації кодування; помаранчевий – одна ітерація кодування.
Рис. 3.2 – Графік результату перекодування
Після кодування перших трьох літер фіксованого префікса залишається
залишок у 6 біт. Ці 6 біт будуть визначати наступну букву префіксу. Фактично,
для кожних трьох букв, що додаються до фіксованого префіксу, після кодування
залишаються додаткові 6 бітів, які визначатимуть додатковий символ префікса.
Це означає, що фіксований префікс буде збільшуватися в кожному додатковому
кодуванні на кількість літер у префіксі, ділене на три.
Наприклад, якщо у фіксованому префіксі дев'ять символів, то після іншого
кодування у фіксованому префіксі буде дванадцять символів [11]. Base64
підходить для безпечного зберігання інформації розроблюваної системи, так як
58
надійно зарекомендував себе в шифруванні переданих даних. Схема
використання представлена на рис. 3.3 та 3.4.
Рис. 3.3 – Кодування у Base64
Рис. 3.4 – Декодування у Base64
Організація захисту бази даних із збереженою в ній інформацією із
застосуванням програмної реалізації стандарту кодування даних Base64 істотно
посилює захист системи, що розробляється. Цей стандарт широко застосовується
у транспортному кодуванні.
Для захисту даних, що пересилаються MongoDB, яка в роботі
використовується як СУБД, підтримуються протоколи TLS і SSL для прийому та
передачі даних по мережі. У протоколах TLS та SSL використовують
шифрування для захисту трафіку веб-сайтів та обміну файлами [22].
Протокол SSL (Secure Socket Layer) – рівень захищених сокетів [43].
Протокол TLS (Transport Layer Security) – безпека транспортного рівня
[34]. SSL є більш ранньою системою. TLS з'явився пізніше та заснований на
специфікації SSL 3.0 розробленої компанією Netscape Communications.
Завдання цих протоколів одне – забезпечення захищеної передачі даних
між двома комп'ютерами в Інтернеті. Такий захист під час передачі будь-якої
інформації використовують для різних сайтів, електронної пошти, обміну
повідомленнями. Безпечна передача забезпечується за допомогою
аутентифікації та шифрування інформації, що передається.
Принципових відмінностей між протоколами TLS та SSL немає. TLS є
наступником SSL, хоча вони можуть використовуватися одночасно, причому
навіть на тому самому сервері. Така підтримка необхідна для того, щоб
забезпечити роботу як з новими клієнтами (пристроями та браузерами), так і зі
застарілими, які TLS не підтримують.
Завдання SSL/TLS з'єднання:
59
− забезпечення приватності за допомогою шифрування переданих даних;
− аутентифікація за допомогою сертифікатів;
− забезпечення достовірності інформації за допомогою перевірки
цілісності даних.
Дані протоколи шифрування підходять для захисту даних, що
пересилаються. Однак дані перед відправленням та після прибуття в місце
призначення не зашифровані. MongoDB надає можливість налаштувати
протоколи TLS та SSL з використанням сертифікатів та пари «відкритий та
закритий» ключі, також називається системою асиметричних ключів.
Серверна частина складається з наступних файлів:
− index.js – основний файл, у якому відбувається підключення бази
даних, налаштування сесій та обробка захищеного входу для
підключених інформаційних ресурсів;
− generators.js – файл, що містить генератор слів та генератор
тригонометричних функцій.
Для реалізації серверної частини використовуються такі фреймворки та
бібліотеки:
− Express – фреймворк для Node.js, що спрощує ведення розробки.
− Mongo-db – бібліотека для підключення MongoDB.
− Nodemon – бібліотека, що дозволяє стежити за оновленнями коду та
перезавантажувати сервер після появи таких.
− Request та Request-promise – бібліотеки, які здійснюють відправку
запитів безпосередньо із сервера на сервер.
− Crypto-js – дана бібліотека дозволяє використовувати модуль шифрації
SHA256.
− Body–parser – бібліотека, що дозволяє обробляти дані, що приходять на
сервер у вигляді POST-запитів.
60
Реалізація зв'язку клієнтської та серверної частини дозволяє здійснити
передачу даних між мобільним додатком та серверною частиною. Для вирішення
цієї проблеми використані стандартні бібліотеки:
− Axios – зв'язок клієнта із сервером.
− Request – зв'язок сервера з сервером.
Дані бібліотеки дозволяють гнучко сформувати запит, враховуючи різні
параметри та способи передачі даних (рис. 3.5).
Рис. 3.5 – Бібліотеки для зв'язку між клієнтською та серверною частиною
Розробка та налагодження програмного забезпечення для дослідження
наукових праць, використовує сучасні методи, які дозволяють ефективно
реалізовувати алгоритми. Одним із рішень є використання об’єктно-
орієнтованого програмування [9].
Для реалізації розробленого у роботі алгоритму необхідно створити
функції генерації одноразового пароля з використанням необхідних змін
алгоритму. Розроблена модель реалізована мовою програмування JavaScript. На
діаграмі класів представлена робота додатка для більш детального опису класу
та їх атрибутів (рис. 3.6).
Рис. 3.6 – Діаграма класів
На рис. 3.6 представлена діаграма класів, де візуально описано
взаємозв'язок користувача та програми, запропонованої в роботи.
3.2 Реалізація захисту інформації при автентифікації користувача на
основі одноразового пароля
На першому етапі за запропонованою моделлю розроблено алгоритм
генерації тимчасового пароля для двофакторної аутентифікації [36]. Даний
61
алгоритм реалізований мовою JavaScript у консольному режимі з використанням
бібліотеки CryptoJS.SHA256 для шифрування даних [7].
Для перевірки правильності роботи запропонованого алгоритму
використовується масив функцій розмірністю 10х10. Робота першого етапу
програмної реалізації дослідження представимо у вигляді описаних нижче
кроків.
Крок 1. Введення данних.
Крок 2. Зчитування системної дати та часу. Поточний час зчитується
автоматично і залежить від налаштування операційна система.
Крок 3. Використання бібліотек CryptoJS.SHA256 для шифрування даних.
Розбиття рядка вхідних даних на слова. Обчислення хеш-значення.
Крок 4. Формування змінних на основі hashStr. Завдання змінних –
обчислення тригонометричних функцій. Як початкові параметри вибираються
два шістнадцяткових числа з кінця результату хеш-функції, а як значення «X» і
«Y» беруться шістнадцяткові числа з 10-11 позиції. Тоді вони приймуть наступні
значення:
Крок 5. Визначення індексу функцій (mod 10), так як розмір масиву
дорівнює (10х10).
Крок 6. Заповнення масиву розміром 10х10, що складається з малих
тригонометричних функцій.
Крок 7. Вибір функції з масиву за певним індексом. Взята таблиця
розміром 10x10, у зв'язку з цим вибирається наступна функція за формулою:
Крок 8. Передача у f-малу функцію у вигляді програмного коду.
Крок 9-10. Визначення меж зміни аргументів функції.
Крок 11. Отримання аргументу функції у вигляді рядка.
62
Крок 12. Перетворення об'єкта values по заданим змінним, потім результат
виведення функції із заданими змінними подається у вигляді аргумент. В
результаті буде отримано наступне значення функції:
Крок13. Оголошення тимчасового пароля.
Крок14. Перевірка результату на цілісність та потрібну кількість цифр
після коми.
Крок 15. Тимчасовий пароль визначається числами після коми.
Крок 16. Перевірка довжини пароля: після коми щонайменше 8 символів.
Крок 17. Циклічний перебір.
Крок 18. Якщо пароль має менше 7 цифр після коми, то відбувається
дозапис пароля послідовністю цифр.
Крок 19. Виведення результату.
Крок 20. Починаючи з 1 позиції – довжина 6 цифр.
Крок 21. Перевірка результату, що дорівнює 6 цифр.
Крок 22. Тимчасовий пароль визначається числами після коми, починаючи
з 5-ї позиції, довжина – 6 цифр.
Крок 23. Виведення тимчасового пароля.
Застосування двофакторної автентифікації дозволяє уникнути
несанкціонованого злому системи, знизити ризик витоку персональних даних та
іншої важливої інформації в інформаційній системі. До переваг двофакторної
аутентифікації можна віднести також можливість захисту інформації від
внутрішніх та зовнішніх вторгнень. Описаний алгоритм реалізовано мовою
JavaScript у консольному режимі. Ця програма дозволяє наочно відобразити
генерацію тимчасового пароля за описаним вище алгоритмом. Реалізація
алгоритму представлена на рис. 3.7. Секретний рядок для генерації одноразового
пароля на першому етапі вводилося вручну, і її довжина була нефіксована. Для
63
оцінки згенерованого тимчасового пароля взято різні вхідні дані, що показують
ефективність реалізації алгоритму.
Рис. 3.7 – Реалізація описаного алгоритму мовою розробки JavaScript
Під час проведення аналізу формування одноразового пароля, виявлено
недолік, який надалі було усунено. Він полягав у тому, що при обчисленні
тригонометричної функції її дробова частина дорівнює 2 або 5 символів, а для
вибору одноразового пароля за розробленим алгоритму необхідно брати числа
після коми, починаючи з 5-ї позиції довжиною 6 цифр. Для вирішення цієї
проблеми на програмному рівні здійснено перевірку довжини дробової частини
та доповнення її «0 і 1» за певним методом, що дозволило правильно реалізувати
розроблений алгоритм.
Другим етапом є розробка запропонованого методу аутентифікації,
реалізованого з використанням мережевої архітектури клієнт-сервер. Технологія
клієнт-сервер є мережевою архітектурою – можливим розподілом навантаження
систем.
Розроблений клієнт-серверний додаток, реалізований на програмній
платформі Node.js з використанням мови програмування JavaScript, а також
фреймворків та підключених системних бібліотек. Для реалізації цієї програми
обрано програмну платформу Node.js, оскільки вона є серверною платформою
для роботи з JavaScript через двигун V8. JavaScript виконує дію на стороні
клієнта, а Node – на сервері [8]. Для мови JavaScript фреймворком є jQuery –
бібліотека з готовими функціями візуальних ефектів.
Фреймворк визначає принципи організації архітектури додатку,
створюючи основу при розробці, яку необхідно розширювати, та вносити
коригування відповідно до зазначених вимог.
Для реалізації програми потрібний смартфон, який відобразить
згенерований одноразовий пароль для аутентифікації користувача в системі.
64
Схема взаємодії програмних модулів запропонованого алгоритму представлена
рис. 3.8.
Рис. 3.8 – Схема взаємодії програмних модулів
Для реалізації системи потрібно встановити Node.js. Ця програмна
платформа відповідає за написання серверної частини мовою програмування
JavaScrript. Також разом із нею поставляється пакетний менеджер npm, який
використовується для встановлення різних бібліотек та фреймворків. Додатково
необхідно встановити.
MongoDB – документоорієнтована система управління базами даних з
відкритим вихідним кодом, який не вимагає опису схеми таблиць. При
виникненні складних запитів вони зазвичай вирішуються на стороні програми,
що дозволяє полегшити роботу з даними та посиланнями на них.
MongoDB – нереляційна база даних, що часто застосовується.
Використання системи управління базами даних (СУБД) MongoDB обумовлено
тим, що в цю систему вбудована досить проста масштабованість з
використанням технології шардингу, яка здійснює поділ бази даних на логічні
частини. Парціонування бази даних використовується для того, щоб кожна
частина могла функціонувати на окремому сервері [10].
Перевагою використання СУБД MongoDB є:
− збільшення швидкості розробки;
− відсутність необхідності синхронізувати схему в базі даних та додатку;
− зрозумілий принцип масштабування;
− використання внутрішнього методу шифрування даних;
− простота виконаних рішень.
Якщо в реляційних БД вміст складають таблиці, то MongoDB – база даних
складається із колекцій.
65
Колекція – це група документів MongoDB, яка є еквівалентом простій
таблиці у реляційній базі даних. Колекція вміщена всередині однієї БД.
Документ колекції може мати різні поля (рис. 3.9).
Найчастіше всі документи в колекції створені для однієї мети, або цілей,
що відносяться один до одного.
Рис. 3.9 – Структура MongoDB
Для роботи з БД обрано СУБД MongoDB, оскільки на відміну від
реляційних баз даних вона не використовує табличний пристрій з чітко заданою
кількістю стовпців та типів даних. Документ у MongoDB можна подати як об'єкт,
що зберігає певну інформацію. У деякому сенсі він подібний до рядків у
реляційних СУБД, де рядки зберігають інформацію про окремий елемент.
Вибір документноорієнтованої системи обумовлений тим, що база даних
MongoDB, в якій зберігаються дані для входу в систему та тимчасова інформація
для організації аутентифікації, що використовує внутрішній метод шифрування
даних, заснований на криптографічному алгоритмі. У коді адміністратор, що
розробляється, сам задає логін і пароль:
MongoClient("mongodb+srv://admin:Mdb12812122424@@cluster0-o83lo.
"mongodb.net/test?retryWrites=true", {useNewUrlParser: true}).
Дане налаштування дозволить організувати захист бази даних, так як це є
найважливішою частиною в зберіганні даних користувача. Такі результати
хакерських атак, як неавторизований доступ та втрата даних користувача є
наслідком її недостатнього захисту. Для визначення методів захисту необхідно
визначити об'єкти захисту. Такими об'єктами можуть виступати значення певних
полів, таблиць або записів, самі записи в таблиці, окремі таблиці та цілі бази
даних. Для захисту цих об'єктів можна використовувати такі методи як
представлення, тригери та вбудовані функції шифрування даних.
66
Поданням є динамічна вибірка даних з кількох таблиць. Також це можна
назвати віртуальною таблицею, формуванням того, що відбувається у
співвідношенні з запитом користувача, спрямованим на доступність
представлення даних. Використовуючи цей підхід, користувач, отримує доступ
тільки до сукупності стовпців та записів, які визначені алгоритмом. Таким
чином, можна обмежити доступні дані та контролювати набір інформації з
доступом для редагування. Виходячи з цього, метод подання можна
використовувати для захисту конфіденційності та цілісності даних.
Тригер – це слухач, який викликається під час виконання певних подій.
Такими подіями є додавання, видалення або редагування даних до баз даних.
Використовуючи тригери, можна визначати користувальницький доступ
взаємодії з даними у БД. Також вони дозволяють фіксувати всі події, пов'язані з
модифікацією даних у таблиці, що захищається. Таким чином, цей метод
необхідно використовувати для ефективного контролю цілісності даних та
стеження за всіма подіями, що виникають під час зміни інформації.
Функції шифрування доступні далеко не у всіх системах керування базами
даних. У СУБД MySQL вони надають шифрування даних з допомогою
алгоритмів AES та DES. Також доступне хешування за допомогою алгоритмів
MD5 та SHA1. Використання цих доступних функцій значно полегшує завдання
захисту в базах даних.
Також важливе значення має захист бази даних від SQL ін'єкцій. SQL
ін'єкція – поширений спосіб злому сайтів та додатків. Метою такої атаки є
порушення роботи чи отримання даних БД, без права доступу до неї. У той же
час використання ін'єкції, залежно від системи управління базами даних та умов,
що використовується впровадження, може дозволити атакуючому виконання
довільних запитів до бази даних. Атака типу застосування SQL може бути
можлива через некоректної обробки вхідних даних [11].
MongoDB, що використовується в роботі, захищена від SQL ін'єкцій,
оскільки це не реляційна система управління базами даних
67
документоорієнтованого типу та використовує подібні документи і схему бази
даних JSON.
JSON (JavaScript Object Notation) – параметр тексту, який можна
застосувати для запису та читання. У JSON дані виводяться без розривів рядків
для економії місця. Для подальшого розширення можливостей налагодження
додана розширена перевірка JSON відповідно до опису, json.org в RFC 4627 [12].
Оновлення JSON необхідне для забезпечення можливості перевірки кількох
стандартів, включаючи поточні специфікації RFC 8259 та ECMA-404. Додано
можливість виправлення поширених помилок JSON. Якщо цей параметр
увімкнено, він замінює неправильні лапки, додає пропущені лапки, екранує
неекрановані символи, видаляє коментарі та коми. JSON не залежить від мови
реалізації.
У JSON можуть використовуватися такі типи даних, як рядки, числа,
об'єкти, масиви, логічний тип, значення null.
JSON використовується в JavaScript сценаріях, які включають:
− сховище даних;
− конфігурацію та перевірку даних;
− генерацію структур даних з введення користувача;
− передачу даних із клієнта на сервер, із сервера на клієнт та між
серверами.
Для роботи з MongoDB на диску C створюється папка data, а в ній – папка
«db». Для встановлення пакетів, необхідних для запуску певних частин проекту
(«Server», «devschacht», «dip») потрібно відкрити консоль у папці з файлом
package.json та в ній виконати команду «npm install». Після встановлення всіх
пакетів, проект запускається частинами. Спочатку запускається «Server». Для
цього потрібно зайти в папку, відкрити консоль та виконати команду «npm start».
Після запуску з'явиться повідомлення «сервер запущено».
Далі запускається мобільний додаток через папку devschacht, в якій
відкривається консоль і запускається команда «expostart – android». Після
68
запуску консолі з'явиться QR код: це код швидкого реагування. Також в браузері
відкриється вкладка із системною інформацією та QR кодом (рис. 3.10).
Для роботи мобільного додатка необхідно зчитування QR коду, яке можна
зробити за допомогою встановленого сканера на мобільному за замовчуванням,
або встановити додаткове програмне забезпечення, наприклад «EXPO». Для
запуску смартфона та персонального комп'ютера здійснюється налаштування
локальної мережі, таким чином, щоб вони знаходилися в одній мережі. Далі
відбувається запуск веб-сайту, для цього відкривається папка «dip» і запуск
програми. Далі відкривається консоль і виконується команда «npmrundev». Для
роботи web-програма використовує порт 4000 «localhost:4000». Для перегляду
вмісту бази даних потрібно встановлювати MongoDBCompass та здійснити
підключення натисканням кнопки «connect» (рисунок 3.11).
Після збереження змін усіх налаштувань, частини програми
перезапустяться і готові до роботи [13].
Рис. 3.11 – Вікно роботи MongoDBCompass
3.3. Практична реалізація системи захисту інформації при
автентифікації користувача на основі одноразового пароля
Програмна реалізація розглянутого алгоритму представлена на рис. 3.12.
Рис. 3.12 – Модель реалізації запропонованої двофакторної
автентифікації
Для запуску мобільного додатка необхідно виконати наступні дії:
− встановити програму на телефон за допомогою «apk» файлу;
− запустити програму.
Реалізується даний алгоритм на сервері. З боку клієнта потрібна лише
взаємодія з API додатком.
69
Для реалізації клієнтської частини програми, обрано платформу для
розробки мобільних програм – ReactNative [14]. Вона дозволяє використовувати
низку веб-технологій, які звичні для розробки веб-додатків та ставить
розрахунок на використання компонентів для написання універсальних
мобільних додатків. Після запуску розробленої програми Security Code of the 2FA
відкривається головний екран [7] (рисунок 3.13).
Рис. 3.13 – Головний екран
Для початку роботи з додатком, користувачеві необхідно зареєструвати
обліковий запис. Для реєстрації облікового запису користувача необхідно
натиснути на кнопку «Реєстрація користувача», після цього відкриється екран з
формою для реєстрації облікового запису користувача рис. 3.14.
Рис. 3.14 – Реєстрація користувача
Для реєстрації необхідно заповнити форму та натиснути на кнопку
«Зареєструвати обліковий запис». Після успішної реєстрації користувач може
здійснити вхід до свого облікового запису. Для цього на головному екрані
необхідно натиснути на кнопку «Увійти як користувач» і у вікні заповнити
форму та натиснути на кнопку «Увійти», рис. 3.15.
Рис. 3.15 – Авторизація користувача
Після успішного входу відкривається екран облікового запису
користувача. На цьому екрані надаються функціонали «Підключити ресурс» та
«Генерація коду», рис. 3.16.
Рис. 3.16 – Користувальницький обліковий запис
70
Для створення секретного коду при здійсненні авторизації необхідно
підключити ресурс кнопкою «Підключити ресурс». Відкривається екран з усіма
доступними ресурсами, рис. 3.17.
Рис. 3.17 – Доступні ресурси
Далі потрібно натиснути на потрібний ресурс. Тоді відкриється екран
підключення ресурсу з формою, яку необхідно вибрати та натиснути на кнопку
«Підключити ресурс», рис. 3.18.
Рис. 3.18 – Підключення ресурсу
Далі після успішного підключення ресурсу на екрані користувачу
облікового запису слід натиснути кнопку «Генерація коду». Відкриється вікно
вибору ресурсу, рис. 3.19.
Рис. 3.19 – Вибір ресурсу
Після вибору ресурсу буде відкрито модальне вікно з трьома елементами,
рис. 3.20:
− прогресбар – даний елемент візуально вказує, через який період часу
буде здійснено оновлення коду. Після того як прогресбар почне
заповнюватися заново, попередній тимчасовий пароль буде недійсним;
− текст із кодом – за допомогою даного елемента виводиться тимчасовий
пароль, який необхідно ввести в інформаційному ресурсі під час
здійснення авторизації;
− кнопка «Закрити» – цей елемент дозволяє закрити модальне вікно та
припинити генерацію тимчасових секретних паролів.
Рис. 3.20 – Модальне вікно
71
Для підключення інформаційного ресурсу до системи захисту необхідно
на головному екрані натиснути кнопку «Реєстрація ресурсу»: відкриється екран
із формою, яку потрібно заповнити та натиснути на кнопку «Зареєструвати
обліковий запис», рис. 3.21.
Рис. 3.21 – Реєстрація ресурсу
Після успішної реєстрації необхідно авторизуватись у системі. Для цього
користувачу потрібно натиснути на кнопку «Увійти як ресурс» та заповнити
форму у екрані, потім необхідно натиснути на кнопку «Увійти», рис. 3.22.
Рис. 3.22 – Авторизація ресурсу
Після успішної авторизації відкриється екран облікового запису, на якому
можна переглянути API для взаємодії з двофакторною системою автентифікації.
Розглянемо вплив генерації тимчасового пароля на програмну реалізацію засобів
захисту інформації на основі двофакторної автентифікації. Для оцінки
згенерованого тимчасового пароля взято різні вхідні дані, що показують
ефективність реалізації алгоритму.
Результати аналізу показують, що згенерований тимчасовий пароль не
повторюється і змінюється навіть при введенні даних, що повторюються. Це
обумовлено тим, що у вхідних даних враховуються не тільки логін та пароль, але
і системна дата/час та секретний рядок. Запропонований метод дозволяє
використовувати двофакторну автентифікацію для забезпечення захисту
інформації в інформаційній системі [18].
Продуктивність розробленої програмної реалізації
Дослідження продуктивності розробленого додатку дозволяє значно
зменшити період обробки алгоритму та витрати на підтримку працездатності.
72
Автоматизація процесу тестування дозволить зменшити час обробки даних в
інформаційній системі.
Однією з важливих характеристик застосування програмного продукту є
швидкість його виконання. У зв'язку з цим розглянуто результати дослідження
швидкості виконання програмної реалізації алгоритму двофакторної
аутентифікації на основі генерації одноразового пароля. Результати аналізу
виконання алгоритмів двофакторної аутентифікації, представлені на рис. 3.23.
Рис. 3.23 – Розмір програми 2FA
По ОСІ «Х» представлені додатки двофакторної аутентифікації, а по ОСІ
«Y» розмір додатків у Мегабайтах. З графіка видно, що розглянутий у роботі
клієнт-серверний додаток Security Code of the 2FA має розмір 0,687 Мбайт, що є
оптимальним для реалізації запропонованого алгоритму.
Висновки
У даному розділі наведено результати програмної реалізації
запропонованого алгоритму. Розроблений додаток є клієнт-серверною
архітектурою та дозволяє повністю реалізувати розроблений алгоритм.
Розглянуто компоненти системи: користувач, мобільний додаток та серверна
частина, описані використовувані файли, бібліотеки та фреймворки для
реалізації цього алгоритму.
Описано механізми криптографічного захисту баз даних Base64 та робота
алгоритмів TLS та SSL. Для розробленої інформаційної системи обрано
програмну платформа Node.js, мова програмування JavaScript та
документоорієнтована система управління базами даних MongoDB Новизна
результатів: реалізовані моделі генерації та наступного оновлення блоків
функцій та секретних слів за допомогою генераторів, реалізовані на стороні
сервера. Для перевірки коректності одноразового пароля розглянуто як різні, так
і однакові облікові дані користувача, які генерувалися за описаним алгоритмом.
Результати перевірки показали правильність роботи досліджуваної системи.
73
ЗАГАЛЬНІ ВИСНОВКИ
Основні результати, отримані у кваліфікаційній роботі.
Кваліфікаційна робота полягала у розробці та дослідженні алгоритму
автентифікації користувачів інформаційно-комунікаційних систем на основі
другого фактору. Метод двофакторної автентифікації створено на основі
генерації одноразового пароля (другого фактору), який обчислюється з
використанням вибраної тригонометричної функції посиленням захисту
інформаційної системи. Проведено аналіз нормативно-правових актів з питань
та проблем забезпечення інформаційної безпеки на тему дослідження.
Здійснено аналіз відомих алгоритмів та протоколів двофакторної
автентифікації, криптографічних алгоритмів та додатків для захисту інформації
в інформаційній системі. Описано математичну модель системи захисту
інформації при автентифікації користувача на основі генерації одноразового
пароля. Розроблено алгоритм посилення засобів захисту в інформаційній
системі.
Алгоритм заснований на виборі певної тригонометричної функції та ряду
змінних параметрів. Вибір параметрів заснований на результаті хеш-функції
SHA256. Як вхідний рядок для хеш-функції використовуються облікові дані
користувача, поточний момент часу за Грінвічем та додатковий секретний рядок.
Результати хеш-функції є індексами для вибору тригонометричної функції та
початкових даних з масиву 256х256.
Розроблено алгоритм двофакторної автентифікації на основі програми –
автентифікатора та мобільного телефону, що генерує ускладнений набір функцій
одноразового пароля для кожної окремої інформаційно-комунікаційної системи.
Запропонована система може бути впроваджена також і в закриту мережу. Для
запропонованого алгоритму автентифікації користувачів інформаційно-
комунікаційних систем на основі другого фактору розроблено та реалізовано
додаток.
74
Проведені науково-дослідні роботи з розроблення та аналізу систем
захисту інформації при ідентифікації та автентифікації користувача на основі
двофакторної автентифікації спрямовані на вирішення завдань із забезпечення
інформаційної безпеки.
75
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Alberts C. J. Operationally Critical Threat, Asset and Vulnerability Evaluation /
C. J. Alberts, S. G. Behrens, R. D. Pethia, W. R. Wilson. – 2018. – P. 84.
2. Bakshi A. Securing cloud from DDOS Attacks using Intrusion detection system
in virtual machine // Second International Conference on Communication
Software and Networks, IEEE Computer Society, – 2018. – Р. 260–264.
3. Cheng J. A survey on smart home networking // Carleton University, Systems
and Computer Engineering, Technical Report, SCE-09-19. – 2019. – 125 р.
4. Collotta M. A solution based on bluetooth low energy for smart home energy
management / /Energies. – 2019. – Т. 8., №. 10. – Р. 11916-11938.
5. Endorf C. F. Measuring ROI on security / Carl F. Endorf // Information security
management handbook / Edited by Harold F. Tipton and Micki Krauze. – 6th
edition. – Boca Raton: Auerbach Publications, 2017. – Ch. 12. – P. 133-137.
6. Gillam L. Cloud Computing: Principles, Systems and Applications / Nick
Antonopoulos, Lee Gillam. – L.: Springer, 2020. – 379 p.
7. Henry K. Risk management and analysis / Kevin Henry // Information Security
Management Handbook / Edited by Harold F. Tipton, Micki Krauze. – 6th
edition. – Boca Raton : Auerbach Publications, 2017. – Part 1, Section 1.4, Ch.
28. – P. 321-329.
8. Hopfield J. Neural networks and physical systems with emergent collective
computational abilities / Proceedings of National Academy of Sciences, vol. 79
no. 8 – Р. 2554–2558.
9. IBM Spectrum Computing [Електронний ресурс] – Режим доступу:
http://www.platform.com
10. ISO/IEC 27035. Information technology. Security techniques. Information
security incedent management. – 2011. – 78 p.
11. Johnson A. Guide for SecurityFocused Configuration Management of
Information Systems. – NIST Special Publication 800-128, 2019. – 99 p.
76
12. Joshi J. A Generalized Temporal Role -Based Access Control Model / J. Joshi,
E.A Bertino, U. Latif, A. Ghafoor // IEEE Trans. Knowledge and Data Engineer-
ing. 2019. No. 17(1). P. 4–23.
13. Kalal Z. Tracking-learning-detection / Z. Kalal, K. Mikolajczyk, J. Matas //
IEEE Trans. Pattern Anal. Mach. Intell. – 2022. – Т. 34 – № 7 – Р. 1409-1422.
14. Kocher P. Security as a new dimension in embedded system design //
Proceedings of the 41st Design Automation Conference (DAC’19). – 2019. –
P. 753-760.
15. Labeled Faces in the Wild Home // University of Massachusetts, Vision Lab
[Електронний ресурс] Режим доступу: http://vis-www.cs.umass.edu/lfw/.
16. Lades M. Distortion invariant object recognition in the dynamic link architecture
/M. Lades, J. C. Vorbrueggen, J. Buhmann, J. Lange, C. v.d Malsburg,
R.P. Wuertz, W. Konen // IEEE Trans. Comput. – 2019. – Т. 42 – № 3 – Р. 311.
17. Landoll D. The security risk assessment handbook: a complete guide for
performing security risk assessments / Douglas J. Landoll. – Boca Raton:
Auerbach Publications, 2016. – 504 p.
18. Lawrence S. Face recognition: a convolutional neural-network approach. /
S. Lawrence, C. L. Giles, A. C. Tsoi, A. D. Back // IEEE Trans. Neural Netw. –
2017. – Т. 8 – № 1 – Р. 98-113.
19. Makarevich O. The method of the information security risk assessment // Oleg
Makarevich, Irina Mashkina, Alina Sentsova. Proceedings of the 6th
International Conference on Security of Information and Networks (SIN-2019),
Aksaray, Turkey. P 446–447.
20. Morales A. Synthesis of large scale hand-shape databases for biometric
applications. Pattern Recognition Letters, 68, P. 183–189.
21. National Institute of Standards and Technology. Role Based Access Control
(RBAC) and Role Based Security [Electronic resource]. – Режим доступу:
http://csrc.nist.gov/groups/SNS/rbac.
22. Padula L.J. Security Computer System: Mathematical Foumdation // Mitre
Techical Report. – 2017. – 35 p.
77
23. Privacy and security policies lag biometric data use. [Електронний ресурс]:
Режим доступу: https://dailybrief.oxan.com/Analysis/GA245847/Privacy-and-
security-policies-lagbiometric-data-use.
24. Ratha N.K. Enhancing security and privacy in biometrics-based authentication
systems / N. K. Ratha, J. H. Connell, R. M. Bolle // IBM Syst. J. – 2021. – Т. 40
– № 3 – Р. 614–634.
25. Re:Action // VisionLabs. [Електронний ресурс] Режим доступу:
http://www.visionlabs.com/facerecognition.
26. Rittinghouse J. W. Business continuity and disaster recovery for infosec
managers / John W. Rittinghouse, James F. Ransome. – Oxford: Elsevier, 2019.
– 408 p.
27. Samaria F.S. Parameterisation of a stochastic model for human face
identification / F.S. Samaria, A.C. Harter // Applications of Computer Vision,
2020, Proceedings of the Second IEEE Workshop on. 2020. – Р. 138-142.
28. Samarin N. Biometric Authentication Based on ECG Signals. Project Report,
Computer Science School of Informatics University of Edinburgh. 2017 – Р. 83–
89.
29. Smirnov A. Context-based access control model for smart space // Cyber
Conflict (CyCon), 7th International Conference on. – IEEE, 2017. – P. 1-15.
30. Spedding L. Business risk management handbook: a sustainable approach /
Linda Spedding, Adam Rose. – Oxford: Elsevier, 2018. – 768 p.
31. Viola P. Robust real-time object detection / P. Viola, M. Jones // Int. J. Comput.
Vis. – 2021. – Т. 57 – Р. 137-154.
32. Wallace R. Cross-pollination of normalization techniques from speaker to face
authentication using Gaussian mixture models // Information Forensics and
Security, IEEE Transactions. – 2022. – Vol. 7. – №. 2. – Р. 553-562.
33. Wiskott L. Recognizing faces by dynamic link matching. / L. Wiskott, C. Von
der Malsburg // Neuroimage – 2021. – Т. 4 – № 3 – Р. 14-18.
34. Zgurovsky M.Z. Sustainable development global simulation: Opportunities and
treats to the planet // Russ. J. Earth Sci. – 2017. – 9 р.
78
35. Zhao W. Discriminant analysis of principal components for face recognition /
W. Zhao, R. Chellappa, A. Krishnaswamy // Proc. Third IEEE Int. Conf. Autom.
Face Gesture Recognit. – 2019. – 58 p.
36. Андрухів А.І. Порівняння методів оцінки захищеності автоматизованих
інформаційних систем / А.І. Андрухів, Д.О. Тарасов // Вісник
Національного університету «Львівська політехніка». – 2018. – № 573. –
С. 3–9.
37. Бурячок В.Л. Алгоритм оцінювання ступеня захищеності спеціальних
інформаційно-телекомунікаційних систем // Захист інформації, Північна
Америка, 2018, С. 56-62.
38. Варецький Я. Особливості застосування біометричної інформації в ланках
автентифікації ґрід-середовища/ Я. Варецький, А. Ігнатович, // «Проблеми
корозійно-механічного руйнування, інженерія поверхні, діагностичні
системи» – Матеріали відкритої науково-технічної конференції молодих
науковців і. спеціалістів Фізико-механічного інституту ім.. Г.В. Карпенка
НАН України. – Львів. – 2019. –С.287-289.
39. Гадецька З.М. Ідентифікація і автентифікація – методи захисту від
несанкціонованого доступу / З.М. Гадецька, Д.Г. Омельчук. Восточно –
Европейский журнал передових технологий. – 2/2(62) – 2019, С. 8-10.
40. Гайворонський М. В. Безпека інформаційно-комунікаційних систем /
Гайворонський М.В. – К.: Видавнича група BHV, 2019. – 608 с.
41. Гарасим Ю. Р. Аналіз систем захисту, які мають властивість живучості /
Ю. Р. Гарасим // Військово-технічний збірник. – 2018. № 1 (4). – С. 87–95.
42. Гарасим Ю. Р. Забезпечення живучості та неперервності функціонування
систем захисту інформації / Ю. Р. Гарасим, В. А. Ромака, М. М. Рибій //
Вісник Нац. ун-ту “Львівська політехніка” “Автоматика, вимірювання та
керування”. – 2019. – № 741. – С. 105-112.
43. Глушак В.В. Синтез структури системи захисту інформації з
використанням позиційної гри захисника та зловмисника, ч. ІІ, Системні
дослідження та інформаційні технології, 2018. – С. 89–100.
79
44. Голобородько М.Ю. Методи числової оцінки рівня захищеності інформації
у сегменті корпоративної інформаційної системи / Збірник наукових праць
Національного університету оборони України, №2(51), 2019. – С. 137-139.
45. Дронь М. М. Основи теорії захисту інформації: Навч. посібник. – Д.: Вид-
во Дніпропетр. ун-ту, 2017. – 312 с.
46. Замула О. А. Аналіз міжнародних стандартів в галузі оцінювання ризиків
інформаційної безпеки / О. А. Замула, В. І. Черниш // Системи обробки
інформації. – Х.: ХУ ПС, 2014. – Вип. 2(92). – С. 53-56.
47. Захист інформації в автоматизованих системах управління: навчальний
посібник / Уклад. І.А. Пількевич, Н.М. Лобанчикова, К.В. Молодецька. –
Житомир: Вид-во ЖДУ ім. І. Франка, 2020. – 226 с.
48. Згуровский М.З., Панкратова Н.Д. Системный анализ (проблемы,
методология, приложения). – К.: Наук. думка, 2017. – 744 с.
49. Інформаційна технологія ідентифікації персоналу на основі комплексу
біометричних параметрів / Юрій Олександрович Кумченко, Херсон. нац.
техн. ун-т. – Херсон : [Б.в.], 2017.– 20 с.
50. Кавун С. В. Інформаційна безпека. Навчальний посібник. Ч.1 / С.В. Кавун,
В.В. Носов, О.В. Мажай. – Харків: Вид. ХНЕУ, 2018. – 352 с.
51. Лупенко С.А. Компаративний аналіз моделей, методів та засобів
автентифікації особи в інформаційних системах за її клавіатурним
почерком / С.А. Лупенко, Н.Р. Шаблій, А.М. Лупенко // Вісник
Національного університету «Львівська політехніка» «Комп’ютерні
системи та мережі». – 2021. – №806. – С.141-147.
52. Новіков О. М. Побудова логіко-ймовірнісної моделі захищеної
комп’ютерної системи // Правове, нормативне та метрологічне
забезпечення системи захисту інформації в Україні. – 2019. – Вип. 3. –
С. 101-105.
53. Русин Б. Біометрична автентифікація та криптографічний захист:
монографія / Русин Б. – НАН України, Фіз.-мех. ін.-т ім.. Г.В. Карпенка. –
Львів: Коло. – 2017. – 287 с.
80
54. Сокольський І.О. Дослідження та розробка засобів демонстрації
автентифікації за відбитками пальців / І.О. Сокольський // Всеукраїнська
конференція студентів та молодих вчених. – 2021. – С. 24.
55. Хнигічева А. М. Моделювання захищеності складних інформаційно-
комунікаційних систем із використанням логіко-ймовірнісного методу //
Наукові вісті НТУУ "КПІ". – 2020. – Вип. 6. – С. 70-77.