Расширенный профиль KSMP Whisper Ultra OOB (E2E)
Настоящая спецификация устанавливает расширенный профиль KSMP Whisper для асинхронного E2E-обмена сообщениями и офлайн-установления сессии, включая модель ключей, формат защищенного пакета и обязательные требования к клиенту и серверу.
Оглавление
1. Область применения и совместимость
- Спецификация определяет расширенный профиль головного протокола KSMP Whisper для приватного E2E-обмена сообщениями.
- Профиль KSMP Whisper Ultra OOB отвечает за офлайн-установление сессии и асинхронную доставку при недоступности второй стороны.
- Криптографическая основа профиля опирается на протокол Signal (адаптированная реализация Kasty) с семантикой Double Ratchet.
- Совместимость на уровне формата пакетов с внешними стеками без адаптации не гарантируется.
2. Криптографические примитивы
- Согласование ключей: X25519 (Curve25519).
- Подписи идентичности: Ed25519.
- KDF: HKDF-SHA256.
- Защита полезной нагрузки: AES-GCM (AEAD).
Клиент ДОЛЖЕН использовать проверенные криптографические библиотеки и НЕ ДОЛЖЕН внедрять самописные примитивы.
3. Ключи и хранение
- Пары ключей идентичности являются привязанными к устройству.
- Ключевой материал ДОЛЖЕН храниться в защищенном локальном хранилище (Keychain ThisDeviceOnly в iOS-клиенте).
- Удаление ключевого материала на устройстве делает прошлые E2E-сообщения недоступными для расшифровки на этом устройстве.
4. Установление сессии
- Инициатор получает комплект предварительных ключей собеседника (`prekey bundle`) и формирует стартовые секреты для офлайн-сессии по процедуре запуска Signal.
- Обе стороны ДОЛЖНЫ проверять ключи идентичности и подписи комплекта ключей до принятия сессии.
- При провале проверки клиент ДОЛЖЕН отклонить согласование и НЕ ДОЛЖЕН переходить в состояние готовности.
5. Формат защищенного пакета
Защищенный пакет содержит служебный заголовок и шифротекст полезной нагрузки:
- Сервер ДОЛЖЕН обрабатывать пакет как непрозрачный шифротекст.
- Порядок доставки МОЖЕТ быть нестрогим; клиент ДОЛЖЕН корректно обрабатывать допустимую внеочередную доставку.
6. Эволюция ключей и перератификация
- Double Ratchet ДОЛЖЕН обеспечивать прямую секретность и восстановление после компрометации при корректной ротации цепей.
- Клиенту СЛЕДУЕТ выполнять повторную выработку ключей (`rekey`) по политике (ручной/автоматический режим), чтобы ограничивать область воздействия компрометации ключа.
- При смене ключа собеседника клиенту СЛЕДУЕТ отображать сигнал риска и запрашивать повторную проверку.
7. Нормативные требования
- Клиент НЕ ДОЛЖЕН отправлять приватные сообщения вне E2E-оболочки в режиме KSMP Whisper Ultra OOB.
- Клиент ДОЛЖЕН отклонять пакеты с некорректной AEAD-аутентификацией.
- Клиент ДОЛЖЕН ограничивать принятие повторов; клиенту СЛЕДУЕТ применять окно счетчиков.
- Сервер ДОЛЖЕН маршрутизировать сообщения без доступа к открытому содержимому.
KSMP Whisper Ultra OOB Extended Profile (E2E)
This specification defines the KSMP Whisper extended profile for asynchronous E2E messaging and offline session establishment, including key model, protected packet format, and mandatory client/server requirements.
Contents
1. Scope and compatibility
- This specification defines an extended profile of the core KSMP Whisper protocol for private E2E messaging.
- KSMP Whisper Ultra OOB is responsible for offline session establishment and asynchronous delivery when peer is unavailable.
- Model is Signal Protocol based (Kasty-adapted) with Double Ratchet semantics.
- Implementation is not claimed as drop-in wire compatible with third-party stacks without adaptation.
2. Cryptographic primitives
- Key agreement: X25519 (Curve25519).
- Identity signatures: Ed25519.
- KDF: HKDF-SHA256.
- Payload protection: AES-GCM (AEAD).
Client MUST use reviewed cryptographic libraries and MUST NOT introduce custom primitives.
3. Identity and key storage
- Identity key pairs are device-bound.
- Key material MUST be stored in protected local storage (Keychain ThisDeviceOnly on iOS).
- Local key deletion renders prior E2E messages undecryptable on that device.
4. Session establishment
- Initiator fetches peer prekey bundle and derives bootstrap secrets for offline session setup via Signal-style bootstrap flow.
- Both parties MUST validate identity keys and bundle signatures before accepting session.
- On validation failure, client MUST reject handshake and MUST NOT transition to ready state.
5. Encrypted envelope
Protected packet contains service header and ciphertext payload:
- Server MUST process packet as opaque ciphertext.
- Delivery order MAY be non-strict; client MUST handle allowed out-of-order behavior.
6. Ratchet and rekey policy
- Double Ratchet MUST provide forward secrecy and break-in recovery under correct chain rotation.
- Client SHOULD execute rekey by policy to reduce compromise blast radius.
- On peer key change, client SHOULD surface risk and request re-verification.
7. Normative requirements
- Client MUST NOT send private messages outside E2E envelope in KSMP Whisper Ultra OOB mode.
- Client MUST reject packets with invalid AEAD authentication.
- Client MUST limit replay acceptance; client SHOULD enforce counter window.
- Server MUST route messages without plaintext content access.