Мессенджер · Open Source · Self-hosted

PARANOIA

Мессенджер, которому не нужно
доверять серверу

Зашифрованный мессенджер с открытым протоколом. Сервер видит только шифротексты. Ключи никогда не покидают устройство. Self-hosted. Без Google. Без Apple.

Против кого защищает Paranoia

01 / Сервер

Скомпрометированный сервер

Даже при полном доступе к БД сервера злоумышленник увидит только шифротексты и минимальные метаданные — расшифровать сообщения невозможно.

02 / Трафик

DPI и анализ трафика

Cover-слой маскирует протокол под обычный HTTPS-трафик с нейтральными JSON-полями. Глубокая инспекция пакетов не позволяет идентифицировать Paranoia.

03 / Сообщения

Replay и overwrite атаки

Каждое сообщение подписано Ed25519 и привязано к уникальному seq. Перезаписать или воспроизвести чужое сообщение невозможно без приватного ключа.

04 / TLS

MITM на уровне TLS

Сквозное шифрование работает независимо от TLS. Компрометация сертификата или подмена CA не раскрывает содержимое переписки.

05 / Платформы

Принудительные запросы к платформам

Paranoia не использует FCM и APNs. Уведомления работают через polling без участия Google и Apple. Принудительный запрос к платформе не даёт доступа к сообщениям.

Что сервер неизбежно знает — честный дисклеймер

  • IP-адрес клиента во время polling-запросов
  • Время запросов (частично скрыто случайным интервалом 10–240 с)
  • Факт существования диалога между двумя участниками

Протокол

01 / Ключи

Обмен ключами

Ключи никогда не проходят через сервер. Обмен происходит напрямую через QR-код или JSON-файл. Трёхшаговый протокол:

  1. Приглашение — инициатор генерирует эфемерную X25519-пару, создаёт payload приглашения
  2. Принятие — получатель генерирует свою пару, возвращает response payload
  3. Сравнение — оба участника сравнивают SAS через независимый канал

Сервер не участвует ни на одном шаге. Ключ хранится в локальном keyring диалога.

02 / Отправка

Отправка сообщений

Сообщения шифруются локальным ключом диалога до отправки. На сервер уходит только шифротекст и подпись Ed25519.

Сервер хранит dialogue_id:seq → encrypted_payload и не может расшифровать ни одно сообщение.

Pull-before-push: перед отправкой клиент синхронизирует seq с сервером — это позволяет работать с нескольких устройств без раскрытия их количества серверу.

03 / История

Управление историей

Пользователь может удалить историю с сервера в любой момент.

Операция determinate удаляет все сообщения до указанного cut_seq. Инициировать может любой участник диалога без согласия собеседника.

Право на забвение — не функция, а часть протокола.

Возможности

Функция Описание
End-to-end шифрование X25519 + HKDF-SHA256 + ChaCha20-Poly1305
Cover-layer Трафик маскируется под произвольный JSON-протокол — например, food delivery API
Zero-knowledge сервер Сервер хранит только зашифрованные payload'ы и публичные ключи
Multi-device Несколько устройств без device_id на сервере, pull-before-push синхронизация
Перенос ключей Экспорт/импорт keyring через зашифрованный файл (X25519 + ChaCha20)
Без FCM/APNs Polling уведомлений без Google и Apple; foreground service на Android
Право на забвение Удаление истории с сервера по команде любого участника диалога
Анонимные ID Username виден только локально; на сервере используется sha256(pubkey)
Self-hosted Полное развёртывание на собственном сервере; никаких облачных зависимостей
Ed25519 подписи Каждое сообщение подписано; подделка невозможна без приватного ключа

Скачать Paranoia

Windows

x64 · Installer · v0.2.1

Скачать .exe

SHA256:4be175bc7c0a31361ab5897be5061acb5179d0ffb93401a7d350ec092e562239

Linux

x64 · Installer · v0.2.1

Скачать инсталлятор

SHA256:8044b69b27d7aab10c1481fbd320856add0b9de8bfc4a59fa367ebcb51423cb4

Android

ARM64 · APK · v0.2.1

Скачать APK

SHA256:b23fccefb49b680567c46c11478183e1d2a8dae0ce00b5fd6d579aaf9c15dde0

macOS

В разработке

Скоро

Ожидается в следующих версиях

iOS

В разработке

Скоро

Ожидается в следующих версиях

Файлы раздаются напрямую через nginx без посредников. Прямые ссылки без трекеров, без редиректов. APK подписан ключом разработчика — убедитесь в совпадении SHA256.

Разверни свой сервер

Paranoia не требует центрального сервера. Установка — прямо из клиента. Нужен только SSH-доступ к любому VPS. Клиент подключится, развернёт сервер и настроит TLS автоматически.

Никаких ручных команд. Никаких зависимостей. Работает как установка VPN в AmneziaVPN.

  1. 01

    Открой клиент → Установить свой сервер

    В настройках десктопного или мобильного клиента.

  2. 02

    Укажи домен и SSH-параметры

    Домен для TLS, IP-адрес, SSH-пользователь, пароль и порт сервера.

  3. 03

    Нажми «Установить»

    Клиент развернёт сервер по SSH и автоматически подключится к нему.

Экран «Установить свой сервер» в приложении Paranoia: поля Домен, IP-адрес, SSH-пользователь, SSH-пароль, Порт