Что такое FakeTLS
FakeTLS — режим MTProto-прокси, в котором трафик маскируется под обычное HTTPS-соединение с сайтом. Для системы фильтрации такое подключение неотличимо от посещения любого защищённого ресурса.
Проблема: DPI видит протокол
Системы глубокой инспекции пакетов (DPI) блокируют не только по IP-адресу, но и по сигнатуре протокола. Ранние MTProto-прокси имели узнаваемое «рукопожатие», и DPI научился их вычислять. FakeTLS решает именно эту проблему.
Как работает FakeTLS
При подключении прокси имитирует настоящее TLS-рукопожатие: отправляет корректный ClientHello с полем SNI (именем сайта, под который маскируется), а дальше внутри «TLS-сессии» передаётся зашифрованный поток MTProto. Снаружи это выглядит как обычный визит на популярный сайт по HTTPS на порту 443.
Секрет ee: где включается FakeTLS
Режим задаётся в секрете прокси. Секрет с префиксом ee — это и есть FakeTLS: после ee идут 16 байт ключа, а затем имя маскировочного домена в hex. Клиент разбирает секрет и понимает, под какой SNI маскироваться. Секреты с префиксом dd — это более старая «случайная» обфускация без TLS-маскировки.
В нашем справочнике серверы работают именно в режиме FakeTLS (ee-секрет), поэтому подключение выглядит для сети как обычный HTTPS.
Почему это устойчивее
Чтобы заблокировать FakeTLS, фильтру пришлось бы блокировать весь HTTPS с данным SNI — а это ломает доступ к легитимным сайтам. Поэтому FakeTLS сложнее отсечь точечно, чем простую обфускацию. Подробнее о том, что при этом видит провайдер — в разделе о безопасности.