Техническое: ESNI, NSS и тестовый сервер TLS 1.3
Некоторое время назад тестовый сервер TLS 1.3, который я реализовал и, в меру сил, поддерживаю по адресу tls13.1d.pw, продемонстрировал свою практическую полезность. А я забыл об этом написать на dxdt.ru – соответственно, пишу сейчас.
Тестовый сервер поддерживает сочетание HelloRetryRequest (HRR) и ESNI (зашифрованное поле SNI). То есть, сервер иногда отправляет клиенту запрос на пересогласование параметров и при этом обрабатывает ESNI. HRR+ESNI – весьма редкое сочетание, на обычном сервере скорее не встречается (но может быть имитировано в рамках активной атаки), это и позволило мне обнаружить в NSS (библиотека, используемая браузером Firefox) ошибку, которая до этого успешно прошла через релиз-тесты.
Ошибка состояла в следующем: использование ESNI должно скрывать имя сервера, но в NSS соединение с HRR+ESNI обрабатывалось некорректно, соответственно, во втором ClientHello, в ответ на запрос HRR, имя сервера передавалось в открытом виде (в обычном расширении SNI). В итоге – утекало имя сервера, а на tls13.1d.pw в некоторых случаях не удавалось отобразить сведения про ESNI для пользователей Firefox (причина в том, что во втором ClientHello, из которого только и имеет смысл брать сведения о соединении, ESNI просто не было). Об ошибке я сообщил в Mozilla, ошибка (Bug 1517714) исправлена в релизе NSS_3.43, вышедшем в марте. Сейчас исправленный релиз уже разошёлся по всем основным сборкам браузера Firefox.
Адрес записки: https://dxdt.ru/2019/05/23/8785/
Похожие записки:
- Mozilla Firefox и внедрение рекламных сообщений
- Браузеры на dxdt.ru
- Ретроспектива заметок: июль 2012 года
- Реплика: программные "демультиплексоры" протоколов уровня приложений
- Говорилки в google-поиске
- Браузерная реклама от Firefox
- Удостоверяющий центр TLS ТЦИ
- TLS: выбор сертификата по УЦ в зависимости от браузера
- Десятилетие DNSSEC в российских доменах
- Возможное обновление алгоритмов DNSSEC в корне DNS
- Модули DH в приложении Telegram и исходный код
Написать комментарий