Веб-версия

Мессенджер без паролей

Переписка,
которая принадлежит вам

Сквозное шифрование: сервер видит только конверт. Вместо пароля — криптографический ключ, который не покидает телефон. Чаты и группы, звонки, игры и опросы прямо в переписке, новости по интересам. Пропал интернет — сообщение уйдёт через Bluetooth соседнего телефона.

Android 7.0 и новее

К
Ксения
в сети
Д
Друзья
7 участников
ДуэльТанчики
Вы18400
Ксения16250
Партия переиграна у соперника — счёт сошёлся
ОпросКуда в субботу?
За город
В кино
Никуда
📰
Технологии
лента обновлена
10 рубрик, 43 источникаЛенты собираются на сервере — телефон получает готовое
Отложить в ИзбранноеНовость уходит из ленты, отложенная — остаётся
Свой сайт по ссылкеЛюбая RSS-лента добавляется вручную
0сообщений, читаемых сервером
5игр прямо в чате
43новостных источника
282серверных теста

Возможности

Что умеет

Сквозное шифрование

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

X25519AES-256-GCMПрямая секретностьКод безопасности

Вход без пароля

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

Связь без интернета

Сети нет — сообщение уходит по Bluetooth на ближайший телефон с Q-Ку и добирается через него. Посредником нельзя назначить себя самому: нужен криптографический ответ адресата.

Чаты и группы

Ответы с цитатой, реакции, правка и удаление, статусы доставки и прочтения, набор текста, закрепление чатов и сообщений, Избранное как переписка с собой.

Звонки

Голос и видео напрямую между устройствами по WebRTC. Сервер только сводит собеседников и в передаче потока не участвует.

Игры и опросы в переписке

Змейка, Фигуры, Танчики, Реверси и Мафия на всю группу — карточкой прямо в чате, без отдельного приложения. Опросы и викторины со своими вариантами.

Очкам никто не верит на слово: вместе со счётом уходит запись партии, и телефон соперника переигрывает её у себя. Не сошлось — результат зачёркнут.

ЗмейкаФигурыТанчикиРеверсиМафия

Новости по интересам

Десять рубрик и 43 источника, свои ленты по ссылке. Приходят обычным чатом — с поиском, пересылкой и Избранным.

Голос, видео, файлы

Голосовые, кружки-видеозаметки, фото, видео и документы. Свой набор анимированных эмодзи.

Номер не разглядывают

Общего списка пользователей нет: чужой номер нельзя ни найти, ни подсмотреть в интерфейсе — вас видят только те, с кем вы знакомы. Скрытый режим прячет и остальное: «в сети», время последнего визита, аватар.

Обновляется само

Приложение спрашивает сервер о новой сборке, скачивает её и предлагает установить. Ходить на сайт за каждой версией больше не нужно.

Оформление

Восемь цветов — и весь интерфейс меняется

В приложении выбираются основной цвет, светлая или тёмная тема и фон переписки: живой градиент, однотонная подложка или своя картинка. Нажмите на цвет — эта страница перекрасится вместе с ним.

Как тебе новый цвет?
Нравится. Он же и в приложении такой✓✓
А опрос попробуем?
Опрос · нажмите вариант

Голоса видны поимённо — так же, как в приложении.

Безопасность

Как устроена безопасность

01

Ключ вместо пароля

Приложение генерирует пару ключей Ed25519. Приватный шифруется аппаратным хранилищем Android и никогда не передаётся. При входе сервер присылает случайную строку, устройство подписывает её, сервер проверяет подпись публичным ключом.

02

Сквозное шифрование

Текст, фотографии, голосовые, опросы — всё уходит в конверте, который сервер открыть не может: у него нет ни одного приватного ключа. Тело шифруется один раз случайным ключом AES-256-GCM, а сам ключ кладётся в конверт по разу на получателя. Поэтому фотография в группе на двадцать человек уходит один раз, а не двадцать.

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

03

Прямая секретность

Каждое сообщение шифруется с участием одноразового ключа, который получатель удаляет сразу после прочтения. После этого прочитанное не откроет никто — включая того, кто позже заберёт телефон вместе со всеми ключами.

Плата честная и о ней лучше знать заранее: переписку, зашифрованную для потерянного телефона, на новом не открыть даже с правильным ключом восстановления. Личность переезжает, прочитанное — нет.

04

Код безопасности

Ключи раздаёт сервер — значит, теоретически он может подсунуть свой. Поэтому в карточке собеседника есть шесть групп по пять цифр: продиктуйте их голосом или сверьте при встрече. Совпали — между вами никого нет. Сервер в этом разговоре не участвует и подделать его не может.

Сменился ключ собеседника — вместо кода появится предупреждение. Обычно это переустановка приложения, но так же выглядит и подмена, и решать вам.

05

Потерянный телефон

Пока сервер помнит устройство, собеседники продолжают шифровать и для него. В настройках есть список ваших устройств и кнопка «забыть»: она действует сразу, и новые сообщения туда больше не пойдут. То, что уже получено на том телефоне, останется там — обещать обратное было бы обманом.

06

Свой сервер и связь между серверами

Разворачивается одной командой в Docker вместе с Nginx и автоматическим TLS. Это основной сценарий, а не запасной. Серверы можно связать между собой: адрес тогда выглядит как номер@сервер, а переписка ходит между ними напрямую, оставаясь зашифрованной — чужой сервер видит только конверт.

