Обфусцированный транспорт MTProto (obfuscated2)
До FakeTLS прокси прятали трафик проще: шифровали заголовки так, чтобы первые байты выглядели случайными. Этот транспорт — obfuscated2 — до сих пор лежит в основе всех режимов, включая FakeTLS.
Зачем понадобилась обфускация
Обычные транспорты MTProto (abridged, intermediate) начинаются с узнаваемых байт: 0xef или четырёх 0xee. Фильтру достаточно посмотреть на первый пакет. В 2018 году Telegram добавил транспорт, в котором первые 64 байта — случайные на вид, а всё дальнейшее шифруется потоковым шифром. Без знания секрета отличить такое соединение от шума невозможно.
Как устроен заголовок
- 64 случайных байта. Клиент генерирует их так, чтобы первые четыре не совпадали с известными сигнатурами и байты 4–8 не были нулями.
- Ключ и вектор. Из байтов 8–56 заголовка и секрета через SHA-256 выводится ключ AES-CTR для каждого направления.
- Маркер протокола. Байты 56–60 шифруются тем же ключом и содержат код транспорта (например, 0xdddddddd для padded intermediate). Сервер расшифровывает их и понимает, что перед ним клиент со знанием секрета.
- Дата-центр. Байты 60–62 — номер DC, к которому подключить клиента.
Что шифруется дальше
Весь поток после заголовка идёт через AES-256 в режиме CTR ключами из шага 2. Внутри — обычный транспорт MTProto с уже зашифрованными сообщениями. Прокси снимает свой слой CTR и пересылает пакеты в DC. Так же устроено соединение приложения с дата-центрами напрямую при включённой обфускации — прокси не изобрёл новый протокол, а использовал существующий.
Почему этого стало мало
Случайные байты — тоже сигнатура: настоящий трафик так не выглядит. Оборудование научилось помечать соединения без узнаваемого протокола и проверять их по длинам пакетов. Ответом стали случайное дополнение и затем FakeTLS, который прячет тот же obfuscated2 внутри TLS-записей после настоящего рукопожатия.
Где это видно пользователю
Нигде: выбор транспорта происходит автоматически по префиксу секрета. Знать устройство заголовка полезно лишь для понимания, почему обычный секрет без префикса в 2026 году блокируется быстро, а ee — нет.