KSMP Whisper E2E Pipeline / Ревизия 2026-03-01 / v1.0
Полный путь E2E-пайплайна KSMP Whisper
Настоящий документ описывает сквозной путь E2E-коммуникации: от bootstrap ключей и создания сессии до доставки сообщений, звонкового медиапотока, верификации и ротации ключей.
Оглавление
- 1. Назначение и границы
- 2. Участники пайплайна
- 3. Сквозная карта E2E-пути
- 4. Bootstrap ключей и инициализация
- 5. Отправка сообщения (Send Path)
- 6. Прием сообщения (Receive Path)
- 7. Офлайн-доставка и буферизация
- 8. Звонковый E2E-путь (WhisperStreamVoice)
- 9. Верификация собеседника
- 10. Rekey, смена ключей и деградация сессии
- 11. Что видит сервер и сеть
- 12. Нормативные требования
1. Назначение и границы
- Документ является технической картой «как проходит E2E-поток» в KSMP Whisper.
- Документ не заменяет модель угроз и криптоспецификации; он связывает их в единый операционный путь.
- KSMP Whisper Ultra OOB отвечает за E2E-сообщения и офлайн-создание сессии; WhisperStreamVoice отвечает за E2E-медиапуть звонка.
2. Участники пайплайна
- Client A / Client B: генерируют, хранят и применяют ключи; шифруют/расшифровывают полезную нагрузку.
- API/Relay: аутентификация, маршрутизация, очередь, сигнализация; полезная E2E-нагрузка остается шифротекстом.
- Наблюдатель сети: видит адреса/порты/тайминги/объемы, но не открытый E2E-контент.
3. Сквозная карта E2E-пути
[Bootstrap]
A получает prekey/identity bundle B -> проверяет подписи -> выводит стартовый секрет сессии
[Message Path]
A plaintext -> E2E envelope(ciphertext + auth tag + counters) -> relay/queue -> B verify -> decrypt -> render
[Call Path]
A/B E2E handshake (pubkeys + callId binding) -> media key -> frame encryption -> wsBinary/callMedia/relay -> decrypt/playback
[Lifecycle]
SAS/QR/fingerprint verify -> rekey / key-change handling -> session health + UI status
4. Bootstrap ключей и инициализация
- Клиент генерирует identity key material и хранит его локально (device-bound).
- Для начала защищенного диалога инициатор получает у сервиса bootstrap/prekey-данные собеседника.
- Инициатор ДОЛЖЕН проверить идентичность и подписи bundle до выработки рабочего секрета.
- После успешной проверки создается локальное состояние сессии (root/chain state, счетчики, epoch).
5. Отправка сообщения (Send Path)
- Клиент сериализует полезную нагрузку сообщения.
- Клиент выводит message key из текущей цепочки ratchet.
- Полезная нагрузка шифруется AEAD и упаковывается в E2E envelope.
- Envelope отправляется через защищенный транспорт на relay/API.
- Relay маршрутизирует шифротекст получателю (онлайн или через очередь).
Сервисный слой может видеть метаданные маршрутизации, но не открытый текст сообщения.
6. Прием сообщения (Receive Path)
- Получатель принимает envelope и проверяет валидность служебных полей/версии.
- Проверяется целостность и аутентичность AEAD.
- Клиент обрабатывает счетчики/ratchet state (включая допустимое out-of-order окно).
- Только после успешной верификации выполняется расшифровка и рендеринг текста/вложения.
- Невалидные/повторные пакеты отклоняются.
7. Офлайн-доставка и буферизация
- В режиме недоступности peer сообщение остается E2E envelope и хранится ограниченное время в сервисной очереди.
- После возвращения клиента B доставляется тот же шифротекст; расшифровка выполняется только на стороне B.
- Для чувствительных режимов используются более строгие ограничения по TTL и подтверждению сессии.
8. Звонковый E2E-путь (WhisperStreamVoice)
- Инициатор отправляет call handshake с E2E-параметрами.
- Стороны обмениваются публичными параметрами и выводят общий секрет звонка с привязкой к `callId`.
- На базе секрета выводятся рабочие ключи медиапотока.
- Каждый аудио/видеофрейм шифруется на клиенте до отправки.
- Транспорт выбирается по приоритету: `wsBinaryV1 -> callMediaV1 -> relay`.
Переход в активную передачу выполняется только после согласования transport+E2E контекста.
9. Верификация собеседника
- Поверх TOFU пользователь может выполнить ручную проверку через SAS/QR/код сверки.
- При несовпадении кода клиент ДОЛЖЕН маркировать риск MITM и СЛЕДУЕТ ограничивать доверие до повторной проверки.
- При смене ключа собеседника отображается warning и требуется новая проверка.
10. Rekey, смена ключей и деградация сессии
- Сессия поддерживает ротацию ключей (policy-driven).
- На границах epoch клиент ДОЛЖЕН синхронизировать счетчики nonce/counter и состояние ratchet.
- При критических ошибках проверки сессия переводится в paused/needs-verify, и отправка может блокироваться до восстановления.
11. Что видит сервер и сеть
- Сервер: идентификаторы маршрутизации, технические метаданные доставки/очереди, время, объем.
- Сеть/роутер: IP, порт, длительность, объем трафика.
- Открытый E2E-контент сообщений и звонков НЕ ДОЛЖЕН быть доступен промежуточному транспорту.
12. Нормативные требования
- Клиент ДОЛЖЕН завершать bootstrap и проверку bundle до отправки первого E2E-пакета.
- Клиент НЕ ДОЛЖЕН отправлять приватный контент вне E2E envelope в режимах KSMP Whisper.
- Сервисный слой ДОЛЖЕН рассматривать E2E-пакеты как непрозрачный шифротекст.
- Клиент ДОЛЖЕН отклонять пакеты с невалидной аутентификацией и недопустимым replay.
- При изменении ключевых шагов пайплайна публикуется новая ревизия документа.
Предыдущий документ: KSMP Whisper / WhisperStreamVoice · Следующий документ: Транспорт и метаданные.
KSMP Whisper E2E Pipeline / Revision 2026-03-01 / v1.0
Full KSMP Whisper E2E Pipeline
This document describes the end-to-end communication path: bootstrap keys, session creation, message delivery, call media path, peer verification, and key rotation lifecycle.
Contents
- 1. Purpose and boundaries
- 2. Pipeline actors
- 3. End-to-end map
- 4. Key bootstrap and initialization
- 5. Message send path
- 6. Message receive path
- 7. Offline delivery and buffering
- 8. Call E2E path (WhisperStreamVoice)
- 9. Peer verification
- 10. Rekey, key change, session degradation
- 11. Server/network visibility
- 12. Normative requirements
1. Purpose and boundaries
- This is an operational map of how E2E flow works in KSMP Whisper.
- It complements, not replaces, threat model and crypto specifications.
- KSMP Whisper Ultra OOB covers E2E messaging and offline session bootstrap; WhisperStreamVoice covers E2E call media path.
2. Pipeline actors
- Client A / Client B: generate, store, and apply keys; encrypt/decrypt payloads.
- API/Relay: auth, routing, queue, signaling; message/call payloads remain ciphertext.
- Network observer: can see addresses, ports, timing, and volume but not plaintext E2E content.
3. End-to-end map
[Bootstrap]
A fetches B prekey/identity bundle -> verifies signatures -> derives session bootstrap secret
[Message Path]
A plaintext -> E2E envelope(ciphertext + auth tag + counters) -> relay/queue -> B verify -> decrypt -> render
[Call Path]
A/B E2E handshake (pubkeys + callId binding) -> media key -> frame encryption -> wsBinary/callMedia/relay -> decrypt/playback
[Lifecycle]
SAS/QR/fingerprint verify -> rekey / key-change handling -> session health + UI status
4. Key bootstrap and initialization
- Client generates device-bound identity key material and stores it locally.
- To start secure dialog, initiator requests peer bootstrap/prekey data.
- Initiator MUST validate identity and bundle signatures before deriving operational secret.
- On success, local session state is created (root/chain state, counters, epoch).
5. Message send path
- Client serializes message payload.
- Client derives message key from current ratchet chain.
- Payload is AEAD-encrypted and wrapped into E2E envelope.
- Envelope is sent via protected transport to relay/API.
- Relay routes ciphertext to recipient (online or queued).
Service layer can observe routing metadata, not plaintext message content.
6. Message receive path
- Recipient parses envelope and validates service fields/version.
- AEAD integrity/authenticity is verified.
- Client applies counter/ratchet logic (including allowed out-of-order window).
- Only valid envelopes are decrypted and rendered.
- Invalid/replayed packets are rejected.
7. Offline delivery and buffering
- When peer is unavailable, message remains encrypted envelope and is held in service queue for bounded TTL.
- When peer returns online, same ciphertext is delivered and decrypted only on peer device.
- Higher-sensitivity modes may apply stricter TTL and session-confirmation constraints.
8. Call E2E path (WhisperStreamVoice)
- Caller starts call handshake with E2E parameters.
- Peers exchange public parameters and derive call secret bound to `callId`.
- Media working keys are derived from call secret.
- Every audio/video frame is encrypted client-side before transmission.
- Transport priority: `wsBinaryV1 -> callMediaV1 -> relay`.
Active media starts only after transport and E2E context are both negotiated.
9. Peer verification
- On top of TOFU, user may verify via SAS/QR/fingerprint.
- On mismatch, client MUST surface MITM risk and SHOULD limit trust until re-verification.
- On peer key change, warning is displayed and re-verification is required.
10. Rekey, key change, session degradation
- Session supports policy-driven key rotation.
- At epoch boundaries, client MUST synchronize nonce/counter and ratchet state.
- On critical validation errors, session transitions to paused/needs-verify and sending may be blocked until recovery.
11. Server/network visibility
- Server: routing identifiers, technical delivery/queue metadata, timing, volume.
- Network/router: destination IP, port, duration, traffic volume.
- Plaintext E2E content of messages/calls SHOULD NOT be available to intermediate transport.
12. Normative requirements
- Client MUST complete bootstrap and bundle validation before sending first E2E packet.
- Client MUST NOT send private payload outside E2E envelope in KSMP Whisper modes.
- Service layer MUST process E2E packets as opaque ciphertext.
- Client MUST reject invalid authentication and disallowed replay.
- Any change in core pipeline steps requires new document revision.
Previous: KSMP Whisper / WhisperStreamVoice · Next: Transport & Metadata.