Clouchat для разработчиков Открыть веб-версию
Протокол

Как устроено соединение

ClouProto 3 поверх TLS 1.3 с постквантовым обменом ключами и закреплённым ключом сервера.

Обзор

Приложения Clouchat связываются с сервером по собственному протоколу ClouProto 3. Это двоичный протокол поверх одного долгоживущего соединения: в нём идут вызовы методов от клиента и события от сервера — новые сообщения, статусы прочтения, присутствие, звонки.

Соединение защищает стандартный TLS 1.3 в строгой конфигурации, а не собственная криптография. Протокол используют только официальные приложения Clouchat.

Транспорт

ПараметрЗначение
Защита каналатолько TLS 1.3, более старые версии не поддерживаются
Обмен ключамитолько гибрид X25519 + ML-KEM-768
ШифрыAES-256-GCM, ChaCha20-Poly1305
0-RTTвыключен
Веб-клиентWebSocket поверх HTTPS

Проверка сервера

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

Браузер не умеет закреплять ключи, поэтому веб-клиент полагается на обычную проверку сертификата web.clouchat.org.

Вход и привязка к соединению

Устройство подтверждает свой ключ доказательством, привязанным к конкретному TLS-соединению (RFC 9266). Перехваченное доказательство нельзя повторить в другом соединении. До входа доступны только методы регистрации.

Хранение и уведомления

  • На сервере сообщения шифруются AES-256. У каждого чата свой ключ, ключи хранятся отдельно от данных.
  • Содержимое пуш-уведомлений шифруется ключом установки приложения.
  • Локальная база приложений зашифрована ключом из защищённого хранилища системы.

Звонки

Сигналинг звонков идёт через ClouProto, а медиа — отдельно, по SRTP. Ключи медиа согласуют сами устройства через DTLS-SRTP. По умолчанию трафик идёт через ретранслятор, поэтому собеседники не видят IP-адреса друг друга.

Модель угроз

УгрозаЗащита
Перехват и подмена в сетиTLS 1.3 и закреплённый ключ сервера
Сертификат от скомпрометированного удостоверяющего центраприложения не доверяют удостоверяющим центрам
Откат на старую версию TLS или классический обмен ключамиклиент не предлагает, сервер не принимает
«Записать сейчас, расшифровать потом»ML-KEM-768 в обмене ключами
Повтор перехваченного входапривязка доказательства к соединению
Утечка ключа серверапереход на запасной ключ без обновления приложений

Что не публикуется

Схема методов ClouProto не публикуется. Для собственных интеграций используйте Bot API.