Мессенджер, у которого нечего выдавать
Сквозное шифрование по протоколу Signal. Регистрация без номера телефона и без почты. Доставка без сервисов Google. А что именно уходит с вашего телефона — можно посмотреть прямо в приложении, а не поверить на слово.
Android 8.0+ · прямая загрузка, без магазинов приложений
Что внутри
Восемь вещей, которые делают его нашим
Сквозное шифрование
Протокол Signal: X3DH и двойной храповик. Ключи создаются на телефоне и с него не уходят — расшифровать переписку может только устройство собеседника.
Пост-квантовый обмен ключами
PQXDH — гибрид X25519 и Kyber-1024 (ML-KEM). Работает, когда обе стороны на свежей сборке; со старым клиентом сессия остаётся классической X25519. Оговорка: увидеть, какая именно у вас с конкретным собеседником, пока нельзя — приложение помнит это про себя, но на экран не выводит.
Звонки, которые идут мимо сервера
Аудио и видео на WebRTC с DTLS-SRTP. Когда сеть позволяет — напрямую между телефонами. Когда нет — через наш TURN-ретранслятор, который перекладывает уже зашифрованный поток и в него не заглядывает.
Журнал сети — внутри приложения
Экран, который показывает каждый исходящий запрос: адрес, размер, начало тела. Для переписки там всегда шифротекст. Это не обещание, что лишнего не уходит, — это возможность проверить самому.
Число безопасности
Сверьте его с собеседником лично или голосом — и вы знаете, что между вами никого нет. Если ключ собеседника сменится, приложение предупредит и не сделает вид, что всё в порядке.
Исчезающие сообщения
Таймер на чат: по истечении срока запись стирается с перезаписью, а не просто помечается удалённой. По умолчанию выключено — включаете вы, а не мы за вас.
База на диске зашифрована
Локальная база под SQLCipher, пароль лежит в аппаратном хранилище телефона. Плюс код блокировки, скрытие от скриншотов и код-самоуничтожение, который стирает данные вместо входа.
Вложения проверяются по байтам
Тип файла определяется по содержимому, а не по расширению. Исполняемое под видом фотографии не откроется, и открыть можно только то, что действительно картинка, видео, звук или PDF.
Без прикрас
Что наш сервер видит, а что нет
Сервер здесь — почтовый ящик: он держит зашифрованные конверты, пока адресат не заберёт. Ниже — построчно, без округлений в нашу пользу. Жёлтым отмечено то, что мы ещё не закрыли.
| Данные | Сервер | Как именно |
|---|---|---|
| Текст сообщений | не видит | шифруется на устройстве; на сервере лежит только шифротекст |
| Файлы, фото, голосовые | не видит | шифруются тем же ключом сессии, что и текст |
| Содержимое звонков | не видит | DTLS-SRTP между устройствами; TURN пересылает шифропоток |
| Номер телефона, почта | не существует | при регистрации не спрашиваются — их просто нет в базе |
| Список ваших контактов | не видит | хранится на телефоне, целиком на сервер не выгружается. Оговорка: если включить статус «в сети», приложение начинает спрашивать сервер про ваших собеседников — тогда этот набор ему виден. Поэтому статус по умолчанию выключен |
| Кто кому пишет | может определить | поле отправителя у конверта пустое, но причин две и они независимы: рядом едет служебный сертификат, который сервер пока читает, и, чтобы вернуть вам галочку «доставлено», сервер держит ссылку на настоящего отправителя — она стирается только по отметке о прочтении, а при выключенных квитках живёт весь срок хранения. Разбор обеих |
| Когда вы в сети | частично | по умолчанию выключен; «был в сети» огрубляется до минуты |
| Кто кому звонил и когда | видит | сервер сводит звонок, поэтому знает обе стороны: запись живёт до 4 часов, маркер пропущенного — 7 дней |
| IP-адрес подключения | видит | неизбежно для любого сервера. Хотите скрыть — подключайтесь через VPN или Tor |
| Сервисы Google | не участвуют | уведомления идут по своему постоянному соединению, без FCM |
Прямо сейчас это значит: содержимое вашей переписки серверу недоступно, а вот сам факт «этот аккаунт написал этому» — доступен. Мы не называем это «сервер слеп к отправителю», пока это не станет правдой на работающем сервере. Подробный разбор — на странице приватности.
Установка
Три шага, никаких магазинов
- Скачайте APK
Кнопка в начале страницы. Файл раздаёт тот же сервер, что и переписку.
- Разрешите установку из этого источника
Android спросит один раз. Если ставите поверх прежней сборки — переустановка не нужна, подпись та же.
- Создайте приватный ID
Ни номера, ни почты, ни подтверждений. Дальше отдайте свой ID или QR тому, с кем хотите говорить.
Обновления приложение проверяет само и ставит только файл, чей отпечаток совпадает с опубликованным. Скачанное вручную стоит сверить — как, написано ниже.
Проверка
Не верьте странице — сверьте сами
Хэш файла подтверждает, что APK скачался байт-в-байт без подмены. Отпечаток подписи — что его собрали тем же ключом, что и прежние сборки, а не перепаковал кто-то другой; он не меняется от версии к версии.
Сверяйте оба значения через отдельный доверенный канал — лично, голосом, в другом мессенджере. Страница, которую вам могли подменить, не может подтвердить сама себя.
# хэш файла
sha256sum signet.apk
# в Windows
certutil -hashfile signet.apk SHA256
# отпечаток подписи
apksigner verify --print-certs signet.apk
Почему два отпечатка. С версии 26110119 сборки подписаны отдельным релизным ключом (CN=Veil). Переход бесшовный: цепочка подписи построена и проверена, поэтому новая версия встаёт поверх прежней без переустановки и без потери переписки. Android 13 и новее проверяет по новому ключу, более старые версии — по прежнему рабочему (CN=Android Debug). apksigner покажет ровно эту пару — сверяйте тот отпечаток, который соответствует вашей версии Android.
Сервер
Один ретранслятор, и он на виду
У сервера два имени в разных DNS-зонах: если основное перестаёт разрешаться, приложение само уходит на запасное — тот же сервер, те же закреплённые сертификаты. Сертификат проверяется по закреплённым корням Let’s Encrypt, поэтому сертификат от любого другого удостоверяющего центра приложение отвергнет. Но честно: это не привязка к имени. Тот, кто перехватит управление доменом, получит на него настоящий сертификат Let’s Encrypt, и закрепление корня его не остановит — от этого защищает только сверка числа безопасности с собеседником.
Чего здесь нет
Signet — не Signal
Это небольшой мессенджер для узкого круга, а не сервис с аудитом и штатом. Честно о границах:
- Один сервер и один оператор. Упадёт он — переписка не потеряется, но доставка встанет.
- Внешнего аудита кода не было. Были свои разборы, они лежат в репозитории вместе с найденным.
- Сборка раздаётся файлом, а не через магазин. Значит, проверка подлинности — на вас; выше написано как.
- Групповые чаты и боты работают, но проверены меньше, чем переписка один на один.
Если вам нужен мессенджер с внешним аудитом и миллионами пользователей — берите Signal, это правильный выбор. Signet имеет смысл, когда вы хотите свой сервер, без номера телефона и без Google.