KeepMyPass
О KeepMyPass
KeepMyPass — это система управления паролями, построенная на Python с использованием интеграции MySQL с графическим пользовательским интерфейсом. Он был разработан в June/July, 2020
как проект по компьютерным наукам для XII класса (CBSE). Он также содержит систему управления событиями и систему управления контактами.
Признание и сертификация
Частично этот проект был выполнен при помощи моего учителя информатики в XII классе. Он соответствует всем требованиям проекта по компьютерным наукам XII класса, 2020–21, и подробно описывает следующие концепции:
- Обработка файлов двоичных данных через Python
- Управление базой данных MySQL посредством интеграции Python-MySQL с использованием
mysql.connector
- Создание графических пользовательских интерфейсов с использованием
tkinter
Некоторые особенности приложения
Информационная функция
Кнопки справки предусмотрены на различных экранах, чтобы помочь пользователю перемещаться по приложению.
Функция «Забыли пароль»
Если пользователь забудет свой мастер-пароль, он может восстановить свою утерянную учетную запись, используя эту функцию.
Функция генерации пароля
Secure-Vault содержит генератор паролей, который генерирует (псевдо)случайные пароли.*
(Псевдо) Функции безопасности
- Двоичные файлы содержат поддельные записи данных.*
- Данные, записываемые в двоичный файл, шифруются дважды.*
- Одновременно может войти только один Пользователь.
- Все данные хранятся в базе данных в зашифрованном виде и расшифровываются только в случае желания Пользователя их увидеть.
- Ключи шифрования/дешифрования уникальны для каждого Пользователя.
Функция режима администратора
Используя защищенный паролем режим администратора, человек может осуществлять поиск по всем пользовательским хранилищам одновременно.* Поиск можно использовать для поиска определенных записей или всех записей определенного типа.
Сноски и вопросы безопасности
- Проект уязвим для небезопасной десериализации, поскольку использует модуль Python
pickle
. - В проекте упоминается (в нескольких местах), что сгенерированные пароли «безопасны». Обратите внимание, что пароли, однако, являются псевдослучайными , хотя элемент функции генерации паролей использует
os.urandom()
. - Функция режима администратора была добавлена в проект только для удовлетворения требований, установленных CBSE. Ни в коем случае нельзя злоупотреблять этой функцией. Я, разработчик, полностью понимаю, что иметь доступ ко всем хранимым данным и предоставлять их конечным пользователям проблематично и неэтично .
- Реализованная методика шифрования состоит исключительно из различных отображений символов и ROT-шифров, т.е. в проекте не использовался реальный алгоритм шифрования.
- Включение поддельных записей в двоичные файлы на самом деле не влияет на безопасность реальных записей данных.
- Двойное шифрование данных не имеет дополнительных преимуществ по сравнению с однократным шифрованием.
- Подсказки по типу были добавлены ко всем функциям позднее.
-
user_checker.py
был добавлен только как средство внутренней проверки функциональности. Он не предназначен для использования.
Авторы иллюстраций
Все иллюстрации, использованные в проекте, взяты с LastPass, и я заявляю, что никоим образом не могу и не буду использовать свой проект в каких бы то ни было коммерческих целях с этими иллюстрациями.
Бегать
Для запуска клонируйте репозиторий на своем устройстве, перейдите в папку и выполните:
Планы на будущее
- Устранение всех возможных проблем безопасности и использование реальных алгоритмов шифрования/дешифрования.
- Улучшить пользовательский интерфейс/дизайн
- Использование альтернативного пакета для обработки двоичных файлов или реализация альтернативного метода хранения ключей шифрования/дешифрования.
- Пароль для режима администратора не должен быть жестко запрограммирован в файле.
- Разветвите проект, при этом режим администратора будет удален.
- Сделайте код более модульным
- Более качественная и профессиональная подсказка типов