Это реализация консольного менеджера паролей на языке Python3. Все пароли сайтов сохраняются в базе данных Sqlite в зашифрованном и засоленном виде. Шифрование выполняется с помощью симметричного алгоритма AES-128 c мастер паролем, для добавления или получения любого пароля сайта используется один пароль (мастер пароль). Он задаётся один раз при добавлении самого первого сайта, в дальнейшем для добавления новых сайтов можно использовать только его.
⚙️ Сейчас менеджер имеет следующий функционал ⚙️:
- ✏️ Добаление информации для нового сайта и его пароля.
- 🗑️ Удаление сайта и его информации о пароле.
- 📝 Редактирование информации о сайте.
- 🔎 Поиск пароля сайта в базе и вывод его на консоль при правильном вводе мастер пароля.
- 💳 Генерацию паролей заданной длины (минимально 8 символов и >=128).
- ⏱️ Возможность проверять устаревание паролей при поиске. Если пароль был обновлён больше 3х месяцев назад, то пользователю будет выдано предупреждение с рекомендацией обновить пароль сайта.
- 💾 Возможность выполнить синхронизацию паролей через Google Drive (необходимо отдельно установить клиента и указать путь до его исполняемого файла, папки синхронизации в файле sync.ini).
- 🤸♂️ Возможность изменить мастер пароль.
- 📖 Свободный просмотр всех добавленных сайтов.
Вопросы безопасности:
Первый значимый аспект - для криптографии используется библиотека cryptography. Её исходный код есть в свободном доступе, желающие могут изучить его на наличие уязвимостей. В текущий момент времени, в 2024 году, нет известных критических уязвимостей для новых версий этой библиотеки, чтобы можно было сказать о слабом шифровании. Однако нельзя исключать 0-day, будущих уязвимостей.
Второй аспект влияющий на безопасность - симметричное шифрование AES использующее один ключ (мастер пароль), т.е. он тоже может являться слабым звеном. Глупо в качестве мастер пароля использовать "qwerty", мастер пароль должен быть достаточно сложным.
Третий аспект влияющий на безопасность - криптографические данные и пароли от сайтов могут оставаться в оперативной памяти в открытом виде пока открыта программа.