У провайдеров есть две проблемы:
- они обязаны ограничивать доступ к некоторым данным в соответствии с законом;
- ни одна компания не хочет платить лишние деньги за собственное соединение с провайдером уровня выше, которое, очевидно, тарифицируется.
И та и другая проблема решается ограничением отдельных запросов или протоколов, с чем справляется тот самый глубокий анализ пакетов — DPI.
Рядовых пользователей это лишает многих возможностей. Провайдер, например, способен заблокировать или сильно замедлить весь трафик протокола BitTorrent, так что качать торренты станет невозможно. Или, ради дополнительной выгоды, может «отключать» VoIP и Skype для всех пользователей, кроме тех, кто специально оплатил доступ.
DPI способен обнаруживать и пресекать соединения по определенным правилам, а их возможности зависят от производителя оборудования. Единственное, что их объединяет, — DPI работает начиная с транспортного уровня сетевой модели.
Оборудование DPI обычно работает с транспортным уровнем, пакетами TCP и UDP, читая не только заголовки, но и содержимое пакетов.
HTTP
Давай разберемся, например, с HTTP — самым популярным протоколом. Отправим запрос на http://telegram.org.
GET / HTTP/1.1
Host: telegram.org
Стандартный запрос браузера: он отправляется на IP вида ххх.ххх.ххх.ххх (адрес сервера сайта, известен всем, так как используется для адресации), запрашивает файл по адресу / на сайте telegram.org (директива Host). Ключ к определению трафика HTTP — его характерный заголовок.
- Первые символы до первого пробела — название метода: GET, POST, HEAD — ключевые. Конечно, есть и другие, но эти три занимают более 97% от всех запросов HTTP.
- Символы от второго пробела и до конца строки — версия запроса. Обычно это HTTP/1.1 или HTTP/1.0.
Все эти данные можно использовать, чтобы понять, какой это запрос и куда он идет. А если известен пункт назначения, то можно принять решение о блокировке или, в случае с spy-soft.net, о приоритизации соединения.
Но в современном мире все больше распространяется HTTPS, что же с ним?
Из-за шифрования прочитать содержимое без подготовки невозможно. Есть один способ это сделать — атака Man in the Middle, когда злоумышленник (или провайдер) внедряется в соединение, представляясь пользователю сервером, а серверу — настоящим клиентом.
Но такое требует полного доступа к компьютеру жертвы, так как сертификат (а вместе с ним и ключ), который используется для защиты соединения, подписан, и никто не может его изменить.
В таком случае провайдерам ничего не остается, кроме как блокировать трафик по единственной составляющей — адресу IP, что приводит к блокировке не отдельной страницы (как могло бы быть без HTTPS), а всего ресурса, а если не повезет, то и нескольких других, располагающихся на том же оборудовании.
BitTorrent
Из-за большого объема трафика, который передается через пиринг, провайдеры иногда пытаются ограничить скорость таких передач. Алгоритм передачи данных в пиринговых сетях значительно сложнее по сравнению с алгоритмом HTTP, но разработчики DPI нашли способ идентифицировать и его.
Если разбирать протокол именно сетей BitTorrent, то его можно разложить на несколько отдельных элементов, каждый из которых представляет собой набор относительно легко идентифицируемых соединений. Соединения в µTorrent всегда начинаются либо с файла*.torrent, либо с магнитной ссылки. Внутри заключена информация о файлах в формате Bencode: название файлов, структура папок, схема деления на части и, конечно, так называемые трекеры (announce). По ним и блочат.
Методы защиты от слежки провайдера
В борьбе с DPI важно обмануть сканер, который рассчитан на обычные запросы. Небольшие изменения в структуре запросов помешают его работе.
Лучшим способом ввести анализатор в заблуждение будет полностью зашифровать пакет данных и отправить его на личный, никому не известный сервер в интернете, который расшифрует данные и выполнит запрос. Ровно такую методологию предлагает obfs4proxy.
Изначально придуманный как посредник при передаче данных в сети Tor, obfs4 может также работать в режиме клиента и сервера, позволяя практически любому приложению перенаправить трафик в обфусцированный туннель. С этим отлично справляется, например, OpenVPN, создающий еще и защищенный шифрованием канал данных.
OpenVPN может также изображать легитимный трафик HTTPS, который анализатор DPI сочтет самым обыкновенным.
Этого можно достичь, перенаправив поток VPN через порт 443 вместо стандартного 1194, но это помогает не всегда. Или можно использовать stunnel в качестве туннеля SSL. Тогда шифрование SSL сделает запросы HTTPS практически неотличимыми от пакетов данных туннеля, помогая скрываться от грозного ока DPI.
Можно попытаться и напрямую обмануть анализатор трюками из мира сегментов TCP. Методика разделения длинных пакетов на маленькие для уменьшения потерь использует параметр TCP Window Size, регулирующий поток данных через соединение. Предварительная установка его в значение 2 для каждого пакета разделит последний на два сегмента.
Чтобы не пришлось обфусцировать каждый пакет вручную, есть утилита GoodbyeDPI, которая делает эту работу за вас. Она позволяет подобрать наилучшие комбинации изменений, чтобы ваш запрос миновал всевидящее око DPI.
Заключение
Как видите, алгоритмы анализа трафика идут вровень с технологиями обхода. Каждый новый шаг в развитии слежки за трафиком пользователей будет усложнять схему получения доступа к «чистому» интернету. Сообщество активных пользователей стремится сохранить интернет свободным от контроля и цензуры, и благодаря этому мы можем продолжать работать в открытой сети.
Понравилась статья? Подпишись на наш канал Brim
Вся предоставленная инофрмация, несет за собой только образовательный смысл
автор не несет ответствености если ты что-то сломал, и за тобой приехали дяди в черном!!