// защищённый транспортный уровень

Конфиденциальность — не политика. Это математика.

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

01 / архитектура

Ретранслятор передаёт шифротекст.

Сообщения шифруются алгоритмом Double Ratchet на вашем телефоне. Ваш ретранслятор передаёт их между устройствами, не имея ключей, чтобы их прочитать. Он не слеп к тому, кто с кем общается, и модель безопасности точно описывает, что он видит.

ciphertext = XChaCha20Poly1305(key=k_ratchet, msg=plaintext)
01 / создание ключей

Только на устройстве.

Секретные ключи создаются на вашем телефоне и никуда не отправляются. Каждая учётная запись подписывает свои открытые ключи, поэтому ретранслятор не может подменить их своими. Сообщения и запросы защищены сквозным постквантовым шифрованием (X25519 вместе с ML-KEM-768), а подключение к ретранслятору тоже использует постквантовый обмен ключами, поэтому записанный сегодня трафик не сможет прочитать и будущий квантовый компьютер.

02 / метаданные

Скупые журналы, честные ограничения.

Во время работы ретранслятор видит, какие учётные записи подключены, когда и с каких IP-адресов, и между какими двумя открыта беседа. Он не записывает это в журналы. После первой беседы двое переподключаются по коду, который меняется каждый день. Пока беседа открыта, память ретранслятора по-прежнему связывает двух её участников (как и раньше). Когда оба отсутствуют около 10 минут, ничто из хранимого им не называет их по имени; ожидающие слепые запросы никого не называют; и никакой токен или идентификатор цепи не связывает один период подключения со следующим. Тот, кто наблюдает за ретранслятором вживую, всё ещё видит, как две учётные записи соединяются друг с другом. Сообщения для тех, кто не в сети, хранятся в памяти до 72 часов и учитываются только по получателю, а отправитель скрыт внутри шифрования. Необязательный равномерный трафик уменьшает то, что выдаёт время ваших сообщений, пока приложение открыто.

03 / транспорт

Только TLS 1.3.

Весь трафик — это WebSocket внутри TLS 1.3, который завершает сам ретранслятор. Чтобы подключиться, достаточно один раз отсканировать приглашение ретранслятора, которое закрепляет его идентичность. Каждое сообщение дополняется до размерной ступени, а каждый ретранслятор показывает свой собственный сайт-приманку всему, что не является приложением.

02 / свой сервер

Не сервис, а программа, которую вы запускаете.

Нет облака rChat, регистрации и подписки. Вы разворачиваете ретранслятор на своём сервере и раздаёте его приглашение — один QR-код. Тот, кто запускает ретранслятор, — его оператор: он решает, где тот работает и кто может им пользоваться.

Кто что видит Оператор ретранслятора видит метаданные подключений, но никогда — содержимое сообщений. Что ретранслятор записывает и хранит
03 / сравнение

Как это выглядит в сравнении.

rChat меняет размещённый сервис на тот, которым управляете вы. Он моложе и меньше, и в нём есть не всё, что есть у крупных мессенджеров.

Возможность rChat Signal Telegram
Кто управляет сервером Вы Signal Telegram
Сквозное шифрование по умолчанию Да Да Нет (только секретные чаты)
Свой сервер с официальным приложением Да Нет Нет
Проверка ключей контакта Коды безопасности и QR Коды безопасности Только секретные чаты
04 / контроль

Не доверяйте нам. Запустите свой узел.

Вам не нужно доверять тому, кто управляет сервером. rChat — программа с открытым кодом: проверьте код, соберите ретранслятор и запустите его на своём хосте.

Ретранслятор сам завершает TLS, сам получает и продлевает свой сертификат через TLS-ALPN-01 на порту 443. Без порта 80 и без прокси, завершающего TLS перед ним.

cargo build --release --bin rchat-server
# point an A/AAAA record for relay.example.com at this host
sudo install -m 0755 target/release/rchat-server /usr/local/bin/
sudo useradd --system --home /var/lib/rchat --shell /usr/sbin/nologin rchat
# /etc/rchat/server.toml
[server]
bind_addr = "0.0.0.0:443"
websocket_path = "/a-long-random-path"
relay_identity_path = "/var/lib/rchat/relay_identity.key"
[server.acme]
enabled  = true
domains  = ["relay.example.com"]
contacts = ["mailto:[email protected]"]
cache_dir = "/var/lib/rchat/acme"
# once, as the service user: create the relay identity (prints its pin)
sudo install -d -m 0700 -o rchat -g rchat /var/lib/rchat
sudo -u rchat rchat-server --config /etc/rchat/server.toml --init-relay-identity
sudo systemctl enable --now rchat-server
# invite people: a link and a QR code with the address and the relay identity
sudo -u rchat rchat-server --config /etc/rchat/server.toml --print-invite
технический документ · v3.0 · октябрь 2026 г.

Сквозное шифрование переписки через ваш собственный ретранслятор

Аннотация

Как работает протокол rChat версии 3: постквантовое гибридное рукопожатие, наборы ключей, подписанные и привязанные к сеансу TLS, беседы, которые открываются, только когда об этом просят оба, слепое сопряжение, равномерный трафик, приглашения на ретранслятор и дополнение до размера. В нём также прямо сказано, что самостоятельно размещаемый ретранслятор знает о вас и чего у него никогда нет.

  • Протокол v3
  • Постквантовая защита
  • Слепое сопряжение
  • Равномерный трафик
  • Коды безопасности
  • Что знает ретранслятор
05 / о нас

Кто делает rChat.

Разработчик

rChat разрабатывает PDG Global Limited — компания из Гонконга, вне юрисдикции разведывательного альянса «Пять глаз».

Юрисдикция

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

Никакого размещённого сервиса

PDG Global Limited не запускает ретрансляторы для пользователей и не хранит ни учётных записей, ни сообщений. Что видит ретранслятор, описано в документе «Модель безопасности».

Запустите rChat.

Настройте ретранслятор на своём сервере, затем пригласите людей одним QR-кодом.