Почему нельзя использовать неофициальные клиенты Telegram: разбор MITM-атаки
Атака "Человек посередине" (Man-in-the-Middle, MITM) - это вид кибератаки, при которой злоумышленник тайно перехватывает (и зачастую изменяет) канал связи между двумя сторонами. Жертвы при этом уверены, что общаются напрямую друг с другом.
В классическом сценарии пользователь отправляет данные на сервер, но они сначала попадают на устройство злоумышленника. Злоумышленник читает информацию, может её модифицировать, и только потом отправляет конечному серверу. Чтобы это работало с зашифрованными протоколами (такими как HTTPS или MTProto в Telegram), атакующему необходимо подменить ключи шифрования, чтобы устройство жертвы доверяло "промежуточному" серверу как оригинальному.

Несколько реальных MITM‑атак:
1. Wi‑Fi Honeypot
Фальшивая точка доступа с именем вроде “Free Airport Wi‑Fi”.
Пользователь подключается - весь трафик идёт через злоумышленника.
2. ARP Spoofing в офисной сети
Атакующий убеждает жертву, что он - это шлюз.
Жертва отправляет пакеты злоумышленнику - он пересылает их дальше.
3. Подмена DNS
Жертва думает, что заходит на tbank.ru , а попадает на поддельный сайт.
4. Корпоративный MITM‑прокси
Компании устанавливают свой корневой сертификат CA и расшифровывают HTTPS для мониторинга.
Анализ MITM-атаки в клиенте Telega
Полный технический анализ MITM в клиенте Telega
Авторы статьи выяснили, что создатели этого приложения намеренно внедрили в него функционал для полного перехвата и чтения переписки своих пользователей.
Вот как технически реализована эта атака внутри клиента:
1. Подмена IP-адресов серверов (DC Proxy)
Оригинальный Telegram имеет жестко прописанные адреса своих дата-центров (DC). Клиент Telega при запуске обращается к своему собственному API (https://api.telega.info/v1/dc-proxy) и получает список подменных IP-адресов. В результате приложение направляет весь трафик не на настоящие серверы Telegram, а на серверы, контролируемые создателями Telega (зарегистрированные на их собственную автономную систему).
2. Внедрение собственного RSA-ключа шифрования
Просто перенаправить трафик недостаточно - оригинальный Telegram использует публичные RSA-ключи, вшитые в приложение, для первичного обмена ключами сессии. Сервер должен иметь соответствующий приватный ключ, иначе соединение не установится.
Реверс-инжиниринг библиотеки libtmessages.49.so в клиенте Telega показал, что разработчики добавили свой собственный (дополнительный) публичный RSA-ключ, которого нет в официальном клиенте. Благодаря этому, когда клиент Telega связывается с подставным сервером, этот сервер может расшифровать первичный запрос с помощью своего приватного ключа. Это классический пример MITM - сервер злоумышленников (Telega) терминирует на себе шифрование, читает данные в открытом виде, а затем уже от своего имени отправляет их на настоящие серверы Telegram.
3. Отключение Perfect Forward Secrecy (PFS)
PFS - это криптографическое свойство, которое гарантирует, что даже если долгосрочный ключ будет скомпрометирован в будущем, прошлые сессии расшифровать не удастся (так как для каждой сессии генерируются уникальные ключи). В коде Telega передача флага usePfs была модифицирована таким образом, что эта дополнительная защита отключена по умолчанию.
4. Принудительное отключение секретных чатов (End-to-End)
Секретные чаты в Telegram используют сквозное (End-to-End) шифрование, при котором ключи генерируются только на устройствах собеседников и не передаются на сервер. MITM-атака на такие чаты практически невозможна без ведома пользователей.
Чтобы обойти эту "проблему", клиент Telega через удаленные настройки (Remote Config Firebase) получает флаг enable_sc = false. Из-за этого приложение полностью скрывает кнопку создания секретного чата, а все входящие запросы на секретный чат тихо игнорируются, лишая пользователей возможности безопасного общения.
5. Встроенная цензура (Модерация)
Помимо перехвата трафика, авторы статьи обнаружили систему "черных списков", работающую независимо от модерации самого Telegram. Клиент по команде со своих серверов может блокировать пользователям доступ к определенным каналам, ботам и даже личным сообщениям с конкретными людьми.
Приложение Telega - это троянский конь. Разработчики клиента целенаправленно разрушили криптографическую защиту Telegram (подменили серверы связи, внедрили свой RSA-ключ и отключили E2E-шифрование), чтобы пропускать весь трафик через себя и иметь возможность читать, анализировать или модифицировать переписку пользователей. Это подчеркивает главное правило кибербезопасности: использование неофициальных клиентов мессенджеров полностью компрометирует безопасность вашей переписки.
Почему классический MITM невозможен в официальном Telegram (MTProto + Fake TLS)?
После прочтения разбора "Телеги" может возникнуть вопрос: а может ли провайдер, товарищ майор или хакер в публичном Wi-Fi перехватить трафик обычного Telegram, например, вклинившись в соединение через прокси? Короткий ответ - нет. И вот почему сеть Telegram (на базе протокола MTProto и обертки Fake TLS) криптографически защищена от атак «Человек посередине» на уровне сети:
- Абсолютное доверие только вшитым ключам: В официальном приложении Telegram "намертво" прописаны публичные RSA-ключи серверов (те самые, которые создатели Telega подменили в своем коде). Если кто-то попытается вклиниться в сеть и подсунуть свой сертификат или ключ, официальный клиент просто откажется устанавливать соединение.
- Fake TLS - это только маскировка: Технология Fake TLS (используемая в MTProxy) создана для обхода систем DPI (глубокого анализа пакетов). Она "заворачивает" пакеты Telegram в оболочку, которая для провайдера выглядит как обычное защищенное соединение с условным google.com. Если оборудование попытается просканировать этот трафик методом MITM, прокси-сервер сбросит соединение или прикинется обычным веб-сайтом.
- Двойное шифрование: Даже если злоумышленник узнает «секрет» вашего MTProxy и снимет обертку Fake TLS, внутри он обнаружит монолитный зашифрованный MTProto-трафик. Ключи для его расшифровки генерируются непосредственно на вашем устройстве (по протоколу Диффи-Хеллмана) и никогда не передаются по сети в открытом виде.
Главный вывод: Архитектура Telegram выстроена так, что перехватить трафик "по пути" от вашего смартфона до серверов - математически нерешаемая задача на сегодняшний день. Именно поэтому единственный способ читать чужую переписку - это заставить жертву добровольно установить зараженный клиент (как Telega), который сольет ключи прямо с устройства.