Auth/UI: Argon2id derivation для login/register + блок Расширенные

This commit is contained in:
AidarKC
2026-05-13 02:10:42 +03:00
parent 8de4e95c6a
commit b55fd1571e
6 changed files with 107 additions and 12 deletions
@@ -0,0 +1,36 @@
# Argon2id для входа/регистрации + блок «Расширенные»
Статус: `pending`
## Что сделано
- При непустом пароле derivation ключей переведён на Argon2id.
- В derivation участвуют и логин, и пароль.
- Для пустого пароля оставлен прежний тестовый режим (старый детерминированный вариант), чтобы сохранить текущий тестовый сценарий.
- На экранах входа и регистрации добавлен блок `Расширенные` с кратким описанием схемы и параметров.
## Параметры Argon2id (текущий профиль)
- `t = 3`
- `m = 262144 KiB` (256 MB)
- `p = 1`
- `dkLen = 32`
Формат salt:
- `saltSource = "shine-auth-v2|login=<lowercaseLogin>|suffix=<keySuffix>"`
- `salt = first16bytes( SHA-256(saltSource) )`
- `keySuffix` = `root.key` / `bch.key` / `dev.key`
## Как проверять
1. На входе/регистрации открыть `Расширенные` и проверить отображение описания.
2. Проверить тестовый режим: оставить пароль пустым и убедиться, что вход работает по старому сценарию.
3. Проверить новый режим: ввести непустой пароль и выполнить вход/регистрацию.
4. Проверить, что одинаковый пароль при разных логинах даёт разные ключи (например, вход под двумя логинами с тем же паролем и проверка несовпадения производных ключей/сессий).
## Ожидаемый результат
- Непустой пароль использует Argon2id.
- Пустой пароль остаётся тестовым legacy-вариантом.
- UI показывает пользователю, как сейчас считается секрет.