Прокси для telegram что это значит — Что такое MTPROTO-прокси и как вообще Telegram защищается от блокировок

Привет!

Я расскажу о том, как Telegram защищается от правительственных блокировок, а также о методах обхода, которые предоставлены пользователям, и как они работают.

Начнём с простого. Telegram-клиенты общаются с Telegram-серверами по собственному протоколу MTProto поверх TCP. Для соединения используются несколько адресов, которые не изменялись годами и продолжают являться основными точками подключения. Возьмём для примера один из адресов европейского региона: 149.154.167.40.

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

Роскомнадзор, мать его

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

Как доставить новые адреса серверов клиентам?

Это первый способ, которым адреса новых серверов доставляются на устройства пользователей. Подходит он только для мобильных клиентов на iOS и Android, потому что использует Apple Push Notification Service и Google Cloud Messaging соответственно. Команда Telegram отправляет вам на устройства push-уведомления, внутри которых содержится список новых адресов. Приложение Telegram считывает их и начинает использовать эти адреса для связи.

  1. Помешать затее можно только заблокировав APNS и GCM полностью, что лишит вас всех уведомлений от всех приложений, даже если вы никогда не пользовались Telegram. На это власти не пойдут (?).
  2. В теории этот способ позволяет отправлять разным группам пользователей разные адреса, что может отсрочить блокировку новых серверов и помочь команде Telegram вычислить шпионов. На практике эта хитрость, насколько я знаю, не используется.
  1. Подходит только для мобильных устройств, так как на десктопных операционных системах нет единого механизма доставки уведомлений.
  2. Может работать нестабильно. Если уведомление по каким-то причинам до вас не дошло, приложение Telegram не узнает о новых адресах. Особенно актуально для iOS, где приложения сильно ограничены в фоновой обработке уведомлений. Именно поэтому на iOS такие push видны пользователю и требуют нажатия для активации.

Роскомнадзор выслеживает новые адреса, приходящие в DC_UPDATE и блокирует их.

Этот способ доставки адресов не так широко известен, а многие вовсе не понимают, как он работает.

Плюсы domain fronting:

obfuscated2: Защита от более продвинутого DPI

Telegram ещё как минимум в начале 2017 года реализовал защиту от подобных «лишних глаз», заглядывающих в пакеты.

Клиент придумывает случайный 32-байтовый ключ и случайный 16-байтовый Initialization Vector, которыми шифрует каждый пакет с помощью AES CTR, а чтобы сервер узнал, как это расшифровать… ключ и IV добавляются в начало пакета перед зашифрованным содержимым.

После обфускации все пакеты выглядят как случайный мусор, поэтому для определения, Telegram-трафик это или нет, провайдеру придётся расшифровывать каждый непонятный пакет по методике obfuscated2, прежде чем проводить дальнейшие проверки. Такие действия требуют неоправданное количество вычислительных мощностей, которых у провайдеров попросту нет.

Как уже было сказано выше, команда Telegram прикладывает много усилий, чтобы обойти государственные блокировки, но это не всегда работает. Временные сервера быстро блокируются Роскомнадзором и мы снова теряем доступ к мессенджеру.

Дальнейшая борьба с блокировками отдаётся на откуп пользователям. Telegram предоставляет целых два способа подключения через прокси в своих приложениях. Оба способа не предполагают раскрытия ваших переписок и прочих данных держателям прокси-серверов, так как трафик Telegram изначально зашифрован и передаётся через промежуточные звенья в нечитаемом виде.

Очень банальный, но действенный способ. Если сможете осилить технический английский, почитайте вот этот RFC-документ.

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

  1. Очень быстро и очень просто.
  2. Всем известный протокол, серверные реализации которого существуют под все платформы и ОС.
  1. Протокол очень легко детектируется с помощью DPI, государство может легко в принципе запретить использование SOCKS5 и заблокировать его.
  2. Логин и пароль для авторизации передаются в открытом виде. Никогда не используйте для авторизации в SOCKS5 пароли, которые используете где-либо ещё.
  3. Если ваше Telegram-приложение получало с помощью ранее описанных методов IP-адреса временных серверов, то при включении SOCKS5-прокси, приложение будет пытаться подключаться именно туда. Так как владельцы прокси, специализирующихся на Telegram, обычно блокируют соединения со всеми адресами, кроме основных подсетей Telegram, у пользователя могут иногда возникнуть проблемы с подключением.

Наконец-то мы подошли к тому, чего вы так долго ждали.

Официальной документации по MTPROTO-прокси нет до сих пор, хотя в клиентах функциональность реализована давно. Некоторые умельцы написали свои реализации серверов, изучив исходный код клиентов. Вот, например, одна из них (C#).

Во-первых, клиент общается с MTPROTO-прокси только с обфускацией obfuscated2.

Secret нигде не передаётся в процессе связи. Его использует клиент для шифрования пакета и MTPROTO-прокси-сервер для расшифрования.

Таким образом получается, что сторонний человек никак не может деобфусцировать и классифицировать трафик между клиентом и MTPROTO-прокси-сервером.

  1. Трафик между клиентом и промежуточным звеном выглядит как случайный мусор, который при всём желании и наличии вычислительных мощностей не может быть деобфусцирован провайдерами.
  2. Это реверс-прокси, поэтому клиентам не нужно реализовывать никаких новых протоколов. Только obfuscated2 и поле для ввода secret. Клиент присоединяется к MTPROTO-прокси как к обычному Telegram-серверу.
  1. Каждый пакет должен быть дешифрован и зашифрован снова на стороне прокси-сервера. В Vee Security мы используем самописную реализацию SOCKS5-сервера, которая позволяет нам держать миллионы одновременных подключений. Ещё не проводила оценку, но уверена, что в самой идеальной реализации MTPROTO-прокси-сервера результаты будут в разы хуже. Этот минус убивает очень многое. Не ждите такого большого количества стабильных публичных прокси-серверов, как в случае с SOCKS5.
  2. От команды Telegram до сих пор нет никакой официальной документации, примеров реализации и прочих объяснений происходящему. Возможно, ещё не пришло время. Ждём.
  3. Невозможность проксировать голосовой трафик в звонках. Голосовой трафик при отключенном P2P передаётся через relay-сервера, которые не работают по протоколу MTProto, поэтому узкоспециализированный MTPROTO-прокси не подходит для передачи таких данных.
Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.