В
Firefox Nightly и в
Cloudflare подвезли поддержку Encrypted SNI. Это рокот канонады, которая скоро накроет Роскомнадзор и остальных клоунов, блокирующих интернет.
(не-техническое описание в следующем абзаце) При установлении HTTPS соединения, клиент в незашифрованном виде передает серверу имя домена, с которым хочет установить TLS-соединение, это называется Server Name Indication, SNI. Пидоры (в плохом смысле этого слова) из Роскомнадзора парсят эту информацию (то, что называется Deep Packet Inspection, DPI) и блокируют неугодные сайты. Encrypted SNI шифрует имя домена, так что владелец канала увидит только IP-адрес и порт. Если сайт хостится на крупном CDN (типа Cloudflare), то у атакующего не будет другого выхода, кроме блокирования крупных частей интернета по IP-адресам.
Приведу аналогию с телефонными разговорами. На сегодняшний день, многие сайты не имеют своего телефонного номера (IP адреса), а пользуются общими номерами арендодателя (CDN типа Cloudflare). Это значит, что сотни тысяч сайтов используют один и тот же номер. Шифрование разговора при этом включается только после того, как вы скажете секретарю арендодателя, какой сайт вам нужен. Товарищ майор (Роскомнадзор) слушает все разговоры и обрывает ваш звонок, как только слышит имя запрещенного сайта. Новая технология позволит включить шифрование уже на этапе разговора с секретарем, так что у товарища майора не будет возможности блокировать отдельные сайты — только крупные части интернета целиком по номеру телефона (IP-адресу).
Технически, это гениальное в своей простоте
решение сложной задачи. Специальный ключ домена хранится в оговоренной DNS-записи. Клиент забирает из DNS ключ и вместо ClientHello server_name делает ClientHello encrypted_server_name. Никто кроме целевого сервера не сможет расшифровать, какое имя домена просил пользовать. Понятно, что для того, чтобы это всё работало, нам нужен безопасный DNS. Тут на выручку приходит DNS over HTTPS (DoH), который уже поддерживается как минимум тремя крупными провайдерами: Google, Cloudflare и Verizon. Я до сих пор не понимаю, почему РКН не блокирует неугодные сайты через DNS (если кто знает причину — расскажите, пожалуйста), но с распространением в клиентах поддержки DoH, этот вектор атаки остается в прошлом.
Я думаю, что в перспективе 2-5 лет, власти России встанут перед выбором — двигаться по «китайскому сценарию», заблокировав внешний интернет скопом (и оставив только белые списки) или перестать блокировать точечно сайты, потому что это слишком неэффективно. Ой нет, извините, можно ещё делать хорошую мину при плохой игре и продолжать спускать деньги бюджета на бутафорию. Это — самый вероятный сценарий.
Очень жду, когда поддержка ESNI и DoH приедет в Google, AWS, Chrome, iOS и Android. И всё, пользовательский интернет станет на порядок безопаснее. В интересное время живем, товарищи!