Распечатать

Дмитрий Ржавин, начальник отдела защиты сетей операторов связи департамента информационной безопасности: решения по глубокому анализу трафика DPI могут заблокировать торрент-трафик

10 декабря 2009

Особенности протокола
 
Проблема скачивания файла большого объема существовала всегда. Ненадежность каналов связи приводила к обрыву соединения и процесс закачки приходилось начинать заново. Поэтому вначале были разработаны специальные программы, которые позволяли скачивать один файл по частям, и в случае разрыва начинали докачивание не с начала, а с промежуточного участка файла (например, GetRight. Стоит отметить, что такую технологию должен поддерживать сервер). Также иногда используется «разрезание» больших файлов на небольшие куски (архиваторами или специальными программами), чтобы их можно было скачивать раздельно, а потом объединить в исходный файл. Кроме того, скачивание файлов создает значительную нагрузку на сервер, поэтому для популярных ресурсов используются так называемые «зеркала» (сервера, предоставляющие для доступа копии тех же данных; кроме разгрузки оригинального сервера, географическое распределение «зеркал» увеличивает скорость скачивания для удаленных пользователей). Все эти методы были неудобными в работе, что стало импульсом к созданию протоколов peer-to-peer, которые позволяют передавать файлы по частям напрямую от пользователя к пользователю. Самым удобным стал протокол BitTorrent, который быстро завоевал популярность – сегодня до 90% всего peer-to-peer трафика идет по нему.
 
Главный принцип работы BitTorrent заключается в разбивке исходного файла или файлов на множество кусочков, которые при закачке одним пользователем сразу становятся доступны для скачивания от него другим. Для этого предназначенные к передаче файлы обрабатываются специальной программой, которая осуществляет разбивку их на множество составляющих кусочков (чанков) и формирует торрент-файл, в котором содержится следующий набор данных: порядковый номер каждой составляющей, ее объем, контрольная сумма для каждого кусочка и Интернет-адрес так называемого трекера. Данный торрент-файл располагается на веб-ресурсах с описанием того, что можно благодаря ему скачать. Сам торрент-файл имеет небольшой размер, и его можно скачать, используя обычный веб-браузер.
 
Для скачивания самих файлов используется специальная программа-клиент. Получив торрент-файл, эта программа устанавливает соедиение с трекером, задача которого - обеспечение взаимодействия между клиентами (пирами, в терминологии битторрент). При подключении к трекеру, клиент получает от него список других пиров, скачивающих или раздающих запрашиваемые файлы.
 
После этого клиент получает список чанков, которые есть у других пиров, и начинает скачивать те их них, которых нет у него. После завершения скачивания каждого из чанков производится вычисление его контрольной суммы и сравнение ее со значением, указанным в торрент-файле  В случае несовпадения контрольных сумм данный чанк перезапрашивается. После скачивания всех чанков, производится их склейка в единый файл. После этой процедуры вы можете воспользоваться файлом. Весь процесс происходит автоматически и не заметен для пользователя. Можно спокойно остановить скачивание и продолжить в удобное для вас время – при этом все чанки, закачка которых уже завершена, повторно скачиваться не будут. Стоит отметить, что процесс отдачи нельзя полностью заблокировать на уровне клиента – как только вы начали скачивание, вы сразу стали доступны другим пирам для скачивания от вас. Даже после того, как вы закачали файл полностью, вы продолжаете его раздавать (пиры, имеющие все чанки файла, называются сидами) Таким образом обеспечивается доступность файла даже если клиент, который начал раздачу файла, на данный момент недоступен.
 
Контрольная сумма и хэш-функции являются важным элементом работы BitTorrent. Контрольная сумма является результатом вычисления хэш-функции, которая вычисляется по специальному алгоритму. Контрольное значение является уникальной характеристикой файла, по которому можно практически точно определить, что скачанный тобой файл является точной копией оригинала. Упрощенно, для вычисления хэш-функции любой файл представляется в виде двоичного числа, которое по соответствующему алгоритму преобразуется в число фиксированного размера, которое и есть контрольная сумма. При любом изменении исходного файла (например, при ошибке передачи, или если один из пиров попытался, в файл добавить вирус или троян), это число меняет свое значение, что и служит сигналом – файл поврежден. Контрольная сумма файла используется не только для торрентов: часто на ftp или веб-серверах указываются контрольные суммы выложенных файлов. Файл с хешем хранится обычно вместе с файлом для закачки, поэтому его  можно скачать и проверить контрольную сумму скачанного файла – правда, это придется делать самостоятельно.
 
Хэш-функция также решает и обратную задачу – ее тяжело подобрать, иными словами практически невозможно создать файл с известным наперед контрольным значением. Поэтому если вы скачиваете файл, который прошел через 100 пиров, то благодаря вычислению контрольной суммы и ее сравнению с имеющейся в вашем торрент-файле, можно однозначно сказать, что ваш файл является копией оригинала (однако здесь по-прежнему существует проблема доверия к источнику самого торрент-файла, потому что если тот, кто выкладывал файл первым, заложил в него вирус и уже для него создал торрент-файл, то вы получите файл с вирусом, поэтому классические средства защиты от вирусов никто не отменяет).
 
При поиске сам трекер не знает имя файла - ему известно только значение хэш-функции, которая вычисляется по оригинальному торрент-файлу. По значению этого хэша и выдается список пиров, участвующих в его раздаче. В случае выключения какого-нибудь пира из процесса происходит автоматическое переключение на другой пир из известного списка.
 
