Прокси Telegram узнали по первому рукопожатию. Энтузиасты уже сломали предсказуемый отпечаток

Сторонний форк Telegram Desktop для Windows меняет ClientHello при каждом подключении и усложняет распознавание MTProto-трафика по единому шаблону.


7jv3p2hsjnyncouavcpa08qgsr16m3l4.jpg

Пока разработчики официального Telegram Desktop не приняли решение по проблеме с MTProto-прокси, сообщество уже выпустило экспериментальную сборку клиента. Форк Telegram Desktop 6.8.4-dpifix получил правку , которая меняет поведение TLS-соединения при работе через прокси и делает сетевой отпечаток менее предсказуемым.

Речь идёт не об официальном релизе Telegram, а о сторонней портативной сборке для Windows. Форк опубликован в репозитории Qz3rK/tdesktop на GitHub и помечен как предварительный релиз. Без рабочего MTProto-прокси такая сборка не даёт самостоятельного доступа к Telegram и не заменяет прокси-сервер.

Правка стала реакцией на массовые жалобы конца мая, когда в России пользователи начали сообщать о проблемах с MTProto-прокси Telegram и частью VPN-сервисов. Фильтрующие системы научились распознавать характерный сетевой рисунок таких подключений. Разработчики форка попытались убрать именно предсказуемую часть соединения.

Проблема, по словам автора изменений, была в первом пакете TLS-соединения. При подключении через прокси Telegram Desktop отправлял ClientHello с почти неизменной структурой. Такой пакет работает как цифровой отпечаток. Если система фильтрации один раз описала характерные признаки ClientHello, дальше похожие соединения можно находить по шаблону.

В форке изменили файл mtproto_tls_socket.cpp, который отвечает за установку TLS-соединения для MTProto-прокси. Теперь клиент не отправляет один и тот же отпечаток при каждом подключении, а собирает ClientHello с элементами случайности. Сборка выбирает вариант, похожий на Chrome или Firefox, перемешивает наборы шифров, меняет расширения TLS и добавляет небольшие случайные задержки при отправке частей пакета.

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

Ограничения у решения серьёзные. Сборка остаётся форком сообщества, а не частью официального Telegram Desktop. На момент публикации соответствующие изменения не попали в основной репозиторий клиента. Кроме того, готовая портативная версия рассчитана только на Windows, поэтому пользователям других платформ придётся ждать официального решения или отдельных сборок от энтузиастов.