Mozilla, Cloudflare и Apple создали новое расширение для шифрования соединений
В настоящее время поддержка расширения ESNI реализована в библиотеках BoringSSL, NSS и picotls.
В ходе проходившего на собрании IETF 102 хакатона программисты из компаний Mozilla, Cloudflare, Fastly и Apple разработали новое TLS-расширение ESNI (Encrypted Server Name Indication), позволяющее передавать имя запрошенного хоста в зашифрованном виде. ESNI является улучшенной версией расширения SNI, предназначенного для организации работы нескольких HTTPS-сайтов на одном IP-адресе. В SNI имя хоста в открытом виде передается в сообщении ClientHello на стадии согласования соединения, так как передача осуществляется до установки зашифрованного соединения.
Данная особенность расширения SNI позволяет упростить организацию обработки запросов на HTTP-серверах и использовать прокси и CDN-сети для перенаправления трафика, однако в данном случае информация может быть раскрыта стороннему наблюдателю, например, интернет-провайдеру. Таким образом, особенность может быть использована для анализа запрошенных сайтов и выборочной фильтрации трафика.
В новом алгоритме имя хоста передается в зашифрованном виде. Данные защищены криптографическими ключами, которые есть только у сервера и клиента. Помимо этого, в расширении предусмотрена функция сокрытия обращения к DNS-серверу с помощью протокола DNS-over-HTTPS или DNS-over-TLS.
В настоящее время поддержка расширения ESNI реализована в библиотеках BoringSSL (Chromium), NSS (Firefox) и picotls (используется в HTTP-сервере H2O).