Skip to content
This repository has been archived by the owner on Jul 28, 2024. It is now read-only.

Типы DPI

ValdikSS edited this page Feb 14, 2016 · 3 revisions

О DPI

DPI (Deep Packet Inspection) — технология классификации и фильтрации трафика по его содержимому. DPI умеет определять прикладные протоколы (HTTP, HTTPS, Skype, BitTorrent), тип передаваемых данных (веб-страницы, аудио- и видеофайлы), умеет выделять информацию, характерную для конкретных протоколов (URL для HTTP, имя домена для HTTPS, идентификатор раздачи BitTorrent). На данный момент, большинство провайдеров России используют DPI в качестве средства блокировки сайтов из единого реестра запрещенной информации. Использование DPI для этой цели позволяет провайдерам блокировать конкретные ссылки, внесенные в реестр, а не IP-адрес или домен целиком.

Типы подключения DPI

Так как не существует единого стандарта на DPI, существует большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: активный и пассивный.

Активный DPI

Активный DPI — DPI, подключенный в сеть провайдера привычным образом, как и любое другое сетевое устройство. Провайдер настраивает маршрутизацию так, чтобы DPI получал трафик от пользователей к заблокированным IP-адресам или доменам, а DPI уже принимает решение о пропуске или блокировке трафика. Активный DPI может проверять как исходящий, так и входящий трафик, однако, если провайдер применяет DPI только для блокирования сайтов из реестра, чаще всего его настраивают на проверку только исходящего трафика.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.

Иногда пассивный DPI применяется для подмены ответа DNS-сервера, а не самого сайта.

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

Типы DPI

Помимо различий в типах подключения DPI в провайдерскую сеть, существуют особенности в работе DPI от разных производителей. Официальных терминов или названий этим отличиям я не знаю, поэтому назвал их самостоятельно: "обычный" DPI и "полный" DPI.

"Обычный" DPI

Под "обычным" DPI понимается такой DPI, который фильтрует определенный тип трафика только на самых распространенных портах для этого типа. Например, "обычный" DPI выявляет и блокирует запрещенный HTTP-трафик только на порту 80, HTTPS-трафик на порту 443. Данный тип DPI не будет отслеживать запрещенный контент, если вы отправите запрос с заблокированным URL на незаблокированный IP или нестандартный порт.

"Полный" DPI

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

DPI и BlockCheck

В настоящее время BlockCheck умеет определять как тип подключения DPI, так и тип его работы. Тип работы DPI определяется путем совершения запроса на заблокированные ресурсы через прокси-сервер АнтиЗапрет, а тип подключения — путем отслеживания фальшивого первого пакета от DPI при запросе заблокированного URL.

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