Ещё немного про роскомнадзор и https

в 10:51, , рубрики: Песочница, метки: , , , ,

Второго декабря Россия лишилась доступа к GitHub по решению Роспотребнадзора. Информация с разъяснением причин блокировки для широкой общественности выглядит так:

image

Для узких кругов есть ещё вот такая информация:

скриншот с rublacklist

image

Все заблокированные страницы содержат копию какого-то пародийного (и местами смешного) текста, описывающего способы себяцида (простите за это слово, боюсь за хабр).

Проблема

В реестр внесено всего семь страниц. В интернете есть много обсуждений, почему из-за семи копий текста заблокирован весь ресурс, ведь закон требует ограничивать доступ именно к отдельным страницам. Результаты обсуждений сводятся к тому, что плохие провайдеры поскупились на DPI, поэтому банят сайты по IP.

Банить, конечно, можно разными способами: чёрные списки по IP на роутерах, подмена записей в DNS, проксирование трафика, ну и, конечно, DPI, от которого требуется инспектировать только http-заголовки. Во всех случаях, кроме последнего, заблокировать отдельную страницу сайта невозможно. Крупные провайдеры используют последний вариант, но есть нюанс.

Https-трафик — зашифрован. DPI сможет узнать максимум имя домена, к которому был сделан запрос, потому что строка GET в http-заголовке — зашифрована (весь заголовок зашифрован, весь запрос зашифрован). Без DPI провайдер имеет информацию только об IP-адресе.

Это значит, что постраничная блокировка для https-ресурса невозможна. Именно в этом причина, по которой даже «хорошие» провайдеры заблокировали GitHub полностью.

Варианты

Конечно, есть варианты. Можно административно запретить добавление https-ресурсов в Реестр. Можно игнорировать https-ресурсы, которые в Реестр всё-таки попадают. Либо, можно найти техническое решение.

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

Такая схема может быть не совсем законна и у провайдера могут возникнуть проблемы — начиная с отзыва корневого сертификата (если такой был и использовался в процессе), заканчивая уголовными делами (за внедрение самопальных сертификатов на компьютеры пользователей).

Поэтому постраничная блокировка на https-ресурсов так и останется невозможной, а GitHub и подобные ресурсы будут баниться полностью по IP из-за одного любого документа.

Выводы

Теперь вы знаете, почему youtube не использует https [по умолчанию].


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js