Как РКН заблокировал мой (и не только) сайт
Идёт среда, ничто не предвещает беды. Я сижу на лекции по алгебре и пишу конспект. Складывается впечатление, что среди всех студентов в аудитории я единственный успеваю за преподавателем. И действительно, вскоре сосед по парте спрашивает, могу ли я скинуть свои записи ему. Я отвечаю, что конспекты будут доступны по ссылке — у него есть эта ссылка. Он пытается открыть её, но, к своему (и моему) удивлению, страница не загружается.
Я сам пытаюсь открыть конспект — у меня тоже не получается загрузить его. Потом пробую зайти на сайт — безрезультатно. Наконец, открываю документацию одного из своих проектов — вы уже знаете продолжение. Приходится оставить эту проблему для «будущего меня».
Уже ночью будущий я превращается в меня настоящего, и начинает разбираться, что
произошло. Я пробую использовать для загрузки страницы не браузер, а curl
— на удивление, это даёт результат, и я вижу в терминале текст главной
страницы. Но каково же было моё недоумение, когда я сделал запрос на URL для
разработки и увидел, что сайт заблокирован РКН.
Это была предыстория того, почему мои сайты не работали несколько дней.
Что произошло
5 ноября 2024 года РКН начала блокировку всех сайтов с шифрованием ECH (Encrypted Client Hello). Несмотря на то, что эта технология достаточно новая, она уже сейчас используется множеством сайтов.
В октябре 2024 года компания Cloudflare активировала ECH на своих серверах. На данный момент технология работает на постоянной основе и включена для всех доменов по умолчанию.
Я использую Cloudflare для быстрой и безопасной доставки контента: текста, изображений, PDF и прочих статических данных. Сервис также предоставляет защиту от DDoS-атак, удобное развёртывание и другие функции, которые используются в моей инфраструктуре.
Как вы понимаете, именно полная блокировка подключений к серверам Cloudflare стала причиной, по которой мои сайты были недоступны из России без использования всем известных средств обхода.
Как удалось решить проблему
Выяснив, что именно привело к блокировке моего сайта, я отключил TLS 1.3 — именно эта версия протокола и реализует ECH в качестве расширения.

После этого я открыл главную страницу и она, наконец, успешно загрузилась. Проблема была решена.
Более подробно про 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 неправильной.
Спасибо тебе, терпеливый читатель, что дочитал до конца!