|
|

Появились первые подробности реализации нового транспорта WEB Proxy в Telegram Desktop, о разработке которого Код.ру уже рассказывал. Как пишет SecurityLab, команда мессенджера собрала рабочий прототип и опубликовала серверную часть — tproxy-server, — у которой пока статус proof-of-concept, то есть экспериментального подтверждения концепции.
Как WEB Proxy передаёт трафик
-
Чтобы передавать через одно веб-соединение сразу несколько логических потоков Telegram, разработчики добавили компактный протокол мультиплексирования со своим набором служебных кадров: OPEN открывает соединение, DATA переносит полезные данные, WINDOW сообщает, какой объём информации ещё готов принять получатель (это классический механизм управления окном для защиты от перегрузки), CLOSE завершает поток; PING и PONG нужны для проверки, что канал жив, а HELLO и WELCOME — для установки сессии. У каждого логического потока — своё состояние, и все они уживаются в одном канале.
-
Для самой доставки данных предусмотрено четыре режима, между которыми выбирает сервер, а не пользователь.
-
Первый — последовательные HTTPS-запросы. Второй — тот же HTTPS, но каждому логическому соединению выделен свой канал. Третий и четвёртый — на базе WebSocket: либо все потоки идут через одно соединение, либо каждому — своё.
-
Всё это использует стандартный HTTPS-порт 443, то есть внешне не отличается от обычного веб-трафика. На сервере общий поток принимает сам tproxy-server. Он разбирает канал на отдельные соединения и передаёт каждое локально запущенному официальному MTProxy.
При этом содержимое кадров DATA для tproxy-server остаётся непрозрачным набором байтов — расшифровать трафик MTProxy он не может, а клиент не имеет возможности использовать ретранслятор для подключения к произвольному стороннему адресу. Иными словами, оператор WEB Proxy технически не видит переписку и не превращается в открытый прокси.
ИСТОЧНИК
|