Конфиденциальность в сетях обмена файлами

редактировать

Одноранговые системы обмена файлами (P2P), такие как Gnutella, KaZaA и eDonkey / eMule, стали чрезвычайно популярными в последние годы, с оценкой численности пользователей в миллионы. В научном исследовании указаны некоторые слабые места двух популярных P2P-сетей в защите конфиденциальности пользователей. В ходе исследования были проанализированы протоколы Gnutella и eMule и обнаружены слабые места в протоколе; многие проблемы, обнаруженные в этих сетях, являются фундаментальными и, вероятно, обычными для других сетей P2P. Пользователи файлообменных сетей, таких как eMule и Gnutella, подлежат контролю за своей деятельностью. Клиентов можно отслеживать по IP-адресу, DNS-имени, версии программного обеспечения, которое они используют, файлам, которыми они делятся, запросам, которые они инициируют, и запросам, на которые они отвечают.

Многое известно о структуре сети, схемах маршрутизации, нагрузке на производительность и отказоустойчивость P2P-систем в целом и Gnutella в частности. В этом документе основное внимание уделяется конфиденциальности пользователей, которую раскрывают сети Gnutella и eMule. Это может быть удивительно, но протокол eMule не обеспечивает большой конфиденциальности для пользователей, хотя это протокол P2P, который должен быть децентрализованным.

Содержание
  • 1 Протоколы Gnutella и eMule
    • 1.1 eMule протокол
    • 1.2 Протокол Gnutella
      • 1.2.1 Протокол Gnutella v0.4
      • 1.2.2 Протокол Gnutella v0.6
        • 1.2.2.1 Отслеживание инициаторов и респондентов
        • 1.2.2.2 Отслеживание одного узла
        • 1.2.2.3 Сбор IP-адресов
        • 1.2.2.4 Отслеживание узлов путем создания GUID
        • 1.2.2.5 Сбор разноплановой информации о пользователях
        • 1.2.2.6 Отслеживание пользователей по частичной информации
        • 1.2.2.7 Отслеживание пользователей с помощью запросы
        • 1.2.2.8 Использование хэш-функций
  • 2 Измерения
  • 3 См. также
  • 4 Ссылки
  • 5 Дополнительная литература
  • 6 Внешние ссылки
Протоколы Gnutella и eMule

Протокол eMule

eMule является одним из клиентов, реализующих сеть eDonkey. Протокол eMule состоит из более чем 75 типов сообщений. Когда клиент eMule подключается к сети, он сначала получает список известных серверов eMule, которые можно получить из Интернета. Несмотря на то, что клиентов eMule миллионы, серверов всего несколько сотен. Клиент подключается к серверу через TCP-соединение. Он остается открытым, пока клиент подключен к сети. После подключения клиент отправляет на сервер список своих общих файлов. Таким образом, сервер создает базу данных с файлами, которые находятся на этом клиенте. Сервер также возвращает список других известных серверов. Сервер возвращает клиенту идентификатор, который является уникальным идентификатором клиента в системе. Сервер может генерировать ответы на запросы только тем клиентам, которые напрямую к нему подключены. Загрузка выполняется путем разделения файла на части и запроса части у каждого клиента.

Протокол Gnutella

Протокол Gnutella v0.4

В протоколе Gnutella V0.4 все узлы идентичны, и каждый узел может подключиться друг к другу. Протокол Gnutella состоит из 5 типов сообщений: запрос для поиска плитки. В сообщениях запроса используется механизм лавинной рассылки, то есть каждый узел, получивший запрос, пересылает его по всем своим ссылкам на соседние узлы графа. Узел, получивший запрос и имеющий соответствующий файл, отвечает сообщением о совпадении запроса. Поле счетчика прыжков в заголовке ограничивает время жизни сообщения. Сообщения Ping и Pong используются для обнаружения новых узлов, которые могут быть связаны с фактической загрузкой файла, выполняемой путем открытия соединения TCP и использования механизма HTTP GET.

Gnutella протокол v0.6

Протокол Gnutella V0.6 включает несколько модификаций: Узел имеет один из двух рабочих режимов: «листовой узел» или «ультрапир». Первоначально каждый узел запускается в режиме листового узла, в котором он может подключаться только к ультрапирам. Листовые узлы отправляют запрос ультрапиру, ультрапир пересылает запрос и ожидает ответов. Когда узел имеет достаточную пропускную способность и время безотказной работы, узел может стать ультрапиром. Ультраперы периодически отправляют своим клиентам запросы на отправку списка имеющихся у них общих файлов. Если поступает запрос со строкой поиска, которая соответствует одному из файлов в листьях, ультрапир отвечает и указывает на конкретный лист.

