Skip to content

Master Password

Maximka1993271 edited this page Jun 10, 2026 · 1 revision

🔒 Мастер-пароль

Назначение

Мастер-пароль — единственный ключ доступа ко всем сохранённым паролям. Без него данные в базе недоступны. Программа никогда не хранит мастер-пароль в открытом виде.


Алгоритм хэширования

Используется Argon2id — победитель Password Hashing Competition 2015, рекомендованный OWASP 2024.

Параметр Значение Описание
time_cost 3 Количество итераций
memory_cost 65 536 КБ (64 МБ) Потребление памяти
parallelism 4 Число потоков
hash_len 32 байта Длина хэша

Fallback (если argon2-cffi не установлен): PBKDF2-HMAC-SHA256, 600 000 итераций, соль 32 байта.


Защита от перебора

Попытка Блокировка
1–2 2–3 сек
3 10 сек
4 30 сек
5 60 сек
6 2 мин
7 5 мин
8 10 мин
9 20 мин
10 30 мин

Максимальное число попыток: 5 (настраивается через переменную окружения SECUREPASS_MAX_ATTEMPTS, диапазон 3–10).


История паролей

Программа хранит хэши последних 24 мастер-паролей и запрещает их повторное использование. Хэши хранятся в data/password_history.json с PBKDF2 (300 000 итераций) на случайной соли.


Доверенные устройства

После успешного входа можно пометить устройство как доверенное (максимум 5 устройств). На доверенном устройстве можно пропустить ввод мастер-пароля в течение сессии.


Смена и удаление

  • Сменить: Настройки → Мастер-пароль → Изменить. Требует ввод текущего пароля. После смены все записи в базе перешифровываются новым ключом.
  • Удалить: Настройки → Мастер-пароль → Удалить. База становится незащищённой мастер-паролем (шифрование БД через SQLCipher сохраняется).

Хранение

Файл Содержимое
data/master.key Хэш Argon2id / PBKDF2
data/lockout.json Счётчик неудачных попыток
data/auth_audit.json Журнал входов (100 записей, 90 дней)
data/password_history.json Хэши предыдущих паролей
data/trusted_devices.json Список доверенных устройств
data/sessions.json Активные сессии (24 ч TTL)

Clone this wiki locally