Парольная политика (ADR-013) и привязка экспорта к аккаунту (ADR-014)
ADR-013: PBKDF2-HMAC-SHA256 ≥600k итераций (цель 1M), параметры KDF версионируются рядом с блобом; пароль от 12 символов, длина важнее состава. ADR-014: парольная фраза экспорта отменена, ключ экспорта — HKDF от 32-байтового секрета аккаунта из ключевого блоба; архив .bare криптографически бесполезен вне аккаунта-владельца. Перекрёстно обновлены ADR-006, ADR-010, architecture, threat-model; в открытые вопросы добавлен серверный «перец» для блоба. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SW4ZXtKn5NjX8NH3Lhm2ND
This commit is contained in:
@@ -6,11 +6,11 @@
|
||||
|
||||
## Решение
|
||||
|
||||
Только WebCrypto. Идентичность пользователя — ECDH-пара P-256. Приватный ключ шифруется ключом, выведенным из пароля (PBKDF2 — единственный KDF в WebCrypto), и хранится на сервере как блоб. Чаты 1:1: ECDH shared secret → AES-GCM.
|
||||
Только WebCrypto. Идентичность пользователя — ECDH-пара P-256. Приватный ключ шифруется ключом, выведенным из пароля (PBKDF2 — единственный KDF в WebCrypto; параметры и парольная политика — ADR-013), и хранится на сервере как блоб. Рядом с приватным ключом в блобе — секрет аккаунта для экспорта истории (ADR-014). Чаты 1:1: ECDH shared secret → AES-GCM.
|
||||
|
||||
## Следствия
|
||||
|
||||
- Сервер видит только шифротекст — и блоба, и сообщений.
|
||||
- Сброс пароля невозможен by design: пароль — материал ключа. Забыл — значит забыл.
|
||||
- Мультидевайс-вход: новый девайс вводит пароль, скачивает блоб, расшифровывает ключ.
|
||||
- Стойкость блоба к оффлайн-перебору равна стойкости пароля.
|
||||
- Стойкость блоба к оффлайн-перебору равна стойкости пароля. Контрмеры — ADR-013.
|
||||
|
||||
Reference in New Issue
Block a user