Некоторые трекеры запоминают, сколько каждый из участников совершил закачек и сколько отдал данных. Такая информация используется на сайтах с рейтингом и служит для стимулирования того, чтобы пользователь, скачав файл, не выключал свой компьютер, а продолжал отдавать файл другим пирам. При достижении рейтинга некоторого минимума такого участника могут просто заблокировать. При этом определение участника производится обычно на основании логина и пароля, которые должен указать пользователь.
 
Главное преимущество BitTorrent с технической точки зрения заключается в разгрузке центрального сервера, которого фактически нет – вся логика работы BitTorrent распределяется по всем пользователям протокола. Для людей технология оказалась очень удобной для скачивания файлов большого объема – фильмы, музыка, дистрибутив и т.д. BitTorrent избавляет вас от многих проблем –за счет того, что идет одновременное скачивание большого количества кусочков файла их разных источников, резко возрастает общая скорость скачивания и доступность файла, при этом вы всегда можете временно прекратить закачку и продолжить ее позже, не опасаясь необходимости повторного скачивания и повреждения файла. BitTorrent очень удобен для передачи большого объема данных большому количеству людей. Все это привело к быстрому росту популярности BitTorrent.
 
Однако с популярностью пришла и негативная слава, что BitTorrent предназначен и в основном используется для передачи нелегитимного контента. Это не так – можно однозначно утверждать, что разработчики протокола BitTorrent никогда не закладывали в разрабатываемую технологию специальных решений, предназначенных для облегчения скачивания незаконного контента. Никаких дополнительных средств по обходу авторских прав в нем не заложено. Каким вы получили файл, таким можете использовать и передаете дальше. С помощью BitTorrent передается огромный объем легитимный данных, например свободное ПО.
 
Стоит отметить, что, несмотря на абсолютную бесплатность самого протокола, коммерциализация в него пришла – например на некоторых трекерах с рейтингом, свой рейтинг можно поднимать с помощью платной SMS, чтобы увеличить свои возможности по скачиванию.
 
Возможности блокировки
 
Массовое использование BitTorrent привело к лавинообразному росту трафика на сетях оператора, на который они не рассчитывались, и сети стали не справляться с возросшей нагрузкой. Дело в том, что оператор связи при строительстве своей сети и определении цены за свои услуги использует «коэффициент переподписки». Этот параметр означает, что вы как абонент при скорости, допустим, в 1 Мбит/с в реальности будете пользоваться Интернетом в штатном режиме – просматривать веб-страницы и иногда что-то скачивать, но не забирать постоянно всю полосу. Фактически коэффициент переподписки означает отношение емкости канала подключения пользователя, к предполагаемой его средней загрузке, и обычно для операторов ШПД составляет от 1 к 5 до 1 к 20 (при этом для юридических лиц он обычно равен один к одному или около того, поэтому и цена за услуги для них на порядок больше). Очевидно, что любой пользователь при постоянном скачивании и раздаче на полной скорости подключения приносит оператору убыток. Поэтому провайдеры обычно стараются ограничить peer-to-peer протоколы. Абонентам это не понравилось и началась война методов блокировки и защиты. Вначале появились простейшие методы – блокировка протокола по портам.
В ответ peer-to-peer протоколы (в том числе и bittorrent) стал использовать случайные порты, потом в него встроили механизм шифрования данных, чтобы было сложно понять, какой трафик передается. Для включения шифрования нужно только поставить галочку в меню, но это отнимает дополнительные мощности у вашего компьютера.
 
На помощь операторам пришли так называемые системы «глубокого анализа трафика» (от английского термина Deep Packet Inspection, сокращенно DPI). Хотя такие системы появились достаточно давно, еще нет устоявшегося понимания, что должно уметь делать такое оборудование, нет единого стандарта на них. Каждый производитель (а их разрабатывают как телеком-вендоры Cisco, Juniper, Huawei и др, так и специализированные компании - например, Arbor, Sandvine и др.) называют системами DPI то, что смогли разработать. Серьезные системы DPI – это решения, которые кроме простого изучения заголовков пакетов по битам, применяют мощные поведенческие алгоритмы, позволяющие идентифицировать с той иной степенью вероятности трафик любой природы.
 
Распознание трафика, включая p2p и голосовые приложения, даже если они используют алгоритмы маскировки и шифрования, в таких системах достигает 90% вероятности. При этом системы способны не только блокировать те или иные протоколы (обычно этого и не требуется – такая политика приведет к недовольству и оттоку абонентов), а, например в случае пиковой нагрузки на сеть, снижать им скорость обмена, обеспечивая так называемую «политику равноправного доступа к сети». Впрочем, DPI-системы способны не только понижать, но и повышать приоритет для некоторых протоколов, что открывает Интернет-оператору простор для создания большого количества дополнительных сервисов.
 
В результате благодаря системам DPI у оператора появляются широкие возможности по диверсификации своих услуг – хочешь быть пользователем BitTorrent на гарантированной высокой скорости, пожалуйста, выбирайте соответствующий тарифный план. Поэтому системы DPI являются сегодня очень востребованными на рынке решениями.
 
С оригинальной версией статьи и комментарием можно ознакомиться: http://www.kommersant.ru/doc.aspx?DocsID=1285570