Обновить
16K+
5
Александр@aurorium_browser

Специалист по парсингу данных и мультиаккаунтингу

17
Рейтинг
6
Подписчики
Отправить сообщение

В Telegram появился WEB‑прокси: как мессенджер учится притворяться обычным сайтом и чем это отличается от SOCKS5 и MTProto

В конце августа пользователи обратили внимание, что в Telegram появился новый тип подключения — Web-прокси. Одновременно разработчики выложили открытый репозиторий telegramdesktop/tproxy-server.

Что это за зверь и почему классические прокси проигрывают цензуре?

Любой прокси-сервер — это посредник между вашим устройством и конечным сервисом. Разница в том, как именно этот посредник передает ваши данные и насколько он заметен для систем DPI (глубокого анализа пакетов):

  • Прямое подключение (без посредников): Пакеты летят напрямую в подсети Telegram. Провайдер сразу видит целевые IP-адреса мессенджера или характерные сигнатуры и обрубает соединение.

  • Обычный прокси (SOCKS5): Протокол передает данные и рукопожатие открытым текстом. DPI давно умеет распознавать сигнатуры протокола, в текущих реалиях прокси работают плохо.

  • MTProto с Fake-TLS: Притворяется HTTPS-сессией к чужому, как правило популярному ресурсу (google.com). Но у прокси нет настоящего SSL-сертификата и ключей от чужого домена. Цензоры научились слать на подозрительный сервер проверочные запросы, в случае получения нехарактерного для указанного домена ответа, соединение банится.

  • WEB-прокси: Telegram заворачивает трафик в стандартные веб-протоколы (HTTPS / WebSocket) через встроенный движок браузера. Запрос идет на обычный домен с настоящим SSL-сертификатом от Let's Encrypt. Снаружи на этом адресе висит реальный сайт (даже обычный одностраничник), поэтому любая автоматическая проверка видит обычный веб-серфинг.

В чем главная техническая хитрость?

Telegram не стал изобретать собственный велосипед для маскировки TLS-отпечатков, а просто использует встроенный системный движок браузера.

Для DPI провайдера такое соединение неотличимо от ситуации, когда пользователь просто открыл вкладку в браузере и смотрит страничку.

Как устроен tproxy-server

Что мы видим в репозитории telegramdesktop/tproxy-server:

  1. Сервер слушает только веб-порты (80 и 443). Все служебные порты остаются внутри локального сетевого интерфейса.

  2. Обязательный сайт-прикрытие. Разработчики специально не добавили в репозиторий готовый шаблон сайта, чтобы исключить слепое копирование (защита от дурака). В документации так и сказано — если тысячи операторов поставят один и тот же дефолтный лендинг, по нему создадут сигнатуру. Сервер требует настроить проксирование на любой реальный сайт (блог на WordPress, документацию, портфолио или страницу на React/Node.js).

  3. Разделение потоков. Когда на порт 443 приходит проверяющий, робот или случайный посетитель — сервер возвращает обычные HTML/CSS-страницы. Но если по специальному пути приходит клиент Telegram с валидным секретным ключом, соединение проксируется на внутренний демон mtproto-proxy.

Что нужно, чтобы поднять свой WEB-прокси?

Для самостоятельного развертывания понадобится собственный VPS за пределами зон фильтрации (подойдет любой недорогой виртуальный сервер, главное, чтобы он не был заблокирован), доменное имя (любой недорогой домен в свободной зоне (.xyz, .site, .top или .com/.net), SSL-сертификат (выпускается автоматически через Let's Encrypt или ZeroSSL).

Также нужно будет оформить сайт-фасад (сделать на домене статичную веб-страницу, чтобы сайт выглядел как сайт и не вызывал подозрений) и понадобится также секретный ключ, который Генерируется стандартной утилитой openssl rand -hex 16.

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

Теги:
+5
Комментарии2

Информация

В рейтинге
530-й
Работает в
Зарегистрирован
Активность

Специализация

PR-менеджер
Старший
Английский язык
Python