Так ли хороша технология Encrypted Client Hello, как считает Cloudflare?
Прогрессивная технология, которая «заполняет пробелы в современной инфраструктуре онлайн-безопасности», и которая в будущем, возможно, «окончательно решит проблемы конфиденциальности». Звучит многообещающе, правда? Именно так Mozilla и Cloudflare описывают Encrypted Client Hello (ECH) — протокол, который шифрует всё «приветственное» сообщение или первое взаимодействие между браузером и сервером сайта.
Мы убеждены, что ECH может стать ключевым элементом, который обеспечит конфиденциальность в интернете. В пользу этой мысли говорит поддержка технологии такими крупными игроками, как Mozilla, Chrome и Cloudflare. В приложениях AdGuard для Windows, Mac и Android уже реализована поддержка ECH. Эта функция работает во всех приложениях и браузерах, которые фильтрует AdGuard. Но является ли ECH тем недостающим кусочком пазла, который позволит раз и навсегда решить проблему конфиденциальности и победить цензуру? Как бы нам ни хотелось, это маловероятно.
И прежде чем добавить ложку дёгтя в бочку с восторгами по поводу ECH и её мнимой неуязвимости для цензоров, органов по защите авторских прав и прочих посторонних глаз, необходимо разобраться в основах.
Что такое ECH и зачем нужна эта технология?
Представьте, что собираетесь отправить письмо другу. Вы запечатываете конверт и пишете сверху имя и адрес получателя. Никто не может вскрыть конверт и прочитать ваше письмо, не сломав печать. Но любой может узнать, кому вы отправляете письмо, взглянув на адрес.
Примерно так работает HTTPS, протокол, который по умолчанию используется более чем на 84% сайтов. Первая часть информации, которую передаёт браузер при установлении зашифрованного соединения с сайтом, называется Client Hello. Часть информации в Client Hello, например SNI (Server Name Indication, с помощью которого ваш браузер сообщает серверу, к какому сайту он хочет подключиться), не шифруется. Это, в свою очередь, означает, что операторы связи, включая вашего провайдера, могут её увидеть. Получив сообщение Client Hello, сервер отвечает на него информацией, известной как Server Hello, чтобы завершить «рукопожатие» с устройством.
Источник: Cloudflare
После первого приветствия данные, которыми браузер обменивается с сервером, шифруются, так что только вы и сайт можете видеть, что в них содержится. Но к этому моменту ваш интернет-провайдер уже знает имя открытого сайта. Например, если вы зашли на сайт www.google.com, то ваш интернет-провайдер не видел, что вы искали, но мог видеть, что вы использовали Google.
То, что мы описали выше, — это принцип работы TLS-рукопожатия. TLS расшифровывается как Transport Layer Security — криптографический протокол, который обеспечивает сквозную защиту данных, передаваемых через интернет. Первое сообщение Client Hello, которое браузер отправляет открытым текстом на серверы сайта, содержит не только SNI, но и версию TLS, а также алгоритм шифрования. Главное, что это сообщение не зашифровано, поэтому любой, кто видит сетевой трафик, может увидеть и имя сайта, который запрашивает ваш браузер.
Вопрос в том, как защитить первую незашифрованную часть данных, раскрывающую карты наших веб-путешествий?
Здесь на помощь приходит протокол Encrypted Client Hello. ECH шифрует сообщение Client Hello, содержащее SNI, которое, как мы уже говорили, указывает на имя посещаемого сайта. Вместо того чтобы показывать реальное доменное имя сайта, например www.google.com, внешним наблюдателям, браузер показывает только имя так называемого клиентского сервера, за которым скрыто множество внутренних серверов с собственными доменными именами. Клиентский сервер имеет общее доменное имя: например, Cloudflare использует имя cloudflare-ech.com. Но как браузер узнает, какую информацию ему нужно послать, чтобы подключиться к конкретному сайту?
Секрет в том, что ECH разделяет Client Hello на две части: внешняя часть содержит неконфиденциальную информацию, например имя клиентского сервера, а внутренняя часть содержит SNI, указывающий на доменное имя внутреннего сервера, который и является тем сайтом, который вы хотите посетить. Получается, что клиентский сервер выступает в роли посредника со специальным ключом дешифровки, с помощью которого он открывает ваше внутреннее письмо и видит имя нужного сайта. Затем он перенаправляет запрос на реальный домен и затем возвращает ответ.
Продолжая аналогию с письмом, можно сказать, что на письмах разным адресатам написан один и тот же адрес, а чтобы увидеть внутреннее письмо с реальным адресом, нужно вскрыть печать волшебной палочкой.
Источник: Cloudflare
Какова ситуация с внедрением ECH?
В последние месяцы всё больше игроков отрасли стали проявлять интерес к ECH. Google впервые представил функцию поддержки ECH в Chrome 117, а [Chrome 118 стал первым стабильным релизом браузера Google с этой функцией] (https://www.ghacks.net/2023/10/11/google-chrome-118-is-a-massive-security-update/). В Firefox поддержка ECH включена по умолчанию, начиная с релиза Firefox 118, но работает только в том случае, если у вас включён DNS-over-HTTPS. Edge также тестирует ECH, но пока не вывел его в стабильную версию.
Однако поддержка ECH со стороны браузера мало что значит без ответной поддержки со стороны сервера. Она означает лишь то, что браузер может отправлять зашифрованные ECH-сообщения на серверы, поддерживающие этот протокол. Поэтому шаг к поддержке ECH со стороны Cloudflare, самого популярного CDN-провайдера на рынке, существенно изменил ситуацию с внедрением технологии. Компания Cloudflare, которая обрабатывает около 20% всего трафика в интернете, в конце сентября объявила о начале поддержки ECH для всех клиентов на бесплатных тарифных планах и призвала платных клиентов подать заявку на получение этой функции.
Тем не менее, протоколу ещё предстоит пройти долгий путь, прежде чем он получит широкое распространение. На данный момент многие бесплатные домены Cloudflare не содержат информации о ECH в своих DNS-записях, поэтому Chrome не может использовать ECH для этих сайтов. Но, поскольку внедрение ECH находится на ранней стадии, эта проблема, вероятно, будет решена со временем.
Итак, решена ли проблема конфиденциальности?
Как бы нам ни хотелось этого, но объявить все проблемы конфиденциальности в интернете решенными — значит выдать желаемое за действительное.
С одной стороны, повсеместное принятие ECH, если оно произойдет, сделает бесполезными некоторые методы блокировки, которые используют властные структуры по всему миру для цензурирования, борьбы с пиратством и введения геоограничений. Например, правоохранительным органам будет сложнее преследовать конкретные сайты по их названиям, поскольку они будут скрыты ECH.
Однако это не означает, что цензоры не смогут преодолеть такое препятствие. Возможно, им придётся внести некоторые коррективы, но блокировка всё равно будет возможна.
Слабые места ECH или потенциальные методы блокировки
Мы ненадолго сменим амплуа и побудем в роли адвоката дьявола. Всё для того, чтобы озвучить несколько конкретных способов, которые цензоры могут пытаться использовать для блокировки сайтов, несмотря на внедрение ECH.
-
Один из способов — «вырезать» ECH из DNS-записей. Чтобы установить ECH-соединение с сервером, браузеру требуется специальная DNS-запись от этого сервера. Она указывает, какое доменное имя и ключ дешифрования следует использовать во внешней и внутренней частях ECH. Но если ваш DNS-трафик не зашифрован, то любой, у кого есть доступ к вашим DNS-запросам, например провайдер или цензор, также может видеть и запись ECH. Эта запись может быть использована для идентификации и блокировки вашего ECH-соединения. Конечно, с зашифрованным DNS-трафиком этот метод не сработает.
-
Более грубый, но достаточно эффективный способ — блокировать все известные клиентские серверы, например clouflare-ech.com. В реальности таких серверов не должно быть много, поэтому цензорам не составит труда выявить и заблокировать их все. Однако этот метод очень рискован, поскольку может привести к поломке интернета у многих пользователей. Если цензоры заблокируют все серверы, поддерживающие ECH, то браузеры не смогут установить соединение с сайтами, на которых включен ECH. Это, в свою очередь, может побудить Cloudflare отключить ECH для стран с жесткой интернет-цензурой. Пока неясно, как отреагирует Cloudflare, если её клиентский сервер будет заблокирован цензурой в таких странах, как Китай или Россия. Наверняка перед ними встанет непростой выбор.
Ещё один подводный камень, подстерегающий тех, кто рассчитывает на ECH как на окончательное решение всех проблем приватности, — риск того, что владельцы сайтов просто откажутся принимать протокол. Если цензура нацелится на ECH и сделает недоступными сайты с его поддержкой, то владельцы сайтов, возможно, захотят её отключить, чтобы не терять своих посетителей.
Без сомнения, ECH — перспективная технология, способная сделать интернет безопаснее. Однако её не следует воспринимать как универсальное решение проблемы слежки. Широкое внедрение ECH может стимулировать популярность определённых CDN-сервисов, таких как Cloudflare. Это, в свою очередь, может усилить централизацию интернета. Таким образом, будущее ECH остаётся неопределённым: оно может принести нам как пользу, так и вред.