- PVSM.RU - https://www.pvsm.ru -

Стандарт Encrypted SNI реализован в Firefox Nightly

Стандарт Encrypted SNI реализован в Firefox Nightly - 1Firefox стал первым браузером, который реализовал шифрование TLS Server Name Indication (SNI) [1]. Поддержку ESNI внедрили [2] в последнюю версию Firefox Nightly, на которой обкатывают все нововведения перед их добавлением в основную ветку.

О важности этого стандарта месяц назад рассказывал [3] CDN-провайдер Cloudflare. Если вкратце, то благодаря ESNI шифруется информация о том, к какому домену вы отправляете запрос. В стандартном HTTPS заголовки с именами доменов не шифруются и доступны для просмотра провайдеру или другому «человеку посередине». Теперь он видит только IP-адрес. Поскольку в современном интернете на одном IP-адресе могут располагаться сотни доменов, то ESNI эффективно скрывает информацию, на какой домен заходит пользователь.

Таким образом, блокировки по именам перестают работать, а цензура в интернете сильно усложнится. Цензорам придётся блокировать IP-адреса, а это сомнительная практика. Такая блокировка может затронуть непричастные сайты, а блокируемый сервис легко (автоматически) переключается на другой IP-адрес.

Почему в обычном TLS SNI «светятся» имена хостов? Дело в том, что перед началом шифрования серверу необходимо знать, к какому домену обращается клиент, чтобы предъявить нужный сертификат. По этой причине имя хоста передаётся открытым текстом (ниже иллюстрации из блога Cloudflare [3]).

Стандарт Encrypted SNI реализован в Firefox Nightly - 2

В зашифрованном SNI (ESNI) эта проблема решена так: клиент берет публичный ключ сервера из DNS и шифрует им все данные до установления TLS сессии.

Стандарт Encrypted SNI реализован в Firefox Nightly - 3
Поддержка браузером Firefox Nightly означает, что ESNI будет работать с каждым сайтом/провайдером, который его поддерживает.

Разработчики из Mozilla объясняют [2], что существует четыре основных способа утечки истории посещённых страниц:

  1. сообщение сертификата TLS,
  2. разрешение имен DNS,
  3. IP-адрес сервера,
  4. TLS Server Name Indication.

К настоящему времени они добились хорошего прогресса в закрытии первых двух каналов утечки: новый стандарт TLS 1.3 шифрует сертификат сервера по умолчанию (канал 1), а в течение последних нескольких месяцев Mozilla изучает [4] использование DNS по HTTPS для защиты трафика DNS (канал 2). Результаты тестирования неплохие, и в ближайшие месяцы функцию выкатят для всех пользователей Firefox. IP-адрес остаётся проблемой, но во многих случаях несколько сайтов совместно используют тот же IP-адрес, так что главным каналом утечки является SNI.

В своё время технологию Server Name Indication (SNI) начали использовать именно потому, что на одном IP-адресе располагается несколько хостов. В этом случае поле SNI сообщает серверу, к какому хосту вы пытаетесь подключиться, позволяя ему выбрать правильный сертификат. Другими словами, SNI помогает обеспечить работу крупномасштабного TLS-хостинга. То есть эту функцию вводили ради безопасности, а теперь приходится с ней бороться как с каналом утечки данных.

О проблеме SNI было известно давно, пишут разработчики Mozilla, и было понятно, что это поле нужно зашифровать. Но каждый дизайн, какой они пробовали, включал какой-то компромисс производительности. Был ещё один важный недостаток: сам факт, что конкретный сайт переходит на ESNI, являлся сигналом, что ему «есть, что скрывать», то есть у цензоров появлялась возможность банально фильтровать трафик по ESNI. В конце концов было решено выпустить стандарт TLS 1.3 без ESNI.

Только в начале 2018 года разработчики поняли, что существует довольно хороший вариант: большие сети распространения контента (CDN) хостят много сайтов на одних и тех же физических серверах. Если они согласятся перевести на ESNI сразу всех клиентов, то внезапно ESNI перестаёт быть полезным сигналом для злоумышленника. Таким образом появилась возможность реализовать ESNI в TLS 1.3, путём массовой настройки множества сайтов на имеющемся наборе серверов.

ESNI — совершенно новая технология, и Firefox является первым браузером, который её реализовал. Чтобы активировать её в Firefox Nightly, следует совершить следующие действия:

  1. Убедиться, что у вас есть включен DNS по HTTPS [5] (DoH):
    • about:config
    • установить network.trr.mode в значение 2

      Стандарт Encrypted SNI реализован в Firefox Nightly - 4

    • выставить network.trr.uri на сервер DoH (например, https://mozilla.cloudflare-dns.com/dns-query).

      Стандарт Encrypted SNI реализован в Firefox Nightly - 5

    • about:config
    • установить network.security.esni.enabled в значение true

      Стандарт Encrypted SNI реализован в Firefox Nightly - 6

Это должно автоматически включить ESNI для любого сайта, который его поддерживает. В данный момент из крупных хостеров и CDN это только Cloudflare, но разработчики Firefox надеются, что вскоре подключатся и другие провайдеры. Проверить работу шифрования можно по этой ссылке [6].

Стандарт Encrypted SNI реализован в Firefox Nightly - 7

В ближайшие месяцы Mozilla будет проверять, как ESNI взаимодействует с разными типами файрволов и других сетевых устройств. Если вы включили шифрование и что-то сломалось — просьба сообщить разработчикам [7] через баг-трекер.


Стандарт Encrypted SNI реализован в Firefox Nightly - 8 [8]

Автор: GlobalSign_admin

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/dns-2/296891

Ссылки в тексте:

[1] TLS Server Name Indication (SNI): https://tools.ietf.org/rfcmarkup?doc=6066#section-3

[2] внедрили: https://blog.mozilla.org/security/2018/10/18/encrypted-sni-comes-to-firefox-nightly/

[3] рассказывал: https://blog.cloudflare.com/encrypted-sni/

[4] изучает: https://blog.mozilla.org/futurereleases/2018/09/13/dns-over-https-doh-testing-on-beta/

[5] включен DNS по HTTPS: https://blog.nightly.mozilla.org/2018/06/01/improving-dns-privacy-in-firefox/

[6] этой ссылке: https://www.cloudflare.com/ssl/encrypted-sni

[7] сообщить разработчикам: https://bugzilla.mozilla.org/enter_bug.cgi?format=guided#h=bugForm%7CCore%7CNetworking

[8] Image: https://clck.ru/EWJHw

[9] Источник: https://habr.com/post/427563/?utm_campaign=427563