Наверное, все уже наслышаны о замедлении видеохостинга Youtube. Помните про Instagram* и Facebook*, которые уже давно заблокированы на территории России? Но какой мощный инструмент позволяет блокировать сервис у миллионов людей по ещё такой обширной и большой стране? Давайте разбираться!
Предыстория
Ноги этой всей истории растут из ноября 2019 года, когда после вступления в силу закон все операторы на территории нашей страны должны были установить так называемое "Техническое средство противодействия угрозам" или DSPU. Но позже вскрылось, что это средство основанное на технологии DPI(англ. Deep Packet Inspection - Глубокий анализ пакетов). Давайте разберем эту технологию и поймём как работает DPI.
Как работает DPI?
Дело в том, что передача данных в сети разделяется на 7 уровней:
- Физический уровень — физические аспекты передачи данных: среда передачи, кабельные линии, электрические сигналы и т. д. На этом уровне все сигналы передаются с помощью 0 и 1, и больше никак!
- Канальный уровень — поддерживает надёжность передачи и приёма данных между сетевым оборудованием в локальной сети. Полученные с физического уровня данные делятся на фреймы, или кадры. Каждый фрейм состоит из служебной информации — например, адреса отправителя и адреса получателя, — а также самих данных. Получается что-то похожее на почтовый конверт. На лицевой стороне у него написано, от кого пришло письмо, а внутри находится само письмо, то есть данные. Лицевая сторона конверта — это MAC-адрес устройства, которое отправило нам информацию. Он нужен, чтобы идентифицировать устройства в локальной сети, состоит из 48 или 64 бит
- Сетевой уровень — маршрутизирует данные между разными сетями и находит оптимальные пути для их доставки. Данные на сетевом уровне представляются в виде пакетов. Такие пакеты похожи на фреймы из канального уровня, но используют другие адреса получателя и отправителя — IP-адрес. Чтобы получить IP-адрес устройств его можно конвертировать из MAC-адреса по специальному протоколу ARP(address resolution protocol)
- Транспортный уровень — на этом уровне уже происходит передача данных по сети.
- Сеансовый уровень — контролирует сеансы связи в рамках сети, обеспечивая начало, поддержание и завершение подключений. Начиная с этого уровня и выше, данные имеют уже нормальный вид — например, привычных нам JPEG- или MP3-файлов. Задача сети на этих уровнях — представить информацию в понятном для человека виде и сделать так, чтобы пользователь мог её как-то «потрогать».
- Представительский уровень — на этом уровне происходит преобразование форматов данных — их кодирование и сжатие. Например, полученные данные могут превратиться в GIF- или MP4-файл. То же самое происходит и в обратном порядке: когда пользователь отправляет файл другому человеку, данные сначала конвертируются в биты и сжимаются, а потом уже передаются на транспортный уровень.
- Прикладной уровень — предоставляет пользовательский интерфейс для взаимодействия с сетевыми компонентами.
И данные из уровня в уровень перемещаются группами, то есть пакетами. DPI умеет просматривать в отличии от всем нам знакомых Браундмэроув, которые умеют просматривать только заголовки, но и содержание этих пакетов.
DPI умеет понимать, не только откуда идет трафик, но и какой он имеет вид (картинка, музыкальный файл, видеофайл и т.д.). А дальше DPI может развлекаться с этим трафиком, как ему только захочется:
- Приоритизировать
- Ограничить по скорости
- Перенаправить
- Заблокировать
- Передать получателю
DPI сильно упрощает блокировку подобных ресурсов. Ведь раньше блокировка выполнялась по IP-адресам, а это ограничивало сервис прям совсем, и ещё могли пострадать сайты, которые записаны на тот же IP-адрес. А с помощью DPI можно не просто замедлить весь ресурс, а например заблокировать конкретно картинки.
Но как же применяется DPI?
В большинстве случаев данные передаются в зашифрованном виде, а DPI соответственно расшифровать их не может.
Тут DPI использует эвристический анализ: из пакета извлекаются небольшие кусочки данных. А дальше система смотрит на что эти данные похожи ,сравнивая их с огромной базой известных образцов. Эти образцы называются сигнатурами данных
Кстати, примерно также работает и Shazam. Он тоже сравнивает кусочки песен с огромным датасетом у себя на сервере и ищет самый похожий результат.
Большое спасибо за прочтение статьи :D
Больше интересного контента каждый день в телеграм канале "Сложно-простая математика".
Подписывайтесь, не забывайте ставить лайки и писать комментарии. Надеюсь, что мы не прощаемся :-3!
*принадлежит Meta, признанна экстремисткой организацией на территории Российской Федерации