Инициаторы и ответчики отслеживания

В версии 0.4 Gnutella протокол, ультрапир, который получает сообщение от конечного узла (сообщение с нулевым счетчиком переходов), точно знает, что сообщение было отправлено с этого конечного узла.

В версии протокола 0.6, если ультрапир получает сообщение сообщение от ультрапира с нулевым счетчиком переходов, то он знает, что сообщение отправлено ультрапиром или одним из его конечных узлов (среднее количество конечных узлов, подключенных к ультрапиру, составляет 200).

Отслеживание одиночный узел

Многие клиенты Gnutella имеют функцию мониторинга HTTP. Эта функция позволяет отправлять информацию об узле любому узлу, который поддерживает пустой HTTP-запрос, и получать в ответ. Исследования показывают, что простой краулер, подключенный к сети Gnutella, может получить из начальной точки входа список IP-адресов, которые связаны с этой точкой входа. Затем сканер может продолжить запрос других IP-адресов. В рамках академического исследования был проведен следующий эксперимент: в Нью-Йоркском университете обычный программный клиент Gnucleus, который был подключен к сети Gnutella как листовой узел, с характерным прослушивающим TCP-портом 44121. В Еврейском университете, Иерусалим, Израиль, поисковый робот запустил поиск клиента. прослушивание порта 44121. Менее чем за 15 минут сканер обнаружил IP-адрес клиента Gnucleus в Нью-Йоркском университете с уникальным портом.

Сбор IP-адреса

Если пользователь подключен к Gnutella сети в течение, скажем, последних 24 часов, IP-адрес этого пользователя может быть легко получен хакерами, поскольку функция мониторинга HTTP может собрать около 300 000 уникальных адресов в течение 10 часов.

Узлы отслеживания путем создания GUID

A Глобальный уникальный идентификатор (GUID) - это 16-байтовое поле в заголовке сообщения Gnutella, которое однозначно идентифицирует каждое сообщение Gnutella. В протоколе не указано, как генерировать GUID.

Gnucleus в Windows использует Ethernet MAC-адрес, используемый в качестве GUID 6 младших байтов. Следовательно, клиенты Windows раскрывают свой MAC-адрес при отправке запросов.

В клиентском программном обеспечении JTella 0.7 GUID создается с использованием Java случайного числа без инициализации. Поэтому в каждом сеансе клиент создает последовательность запросов с одинаковыми повторяющимися идентификаторами. Со временем можно найти корреляцию между запросами пользователей.

Сбор разной информации о пользователях

Средство мониторинга Gnutella выявляет множество ценной информации о своих пользователях. Можно собирать информацию о поставщике программного обеспечения и версии, которую используют клиенты. Также доступна другая статистическая информация о клиенте: емкость, время безотказной работы, локальные файлы и т. Д.

В Gnutella V0.6 можно собирать информацию о клиентском программном обеспечении (даже если клиент не поддерживает HTTP-мониторинг). Информация содержится в первых двух сообщениях рукопожатия соединения.

Отслеживание пользователей по частичной информации

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

Отслеживание пользователей по запросам

Группа академических исследователей провела следующий эксперимент: команда запустила пять Gnutella в качестве ультрапира (чтобы слушать запросы других узлов). Команда выявила около 6% запросов.

Использование хэш-функций

Хеши SHA-1 относятся к SHA-1 файлов, а не к строкам поиска.

Половина поисковых запросов - это строки, а половина из них - результат хэш-функции (SHA-1 ), примененной к строке. Хотя использование хеш-функции предназначено для повышения конфиденциальности, академическое исследование показало, что содержимое запроса может быть легко раскрыто с помощью атаки по словарю: соавторы-ультрасоводы могут постепенно собирать общие строки поиска, вычислять их хеш-значение и сохранять их в словаре. Когда поступает хешированный запрос, каждый совместно работающий ультрапир может проверить совпадения со словарем и соответственно раскрыть исходную строку.

Меры

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

См. Также
Ссылки
Дополнительная литература
Внешние ссылки
Последняя правка сделана 2021-06-02 07:02:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте