Архитектура без магии

Сообщение видно только тем,
для кого оно написано

Нажимайте на этапы и смотрите, что происходит с сообщением, кто что видит и почему взлом одного промежуточного сервера не раскрывает текст.

Путь одного сообщения

От клавиатуры до экрана собеседника

1 / 6

Демонстрация готова

Что видно здесь

Что путешествует по сети

Не текст, а непрозрачный контейнер

Текст превращается в ciphertext ещё на устройстве отправителя. Промежуточные сервисы работают с зашифрованными данными и служебной информацией, необходимой только для доставки.

На устройствах
Буду через 15 минут

Открытый текст существует до шифрования и после расшифровки.

В сети v1 · nonce · 9f3a…e21c · auth tag

Сервер может доставить пакет, но не прочитать исходную фразу.

Несколько независимых нод

Сообщение не привязано к одному серверу

Home обслуживает пользователя, Relay передаёт трафик, Discovery помогает найти актуальный маршрут, а Storage ждёт офлайн-получателя.

Нажмите на элемент маршрута

Кто что видит?

Выберите устройство, Home или Relay — здесь появится его роль и доступная ему информация.

Реализовано

Базовый Relay может использовать прямую доставку и дополнительный L2-переход. Сообщение остаётся E2EE, но Relay текущей версии ещё видит целевую Home Node.

Звонки — отдельный транспорт

Сигнал идёт через OUO, голос — коротким маршрутом

Текст можно задерживать ради смешивания трафика. Разговору нужна низкая задержка, поэтому звонок не проходит через медленный Mix Pool.

01
E2EE signaling

Договориться о звонке

Offer, answer, ICE-кандидаты, отмена и завершение отправляются как защищённые служебные сообщения по обычному маршруту OUO.

A→Home→Relay→B
02

Прямой голосовой поток

Микрофон A⇄Устройство B

WebRTC выбирает прямой путь, когда сеть позволяет. Аудио защищено DTLS-SRTP, но стороны могут увидеть IP друг друга.

Посредник видитПосредника нет
Нужна live-проверка

Логика signaling и восстановления соединения проверена локально. Реальный Web ↔ desktop аудиозвонок, внешний NAT и relay-only режим ещё должны пройти сквозной тест на разных сетях.

Жизненный цикл данных

Не всё хранится в одном месте и одинаково долго

Серверная доставка, локальная история и временный offline mailbox — разные слои с разными ключами и сроками жизни.

D
Устройство

Личная история

Расшифрованная переписка доступна клиенту и хранится в локальной зашифрованной базе по выбранной политике.

Содержимое
plaintext для пользователя
Защита
локальное шифрование + ключ устройства
H
Home Node

Доставка и очередь

Работает с ciphertext и служебными данными доставки. Не должен становиться постоянной копией всей переписки.

Содержимое
ciphertext + минимум metadata
Срок
задаётся политикой retention
S
Storage / mailbox

Получатель офлайн

Временно держит непрозрачный пакет до получения, ACK или истечения TTL. Opaque mailbox-путь ещё интегрируется полностью.

Содержимое
encrypted cell
Удаление
ACK / expiry / quota
R
Relay / TURN

Только транзит

Relay пересылает сообщения, TURN — зашифрованный медиапоток. Архив сообщений или запись звонка им не нужны.

Содержимое
ciphertext / SRTP packets
Цель
получить → передать → забыть

Взгляд снаружи

Шифрование скрывает содержание, но не делает сеть невидимой

Провайдер или глобальный наблюдатель может заметить соединение с OUO, объём и время трафика. Он не получает текст сообщения или ключи.

Может увидеть
  • IP и факт соединения
  • время и объём пакетов
  • сетевые endpoints
  • статистические связи
Не должен увидеть
  • текст сообщения
  • E2EE-ключи
  • содержимое звонка
  • локальную историю

Минимум доверия

Каждый компонент знает только необходимое

Устройство

Знает: текст, ключи своей сессии и собеседника.

Не отдаёт: E2EE-ключи Home, Relay или Storage.

Home Node

Знает: подключённое устройство и куда передать ciphertext.

Не знает: содержание сообщения и ключ расшифрования.

Relay

Сейчас знает: транспортные переходы и целевую Home Node базового маршрута.

Не знает: plaintext и E2EE-ключи; сокрытие полного маршрута относится к следующему Mix-этапу.

Storage

Хранит: delivery/mailbox-идентификатор и зашифрованный пакет с ограниченным сроком жизни.

Не получает: открытую историю переписки.

Почему это важно

Взлом сервера — не равен взлому переписки

Обычный серверный мессенджер концентрирует слишком много доверия в одном месте. OUO разделяет роли: устройства шифруют, Home доставляет, Relay транзитит, Storage временно ждёт получателя.

  • 01
    Ключи остаются на устройствах

    Инфраструктура не становится E2EE endpoint.

  • 02
    Офлайн не превращается в вечный архив

    Storage — временный буфер, а не серверная копия жизни пользователя.

  • 03
    Отказ одной ноды не обязан останавливать сеть

    Маршруты и инфраструктурные роли можно распределять.

Хотите увидеть это в работе?

Откройте тестовый клиент или изучите исходный код протокола.