Прокси для 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 считывает их и начинает использовать эти адреса для связи.
- Помешать затее можно только заблокировав APNS и GCM полностью, что лишит вас всех уведомлений от всех приложений, даже если вы никогда не пользовались Telegram. На это власти не пойдут (?).
- В теории этот способ позволяет отправлять разным группам пользователей разные адреса, что может отсрочить блокировку новых серверов и помочь команде Telegram вычислить шпионов. На практике эта хитрость, насколько я знаю, не используется.
- Подходит только для мобильных устройств, так как на десктопных операционных системах нет единого механизма доставки уведомлений.
- Может работать нестабильно. Если уведомление по каким-то причинам до вас не дошло, приложение 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-документ.
Простая лазейка будет работать до тех пор, пока сам прокси-сервер не будет отслежен и заблокирован.
- Очень быстро и очень просто.
- Всем известный протокол, серверные реализации которого существуют под все платформы и ОС.
- Протокол очень легко детектируется с помощью DPI, государство может легко в принципе запретить использование SOCKS5 и заблокировать его.
- Логин и пароль для авторизации передаются в открытом виде. Никогда не используйте для авторизации в SOCKS5 пароли, которые используете где-либо ещё.
- Если ваше Telegram-приложение получало с помощью ранее описанных методов IP-адреса временных серверов, то при включении SOCKS5-прокси, приложение будет пытаться подключаться именно туда. Так как владельцы прокси, специализирующихся на Telegram, обычно блокируют соединения со всеми адресами, кроме основных подсетей Telegram, у пользователя могут иногда возникнуть проблемы с подключением.
Наконец-то мы подошли к тому, чего вы так долго ждали.
Официальной документации по MTPROTO-прокси нет до сих пор, хотя в клиентах функциональность реализована давно. Некоторые умельцы написали свои реализации серверов, изучив исходный код клиентов. Вот, например, одна из них (C#).
Во-первых, клиент общается с MTPROTO-прокси только с обфускацией obfuscated2.
Secret нигде не передаётся в процессе связи. Его использует клиент для шифрования пакета и MTPROTO-прокси-сервер для расшифрования.
Таким образом получается, что сторонний человек никак не может деобфусцировать и классифицировать трафик между клиентом и MTPROTO-прокси-сервером.
- Трафик между клиентом и промежуточным звеном выглядит как случайный мусор, который при всём желании и наличии вычислительных мощностей не может быть деобфусцирован провайдерами.
- Это реверс-прокси, поэтому клиентам не нужно реализовывать никаких новых протоколов. Только obfuscated2 и поле для ввода secret. Клиент присоединяется к MTPROTO-прокси как к обычному Telegram-серверу.
- Каждый пакет должен быть дешифрован и зашифрован снова на стороне прокси-сервера. В Vee Security мы используем самописную реализацию SOCKS5-сервера, которая позволяет нам держать миллионы одновременных подключений. Ещё не проводила оценку, но уверена, что в самой идеальной реализации MTPROTO-прокси-сервера результаты будут в разы хуже. Этот минус убивает очень многое. Не ждите такого большого количества стабильных публичных прокси-серверов, как в случае с SOCKS5.
- От команды Telegram до сих пор нет никакой официальной документации, примеров реализации и прочих объяснений происходящему. Возможно, ещё не пришло время. Ждём.
- Невозможность проксировать голосовой трафик в звонках. Голосовой трафик при отключенном P2P передаётся через relay-сервера, которые не работают по протоколу MTProto, поэтому узкоспециализированный MTPROTO-прокси не подходит для передачи таких данных.
