Илья Рогов
7 173
Блоги

На линии фронта цифровой войны: как работают блокировки Роскомнадзора

Сетевые специалисты дата-центра Xelent — о том, как технически работают пресловутые блокировки и что должны делать операторы связи, чтобы не лишиться лицензии.

Поделиться

В избранное

В избранном

Любая компания, которая предоставляет коммерческие услуги передачи данных, обязана иметь и продлевать лицензию, выдаваемую Роскомнадзором. Следовательно, любой оператор связи обязан подчиняться требованиям регулятора, в том числе по ограничению доступа к информации. Кстати, это касается только коммерческой деятельности — если вы не берёте плату за связь и передачу данных, то теоретически вас эти требования не касаются.

Мы — коммерческий дата-центр, наш принцип carrier neutral — это значит, что мы не навязываем клиентам сервис по доступу в интернет, можем организовать связность с любым из 25 интернет-провайдеров, представленных на нашей площадке, но можем дать и свой доступ в интернет. И для таких случаев (которых немало, потому что цены на интернет у нас низкие) у нас есть лицензия оператора, а значит, мы обязаны выполнять все требования РКН.

Начинается всё с получения выгрузки — специального XML-файла, который постоянно обновляется Роскомнадзором. Все зарегистрированные операторы, которые имеют лицензию на телематические услуги, обязаны этот файл получить, обработать и заблокировать то, что там содержится.

Первый способ, который Роскомнадзор использует уже довольно давно, — получение файла с сайта rkn.gov.ru по HTTP. Оператор направляет на известный URL веб-запрос, подписывает его сертификатом, который каждый оператор получает для себя в центре сертификации (кстати, это стоит денег), и получает ответ — это и есть файлик, дамп XML.

Второй способ сейчас введён для всех крупных операторов — это так называемая «дельта». Файл выгрузки формируется примерно раз в час. А периодически становится доступным не полный файл, а разница — то, во что РКН внёс изменения: «дельты», дельта-1, дельта-2, дельта-3. И операторы закачивают каждый раз не полную выгрузку, а изменения: это быстрее и удобнее.

Далее перед оператором стоит задача заблокировать список сайтов в файле. Есть два способа, которые РКН официально считает правильными.

Первый – DPI, Deep Packet inspection — глубокое изучение пакета. Представим, что у оператора есть некий маршрутизатор, на который подключены клиенты, и есть маршрутизатор, который ведёт в интернет. Между ними (напрямую или через зеркало, это уже нюансы) ставится мощный сервер DPI, в котором должно быть много памяти и хорошие сетевые карты, потому что весь пользовательский трафик идёт через него.

Программное обеспечение DPI анализирует проходящие пакеты трафика и не пропускает те, которые соответствуют правилам, описанным в файле РКН. Есть коробочные сертифицированные DPI, есть самописные DPI. Роскомнадзор рекомендует пользоваться сертифицированными, но это необязательно. У Xelent, например, свой DPI.

Второй путь — блокировка по DNS, Domain Name Service, служба доменных имён. Сейчас он уже потерял свою значимость, потому что через DNS трудно добиться правильной блокировки.

Как работает DNS? Клиент вбил в браузере запрос, например, rutracker.org, его компьютер отправляет запрос на соответствие этого имени IP-адресу - либо DNS-серверу провайдера, либо DNS-серверу какого-то другого узла сети, это не имеет значения, потому что, как правило, DNS-запросы перехватываются провайдерами.

И вот этот провайдер, чтобы организовать блокировку, не возвращает правильный адрес заблокированного сайта, а сообщает некий поддельный адрес с другим IP, где, например, висит страничка с объявлением о блокировке сайта.

И третий вариант блокировки, самый лобовой — по IP-адресу сервера, где находится запрещённый контент. Но поскольку в этом случае весьма вероятно под раздачу попадают сторонние сервисы и сайты, то его использование может носить ограниченный характер — об этом чуть ниже, а теперь о том, что мы видим в файле выгрузки РКН.

Выгрузка РКН состоит из трёх основных типов записей. Первый тип – блокировка по адресу страницы, URL, он начинается так: http:// доменное имя, / страница. В этом случае блокируется доступ не ко всему сайту, а к его конкретной странице: например, к статье с запрещённой информацией. Второй тип – блокировка по домену. Здесь в файле указывается домен, сайт и IP, который Роскомнадзор зафиксировал для этого сайта.

