feat(auth): сервис аккаунтов и аутентификации Фазы 1
- регистрация: политика пароля (≥10 + локальный словарь 10k утечек, SecLists MIT), username и email без учёта регистра, шифрование email с привязкой к аккаунту, blind index для поиска, автовступление в главный сервер с ролью @user - вход: Argon2id+pepper, TOTP при включённом 2FA, блокировка после серии неудач, события безопасности; единый ответ на неверный пароль и неизвестный аккаунт - сессии: opaque-токены (в БД только SHA-256), ротация токена, logout/logout-all, отзыв остальных сессий при смене пароля, step-up с окном 10 минут - 2FA: настройка секрета с QR-URL, подтверждение кодом, 8 резервных кодов (хранятся хэшами), обязательность для инстанс-админов, запрет отключения - тесты на реальной SQLite: регистрация/вход/дубликаты, слабые и утёкшие пароли, ротация и logout-all, TOTP и резервные коды, step-up, смена пароля, выключенная регистрация, отсутствие секретов в логах
This commit is contained in:
@@ -41,6 +41,12 @@ Copyright (C) 2026 glchat contributors.
|
||||
`web/package.json`/`web/package-lock.json`. Совместимость лицензий с AGPL-3.0
|
||||
проверяется при добавлении каждой зависимости (AGENT.md §15).
|
||||
|
||||
## Данные
|
||||
|
||||
| Файл | Источник | Лицензия |
|
||||
|---|---|---|
|
||||
| `internal/auth/data/leaked-passwords.txt` | [SecLists](https://github.com/danielmiessler/SecLists) `Passwords/Common-Credentials/10k-most-common.txt` | MIT |
|
||||
|
||||
## Ассеты
|
||||
|
||||
Встроенные звуки, иконки и изображения — только CC0, собственные или
|
||||
|
||||
Reference in New Issue
Block a user