Контакты
Подписка
МЕНЮ
Контакты
Подписка

В Telegram встроили средства обхода блокировок нового типа

13/08/19

Маскировка Telegram

Telegram-1В мессенджере Telegram появилась возможность маскировки трафика под протокол HTTPS. Информация об этом появилась на ресурсе GitHub, пишет CNews. Для маскировки под HTTPS разработчики добавили в код клиента префикс секрета "ee". Кроме того, помимо метода кодирования base16 была реализована возможность шифровать секрет в адресе прокси-сервера с помощью base64.

В протоколе между клиентом Telegram и прокси-сервером был добавлен дополнительный слой инкапсуляции поверх протокола TCP. Благодаря этому данные оборачиваются в записи TLS. Передача данных в HTTPS происходит поверх этого криптографического протокола. Также была добавлена эмуляция TLS-рукопожатия в начале работы. Telegram уже запустил прокси-сервера на Python и Erlang, где реализована маскировка.

Как было до этого

В мессенджере уже есть прокси, который работает по собственному протоколу Telegram под названием MTProto, его начали применять в 2018 г. Изначально он позволял обнаружить прокси-серверы, результатом чего стали блокировки мессенджера со стороны крупных провайдеров.

Идентификации MTProto мешает отсутствие служебных заголовков, но его выдает длина пакетов. Когда клиент подключается к прокси-серверу, они обмениваются пакетами определенной длины. А в ходе работы мессенджера происходит передача пакетов одинаковой длины. Все это и дает возможность провайдерам засечь трафик Telegram.

Впоследствии протокол был модифицирован разработчиками таким образом, что блокировки стало можно избежать. Его замаскировали путем добавления случайных байтов в каждый пакет. В секрет пришлось добавить префикс dd, чтобы избежать проблем с совместимостью. Но данная модификация станет неэффективной после вступления в силу закона об автономном рунете — уже сейчас MTProto позволяет заблокировать Telegram в Иране и Китая путем атак повторного воспроизведения.

В ответ разработчики добавили частичную защиту от атак повторного воспроизведения в альтернативных вариантах прокси-серверов на Python, Erlang и Go. С этой целью был введен механизм запоминания сервером данных, передающихся в самом начале подключения. Это помогает избежать повторного соединения с такими же данными. Метод проблематично применять для крупных серверов, так как он требует большого расхода оперативной памяти.

Темы:TelegramТехникапоследние разработкиБлокировка

Еще темы...