# ADR-013: Парольная политика и параметры KDF ## Контекст Ключевой блоб лежит на сервере, и его стойкость к оффлайн-перебору равна стойкости пароля (ADR-006). Раз пароль — материал ключа, его качество и цена перебора — не UX-детали, а параметры криптосистемы. ## Решение - KDF: PBKDF2-HMAC-SHA256, не менее 600 000 итераций, целевое значение — 1 000 000. - Число итераций (поле версии KDF) хранится рядом с блобом; при входе клиент читает параметры из блоба. Так итерации можно повышать в будущем без миграции всех аккаунтов разом. - Минимальная длина пароля — 12 символов. Правил про регистры и спецсимволы нет: длина важнее состава. UI рекомендует парольную фразу из нескольких слов. - UI при регистрации явно проговаривает: пароль — это ключ шифрования, а не запись в базе; восстановления нет. ## Следствия - Гарантия «оператор не читает сообщения» действует в пределах стойкости пароля пользователя; слабый пароль — слабое E2EE. Это осознанная цена парольного мультидевайса, зафиксировано в threat-model. - Перебор дорожает на порядки, но не отменяется: словарный пароль умирает при любых итерациях. - Параметры повышаются со временем: новые аккаунты получают их сразу, существующие — перешифровкой блоба при очередном входе.