# ADR-013: Парольная политика и параметры KDF

## Контекст

Ключевой блоб лежит на сервере, и его стойкость к оффлайн-перебору равна стойкости пароля (ADR-006). Раз пароль — материал ключа, его качество и цена перебора — не UX-детали, а параметры криптосистемы.

## Решение

- KDF: PBKDF2-HMAC-SHA256, не менее 600 000 итераций, целевое значение — 1 000 000.
- Число итераций (поле версии KDF) хранится рядом с блобом; при входе клиент читает параметры из блоба. Так итерации можно повышать в будущем без миграции всех аккаунтов разом.
- Минимальная длина пароля — 12 символов. Правил про регистры и спецсимволы нет: длина важнее состава. UI рекомендует парольную фразу из нескольких слов.
- UI при регистрации явно проговаривает: пароль — это ключ шифрования, а не запись в базе; восстановления нет.

## Следствия

- Гарантия «оператор не читает сообщения» действует в пределах стойкости пароля пользователя; слабый пароль — слабое E2EE. Это осознанная цена парольного мультидевайса, зафиксировано в threat-model.
- Перебор дорожает на порядки, но не отменяется: словарный пароль умирает при любых итерациях.
- Параметры повышаются со временем: новые аккаунты получают их сразу, существующие — перешифровкой блоба при очередном входе.
