HTTPS (DNS, SNI, IP, Proxy)

Skip to end of metadata
Go to start of metadata

Как фильтруется HTTPS? Вообще, способов фильтрации используется несколько и одновременно. У провайдера есть возможность включать/отключать способы так, как он считает нужным, рекомендации указаны при установке и в статье http://carbonsoft.github.io/2016/11/10/i-installed-reductor-long-time-ago.html

Список подходов:

  • DNS фильтрация
  • SNI фильтрация
  • IP фильтрация
  • Проксирование HTTPS-трафика

Фильтруются следующие порты: 443 в любом случае + все нестандартные порты у https-ссылок, имеющиеся в реестре.

DNS

http://docs.carbonsoft.ru/display/reductor5/DNS

SNI

Включена по умолчанию и крайне не рекомендуется к отключению. Используется в большей степени для подстраховки DNS-фильтрации, так как SNI-заголовок не обязателен в Client-Hello пакете. При срабатывании пользователю посылается TCP-RST пакет.

Принцип работы: При запросе от абонентской машины IP адреса по доменному имени, редуктор отдаст "Ip адрес для DNS ответов" (из меню), на котором у вас находится страница заглушки. Если при этом использовалось https соединение, то опция SNI фильтрация исключит запрос и получение сертификата.

FAQ:

Q: Так ведь если сработает DNS-спуфинг, то SNI заблочит страницу заглушку.
A: Ну да, такой баг был, но исправлен, трафик до страницы-заглушки DROP'ается в цепочке https_dst.

Схема при срабатывании:

1. Абонент ---TCP SYN--> Сервер
2. Абонент <--TCP SYN/ACK -- Сервер
3. Абонент ---TCP ACK--> Сервер
4. Абонент ---TCP: PSH/ACK SSL: Client Hello --> Сервер
5. Абонент <--TCP RST--- Редуктор
..
x. Сервер ---TCP PSH/ACK SSL: Server Hello --> Абонент

Но абоненту будет уже не важно.

IP фильтрация

Пользователь в итоге получает TCP-RST пакет.

Состоит из трёх частей:

Фильтрация ресурсов, которые иначе не заблокировать

например:

https://1.2.3.4/bad/things

При совпадении IP адресов, попавших в реестр в таком виде, пользователю посылается TCP-RST.

Фильтрация IP адресов всех HTTPS-ресурсов, имеющихся в реестре

Не самая лучшая опция, но некоторым клиентам очень важна надёжность фильтрации, а эта опция её сильно повышает.

Фильтрация IP адресов из результатов резолва доменов, попавших для блокировки по домену или с https-ссылками.

Используется резолвер, раз в пять минут обновляющий данные по часто меняющим IP адреса ресурсам. У него довольно сложное внутреннее устройство в плане структуры данных и модели принятия решения об их устаревании. Вкратце - он довольно таки небезопасен для использования, но в своё время (до появления DNS и SNI фильтрации) очень сильно спасал с фильтрацией HTTPS ресурсов, часто меняющих свой IP адрес.

Списки фильтруемых в текущий момент IP можно посмотреть:

ipset save ip_https
ipset save ip_https_plus

Проксирование трафика

Решение для редиректа и фильтрации с точностью до URL ресурсов, использующих технологию HSTS находится в экспериментальном состоянии.

Большая часть популярных решений не обеспечивают должной производительности при потоке трафика больше 1гбит/c, а способы отправки трафика (BGP/OSPF) требуют знания всех IP адресов, в которые может отрезолвиться заблокированный ресурс на всех теоретически доступных DNS-серверах машин, проводящех проверку, что маловероятно является возможным. (будет 99% качество фильтрации и всегда будут пропуски).

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

Непосредственно сейчас необходимости в этом нет.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.