![image](https://habrastorage.org/getpro/habr/post_images/2bd/c3f/160/2bdc3f160d5638e0c4dac7431a6d5bcb.jpg)
Сразу после событий с блокировками Telegram в Иране и России, в бета-версиях мессенджера начал появлятся новый тип Proxy, а если быть точным, новый протокол — MTProto Proxy.
Этот протокол был создан командой Telegram для решения проблем обхода блокировок, но так ли он хорош?
Как сейчас?
Основный тип прокси с которым сейчас работает телеграм — socks. У него есть фатальный недостаток: Логин и пароль при подключении к прокси — передаётся в открытом виде, нет, ваш телеграм таким образом «увести» нельзя, но вот заглянуть внутрь прокси и понять, что Иван Иванов пользуется телеграмом — можно.
В тех странах, которые используют DPI для анализа трафика, так и сделано. Это устройство разбирает туннель и смотрит, что же там внутри, если видит запрещенный трафик — блокируем.
Что предлагает Дуров?
MTProto Proxy — протокол семейства MTProto (на нем работает Telegram), решает сразу несколько проблем:
- Для подключения вместо логин+пароль, достаточно только пароля
- Трафик не отличается от обычного HTTPS/TLS (ну почти)
- Пароль не передается до сервера при подключении
- Трафик зашифрован
- Возможна работа через прокси только Telegram'a (другие приложения работать не будут)
- Promoted каналы
Как вы видите — набор особенностей делает данный тип прокси узкоспециальным — для Telegram, обычный трафик вы туда не сможете передавать и это, как не странно — огромный плюс.
Только Telegram
Ранее каналы (и боты) делали свои прокси и раздавали их в мир для сохранения аудитории в случае блокировки. Их прокси попадали в глобальные списки прокси и через них осуществлялись рассылки спама и другие нехорошие вещи. С новым типом прокси — вы не сможете нарушить закон, максимум что произойдет — telegram забанит ваш IP-адрес.
Пример нарушения закона в случае с socks: Через ваш прокси пытались взломать банк/гос.ведомство, ваш хостер получит официальную жалобу и в самом лучшем случае просто вас заблокирует, в худшем — велкам ту суд.
Promoted-каналы
![image](https://habrastorage.org/getpro/habr/post_images/7d1/13e/e2f/7d113ee2f074706fe7c21464baf97419.jpg)
Promoted-каналы — это такой канал, на который вы автоматически будете подписаны при подключении к прокси, он будет закреплен наверху списка контактов/чатов и его нельзя удалить пока вы не отключитесь от данного прокси.
Грубо говоря, telegram позволяет монетизировать proxy, если раньше вы могли взять прокси от канала X (тк он работает быстрее), но вообще его не читать а пойти читать Y, (а при этом, канал X тратит деньги на поддержку прокси в пустоту), то теперь за пользования прокси вы будете платить подписью на канал.
Таким образом, можно ожидать взрывной рост таких прокси, если ранее создание прокси было больше порывом доброй воли или благотворительностью, то сейчас — чем больше пользователей на вашем прокси = тем больше подписчиков у канала --> рекламу можно продать дороже.
Трафик зашифрован
Запустив Wireshark я пошел смотреть, как же выглядит трафик при работе через прокси. А выглядит он как обычное TCP/SSL соединение (без некоторых пакетов/заголовков которые относятся к https). Другими словами, трафик может маскироватся под такие решения как Cisco Anyconnect и аналогичные решения которые используют TCP+SSL.
Внутри тоннеля — «каша» из шифрованного трафика, трафик зашифрован, как можно догадатся, тем самым паролем/секретной фразой которую вы вводите при подключении. Но не только ей, конечно же, тут используются все возможности SSL/TLS.
Когда будет в продакшене?
На данный момент, MTProto Proxy доступен в стабильной версии Telegram for OS X, Telegram or Android, и в бета-версиях Telegram Desktop, iOS Telegram X.
Похоже мы ждем релиза в «продакшен» данного прокси в клиентах Desktop и обычная iOS версия (не Х) сразу после этого, мы должны увидеть новый пост от команды с рассказом о том, почему это хорошо и как жить дальше.
А потестировать где?
На просторах чатов в телеграмм был найден полу-официальный прокси который прекрасно работает с новым протоколом и (похоже) запущен одним из разработчиков, собственно вот он:
t.me/proxy?server=proxy.digitalresistance.dog&port=443&secret=d41d8cd98f00b204e9800998ecf8427e
Но и это еще не все, энтузиасты на Github методом анализа исходников пытаются сделать свои прокси сервера (пока официального еще нет), вот (PHP) пару (C#) проектов (Rust).
PS А еще в самой свежей версии библиотеки для VOIP звонков которая используется в telegram найдена поддержка режима конференций, похоже скоро будет сразу два больших анонса.
UPD: MTProto proxy — в данный момент часть инфраструктуры Telegram и когда телеграм «бегает» от блокировок — он именно множит и переносит копии своего MTProto Proxy между хостерами, сами же обрабатывающие сервера никуда не переезжают. Таким образом, в скором времени, Telegram позволит часть своей инфраструктуры развернуть у себя. (Протокол «родных» прокси может отличатся от того, что телеграм в данный момент реализует у себя в клиентах под названием MTPROTO)
UPD: Аналогичный пост от Анны (Vee Security) по поводу видов прокси в Telegram и про MTProto Proxy (включая разбор конкретного вида шифрования)
UPD: MTProto Proxy от создателей TgVPN mtproto.tgproxy.cloud/mtproxy.html просят протестировать
UPD: Самая стабильная версия сервера MTProto (на мой взгляд) — на Rust, доступна на Github github.com/dotcypress/mtproxy
Самый простой вариант для запуска «своего» прокси:
sudo docker run --name 'mtproto_proxy' --restart unless-stopped -p 1984:1984 -dti dotcypress/mtproxy -s 'proxy secret'
Вместо proxy secret — стоит указать свою фразу на основе которой будет сгенерирован ключ
Получить ключ:
docker logs mtproto_proxy
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Поможет ли новый тип прокси с монетизацией обойти блокировки?
87.76% Да817
12.24% Нет114
Проголосовал 931 пользователь. Воздержались 273 пользователя.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Ждёте ли вы аудио конференции?
57.29% Да! Это позволит отказатся от дорогих комерческих/платных решений538
13.53% Неплохо, но есть же тот же скайп?127
29.18% Мне не интересны аудио конференции274
Проголосовали 939 пользователей. Воздержались 189 пользователей.