-
Notifications
You must be signed in to change notification settings - Fork 0
Master Password
Мастер-пароль — единственный ключ доступа ко всем сохранённым паролям. Без него данные в базе недоступны. Программа никогда не хранит мастер-пароль в открытом виде.
Используется 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) |