💡 Полезные Советы
Почему нельзя использовать неофициальные клиенты 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), который сольет ключи прямо с устройства.
Что такое MTProto FakeTLS и как настроить свой прокси для Telegram?
В этой статье подробно разберем, как работает технология MTProto FakeTLS, почему она так эффективна для Telegram, и пошагово настроим собственный неуязвимый прокси-сервер.
Что такое MTProto?
MTProto - это специализированный криптографический протокол, разработанный командой Telegram для безопасной передачи данных. Благодаря ему все ваши переписки надежно зашифрованы (как в прочном сейфе), и никто не может прочитать их содержимое. Однако обычный MTProto-прокси легко обнаруживается провайдерами: они не могут прочитать трафик, но видят его специфическую структуру и просто блокируют соединение.
Что такое FakeTLS?
Чтобы обмануть DPI, была придумана надстройка FakeTLS. Её задача - маскировка.
FakeTLS берет зашифрованный трафик Telegram и оборачивает его так, чтобы внешне он выглядел как абсолютно стандартное, безопасное HTTPS-соединение с популярным сайтом (например, с серверами Google, Microsoft или Apple).
Представьте, что вы отправляете секретный документ (ваше сообщение). Обычный прокси - это прозрачный конверт: почтальон (провайдер) не может прочесть текст, но видит, что письмо адресовано в Telegram, и выбрасывает его.
С FakeTLS вы кладете документ в стандартную коробку из-под популярного интернет-магазина. Почтальон видит обычную посылку, ничего не подозревает и свободно пропускает её.
Ограничения: почему не работают звонки?
Важно понимать, что MTProto идеально подходит для передачи текста, фото, видео и кружочков (используется надежный протокол TCP).
Однако голосовые и видеозвонки в Telegram требуют максимальной скорости без задержек, поэтому для них используется протокол UDP. MTProto-прокси не умеет маршрутизировать UDP-трафик. При попытке позвонить приложение попытается установить прямое соединение в обход прокси, и провайдер его заблокирует. (Для звонков лучше использовать полноценные VPN-решения, такие как Outline или WireGuard).

Пошаговая настройка сервера VPS/VDS
Для настройки нам понадобится виртуальный сервер (VPS/VDS) с установленной ОС Linux (рекомендуется Ubuntu) и доступом по SSH. Мы будем использовать современный и легковесный сервер mtg версии 2, работающий через Docker.
1. Подготовка сервера и установка Docker
Подключитесь к вашему серверу по SSH. Для маскировки под HTTPS-трафик нам обязательно нужен свободный порт 443. Проверим, не занят ли он:
ss -tulnp | grep :443Если вывод пустой - порт свободен.
Установим Docker одной командой (если он еще не установлен):
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh2. Генерация криптографического ключа (FakeTLS)
Нам нужно создать специальный секрет, который заставит наш прокси притворяться сервером Google (dl.google.com). Выполните команду:
docker run --rm nineseconds/mtg:2 generate-secret --hex dl.google.comВ терминале появится длинная строка, начинающаяся с букв ee (например: ee123456789...dl.google.com). Скопируйте и сохраните её! Это ваш секретный ключ.
3. Создание файла конфигурации
Современная версия mtg требует отдельного файла настроек. Создадим его. Скопируйте приведенный ниже блок целиком, заменив ВАШ_СЕКРЕТ_ИЗ_ШАГА_2 на скопированный ранее длинный ключ (кавычки вокруг ключа нужно оставить!):
cat <<EOF > config.toml
secret = "ВАШ_СЕКРЕТ_ИЗ_ШАГА_2"
bind-to = "0.0.0.0:3128"
EOFНажмите Enter. Файл config.toml успешно создан в вашей текущей директории.
4. Запуск прокси-сервера
Теперь запустим сам сервер в фоновом режиме. Команда пробросит нужные порты и применит наш файл настроек:
docker run -d --name mtproto-proxy \
-p 443:3128 \
-v $(pwd)/config.toml:/config.toml \
--restart unless-stopped \
nineseconds/mtg:2 run /config.tomlЧтобы убедиться, что всё запустилось без ошибок, проверьте логи:
docker logs mtproto-proxyЕсли вы не видите сообщений об ошибках, значит сервер успешно работает!
5. Настройка Firewall (UFW)
Обязательно нужно разрешить входящий трафик на наш порт маскировки.
Внимание: Если вы используете UFW, сначала обязательно разрешите порт SSH (22), чтобы не потерять доступ к серверу!
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw enable(Нажмите y, если система предупредит о возможном разрыве SSH-соединения).
Подключение в Telegram
Ваш сервер готов! Осталось только сформировать ссылку для себя и своих друзей/клиентов.
Шаблон ссылки выглядит так:tg://proxy?server=IP_АДРЕС_СЕРВЕРА&port=443&secret=ВАШ_СЕКРЕТ
- Замените
IP_АДРЕС_СЕРВЕРАна реальный IP вашего сервера. - Вместо
ВАШ_СЕКРЕТвставьте ту самую длинную строку, начинающуюся наee. - Отправьте эту ссылку себе в "Избранное" в Telegram.
- Нажмите на нее и выберите "Подключить прокси".
В верхней части экрана Telegram появится значок щита с галочкой. Поздравляем, теперь ваш трафик надежно замаскирован, а блокировки остались в прошлом!
P.S: Не забудьте обезопасить сервер и другими полезными вещами, например fail2ban, доступ по ssh ключам и т.д.