Учасник: Шейка Михайло Максимович
Науковий керівник: Войтко Вікторія Володимирівна, доцент.
Keysy – зручний менеджер паролів, що допомагає безпечно зберігати паролі. Багато людей тримають їх у незахищених місцях: текстових файлах на робочому столі чи нотатках, ризикуючи втратити доступ до email, соцмереж чи банків. Причини – складні інтерфейси менеджерів паролів та брак знань кібербезпеки. Keysy має простий інтерфейс, мінімум кнопок і вбудований генератор паролів. Кілька кліків – і ваші паролі в надійному зашифрованому сховищі без зайвих зусиль. Спробуйте Keysy сьогодні!
Анотація
Keysy вирішує проблему небезпечного зберігання паролів (у файлах, нотатках, месенджерах) через необізнаність і складність інших програм. Побудований на Python із tkinter, використовує шифрування AES-GCM і хешування Argon2, працює офлайн. Функції: генерація паролів, пошук, сортування, копіювання, видалення Кросплатформний, потребує стандартного ПК. Вартість розробки – ~$1089. Keysy сприяє кіберграмотності та має потенціал для комерціалізації.
Ключові слова: менеджер паролів, шифрування AES-GCM, хешування Argon2, Python, кросплатформність, кіберграмотність.
Abstract
Keysy solves the problem of insecure password storage (in files, notes, messengers) due to the lack of awareness and complexity of other programs. It is built in Python with tkinter, uses AES-GCM encryption and Argon2 hashing, and works offline. Features: password generation, search, sorting, copying, deleting Cross-platform, requires a standard PC. The development cost is ~$1089. Keysy promotes cyber literacy and has the potential for commercialization.
Keywords: password manager, AES-GCM encryption, Argon2 hashing, Python, cross-platform, cyber literacy.
Вступ
Keysy – це настільний менеджер паролів, розроблений для забезпечення простого, безпечного та зручного управління паролями для користувачів із мінімальними технічними навичками. Основна ідея проєкту полягає в подоланні двох ключових проблем: небезпечного зберігання паролів (у текстових файлах, нотатках, месенджерах чи на папірцях) і складності традиційних менеджерів паролів, які відлякують звичайних користувачів заплутаними інтерфейсами та численними налаштуваннями.
Keysy пропонує інтуїтивно зрозумілий інтерфейс, який дозволяє користувачам легко зберігати, створювати та управляти паролями без необхідності розбиратися в технічних деталях. Програма працює офлайн, що робить її особливо корисною в умовах нестабільного інтернет-з’єднання, наприклад, під час перебоїв, спричинених війною чи іншими обставинами. Кожен пароль захищено сучасними методами шифрування, що гарантує безпеку даних навіть у разі втрати доступу до комп’ютера.
Основні функції Keysy:
1. Безпечне зберігання паролів: Паролі зберігаються у зашифрованому вигляді в локальному файлi, захищеному від несанкціонованого доступу.
2. Генерація надійних паролів: Вбудований генератор створює складні паролі з налаштуваннями (довжина, використання літер, цифр, символів).
3. Простий інтерфейс: Мінімалістичний дизайн із таблицею записів, полями введення та кількома кнопками, що полегшує навігацію.
4. Пошук і сортування: Швидкий пошук за назвою чи логіном і сортування записів для зручного доступу.
5. Копіювання паролів: Можливість копіювати паролі в буфер обміну одним кліком.
6. Система авторизації: Доступ до програми захищено головним паролем, який хешується для безпеки.
Keysy розроблено на мові програмування Python із використанням бібліотеки tkinter для створення графічного інтерфейсу. Для забезпечення безпеки застосовуються сучасні технології шифрування (AES-GCM) і хешування (Argon2, SHA-256). Дані зберігаються локально у зашифрованому файлі, що виключає залежність від хмарних сервісів. Програму протестованою на Windows, але потенційно сумісна з macOS і Linux завдяки універсальності Python.
Проблема небезпечного зберігання паролів є поширеною через низьку обізнаність користувачів у питаннях кібербезпеки та складність більшості менеджерів паролів. Наприклад, за даними досліджень, близько 60% користувачів повторно використовують паролі для різних сервісів, а 25% зберігають їх у незахищених місцях, таких як текстові файли чи нотатки. Keysy вирішує цю проблему, пропонуючи:
• Простоту: Інтерфейс із мінімальною кількістю елементів управління, що робить програму доступною навіть для людей похилого віку чи тих, хто не має технічних навичок.
• Безпеку: Сучасні методи шифрування захищають дані від зловмисників.
• Доступність: Офлайн-режим і безкоштовна модель дозволяють використовувати Keysy в будь-яких умовах, зокрема в регіонах із нестабільним інтернетом.
Особливо актуальним Keysy є в Україні, де після 2022 року через війну багато людей зіткнулися з перебоями в інтернет-з’єднанні та необхідністю швидко адаптуватися до нових онлайн-сервісів. Keysy допомагає захистити паролі без залежності від хмарних рішень, що потребують постійного підключення до мережі..
Актуальність і новизна
Зі зростанням кількості онлайн-сервісів (соціальні мережі, банківські платформи, освітні інструменти) потреба в безпечному управлінні паролями зростає. Кібератаки, такі як фішинг чи витік даних, стають дедалі частішими, а в Україні війна додала виклики, пов’язані з перебоями в інтернеті та необхідністю захисту даних у нестабільних умовах. Keysy відповідає цій потребі, пропонуючи офлайн-рішення, яке не залежить від зовнішніх серверів.
Хоча менеджери паролів уже існують (наприклад, LastPass, 1Password), Keysy вирізняється своєю простотою та орієнтацією на непідготовлених користувачів. Більшість конкурентів пропонують хмарні рішення з платними підписками, тоді як Keysy є безкоштовним, локальним і мінімалістичним. Використання ефективних алгоритмів (наприклад, Merge Sort для сортування, бінарний пошук із частковою відповідністю) у поєднанні з простим інтерфейсом робить Keysy унікальним у своїй ніші. Новизна також полягає в адаптації до локального контексту, зокрема офлайн-режиму, що є критично важливим у регіонах із нестабільною інфраструктурою.
Потенційні споживачі (користувачі)
Keysy орієнтовано на широку аудиторію, яка цінує простоту та безпеку:
• Звичайні користувачі: Люди без технічних навичок, які зберігають паролі в незахищених місцях через складність інших менеджерів паролів. Це можуть бути студенти, офісні працівники, пенсіонери.
• Мешканці регіонів із нестабільним інтернетом: Зокрема в Україні, де перебої з електрикою чи зв’язком є поширеними, Keysy пропонує надійне офлайн-рішення.
• Малі бізнеси та фрілансери: Ті, хто потребує безпечного зберігання паролів для робочих акаунтів, але не хоче платити за хмарні сервіси.
• Освітні установи: Школи, університети чи бібліотеки, які можуть використовувати Keysy для навчання основ кібербезпеки.
Можливості комерціалізації або соціальна значимість
Можливі такі варіанти комерціалізації Keysy:
1. Freemium-модель: Базова версія Keysy залишатиметься безкоштовною, але можна додати преміум-функції, такі як синхронізація між пристроями, підтримка кількох користувачів чи інтеграція з браузерами. Це може привабити малі бізнеси чи професійних користувачів.
2. Ліцензування для організацій: Keysy можна адаптувати для корпоративного використання, пропонуючи ліцензії для компаній, які хочуть забезпечити співробітникам безпечне управління паролями.
3. Інтеграція реклами: Додавання ненав’язливої реклами (наприклад, через банери в інтерфейсі) для монетизації безкоштовної версії.
4. Локалізація та продаж: Розширення Keysy на міжнародний ринок шляхом локалізації інтерфейсу та маркетингу в країнах із подібними проблемами (наприклад, регіони з нестабільним інтернетом).
Соціальна значимість:
1. Підвищення кіберграмотності: Keysy допомагає користувачам засвоїти основи інформаційної безпеки, навчаючи їх зберігати паролі безпечно. Це особливо важливо для людей похилого віку чи тих, хто не має доступу до дорогих рішень.
2. Освітній потенціал: Keysy можна використовувати в школах чи громадських організаціях для навчання кібербезпеці, демонструючи, як просто й ефективно захищати паролі.
Апаратна частина
Апаратні вимоги є мінімальними, що забезпечує широку сумісність із більшістю сучасних пристроїв. Основні апаратні вимоги:
• Процесор: Будь-який сучасний процесор (наприклад, Intel Core i3 або еквівалент AMD) із частотою від 1 ГГц.
• Оперативна пам’ять: Мінімум 512 МБ (рекомендується 2 ГБ для комфортної роботи).
• Місце на диску: Приблизно 50 МБ для встановлення програми, бібліотек і зашифрованого файлу даних (keysy_data.json.enc).
• Операційна система: Windows (протестовано на Windows 10/11), із потенційною підтримкою macOS і Linux завдяки кросплатформності Python.
• Периферійні пристрої: Стандартна клавіатура та миша для взаємодії з графічним інтерфейсом.
• Додаткові вимоги: Наявність файлової системи для створення директорії ~/AppData/Local/Keysy Data для зберігання зашифрованих даних.
Апаратна частина не включає спеціалізованих компонентів, таких як апаратні модулі безпеки (TPM) чи зовнішні носії, оскільки Keysy покладається на програмне шифрування та локальне зберігання. Це знижує витрати на розгортання та робить програму доступною для користувачів із базовими ПК.
Програмна частина
Програмна частина Keysy побудована на мові програмування Python, що забезпечує кросплатформність і простоту розробки. Графічний інтерфейс і функціонал реалізовані за допомогою стандартних і відкритих бібліотек, що знижує залежність від пропрієтарного програмного забезпечення. Основні програмні компоненти:
1) Мова програмування:
• Python (версія 3.8 або вище) – основна мова для реалізації логіки програми, управління даними та інтерфейсом.
2) Графічний інтерфейс:
• tkinter – стандартна бібліотека Python для створення графічного інтерфейсу. Використовується для відображення таблиці записів (Treeview), полів введення та кнопок.
• ttk – модуль для стилізації елементів інтерфейсу, що забезпечує сучасний вигляд.
3) Шифрування та безпека:
• pycryptodome – бібліотека для шифрування паролів і даних за допомогою алгоритму AES у режимі GCM, який гарантує конфіденційність і цілісність.
• argon2 – бібліотека для безпечного хешування ключів із використанням солі, що захищає від атак на паролі.
• hashlib – створення хешу головного пароля за допомогою алгоритму SHA-256.
4) Робота з даними:
• json – серіалізація та десеріалізація даних у форматі JSON для зберігання у зашифрованому файлі keysy_data.json.enc.
• os – робота з файловою системою, зокрема створення директорії для зберігання даних.
5) Додаткові функції:
• pyperclip – копіювання паролів у буфер обміну.
• random і string – генерація надійних паролів із налаштуваннями (великі/малі літери, цифри, символи).
6) Алгоритми:
• Реалізовано алгоритм Merge Sort для сортування записів у таблиці.
• Використано бінарний пошук із частковою відповідністю для швидкого пошуку записів за назвою чи логіном.
Архітектура програми
1) Модуль авторизації: Перевіряє головний пароль шляхом порівняння його хешу (SHA-256) із збереженим у файлі.
2) Модуль управління даними: Відповідає за створення, редагування, шифрування та збереження записів (назва, логін, пароль, nonce, tag, сіль).
3) Модуль інтерфейсу: Включає кілька фреймів (create_frame, enter_frame, main_frame, new_entry_frame, gen_frame) для навігації між екранами авторизації, перегляду записів, створення записів і генерації паролів.
4) Модуль генерації паролів: Дозволяє створювати паролі з гнучкими налаштуваннями.
5) Модуль пошуку та сортування: Забезпечує швидкий доступ до даних через ефективні алгоритми.
Програма є кросплатформною, протестованою на Windows, але завдяки Python може працювати на macOS і Linux за наявності відповідного середовища виконання.
Заходи забезпечення безпеки
Безпека є ключовим аспектом Keysy, оскільки програма призначена для захисту конфіденційних даних користувачів. Усі заходи безпеки відповідають сучасним стандартам кібербезпеки та реалізовані з урахуванням потреб звичайних користувачів. Основні заходи безпеки:
1) Шифрування даних:
• Кожен пароль шифрується окремо за допомогою алгоритму AES у режимі GCM (Galois/Counter Mode), який забезпечує як конфіденційність, так і перевірку цілісності даних.
• Ключ шифрування генерується через бібліотеку argon2 із використанням випадкової солі, що унеможливлює атаки грубої сили.
• Дані зберігаються у зашифрованому файлі keysy_data.json.enc, який містить nonce, tag і сіль для кожного запису, що підвищує безпеку.
2) Захист головного пароля:
• Головний пароль програми хешується за допомогою алгоритму SHA-256 через бібліотеку hashlib і зберігається у зашифрованому вигляді у файлі даних.
• Хешування з використанням argon2 для ключів шифрування додає додатковий рівень захисту.
3) Локальне зберігання:
• Усі дані зберігаються локально в директорії ~/AppData/Local/Keysy Data, що виключає залежність від хмарних сервісів і знижує ризик витоку даних через мережеві атаки.
• Файл keysy_data.json.enc доступний лише після успішної авторизації, що запобігає несанкціонованому доступу.
4) Авторизація:
• Доступ до програми захищено головним паролем, який необхідно ввести для розблокування даних.
• У разі введення неправильного пароля користувач отримує повідомлення про помилку, а доступ до даних залишається заблокованим.
5) Запобігання помилкам користувача:
• Інтерфейс мінімізує ризик випадкового видалення чи витоку даних, наприклад, через підтвердження перед видаленням записів.
• Функція копіювання паролів у буфер обміну через pyperclip не зберігає дані у незашифрованому вигляді довше, ніж необхідно.
6) Офлайн-режим:
• Keysy працює без підключення до інтернету, що усуває ризики, пов’язані з мережевими атаками, такими як перехоплення даних чи атаки "людина посередині".
Ці заходи забезпечують високий рівень безпеки, роблячи Keysy надійним інструментом для захисту паролів навіть у руках непідготовлених користувачів.