Второй способ применяется, когда Роскомнадзор решил заблокировать весь домен целиком, например, Rutracker или LinkedIn. Домены могут быть как сами по себе, так и с поддоменами: *.linkedin.com, то есть всё, что включается в linkedin.com, блокируется.

Третий тип блокировки — по IP, когда Роскомнадзор может указать IP-адрес. Так блокируются сайты, которые реализованы не как веб-сайты, а как различные сервисы. Именно так блокируется Telegram, поскольку в его основе не веб-страница, а сервис.

Точно так же — по IP — РКН ранее боролся с интернет-рацией Zello. И поскольку один IP адрес может быть назначен нескольким виртуальным серверам, то здесь как раз и возникает проблема, с которой столкнулось из-за блокировки Telegram множество сервисов, использующих те же IP-адреса, что были заблокированы под одну гребёнку с мессенджером.

В чём вообще основная проблема с реализацией блокировок? В протоколе HTTPS, который обеспечивает шифрование веб-страниц. По протоколу HTTP данные и страницы передаются в нешифрованном виде.

А протокол HTTPS был разработан для того, чтобы решить все проблемы безопасности протокола HTTP: зашифровать всё внутри, чтобы никто снаружи не смог влезть в передаваемую страницу, подсмотреть содержимое – например, номера кредитных карт или персональных данных. И эту задачу успешно решили.

А вот те, кто хотят что-то отфильтровать, что-то подделать, в нашем случае — реализовать требования РКН, сталкиваются с трудностями. Главная – то, что в протоколе HTTPS нельзя выяснить страницу на сайте, на которую идёт пользователь.

В рамках HTTPS обмен данными идёт примерно по такой схеме: пользователь вбил доменное имя, оно преобразуется в IP, и начинается запрос на этот хост. И вот в рамках этого запроса наружу не отдаётся ничего кроме IP-адреса, даже не узнать, на какой домен идёт пользователь. В этом случае придётся заблокировать все запросы на этот IP: страдают все, кто на нём находится.

Хорошие новости в том, что все современные браузеры весьма «разумны» — они не просто отправляют IP сервера, а ещё указывают SNI-идентификатор, это некое имя, которое определяет, с какого домена нужно получить данные. И это, к счастью, позволяет системам DPI не блокировать все IP скопом, а, проанализировав запрос, понять, на какой домен всё же хочет пойти клиент, и заблокировать только его.

Но больше домена в случае HTTPS ничего определить невозможно, соответственно, непонятно, на какие страницы идёт клиент. Бывают случаи в выгрузке РКН, когда указывается сайт и страница – но всё это внутри HTTPS, то есть это приводит только к тому, что блокируется весь сайт, потому что саму страницу выделить нельзя. Такое редко, но бывает.

Поэтому, когда РКН требует заблокировать ролик на YouTube, то они добавляют строчку в выгрузке в формате HTTP, и ни одной страницы HTTPS на YouTube в выгрузке нет – если бы они были, нам пришлось бы блокировать весь YouTube.

Теперь пара слов о том, как регулятор контролирует исполнение блокировки. Каждый провайдер связи обязан установить в своей сети программно-аппаратный комплекс «Ревизор». Эта система проводит постоянные тесты, доступны ли из нашей сети адреса из выгрузки, и если они доступны, отправляет отчёты в РКН. Мы тоже можем видеть эти отчёты в своём личном кабинете – он есть у каждого оператора, включенного в «Ревизор», — и понимать, что у нас блокируется, а что нет. Так мы можем сами себя контролировать.

Если у нас что-то ломается, мы должны сообщать об этом в местное представительство Роскомнадзора, если это длительное время – от 12 часов и дольше – у нас не работает, то наступают санкции, достаточно серьёзные штрафы, причём и на компанию, и отдельно на ответственное лицо. Поэтому операторы в целом следят за соблюдением требований регулятора, так как за многочисленные нарушения можно и лицензию потерять.

#блокировки

{ "author_name": "Илья Рогов", "author_type": "self", "tags": ["\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438"], "comments": 19, "likes": 45, "favorites": 19, "is_advertisement": false, "section_name": "blog", "id": "36599", "is_wide": "" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } } ]