Как РКН заблокировал мой (и не только) сайт

Идёт среда, ничто не предвещает беды. Я сижу на лекции по алгебре и пишу конспект. Складывается впечатление, что среди всех студентов в аудитории я единственный успеваю за преподавателем. И действительно, вскоре сосед по парте спрашивает, могу ли я скинуть свои записи ему. Я отвечаю, что конспекты будут доступны по ссылке — у него есть эта ссылка. Он пытается открыть её, но, к своему (и моему) удивлению, страница не загружается.

Я сам пытаюсь открыть конспект — у меня тоже не получается загрузить его. Потом пробую зайти на сайт — безрезультатно. Наконец, открываю документацию одного из своих проектов — вы уже знаете продолжение. Приходится оставить эту проблему для «будущего меня».

Уже ночью будущий я превращается в меня настоящего, и начинает разбираться, что произошло. Я пробую использовать для загрузки страницы не браузер, а curl — на удивление, это даёт результат, и я вижу в терминале текст главной страницы. Но каково же было моё недоумение, когда я сделал запрос на URL для разработки и увидел, что сайт заблокирован РКН.


Это была предыстория того, почему мои сайты не работали несколько дней.

Что произошло

5 ноября 2024 года РКН начала блокировку всех сайтов с шифрованием ECH (Encrypted Client Hello). Несмотря на то, что эта технология достаточно новая, она уже сейчас используется множеством сайтов.

В октябре 2024 года компания Cloudflare активировала ECH на своих серверах. На данный момент технология работает на постоянной основе и включена для всех доменов по умолчанию.

Я использую Cloudflare для быстрой и безопасной доставки контента: текста, изображений, PDF и прочих статических данных. Сервис также предоставляет защиту от DDoS-атак, удобное развёртывание и другие функции, которые используются в моей инфраструктуре.

Как вы понимаете, именно полная блокировка подключений к серверам Cloudflare стала причиной, по которой мои сайты были недоступны из России без использования всем известных средств обхода.

Как удалось решить проблему

Выяснив, что именно привело к блокировке моего сайта, я отключил TLS 1.3 — именно эта версия протокола и реализует ECH в качестве расширения.


Отключение TLS 1.3 для восстановления доступа к сайту
Отключение TLS 1.3 для восстановления доступа к сайту

После этого я открыл главную страницу и она, наконец, успешно загрузилась. Проблема была решена.

Более подробно про ECH

Когда вы делаете запросы в Интернете, ваши данные необходимо защищать от третьих лиц. В этом помогает шифрование. В большинстве случаев при общении в Интернете используется протокол безопасности Transport Layer Security (TLS), который шифрует вашу информацию и обеспечивает ее сохранность. Однако при подключении клиента (браузера) к серверу отправляется сообщение ClientHello — своеобразного рукопожатия. К сожалению, это сообщение отправляется без шифрования, поэтому данные могут быть прочитаны в процессе передачи. Это происходит потому, что клиенту и серверу необходимо «договориться» о параметрах подключения, например, способе шифрования; а также обменятся публичными ключами и другими данными, которые используются для шифрования последующих сообщений.


Рукопожатие клиента и сервера
Рукопожатие клиента и сервера

ECH, в свою очередь, позволяет зашифровать ClientHello при помощи DoH (DNS over HTTPS), который используется для получения ключа, необходимого для шифрования. Связка этих технологий обеспечивает высокую конфеденциальность данных.

Из-за своего принципа работы, ECH позволяет обходить блокировки. Роскомнадзор использует чтение и анализ SNI для выборочной блокировки сайтов. ECH делает это невозможным, поэтому ведомство, не сумев обойти расширение, решило полностью заблокировать его. Поэтому множество сайтов: новостные порталы, образовательные ресурсы, форумы — стали недоступны.

Что было дальше

Сегодня я заметил, что некоторые ресурсы стали вновь доступны. Я предположил, что блокировка ECH была снята, и вновь включил её для своих доменов. Страница загружается, поэтому, судя по всему, сайты с ECH теперь работают, как и прежде.

На данный момент TLS 1.3 включен для всей моей инфраструктуры, сайты работают в штатном режиме.

Моё мнение о блокировках

Обычно я стараюсь избегать подобных тем, но эта роскошь непозволительна, когда речь заходит о блокировке моих ресурсов, пусть и косвенной.

Вместо того, чтобы блокировать множество сервисов, стоит создать достойную альтернативу. Ранее были заблокированы YouTube и Discord — для них, вопреки комментариям некоторых лиц, на данный момент нет российских аналогов. YouTube является не только развлекательной платформой, но и кладезью полезного контента. Например, я сам нередко ищу видео на технические темы, слушаю аудиокниги. Discord использовался в моём ВУЗе для образовательных целей — в нём проводились защиты лабораторных работ, можно было быстро задать вопросы и так далее.

Порой, как мне кажется, нужно поступать не лучше, а иначе. Да, некоторые западные сервисы блокируют отечественный контент, но это не значит, что нам следует делать то же самое. Особенно если в итоге пострадают люди, которые вообще ни в чём не виноваты.

У каждого человека должно быть право на конфиденциальность. Именно поэтому я выступаю за свободное программное обеспечение, по этой же причине я считаю блокировку ECH неправильной.


Спасибо тебе, терпеливый читатель, что дочитал до конца!