ESNI (зашифрованное поле SNI) и системы анализа трафика
Про технологию ESNI (и SNI) я не так давно написал несколько записок. Сейчас ESNI находится в процессе внедрения, интересно взглянуть на эффект, который данная технология будет иметь для систем инспекции трафика и блокирования доступа. Современные системы используют SNI (а также, в продвинутых вариантах, TLS-сертификаты) для обнаружения имён узлов, с которыми пытается установить соединение пользователь. ESNI скрывает эти имена из SNI (TLS-сертификаты скрыты в новой версии TLS 1.3), причём, текущая версия ESNI использует для этого ключи, опубликованные в DNS.
То есть, особенность ESNI в том, что в качестве дополнительного источника ключей, защищающих метаинформацию, используется независимая от TLS система – DNS. Это важный момент: для того, чтобы зашифровать “адрес обращения”, клиенту не нужно устанавливать дополнительные соединения – получить нужный ключ можно типовым запросом к системе доменных имён; вообще говоря, не обязательно при этом указывать имя того TLS-узла, с которым будет соединяться клиент.
Провайдер хостинга может использовать ключи, опубликованные под одним DNS-именем, для обеспечения доступа к “скрытым серверам” под совсем другими именами, это означает, что открытый запрос в DNS не будет раскрывать имя “целевого узла”. Например, Cloudflare сейчас использует одни и те же ключи для самых разных веб-узлов. Более того, “скрытый узел” может находиться за некоторым “фронтэндом”, имеющим другое, универсальное, имя – фактически, это Domain Fronting.
В идеале, для работы ESNI нужны DNSSEC (чтобы аутентифицировать источник ключей и защитить DNS-трафик от подмены) и DNS-over-TLS (чтобы защитить DNS-трафик от пассивного прослушивания). Но и в условиях незащищённой DNS, технология ESNI довольно эффективна (отмечу, что ESNI предусматривает и вариант, в котором ключи встраиваются в приложение, либо передаются каким-то ещё способом, без DNS).
В открытой DNS, системы анализа трафика, которые видят весь трафик клиента, могут сопоставить запрос в DNS для извлечения ключа ESNI и последующее TLS-соединение. DNS-ответ с ключами даже можно заблокировать, сделав использование ESNI невозможным (но только при условии, что ключи не были получены другим способом). Однако автоматическое корректное сопоставление имени из DNS-запроса и сессии TLS – представляют серьёзную дополнительную задачу, которая тем сложнее, чем больше объём трафика, анализируемого системой фильтрации. (Конечно, уже само наличие ESNI может являться признаком подозрительного соединения.)
То есть, ESNI, в случае массового внедрения, довольно заметно повлияет на ландшафт систем инспекции трафика. А кроме того, данная технология может подстегнуть рост распространённости DNSSEC и DNS-over-TLS. Впрочем, пока что ESNI не поддерживается распространёнными веб-серверами, да и соответствующий RFC не вышел из статуса черновика.
(Как работает ESNI – можно посмотреть на моём тестовом сервере TLS 1.3, там реализована поддержка.)
Адрес записки: https://dxdt.ru/2019/02/13/8696/
Похожие записки:
- Централизация обновлений и CrowdStrike
- Атака GhostWrite на аппаратуре RISC-V
- Журнал "Интернет изнутри"
- Техническое описание TLS: обновление 2022
- Экспериментальный сервер TLS 1.3: обновление
- Сообщения и приложения-мессенджеры
- Интернет-протокол "дымовой завесы"
- Централизованные мессенджеры и многообразие мест хранения сообщений
- Вычисления на различной аппаратуре
- Реплика: программные "демультиплексоры" протоколов уровня приложений
- "Блокирующие" источники случайности в операционных системах
Комментарии читателей блога: 2
1. 13th February 2019, 20:16 // Читатель beldmit написал:
Сегодняшнюю новость про ESNI и Южную Корею видел ведь?
It appears South Korea has started censoring traffic across all ISPs based on SNI [1], [2]. Nick points out that they seem to be blocking ESNI entirely [3].
[1]: https://bugzil.la/1494901#c3
[2]: https://news.joins.com/article/23363557
[3]: https://twitter.com/grittygrease/status/1095530153319358465?s=21
2. 13th February 2019, 20:23 // Александр Венедюхин:
Довольно странное решение.
Написать комментарий