Устойчивость к 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:
Выберите популярный домен¶
Выберите популярный домен за 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 провайдера трафик — зависит от версии аппаратного/программного обеспечения ТСПУ, которая варьируется от оператора к оператору и от региона к региону.