З появленням інтернету, спілкування людей перенеслось туди. У нас з’явилась можливість ділитися різного роду інформацією через всесвітню мережу, у тому числі й нашою конфіденційною інформацією. І з останнього виникає питання безпеки нашої секретної інформації. Ідея веб-сервісу полягає в тому, щоб відповісти на питання - “Як зберегти секретність нашої інформації в інтернеті?”.
Захист інформації у інтернеті є досить важливою темою, особливо у військовий час, адже війна ведеться не тільки на полі бою, а і в інтернеті, тому будь-який витік інформації, може бути небезпечним. Простий приклад, місце перебування військової бригади, це може бути використано нашим ворогом, що зможе нашкодити нашій армії, і можливо усій державі. Або до прикладу, використання паролю для входу у різні облікові записи, якщо пароль важко запам’ятати, ми зберігаємо його у ненадійних місцях, і виникає проблема злому наших облікових записів. Деяке програмне рішення даної проблеми запропонували представники відділу інформатики французької вищої педагогічної школи Мішель Абдалла та Девід Пуйнчеваль. Вони запропонували деяку технологію, яка забезпечує складну взаємодію між обчислювальними ресурсами та ресурсами даних, іншими словами безпечну технологію для обміну ключами автентифікації паролів[1]. Також в одній із статей було запропоновано рішення для генерації та використання одноразових паролів, що говорить про те, що дослідження в темі передачі одноразової інформації досить актуальне в наш час. По думці автора така система може допомогти зменшити шкоду зловмисників, які будь-яким чином будуть старатися дізнатися паролі користувачів інтернету. Запобігти крадіжці пароля ми звісно не завжди можемо, але якщо він буде використовуватись лишень один раз, тоді ця крадіжка не зможе зробити серйозної шкоди. [2]
Що ж робити, якщо є потреба передати пароль та логін іншій людині, так щоб цю інформацію не отримала стороння людина. Для вирішення такої проблемної задачі є незалежний ресурс, який не вимагає реєстрації, і не зацікавлений у збереженні або використанні інформації, яка буде поширюватися користувачами даного ресурсу. Це і є ідеєю запропонованого веб-застосунка. Простий функціонал для одноразового обміну інформацією, тобто передані дані будуть одразу згорати, як тільки будуть переглянуті отримувачем.
Рис.1 Алгоритм системи
Система надає можливість для обміну інформації двох типів даних, а саме: текстові повідомлення або файл. Уся інформація, яка передається користувачами зберігається у системі у зашифрованому вигляді, а доступ до перегляду є тільки по спеціальному посиланні, яке в собі має інформацію, завдяки якій можливе розшифрування. Також для користувача доступний додатковий функціонал який дозволить зручніше та безпечніше передавати свою інформацію. Першим додатковим функціоналом є надання терміну придатності доступу до перегляду. Доступ до перегляду можливий до тих пір поки не вийде час терміну існування інформації. Другим додатковим функціоналом є надання паролю переданій інформації для того, щоб був можливий додатковий захист для перегляду. Також варто згадати, що інформація у системі може зберігатися тільки до одного дня з моменту її збереження, якщо вона не буде переглянута до цього моменту, її буде витерто, і перегляд буде неможливий.
Що ж стосується реалізації, то було обрано клієнт-серверну архітектуру за основу. За допомогою даної архітектури можна правильно розділити бізнес-логіку та частину, яка буде представлена користувачеві.[3] Система поділена на три частини такі, як: серверна частина, клієнтська частина та база даних.
Для реалізації серверної частини було обрано наступний перелік технологій:
• Мова програмування Java. Так як дана мова є однією з найпопулярніших мов для написання веб застосунків, і має досить простий синтаксис, що дозволяє легко написати код на ній.
• Фреймворк Spring. Даний фреймворк включає у себе велику кількість корисних модулів, які були використані в ході реалізації веб застосунку. Spring Data модуль, використаний у реалізації для зручної взаємодії з БД, завдяки ньому реалізовані усі запити до БД. Spring MVC модуль реалізовує паттерн Model-View-Controller, і в ході запропонованого застосунку відповідає за приймання та опрацювання запитів від клієнта. Spring Boot допомагає дуже легко налаштувати конфігурацію та поєднати усі реалізовані модулі нашого веб-застосунку. [4]
Для реалізації клієнтської частини було обрано наступний перелік технологій:
• Стек поєднаних технологій HTML, CSS та JavaScript. Завдяки поєднанню даних технологій ми описуємо структуру наших веб сторінок, щоб користувачу було представлене красиве та зручне візуальне представлення функціоналу нашого застосунку.
• Бібліотека Thymeleaf. Дана бібліотека дуже грамотно взаємодіє з вищезгаданим фреймворком Spring і допомагає реалізувати динамічність наших веб-сторінок. [5]
Що ж до бази даних, для її реалізації було обрано реляційну систему управління базами даних MySQL.[6]
Висновки: при виконанні поставленого завдання, був розроблений ‘Веб-сервіс для безпечного одноразового обміну інформацією’. Було проаналізовано набір існуючих веб-сервісів з подібним функціоналом і виокремлено найнеобхідніші задачі, які повинен виконувати розроблений сервіс. Було проаналізовано стек технологій і вибрано ті, які позитивним чином впливатимуть на швидкість та якість розробки, розширення системи в майбутньому, продуктивність системи і користь для користувача.
Реалізовано метод за яким, дані, якими обмінюються користувачі розробленого веб-сервісу, попередньо зберігаються у розробленій БД у зашифрованому вигляді. А можливість перегляду інформації є тільки у людини (отримувача), яка має спеціальне посилання, а вже за яким інформація може бути переглянута.
Розроблений сервіс дає можливість користувачам обмінюватися своїми секретами не переймаючись за витік їхніх даних у широкий доступ.
Список використаних джерел
1. Абдалла М., Шевассут О., Поінчеваль Д. (2005). Одноразовий обмін зашифрованими ключами на основі верифікатора. В: Vaudenay, S. (eds) Public Key Cryptography - PKC 2005. PKC 2005.
2. Шевчук О. П. Система захисту забезпечення асинхронного безпечного веб-сервісу обміну повідомленнями Хмельниц. нац. ун-т. – Хмельницький, 2022.
3. Клієнт-серверна архітектура
4. Spring Framework
5. Thymeleaf
6. MySQL