Перейти к содержанию

Устойчивость к DPI

Teleproxy включает несколько уровней защиты от систем глубокого анализа пакетов (DPI), которые пытаются обнаружить и заблокировать трафик MTProxy.

Текущая ситуация с угрозами

По состоянию на апрель 2026 года российские DPI-системы (ТСПУ/АСБИ) классифицируют MTProxy fake-TLS как отдельный протокол («TELEGRAM_TLS»). Обнаружение в первую очередь основано на отпечатке TLS на стороне клиента — ClientHello приложения Telegram имеет характерные JA3/JA4-признаки, которые DPI сопоставляет с известными сигнатурами.

Ключевые наблюдения:

  • Мобильные операторы (МТС, Мегафон, Билайн, T2, Yota) затронуты сильнее, чем домашние провайдеры — уровень развертывания ТСПУ варьируется от оператора к оператору
  • VPN-подключения обходят как эвристики DPI, так и блокировку на уровне IP
  • Инструменты фрагментации пакетов на стороне клиента (zapret, GoodbyeDPI) восстанавливают подключение, что подтверждает: DPI анализирует шаблоны только на целых TCP-сегментах
  • Telegram Desktop обновил свой TLS-отпечаток для исправления обнаруживаемых артефактов; мобильные клиенты могут отставать

Что делает Teleproxy (серверная сторона)

Камуфляж Fake-TLS

Весь трафик оборачивается в записи TLS 1.3 с ClientHello профиля Chrome. Подробнее см. Fake-TLS.

Собственный TLS-бэкенд (защита от активного зондирования)

DPI-системы активно зондируют подозрительные прокси. При работе с реальным TLS-бэкендом (nginx с валидным сертификатом) каждое невалидное подключение — неверный секрет, истекшая метка времени, DPI-зонд — перенаправляется на настоящий веб-сайт. Зонд видит легитимный HTTPS-сервер.

Это наиболее эффективная серверная мера. Подробнее см. Fake-TLS: Собственный TLS-бэкенд.

Динамическое изменение размера записей (DRS)

Размеры TLS-записей следуют градуированному шаблону, соответствующему реальным веб-серверам (Cloudflare, Caddy): размер MTU во время медленного старта, нарастание до максимума. К каждой записи добавляется случайный шум. Это нейтрализует статистический анализ, который определяет прокси-трафик по однородным размерам записей.

Вариативность ответа ServerHello

Размер зашифрованной части ServerHello варьируется до ±32 байт между подключениями, имитируя естественное разнообразие размеров цепочки сертификатов и сессионных тикетов реальных TLS-серверов. ServerHello и ChangeCipherSpec отправляются как отдельные TCP-сегменты, чтобы DPI не мог сопоставить полный ответ рукопожатия в одном пакете.

Рандомизация GREASE

Каждый ClientHello (для зондирования upstream-домена) использует свежие значения GREASE согласно RFC 8701, предотвращая статическое сопоставление отпечатков.

Что можно сделать (настройка сервера)

Используйте порт 443

TLS-трафик на нестандартных портах (8443, 6443) вызывает подозрения. Всегда запускайте Teleproxy на порту 443:

./teleproxy -H 443 -S <secret> -D example.com ...

Выберите популярный домен

Выберите популярный домен за CDN для SNI (например, www.google.com, cloudflare.com). Домен должен поддерживать TLS 1.3. Teleproxy зондирует домен при запуске, чтобы изучить характеристики его ServerHello и имитировать их.

Настройте собственный TLS-бэкенд

Если вы контролируете домен сервера, настройте nginx с валидным TLS-сертификатом за Teleproxy. Это делает сервер неотличимым от обычного HTTPS-сайта при активном зондировании. Подробнее см. Fake-TLS: Собственный TLS-бэкенд.

Используйте случайное дополнение (режим DD)

Для провайдеров, определяющих MTProto по размерам пакетов, включите случайное дополнение, добавив префикс dd к клиентскому секрету.

Что могут сделать пользователи (клиентская сторона)

Основной вектор обнаружения — TLS-отпечаток клиента Telegram, который невозможно исправить на стороне сервера. Пользователям в затронутых сетях следует использовать инструменты обхода DPI на стороне клиента, которые фрагментируют TCP-сегменты:

Инструмент Платформа Метод
zapret Linux, Android (root) Фрагментация TCP, фейковые пакеты
zapret2 Linux, Android (root) Обновленный форк
GoodbyeDPI Windows Фрагментация TCP, трюки с TTL
NoDPI Android (без root) Локальный VPN с фрагментацией
SpoofDPI macOS, Linux HTTP/TLS splitting прокси

Эти инструменты работают, потому что российский DPI сопоставляет шаблоны на целых TCP-сегментах. Фрагментация ClientHello на несколько сегментов нейтрализует сопоставление шаблонов.

Обновляйте Telegram

Telegram Desktop исправил несколько артефактов TLS-отпечатка, которые использовал DPI. Мобильные клиенты (Android/iOS) обычно получают эти исправления в последующих обновлениях. Всегда используйте последнюю версию.

Что невозможно исправить на серверной стороне

  • TLS-отпечаток клиента: приложение Telegram контролирует содержимое ClientHello. Серверный прокси-код не может изменить то, что отправляет клиент.
  • Блокировка IP/L3: когда DPI блокирует IP-диапазоны Telegram на сетевом уровне, помочь может только VPN или промежуточный релей.
  • Развертывание ТСПУ: обнаруживает ли DPI провайдера трафик — зависит от версии аппаратного/программного обеспечения ТСПУ, которая варьируется от оператора к оператору и от региона к региону.