Skip to content

TimaxLacs/free-messenger-ideas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Идеи для мессенджера с максимальной доступностью в условиях блокировок

Брейншторм по архитектуре и операционным подходам для мессенджера, устойчивого к цензуре (в первую очередь — РКН/Россия).


Контекст угрозы

РКН использует ТСПУ (Технические средства противодействия угрозам) с DPI — анализ трафика в реальном времени, включая нейросетевую классификацию протоколов. Это уже не простое IP-блокирование: любое «необычное» поведение трафика детектируется и блокируется.


1. Функциональные идеи (архитектура и протоколы)

1.1 Транспортный слой

Обфускация трафика под обычный HTTPS

Трафик должен выглядеть как обычный браузерный TLS. WebTunnel (Tor) имитирует SNI популярных сайтов. Reality-протокол идёт дальше: маскирует TLS-рукопожатие под Microsoft/Apple, вплоть до таймингов пакетов.

Domain Fronting через CDN

Запрос идёт на CDN (Cloudflare, Fastly, Akamai), а внутри CDN перенаправляется на реальный сервер. Заблокировать Cloudflare — значит сломать половину рунета. Используется в Tor, Signal, Lantern. Cloudflare Workers дают хороший контроль над маршрутизацией.

Multiplexing + случайный padding

AnyTLS и аналоги: мультиплексирование сессий и случайный padding пакетов — паттерн трафика не детерминирован. Классификаторы РКН натренированы на конкретные сигнатуры, рандомизация ломает их.

QUIC / HTTP/3 как базовый транспорт

UDP-based протокол, быстрее обходит DPI, сложнее фильтровать без потери легитимного трафика (YouTube тоже ходит по QUIC).

Встроенный TCP desync (как zapret)

На уровне клиента модифицировать исходящий трафик: desync-split, fake-пакеты перед TLS-рукопожатием. Работает без внешних серверов — всё напрямую.


1.2 Сетевая архитектура

Система мостов (bridges) встроенная в клиент

Как у Tor/Signal: список мостов распространяется отдельно от основного канала — через email, QR-коды, Telegram-боты, DNS-запросы. Мосты ротируются, IP-адреса живут недолго.

Пользователи как реле (volunteer bridge)

Пользователи вне РФ одним переключателем становятся ретранслятором. Аналог Snowflake в Tor — браузерное расширение или фоновый процесс. Чем больше добровольцев, тем устойчивее сеть.

P2P / Mesh-сеть как фолбэк

При полном отключении интернета — Bluetooth и WiFi Direct для передачи сообщений между устройствами. Реализовано в Briar Messenger. Для РФ нишевой сценарий, но критично при полном отключении (как в Беларуси 2020).

Децентрализованная onion-маршрутизация

Сообщение проходит через несколько узлов, каждый знает только предыдущий и следующий. Нет центрального сервера — нечего блокировать.

DNS-over-HTTPS для бутстрапа

Начальное обнаружение серверов через DoH (например, 1.1.1.1). Даже если классический DNS заблокирован, первый контакт с инфраструктурой работает.


1.3 Протокол и приватность

Минимизация метаданных

Сервер не знает, кто с кем общается. Sealed Sender (как у Signal): получатель не может доказать отправителя. Без привязки к номеру телефона — только криптографические идентификаторы.

Dummy traffic (обфускация паттернов)

Фиктивный трафик в периоды молчания — DPI не детектирует мессенджер по паттерну «вспышки активности + тишина».

Альтернативные каналы распределения ключей

Если основной канал заблокирован, обмен ключами/инвайтами идёт через: QR-код офлайн, email, SMS, стеганографию в изображениях, GitHub Gist.


1.4 SMS как транспортный фолбэк

SMS работает через сотовую сеть — РКН физически не может его заблокировать без отключения сотовой связи целиком.

Вариант A: Device-to-device (прямые SMS без сервера)

Приложение использует нативный SMS API Android. Сообщение уходит как обычная смска на номер получателя, но:

  • зашифровано E2E перед отправкой
  • имеет специальный заголовок-префикс для идентификации
  • перехватывается приложением и не отображается в стандартном SMS-inbox

Так работал Signal в режиме Encrypted SMS и работает Silence Messenger.

