Мессенджер · Open Source · Self-hosted
Мессенджер, которому не нужно
доверять серверу
Зашифрованный мессенджер с открытым протоколом. Сервер видит только шифротексты. Ключи никогда не покидают устройство. Self-hosted. Без Google. Без Apple.
Модель угроз
Даже при полном доступе к БД сервера злоумышленник увидит только шифротексты и минимальные метаданные — расшифровать сообщения невозможно.
Cover-слой маскирует протокол под обычный HTTPS-трафик с нейтральными JSON-полями. Глубокая инспекция пакетов не позволяет идентифицировать Paranoia.
Каждое сообщение подписано Ed25519 и привязано к уникальному seq. Перезаписать или воспроизвести чужое сообщение невозможно без приватного ключа.
Сквозное шифрование работает независимо от TLS. Компрометация сертификата или подмена CA не раскрывает содержимое переписки.
Paranoia не использует FCM и APNs. Уведомления работают через polling без участия Google и Apple. Принудительный запрос к платформе не даёт доступа к сообщениям.
Что сервер неизбежно знает — честный дисклеймер
Как это работает
Ключи никогда не проходят через сервер. Обмен происходит напрямую через QR-код или JSON-файл. Трёхшаговый протокол:
Сервер не участвует ни на одном шаге. Ключ хранится в локальном keyring диалога.
Сообщения шифруются локальным ключом диалога до отправки. На сервер уходит только шифротекст и подпись Ed25519.
Сервер хранит dialogue_id:seq → encrypted_payload и не может расшифровать ни одно сообщение.
Pull-before-push: перед отправкой клиент синхронизирует seq с сервером — это позволяет работать с нескольких устройств без раскрытия их количества серверу.
Пользователь может удалить историю с сервера в любой момент.
Операция 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 подписи | Каждое сообщение подписано; подделка невозможна без приватного ключа |
Дистрибутивы
Windows
x64 · Installer · v0.2.1
SHA256:4be175bc7c0a31361ab5897be5061acb5179d0ffb93401a7d350ec092e562239
Linux
x64 · Installer · v0.2.1
SHA256:8044b69b27d7aab10c1481fbd320856add0b9de8bfc4a59fa367ebcb51423cb4
Android
ARM64 · APK · v0.2.1
SHA256:b23fccefb49b680567c46c11478183e1d2a8dae0ce00b5fd6d579aaf9c15dde0
macOS
В разработке
Ожидается в следующих версиях
iOS
В разработке
Ожидается в следующих версиях
Файлы раздаются напрямую через nginx без посредников. Прямые ссылки без трекеров, без редиректов. APK подписан ключом разработчика — убедитесь в совпадении SHA256.
Для администраторов
Paranoia не требует центрального сервера. Установка — прямо из клиента. Нужен только SSH-доступ к любому VPS. Клиент подключится, развернёт сервер и настроит TLS автоматически.
Никаких ручных команд. Никаких зависимостей. Работает как установка VPN в AmneziaVPN.
Открой клиент → Установить свой сервер
В настройках десктопного или мобильного клиента.
Укажи домен и SSH-параметры
Домен для TLS, IP-адрес, SSH-пользователь, пароль и порт сервера.
Нажми «Установить»
Клиент развернёт сервер по SSH и автоматически подключится к нему.
Серверный бинарник