SHiNE-server/Dev_Docs/Pending_Features/2026-05-13_0222_argon2id-логин-и-регистрация.md

2.1 KiB
Raw Blame History

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 показывает пользователю, как сейчас считается секрет.