Прокси Telegram узнали по первому рукопожатию. Энтузиасты уже сломали предсказуемый отпечаток
NewsMakerСторонний форк Telegram Desktop для Windows меняет ClientHello при каждом подключении и усложняет распознавание MTProto-трафика по единому шаблону.
Пока разработчики официального 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, поэтому пользователям других платформ придётся ждать официального решения или отдельных сборок от энтузиастов.
Пока разработчики официального 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, поэтому пользователям других платформ придётся ждать официального решения или отдельных сборок от энтузиастов.