Мессенджер · Open Source · Self-hosted
Твой сервер. Твои ключи. Твои правила.
Зашифрованный мессенджер с открытым протоколом. Сервер видит только шифротексты. Ключи никогда не покидают устройство. Self-hosted. Без посредников.
Модель угроз
Даже при полном доступе к БД сервера злоумышленник увидит только шифротексты и минимальные метаданные — расшифровать сообщения невозможно.
Cover-слой маскирует протокол под обычный HTTPS-трафик с нейтральными JSON-полями. Глубокая инспекция пакетов не позволяет идентифицировать Paranoia.
Каждое сообщение подписано Ed25519 и привязано к уникальному seq. Перезаписать или воспроизвести чужое сообщение невозможно без приватного ключа.
Сквозное шифрование работает независимо от TLS. Компрометация сертификата или подмена CA не раскрывает содержимое переписки.
Paranoia не использует FCM и APNs. Уведомления работают через polling без участия Google и Apple. Принудительный запрос к серверу не даёт доступа к сообщениям.
Paranoia использует PUT-HTTPS запросы. Вся важная информация шифруется. Это значит, что подключение можно обеспечить через CDN.
Что сервер неизбежно видит
Как это работает
Ключи никогда не проходят через сервер. Обмен происходит напрямую через QR-код или JSON-файл. Трёхшаговый протокол:
Сервер не участвует ни на одном шаге. Ключ хранится в локальном keyring диалога.
Сообщения шифруются локальным ключом диалога до отправки. На сервер уходит только шифротекст и подпись Ed25519.
Сервер хранит [ID диалога:номер → шифротекст] и не может расшифровать ни одно сообщение.
Pull-before-push: перед отправкой клиент синхронизирует seq с сервером — это позволяет работать с нескольких устройств без раскрытия их количества серверу.
Пользователь может удалить историю с сервера в любой момент.
Операция determinate удаляет все сообщения до указанного номера. Инициировать может любой участник диалога без согласия собеседника.
Право на забвение — не функция, а часть протокола.
Технические характеристики
| Функция | Описание |
|---|---|
| End-to-end шифрование | X25519 + HKDF-SHA256 + ChaCha20-Poly1305 |
| Cover-layer | Трафик маскируется под произвольный JSON-протокол — например, food delivery API |
| Zero-knowledge сервер | Сервер хранит только зашифрованные payload'ы и публичные ключи цифровой подписи |
| Multi-device | Несколько устройств без device_id на сервере, pull-before-push синхронизация |
| Перенос ключей | Экспорт/импорт связки ключей через зашифрованный ключом получателя файл (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
Android
ARM64 · APK · v0.2.1
SHA256:b23fccefb49b680567c46c11478183e1d2a8dae0ce00b5fd6d579aaf9c15dde0
Ссылки на файлы загружаются из последнего релиза GitLab. Если GitLab API недоступен, сайт использует резервные ссылки.
Для администраторов
У Paranoia нет центрального сервера. Установка — прямо из клиента. Нужен только SSH-доступ к любому VPS. Клиент подключится, развернёт сервер и настроит TLS автоматически.
Никаких ручных команд. Работает как установка VPN в AmneziaVPN.
Открой клиент → Установить свой сервер
В настройках десктопного или мобильного клиента.
Укажи домен и SSH-параметры
Домен для TLS, IP-адрес, SSH-пользователь, пароль и порт сервера.
Нажми «Установить»
Клиент развернёт сервер по SSH и автоматически подключится к нему.
Регистрируй на свое сервере друзей
Для регистрации, нужен только обезличенный публичный ключ клиента.
Бинарный файл сервера