DPI
Deep Packet Inspection — глубокий анализ пакетов
Способ фильтрации, при котором оборудование разбирает не только адреса, но и заголовки и форму потока данных.
Что это
Обычный сетевой фильтр смотрит на заголовки уровня IP: откуда пакет и куда. DPI заглядывает глубже — в заголовки протоколов и в то, как устроен сам поток: размеры пакетов, их порядок, паузы между ними, первые байты соединения. Такой анализ используют не только для цензуры, но и для управления трафиком, защиты сетей и учёта.
Как узнают протокол
Самый простой способ — сигнатуры: оборудование сравнивает поток с базой известных шаблонов, «отпечатков» протоколов. Второй — анализ потока целиком: устройство накапливает данные о соединении и оценивает его в целом, а не по одному пакету.
Шифрование содержимого от этого не спасает: сигнатура может быть в форме соединения. У обычного MTProto-соединения узнаваемое начало и характерный ритм пакетов, поэтому DPI способно отличить его от остального трафика, не расшифровывая ни одного сообщения.
Чем отвечают прокси
Каждый режим MTProto-прокси отвечает на очередной способ распознавания:
obfuscated2превращает поток в случайные байты, чтобы начало соединения не содержало открытых признаков протокола;ddдобавляет к пакетам случайное дополнение, чтобы размеры не выдавали прокси;ee(FakeTLS) начинает соединение как обычный TLS-обмен с настоящим сайтом, и фильтр видит заход на этот сайт.
Что видит DPI в соединении
Для обычного HTTPS-сайта и для MTProto-прокси оборудование наблюдает один и тот же набор признаков, и различия складываются из мелочей:
- адрес и порт — HTTPS-сайт живёт на хорошо известном адресе, а прокси на арендованном сервере;
- первые байты — у сайта это ClientHello с именем сайта, у обычного прокси — 64 случайных байта;
- размеры и ритм пакетов — у браузера они зависят от страницы, у прокси без маскировки — от протокола;
- ответ на проверку — настоящий сайт отвечает как сайт, неправильно настроенный прокси молчит или отвечает иначе.
Пределы
DPI не стоит на месте. По документации telemt, распознать FakeTLS можно по SNI, ALPN и энтропии, а устойчивость маскировки зависит от версии клиента, выбранного домена и сетевого пути. Поэтому «рабочий» — понятие временное: прокси, который неделю держался, может перестать работать после обновления правил.