Плюсы: нет сервера, работает без интернета, бесплатно
Минусы: только Android (iOS не даёт SMS API сторонним приложениям), метаданные видны оператору

Вариант B: SMS через серверный шлюз

Сервер подключён к SMS-шлюзу (Twilio, SMSC). Когда интернет-транспорт недоступен, доставка идёт через SMS.

Плюсы: работает на iOS
Минусы: стоит денег (~$0.006–0.01 за SMS), сервер знает метаданные

Вариант C: Автоматический фолбэк

интернет-транспорт → CDN bridge → Tor → SMS

Клиент пробует транспорты по приоритету, переключается автоматически. Пользователь видит индикатор «отправлено через SMS».

Шифрование в SMS

  • Base64-кодирование зашифрованного payload (увеличивает размер на ~33%)
  • Сжатие текста до шифрования (zstd/lz4)
  • Compact-схемы (Curve25519 + ChaCha20)
  • Один сегмент SMS (~137 байт данных) вмещает ~80–100 символов открытого текста после шифрования

2. Внешние идеи (дистрибуция, UX, операционные)

2.1 Дистрибуция приложения

APK прямой загрузкой + зеркала

Без зависимости от Google Play. Несколько десятков зеркал с автоматической ротацией доменов. Подпись APK верифицируется по хешу, опубликованному в нескольких независимых источниках.

F-Droid

Пользователи получают обновления полностью мимо Google. Важно для тех, кто не использует Google-сервисы.

PWA (Progressive Web App)

Полноценный клиент в браузере — не нужно ничего устанавливать. Работает через HTTPS, максимально сложно заблокировать. Ключи хранятся в IndexedDB.

Huawei AppGallery / RuStore

В России большая доля Huawei без Google Play. RuStore — российский магазин, снижает барьер входа для массовой аудитории.

CLI-клиент

Curl-совместимый интерфейс, работает через любой прокси, интегрируется в скрипты. Для технически продвинутых пользователей.


2.2 UX и доступность

Встроенный один-тап обход без VPN

Кнопка «подключиться через мост» прямо в интерфейсе. Всё встроено — как в Tor Browser. Пользователь не знает, что такое bridge или SOCKS5.

Регистрация без номера телефона

Только email или полностью анонимно — по инвайт-ссылке. Номер телефона как опция, не обязательство. Устраняет привязку к паспорту через SIM-карту.

Маленький размер приложения

Целевой APK < 15 МБ. Быстро скачивается даже через медленный мост.

Режим маскировки (camouflage mode)

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

Офлайн-инвайты через QR

Добавить контакт можно при личной встрече — сканирование QR без интернета. Первичный обмен ключами без центрального сервера.


2.3 Инфраструктура и устойчивость

Мультипровайдерная инфраструктура

Серверы одновременно на AWS, GCP, Azure, Hetzner, OVH, DigitalOcean. Для блокировки нужно заблокировать всё — это политически и технически сложно.

Автоматическое переключение транспортов

Клиент пробует в порядке приоритета без участия пользователя:

прямое соединение → CDN fronting → bridge → Tor → SMS

Публичный статус-бот

Telegram/Matrix-бот публикует в реальном времени: какие транспорты работают, какие мосты живые, как получить актуальный APK.

Volunteer bridge с геймификацией

Стимулировать пользователей вне РФ поднимать реле: статистика трафика, бейджи, или микроплатежи за предоставленный трафик.


3. Приоритетная матрица

Идея Эффект Сложность реализации
Domain Fronting / CDN Очень высокий Средняя
Обфускация под HTTPS (WebTunnel/Reality) Очень высокий Высокая
APK зеркала + PWA Высокий Низкая
Встроенный один-тап обход Высокий Средняя
Система мостов с ротацией Высокий Высокая
SMS-транспорт (Android, device-to-device) Высокий (фолбэк) Средняя
Volunteer bridge (Snowflake-подобие) Высокий Высокая
Авторегистрация без телефона Средний Низкая
Dummy traffic Средний Средняя
Паник-режим / маскировка Средний Низкая
Bluetooth/WiFi mesh фолбэк Низкий (нишевой) Очень высокая

4. Референсы

About

Идеи для мессенджера с максимальной доступностью в условиях блокировок (РКН)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors