Как замедлили Twitter? Что такое DPI? Разбор

Наверное, вы слышали, что на этой неделе стартовало так называемое замедление Twitter.

С 10 марта 100% мобильного и 50% стационарного трафика Twitter в России официально замедлены. Все это стало возможным благодаря технологии DPI. Мы решили разобраться, как это работает и как устроен механизм замедления.

Почему это важно? Можно предположить, что Twitter — это репетиция перед замедлением/блокировкой Facebook, а потом YouTube.

Поэтому сегодня разберемся, что такое DPI, как работает и какие у него возможности.

Будет ли у нас как в Китае? И как от этого защититься?

Начнем издалека, в ноябре 2019 года вступил в силу закон, по которому операторы связи должны были начать установку специальных «технических средств противодействия угрозам» (ТСПУ).

Позднее выяснилось, что за аббревиатурой ТСПУ скрывалась известная любому сисадмину технология DPI — Deep Packet Inspection или «Глубокий анализ пакетов». Не путать с плотностью пикселей на дюйм — это тоже DPI, но Dots Per Inch.

13bffa02b8c4d35b07faeef850125a8b.jpg

И вот она дошла до тестирования в масштабах страны. На примере твиттера.

Я сразу скажу, что осуждаю подобное давление на соцсети, потому что это угроза свободе слова, которая у нас только в интернете и сохраняется. Но перейдем к технологиям.

Как работает DPI?


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

Так вот DPI умеет просматривать данные разного уровня и сами пакеты. И оно может понять не только откуда и куда идет трафик, но и что это за трафик конкретно: текстовое сообщение, картинки или видео, голосовой трафик Skype или может даже торрент. А дальше сделать с ним, то что хочется:

  • Приоритизировать
  • Ограничить по скорости
  • Перенаправить
  • Заблокировать
  • Ну или, конечно, передать получателю.

Кстати насколько именно замедляется Twitter сейчас — непонятно. Лично я проблем пока не наблюдаю. Но почему так мы еще поговорим.

ec7d3a0f554317891f32577b7bd18f9a.jpg

Это сильно упрощает задачи по блокировке сайтов и сервисов. Почему?

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

Теперь можно внимательно рассматривать пакеты и заблокировать, к примеру только загрузку картинок.

Но как вся эта вундер-технология работает?


Есть две вещи, которые анализирует DPI: сами пакеты информации, причем как метаданные и заголовки, так и внутреннее содержимое. И второе — это так сказать поведение пакетов данных.

ee2ef9608d6050922493d838810e8f19.jpg

Давайте посмотрим на пример. Вот так выглядит заголовок пакета при получении данных браузером и с ним все ясно. Сверху написан протокол HTTP, то есть скорее всего веб-страничка. Мы видим адрес запроса. И даже, какие именно данные отправляются.

139381585df1755968a6f108a52455e3.jpg

В данном случае, это небольшая картинка. И ее размер в байтах тоже написан. Даже не нужно залезать внутрь самих данных, чтобы понять, что перед нами.

03a1bca430e98735bbbdc0300bbee0d7.jpg

55c25f348570f953e8c3a6c38cd592f8.jpg

С зашифрованным трафиком сложнее. Тут инфы намного меньше. Система увидит, какой порт используется (это дает намек на тип приложения), IP-адреса, тип шифрования. А все остальное зашифровано, даже URL-адрес.

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

70c12b96ae5e46c697c1680cb2ca00f4.jpg

Это очень похоже на то как работает Shazam, который сравнивает небольшой кусочек песни, записанный вами на диктофон, с огромной базой сигнатур песен которые хранятся на сервере. То есть по большому счету DPI — это Shazam для трафика.

f1b486105b7b5f9201cfcda9cfac6c3b.jpg

Кстати, точно по такому же принципу работают антивирусы, они сравнивают сигнатуры новых вирусов с огромной базой известных вирусов.

Кроме этого DPI смотрит на частоту и размер пакетов, потому что разные приложения тоже имеют свои особенности. Например, торренты очень своеобразно отправляют пакеты.

И главное, что поскольку все происходит в реальном времени, такой подход позволяет не сильно замедлять интернет.

Как можно использовать DPI?


Классифицировав пакет, технология DPI позволяет много чего с ним сделать и в целом технология может быть полезна. С помощью DPI можно повышать качество и скорость соединения, приоритизируя один тип трафика над другим. Например, если в вашей локалке все качают торренты, то люди не смогут нормально созвониться по ZOOM по работе. Тогда DPI позволит трафику ZOOM поставить приоритет повыше.

Но если вы Роскомнадзор, у вас вероятно другие приоритеты.

Но вопрос в том, кто будет определять, какой трафик приоритетный, а какой нет, остается открытым. Например, при помощи DPI вполне можно продвигать одни сервисы и замедлять другие: отдавая приоритеты отечественным аналогам. К примеру, можно замедлить YouTube и при этом ускорить Rutube. В общем, вариантов для фантазии масса.

Архитектура или почему все снова пошло не по плану?


Но если существует такой мощный инструмент, почему же с Twitter по-прежнему все весьма неплохо?

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

Вы обратили внимание, что анонсировано: Замедление для 100% мобильного трафика, а для стационарного только 50%? Распространять опасный по мнению РКН контент через компы не так опасно, что ли? Нет.

Просто внедрили технологию далеко не все. С тусовкой мобильных операторов удалось договориться. А маленьких местных провайдеров интернета — огромное количество. Но это полбеды.

Во-вторых, как и в случае с Telegram, заблокировать Twitter не так уж и просто. Дело в том, что Twitter для обеспечения высокой скорости работы сервиса по всему миру пользуется услугами CDN-провайдера. Он называется Akamai.

CDN — Content Delivery Network — сеть доставки контента.


38433f09ce37e7110e2fd7107e789db9.jpg

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

Такая распределенная система доставки контента заметно усложняет возможность блокировки или ограничения доступа к ресурсу. Потому что если приложение не получит данные по одному адресу, оно пойдет в другой. А там у оператора может быть не включен DPI.

c8b4911d0c2ba7fc9cf95c1e51f2d474.jpg

Чтобы наверняка ограничить доступ к интернет-сервису, использующему CDN, требуется ограничить доступ практически ко всей сети CDN-провайдера, у которого могут быть десятки тысяч серверов по всему миру. Иными словами, чтобы заблокировать Twitter, надо заблокировать CDN-провайдера, а от этого снова ляжет половина интернета.

И я даже не буду останавливаться на курьезной ситуации, когда ограничивают полосу пропускания не только для домена twitter.com, но и для всех доменов, в названии которых есть сочетание «t.co» — это короткий домен, принадлежащий твиттеру. Таким образом, ограничениям подвергались и другие сайты, к примеру: reddit.com, microsoft.com и даже сайт Russia Today — rt.com. Предположительно по этой же причине прилегли сервера ростелекома.

Впрочем, со временем это вроде починили. Интересно другое.

Ограничения DPI. Что делать?


acdafe74a88dbece788ec278708eb668.jpg

Но самое любопытное: поскольку это своего рода гадание, нет единого стандарта DPI. У каждого поставщика оборудования свои алгоритмы и технологии.

Качество и эффективность работы DPI очень сильно зависит, от качества базы сигнатур, которую должен на постоянной основе обновлять поставщик. Иными словами, если Twitter что-то поменяет в составе пакетов трафика, то не факт, что старые DPI смогут классифицировать трафик по старым сигнатурам.

bd882e12b9a2e483437aa8f33b707bb6.jpg

Ну и наконец, DPI достаточно легко обойти при помощи VPN, так как VPN шифрует весь трафик и подменяет ваш IP-адрес, то и DPI для него не страшен.

0b6fc4610c213052929f0744eac06c72.jpg

Но ожидается и более простое решение. Протоколы шифрования тоже не стоят на месте. И с приходом TLS 1.3 и DNSSEC еще больше данных приложения и пользователя будут скрыты от DPI. И понять, что в системе за пакет будет еще сложнее. Такие дела.

© Habrahabr.ru