Эта страница для тех, кто хочет проверить. Для каждого компонента мы говорим, от чего он защищает, а от чего нет.
Клиент на каждом устройстве, один хаб на сообщество (Outpost), доступный только как onion-сервис Tor v3, сквозное шифрование MLS между клиентами. Хаб упорядочивает, временно хранит и пересылает сообщения, которые не может прочитать. Никакого центрального сервера, никаких компонентов GiBSeS на пути данных.
Outpost и клиенты общаются только через Tor. Outpost публикует onion-сервис v3: адрес выводится из ключа сервиса, поэтому он остаётся тем же, если ПК меняет сеть или IP, и открывать порты на роутере не нужно. Мы используем Arti — реализацию Tor на Rust от Tor Project, встроенную в бинарник: никакого внешнего процесса Tor устанавливать не нужно.
Веб-версия — это интерфейс в браузере для небольшой локальной программы, которая работает с Tor. Удалённого веб-сервера нет: браузер общается только с программой на вашем компьютере, а она доставляет сообщения в Outpost через Tor.
Каждая переписка, даже на двоих, — это MLS-группа по RFC 9420, реализованная на OpenMLS. Наборы: X25519 для обмена ключами, ChaCha20-Poly1305 для шифрования, Ed25519 для подписей. На устройстве шифруются текст, фото, голосовые, файлы, а также имена и типы вложений.
MLS обеспечивает forward secrecy и post-compromise security: украденный сегодня ключ не расшифрует вчерашний трафик, а после обновления ключа — и завтрашний. Это защищает сообщения в пути, а не историю, уже сохранённую на телефоне: её защищает шифрование локальной базы данных и блокировка приложения (PIN или биометрия).
Мы проверили это с помощью строк-маркеров, вставленных в тестовые сообщения: ноль совпадений в данных хаба.
Новый участник группы не читает её историю. Тот, кто вышел или был удалён, не читает того, что пишут после. В тесте на 100 участников удаление одного участника даёт commit размером 8,7 КБ за 6,5 мс.
Ключи Outpost фиксируются при входе, из приглашения. Каждый личный ID (QR или код из 32 символов) содержит отпечаток ключа: если кто-то, включая хаб, попытается его подменить, приложение заблокирует отправку и покажет предупреждение на весь экран. Два человека могут сверить 60-значный код безопасности или QR. У каждого сообщества отдельная идентичность с разными ключами.
Эту таблицу нужно прочитать целиком. Она относится к Outpost, а значит, и к тому, кто им управляет.
| Данные | Хаб их видит? |
|---|---|
| Текст, фото, голосовые, файлы, имена и типы вложений | Нет |
| Аудио и видео встреч (оба режима) | Да |
| IP клиентов | Нет (Tor), кроме участников встреч в режиме «Высокое качество» |
| IP хаба — для клиентов | Нет (onion), кроме участников встреч в режиме «Высокое качество» |
| Список участников с ключами и метками, включая скрытых | Да |
| Видимость, выбранная каждым | Да |
| Кто в какой комнате, названия комнат | Да |
| Кто кому пишет в чатах на двоих | Да |
| Кто загружает материалы в комнату | Да |
| Когда и как часто каждый подключается | Да |
| Размер сообщений | Да |
| Кто с кем открывает личный чат из комнаты | Да |
GiBSeS не видит ничего из этого: у нас нет серверов, аккаунтов, телеметрии, отчётов о сбоях и онлайн-активации. Тот, кто «виден только тем, у кого есть мой ID», остаётся видимым участникам комнат, в которые входит.
Если получатель офлайн, зашифрованный конверт остаётся на Outpost до 30 дней (настраивается), после чего срок хранения истекает. Сразу после доставки он удаляется: Outpost работает только как транзит и не хранит архив сообщений. На диске остаются список участников и комнат и очередь недоставленного — в папке, зашифрованной при хранении паролем оператора (Argon2id). В чатах на двоих вы видите «в очереди», «доставлено» или «истекло». Вложения передаются частями, с возобновлением после обрыва, до 100 МБ на элемент.
Ни одно уведомление не проходит через push-сервисы Android и iOS. Два режима: без фоновой проверки (по умолчанию) или периодическая проверка через Tor каждые 15, 30, 60 или 240 минут с локальным уведомлением без содержимого. На Android энергосбережение может задерживать проверки; на iOS система ограничивает фоновую активность, поэтому полноценный приём — при открытом приложении.
Звонки, 1:1 и групповые примерно до 10 человек, идут через Tor и проходят через хаб, который пересылает их только в памяти, не записывая на диск. Задержка складывается из двух onion-участков и будет заметной: это скорее рация, чем обычный телефонный звонок. Если контакт недоступен, звонок считается пропущенным, и можно оставить голосовое. Есть и облегчённая демонстрация экрана.
Необязательный компонент, выключенный по умолчанию, работает на хабе как SFU (Selective Forwarding Unit). Медиапоток шифруется при передаче, но SFU расшифровывает его для пересылки: хаб видит аудио и видео встреч в обоих режимах. SFrame мы не используем. В видео вы доверяете хабу, то есть тому, кто им управляет.
медиапоток идёт через Tor, Outpost пересылает его как relay, в низком разрешении, чтобы уложиться в полосу и задержку onion-цепочки. Никаких открытых IP: ни участников, ни хаба. Никакой дополнительной настройки сети.
прямое соединение WebRTC между клиентами и Outpost, вне Tor, с шифрованием DTLS-SRTP и встроенным TURN. Нужны публичный IP на хабе и один-два открытых порта. Сертификат self-signed: его отпечаток и адрес приходят клиентам через Tor, без внешних сервисов. IP участников видит только Outpost сообщества, а не другие участники. Участники знают IP хаба. Как и при любом прямом соединении, сетевой провайдер каждого видит, что есть подключение к этому адресу.
Чаты всегда остаются в Tor, какой бы режим видео вы ни выбрали.
Тяжёлой криптографии на хабе мало: он пересылает конверты и упорядочивает MLS-commit'ы. Реальная нагрузка — диск (очередь вложений, до 30 дней) и полоса Tor. Рабочий диск должен быть SSD: очередь пишет постоянно. Измеренный узел в рабочем режиме занимает 34–46 МБ RAM.
| Сообщество | Рекомендуемая конфигурация |
|---|---|
| До ~25 человек | Включённый ПК или ноутбук, 4 ГБ RAM, 32 ГБ свободно на SSD |
| От ~25 до 100 человек | Компьютер или мини-ПК, 8 ГБ RAM, SSD на 64–128 ГБ |
| Больше 100 человек | Несколько Outpost |
| Видео «Высокое качество», 5 участников | ~10 Мбит/с на отдачу у хаба, публичный IP, 1–2 порта |
| Видео «Высокое качество», 10 участников | ~45 Мбит/с на отдачу у хаба; компьютер с 8 ГБ |
| Видео «Защищённый» | Никаких дополнительных требований к сети; качество ограничено полосой Tor |
Outpost для Windows 10/11 x64 и Linux x86_64. Автозапуск, онлайн в течение 3 минут после включения. Для чата хватит домашнего канала в несколько Мбит/с: практический предел — задержка Tor, а не железо.
Клиент и Outpost написаны на Rust: Arti для Tor, OpenMLS для шифрования. Outpost — один бинарник, без установки и без прав администратора.
Фото детей, голосовые от бабушки, чат клуба остаются между вами. Здесь — что нужно сделать тому, кто ведёт группу, и почему Chat Control касается вас.
Проекты под NDA, видеовстречи, чаты коллег: данные остаются на компьютере в вашем офисе. Naisho работает рядом с инструментами, которые у вас уже есть.