Установка

Поставить и обновляться

  1. Скачайте APK по кнопке ниже.
  2. Откройте файл и разрешите установку из этого источника — для приложений вне Google Play это нормально.
  3. Введите номер телефона: он станет вашим ID.
  4. Сохраните ключ восстановления. Без него вход на другом устройстве невозможен.

Дальше сайт не понадобится: начиная с версии 4.0 приложение само проверяет сервер, скачивает новую сборку и предлагает установить. Переписка при обновлении остаётся на месте.

Версия
Размер
Обновлено
Требуется
Android 7.0+

Не хотите ставить приложение?

Веб-версия работает в браузере и умеет почти всё то же: чаты и группы, файлы, опросы, игры, новости, Избранное. Ключ создаётся прямо в браузере и хранится только у вас.

Открыть веб-версию

Без Bluetooth-режима, звонков и уведомлений при закрытой вкладке.

Вопросы

Частые вопросы

Что будет, если я потеряю ключ восстановления?

Доступ к аккаунту будет утрачен окончательно. Сервер не хранит ваш приватный ключ и не может подтвердить, что номер принадлежит вам. Придётся зарегистрировать новый ID. Сохраните ключ там, где не потеряете его вместе с телефоном.

Как проверить, что переписку правда никто не читает?

Откройте карточку собеседника — там шесть групп по пять цифр. Это отпечаток ваших ключей, посчитанный одинаково у обоих. Продиктуйте их голосом или сверьте при встрече: совпали — между вами никого нет.

Проверка нужна именно потому, что ключи раздаёт сервер и теоретически мог бы подсунуть свой. Заметить подмену может только человек, и сервер в этом разговоре не участвует. Если код собеседника изменился, вместо него появится предупреждение — обычно это переустановка приложения, но так же выглядит и подмена.

Что будет, если телефон украдут?

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

Поэтому в настройках есть список ваших устройств и кнопка «забыть». Она действует немедленно. То, что уже получено на украденном телефоне, останется там — стереть его оттуда невозможно.

Как приложение обновляется?

Само. Раз в несколько часов оно спрашивает сервер о выложенной сборке и, если та новее, предлагает скачать и установить — с проверкой контрольной суммы файла. Установку подтверждаете вы, переписка и настройки сохраняются. В настройках есть кнопка «Проверить обновления» для проверки прямо сейчас.

Можно ли пользоваться с двух устройств?

Да. Введите один и тот же ключ восстановления на втором устройстве. Одновременно поддерживается до пяти сессий, самая старая вытесняется.

Но старая переписка на новое устройство не переедет. Это не недоделка, а прямое следствие прямой секретности: каждое сообщение шифруется ключом, который живёт только на том телефоне, где его прочитали, и стирается сразу после. Ключ восстановления переносит вашу личность, а не прочитанное — иначе его перенёс бы и посторонний, завладевший бумажкой. Новые сообщения приходят на оба устройства.

Закрепления чатов между устройствами тоже не ездят, но по другой причине: это ваш взгляд на список, а не содержимое переписки.

Как работает связь через Bluetooth?

Если интернета нет, приложение находит рядом другие устройства с Q-Ку и передаёт сообщение через них. Посредник передаёт конверт дальше, не открывая его: шифрование в этом пути такое же, как через сервер. А чтобы стать посредником, нужно криптографическое подтверждение от адресата — назначить себя чужим «шлюзом» произвольно нельзя.

Поиск соседей включается, только когда сети нет: пока связь есть, телефон лишь объявляет о себе — это в разы дешевле для батареи, и соседу без сети этого достаточно, чтобы нас найти.

Честные ли очки в играх?

Проверяемые. Вместе со счётом уходит запись партии, и устройство соперника переигрывает её тем же движком: сошлись счёт и длина — результат засчитан, нет — зачёркнут. Случайность берётся из общего сида, поэтому партия повторяется в точности. Личный рекорд хранится только на устройстве: посчитанный на своём же телефоне, он ничего не доказывает.

Приложения нет в Google Play — это безопасно?

Файл собирается из исходного кода этого проекта и подписывается ключом разработчика. Сверьте SHA-256 скачанного файла с суммой, опубликованной выше. Устанавливайте APK только с этого сайта.

Можно ли развернуть свой сервер?

Да, это основной сценарий. Сервер разворачивается одной командой в Docker вместе с Nginx и автоматическим TLS. Инструкция — в файле deploy/README.md репозитория.

Какие данные видит сервер?

Содержимое переписки — не видит: сообщения приходят к нему уже зашифрованными, и ни одного приватного ключа у него нет.

Видит он то, без чего доставка невозможна: ваш ID (номер телефона), отображаемое имя, аватар, публичные ключи, время последней активности, состав групп и метаданные сообщений — кто кому и когда написал и какой длины было сообщение. Доставленные сообщения из очереди удаляются, недоставленные хранятся ограниченное время.

Исключение одно и оно по устройству игры: партия в мафию. Роли закрытые, ведущим работает сервер — значит, он обязан знать содержимое. Такая партия помечена незашифрованной прямо в интерфейсе.

Поставьте и позовите своих

Мессенджер интересен ровно настолько, насколько в нём есть с кем говорить.