id: Гость   вход   регистрация
текущее время 15:22 28/03/2024
Владелец: Alex_B (создано 15/01/2011 19:51), редакция от 05/03/2011 10:55 (автор: Гость) Печать
Категории: анонимность, анализ трафика, сайт проекта, статьи, микс-сети, атаки
https://www.pgpru.com/Библиотека/Статьи/ПринципыПостроенияАнонимныхСетей
создать
просмотр
редакции
ссылки

Принципы построения анонимизирующих систем с малыми задержками, противостоящих timing-атакам


Rungrat Wiangsripanawan, Willy Susilo, Rei Safavi-Naini
Center for Information Security, School of Information Technology and Computer Science, University of Wollongong, Australia
Email: rw26[at]uow[dot]edu.au, wsusilo[at]uow.edu[dot]au, rei[at]uow.edu[dot]au
Оригинал file"Design Principles for Low Latency Anonymous Network Systems Secure against Timing Attacks", 2007
Перевод © 2011 unknown, Alex_B

Оглавление документа:

Abstract

Примечание переводчиков:
1Tarzan и Morphmix существовали как концепты ещё на момент начала разработки Tor. В настоящее время эти сети реально не используются.

Анонимизирующие сети с малыми задержками (Low latency systems), такие как Tor, проектируются с учетом timing-атак в модель угроз которых не входит глобальный наблюдатель. Т.е. нападающий может видеть только часть взаимосвязей в сети. Однако, недавно, в работе “Low-cost traffic analysis of Tor”, было показано что для успешной timing-атаки на Tor не нужен глобальный наблюдатель. Более того, авторы считают что их атаке подвержены все анонимизирующие сети с малыми задержками.


Мы проверили это утверждение с помощью анонимизаторов Tarzan и Morphmix1. И пришли к выводу, что вопреки вышеупомянутой статье, атака работает не во всех случаях. Опираясь на наше исследование мы вывели принципы построения безопасных анонимных систем.


Ключевые слова: Low latency, anonymous, timing attacks, Tor, Tarzan, Morphmix

1 Введение

Впервые анонимные системы связи были представлены в основополагающей работе Чаума (Chaum 1981). Суть в том, что анонимность достигается путем пересылки сообщений через серию передаточных узлов, называемых mix-узлами (перемешивающие узлы). Каждый mix-узел выполняет две основные задачи. Первая — это обеспечить побитовую неразличимость (bitwise unlinkability) сообщений, вторая — перемешать поток сообщений.


Чтобы на выходе из узла нападающий не смог идентифицировать отслеживаемое сообщение по его содержимому, все входящие сообщения приводятся к одному размеру (короткие сообщения дополняются случайными данными) и шифруются. Это и есть “обеспечить побитовую неразличимость”.


Перемешивание потока сообщений используется для того, чтобы нападающий не мог сопоставить время входа сообщения в узел со временем его выхода, и таким образом понять какое именно исходящее сообщение соответствует искомому. Узел некоторое время накапливает входящие сообщения, перемешивает их и отправляет дальше в случайном порядке.


Системы анонимной связи через интернет можно разделить на две категории:

  • системы с большими задержками (high-latency systems);
  • системы с малыми задержками (low-latency systems).
Примечание переводчиков:

2Паттерн трафика


В контексте timing-атак, это характерная форма "всплеска" активности на графике "объём трафика от времени", которая может дать возможность различать пользователей или виды активности в сети.


3Смешивание потоков


Существует много вариантов cмешивания потоков (миксинга, mixing). Например в нынешнем Tor при отсутствии миксинга картина такая: на сервер X вошло n цепочек и столько же вышло. Какая какому пользователю принадлежит как-бы непонятно, но по объёму трафика, всплескам, и другим косвенным признакам, можно строить гипотезы.


При смешивании (только как простейший пример) можно все цепочки от сервера X до сервера Y ещё раз зашифровать и упаковать в общий шифрованный канал и непонятно будет: вошло n, а сколько на какой сервер вышло — не видно. От пользователей до серверов идут индивидуальные цепочки, а между серверами — сплошной поток.


Поскольку на выходе из сети Tor всё равно проявятся отдельные цепочки, то это не очень эффективно.


4Покрывающий трафика (cover traffic)


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


5Round robin fashion


Простейший RR по кругу обрабатывает по одному пакету даных из каждого потока (предполагается, что приоритет у всех потоков равный). Таким образом достигается "равенство" всех потоков данных.

Например электронная почта (e-mail) — это система с большими задержками, т.к. для доставки сообщения может потребоваться много времени. Если же требуется взаимодействие в режиме реального времени (или близкое к этому) нужно использовать системы с малыми задержками. SSH и мессенджер – примеры систем с малыми задержками. Неотслеживаемость сообщений в системах обоих категорий достигается за счет реализации идей Чаума: цепочки передачтоных узлов между отправителем и получателем, и шифрования, скрывающего данные сообщения. Каждый узел в цепи знает только своего предшественника, от кого он получил сообщение, и своего преемника, которому он передаст сообщение.


Системы с большими задержками специализируются на пересылке одиночных сообщений, а системы с малыми задержками на поддержании соединения. Это означает, что в системах с большими задержками для каждого сообщения создается свой новый путь, новое сообщение — новый путь. А в системах с малыми задержками один путь используется в течении некоторого времени для пересылки целого потока пакетов.


Есть еще одно существенное отличие систем с малыми задержками. Чтобы соответствовать жестким требованиям к времени доставки сообщений, приходится отказываться от фазы накопления и перемешивания сообщений. Следовательно, такие системы более уязвимы к атакам анализа трафика и в частности timing-атакам. Простые timing-атаки могут сводиться к вычислению времени которое требуется пакету чтобы пройти сеть. Более сложные timing-атаки могут включать анализ отличительных особенностей используемого жертвой соединения — выявление паттерна трафика2.


Timing-атаки используют тот факт, что все узлы сети вводят различные задержки. Зная время задержек можно строить догадки о связи входящих в узел и исходящих из него потоков. Другими словами угадать, какой исходящий поток соответствует отслеживаемому входящему потоку. Нападающий может некоторое время наблюдать за связями между узлами, а затем, сравнивая паттерны трафика всех узлов, выявить узлы с похожими паттернами — вероятно эти узлы образуют цепочку. Используя статистические методы нападающий может получить информацию об отправителе и получателе потока, и даже выявить весь путь потока. Для защиты от этой атаки нужно сделать так, чтобы временнЫе характеристики всех потоков были неразличимы. Однако, для этого потребуется значительное количество операций смешивания3 и большой объем покрывающего трафика (cover traffic)4, следовательно увеличится время задержек. Определить правильный баланс между анонимностью и задержками — задача не из легких.


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


Недавно, Мёрдоч (Murdoch) и Данезис (Danezis) показали пример успешной атаки на системы с малыми задержками без использования глобального наблюдателя. Атака основана на анализе трафика предложенном Данезисом в 2004. В их атаке анонимность, которую обеспечивает Tor, может нарушить злоумышленник который видит только часть сети или владеет одним узлом Tor. Атака работает из-за того, что разработчики Tor удалили операцию смешивания, которая была в ранней версии, и теперь входящая очередь потоков обрабатывается в режиме round robin fashion5. Подконтрольный злоумышленнику Tor-узел создает соединения с другими узлами сети и таким образом может косвенно оценить объем проходящего через них трафика в каждый момент времени. Оценки строятся на основе разности в задержках потоков отправляемых и получаемых по этим соединениям.


Исходя из того, что

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

нападающий может сделать достаточно хорошее предположение о маршрутах прохождения потоков.


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

Наш вклад

Мы проверили атаку Мёрдоч и Данезиса (Murdoch & Danezis 2005) на других анонимных сетях с малыми задержками. Tarzan (Freedman & Morris 2002) и MorphMix (Rennhard & Plattner 2002) работают не так как Tor. В частности, они следуют архитектуре peer-to-peer, а Tor использует выделенные сервера. Еще, Tarzan использует некоторые операции по смешиванию и покрывающий трафик, которых нет в Tor. А в MorphMix, промежуточные узлы могут самостоятельно выбирать часть пути для передаваемого потока, в отличии от Tor, где клиент, инициализирующий поток, сам задает весь путь.


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

Структура документа

Во 2-ом разделе мы разберем три анонимизирующие сети — Tor, Tarzan и Morphmix — и покажем чем они отличаются друг от друга. В 3-ем разделе рассмотрим атаку на Tor, описанную Мёрдоч и Данезисом (Murdoch & Danezis 2005). Отметим, что авторы утверждают что атаке подвержены все анонимные сети с малыми задержками. В 4-ом разделе мы опровергнем это утверждение с помощью Morphmix. В 5-ом разделе мы выведем несколько правил построения систем с малыми задержками. И наконец, в 6-ом разделе сделаем заключение.

2 Работы по теме

В этом разделе мы кратко рассмотрим три анонимных сети – Tor, Tarzan amd Morphmix.

2.1 Tor

Tor, второе поколение Onion Routing, — это система анонимной связи с малыми задержками в основе которой лежат цепочки передаточных узлов. Это улучшенная версия Onion Routing. Onion Routing (OR) — система анонимной связи для таких задач как просмотр интернет, обмен мгновенными сообщениями и SSH. Чтобы избежать недостатков и ограничений OR, разработчики Tor включили в него несколько новых возможностей. Перечислим некоторые из них: perfect forward secrecy, контроль перегрузки (congestion control), directory services, проверка целостности (integrity checkin), настраиваемые правила выхода (configurable exit policies), точки встречи (rendezvous point) и скрытые сервисы. Кое что было удалено: смешивание и выравнивание потоков по объему трафика6.

Примечание переводчиков:

6Выравнивание потоков по объему трафика


Например, пользователь создал пять резких всплесков трафика в секунду. Чтобы его поток не выделялся по нагрузке, в другие потоки подмешивается трафик из пустых пакетов.

В Tor есть три основных участника процесса: Tor-клиент, Tor-сервера (узлы) и получатель потока. Логично, что Tor-клиент это отправитель который хочет анонимно связаться с получателем. В OR это назвалось Onion Proxy. Tor-сервера это передаточные узлы (Onion Routers в OR). Они передают потоки следующим узлам, следуя указаниям Tor-клиента. Как в OR, последний перед получателем узел в цепочке называется выходной узел (exit node). Получатель не обязан быть частью Tor-сети. Выходной узел выполняет роль передаточного звена между открытым миром (получателями) и сетью Tor.


Как и в OR, Tor-клиент выбирает какие Tor-сервера он хочет включить в цепь (путь в Tor называется цепь). В OR одну цепь можно использовать только для одного TCP соединения, Tor позволяет проводить много TCP соединений по одной цепи. Цепи определяются заранее. Главная функции Tor-клиента – это задать цепь и установить общие ключи между клиентом и всеми промежуточными узлами. Ключи будут нужны позже, когда клиент начнет отправить получателю сетевые пакеты и наоборот. В Tor размер цепи фиксирован и составляет 3 узла.


Когда клиент хочет анонимно отправить данные получателю, например, когда пользователь открывает web-сайт, поток пакетов разделяется на отрезки фиксированного размера — 512 байт. Затем, с помощью заранее установленных общих сессионных ключей, отрезки оборачиваются в шифровальные слои – для каждого передаточного узла (Tor-сервера) свой слой. Это делается таким образом, что когда Tor-сервер разворачивает свой слой он узнает только узел-предшественник и следующий узел цепи. В отличии от OR, который предусматривает перемешивание, входящие в узел Tor-пакеты (те самые по 512 байт) просто выстраиваются в очередь и обрабатываются и отправляются в режиме "первым пришел – первым ушел".


 (33 Кб)

Рисунок 1. Архитектура Tor

Модель угроз Tor

Цель нападающего — установить и отправителя и получателя. Как и все другие реально существующие анонимизирующие сети с малыми задержками, Tor не может защитить от глобального наблюдателя. Однако, он успешно противостоит нападающему, который:

  • может наблюдать часть трафика между узлами сети;
  • может создавать, изменять, удалять или задерживать трафик;
  • может создать несколько собственных передаточных узлов;
  • может компрометировать (захватить) несколько передаточных узлов.

Атаки с использованием трафика можно разделить на две категории: атаки на опознание трафика (traffic confirmation attacks) и атаки анализа трафика (traffic analysis attacks). В каждой категории атаки подразделяются на активные и пассивные.


Атаки на опознание трафика (traffic confirmation attacks) — это атаки при которых у злоумышленника уже есть предположение о связи между отправителем и получателем, и он проверяет свою догадку с помощью паттерна трафика. Предположим, нападающий подозревает что Алиса общается с Бобом и хочет в этом убедиться. В качестве примера пассивной атаки можно привести ситуацию, когда злоумышленник

  • наблюдает за трафиком на двух концах предполагаемого соединения — и на стороне Алисы и на стороне Боба,
  • и с помощью замеров времени отправки/получения или размеров пакетов на обоих концах проверяет свое предположение.

Если нападающий действует более активно, и уже не только наблюдает, но и вносит в трафик отличительные особенности — помечает трафик (например, создавая искусственные задержки или другим способом изменяя его характеристики) — то это будет пример активной атаки.

Примечание переводчиков:
7Атаки на опознания трафика являются частным случаем атак анализа трафика.

Атаки анализа трафика (traffic analysis attacks) — это атаки благодаря которым нападающий определяет узлы сети, к трафику которых ему следует приглядеться и попробовать применить атаки на опознания трафика.7 Например, пассивный злоумышленник может наблюдать за краями сети и пытаться найти взаимосвязь между входящими и выходящими потоками, опираясь в своих догадках на время входа/выхода пакетов или их размеры. Или же действовать более активно – вносить характерные особенности в поток, пытаясь упростить его идентификацию на выходе из сети.

Tor и атаки анализа трафика

Разработчики Tor решили не тратить силы на атаки опознание трафика (traffic confirmation attacks) и сфокусировались только на атаках анализа трафика (traffic analysis attacks). Из-за того что в модель угроз Tor не входит глобальный наблюдатель, некоторые атаки анализа трафика могут не учитываться. Больше информации о том как Tor противостоит атакам анализа трафика можно найти в работе Dingledine and Mathewson (Dingledine et al. 2004). Так же в (Dingledine et al. 2004) рассмотрены другие атаки, выходящие за рамки данной статьи, например, атаки на directory services и точки встречи (rendezvous point).

2.2 Tarzan

Tarzan — это еще одна анонимизирующая система с малыми задержками. Она тоже базируется на идеях Чаума и, как и другие, создана для обеспечения анонимности при использовании веб-приложений и мессенджеров. В отличии от Tor, Tarzan основан на peer-to-peer архитектуре. Каждый Tarzan-узел может быть как клиентом так и передаточным узлом. Благодаря этому устраняются timing-атаки анализа трафика между входными и выходными узлами. Ведь, в любой момент кто угодно может присоединиться или выйти из сети, и любой узел может быть потенциальным инициатором потока (клиентом). Для распространения информации об имеющихся в сети узлах используется протокол основанный на механизме сплетен (gossip-based mechanism) похожий на описанный в работе (Harchol-Balter, Leighton & Lewin 1999). Из-за особенносте peer-to-peer архитектуры, нападающий может изобразить из себя столько Tarzan-узлов сколько захочет. Поэтому, в Tarzan предусмотрен механизм для уменьшения вероятности выбора вредоносного узла. Механизм предполагает категоризирование узлов на основе хешей их IP адресов.


Конечный получатель анонимного потока не обязательно должен быть Tarzan-узлом — выход во внешний мир осуществляется с помощью PNAT (см. ниже). Авторы Tarzan утверждают, что их сеть способна противостоять глобальному наблюдателю. Достигается это благодаря разновидности покрывающего трафика, которая называется “mimic traffic”. Чтобы фальшивый трафик не сильно перегружал сеть, каждый Tarzan-узел устанавливает фальшивое соединение только с несколькими другими узлами.


Вот как это работает: когда узел подключается к сети, после получения списка всех других Tarzan-узлов, он выбирает некоторых из них для имитирования трафика (формирует список имитаторов). Один из этих отобранных узлов будет использован в дальнейшем, когда потребуется анонимное соединение, в качестве следующего передаточного узла.


Например, Tarzan-узел a хочет установить анонимное соединение с веб-сервером srv. При этом узел a хочет что бы длинна тоннеля была равной l+1, где l — это количество узлов в туннеле. Тогда a выполняет следующие действия:

  1. a выбирает первый передаточный узел n1 из числа своих имитаторов
  2. a запрашивает у n1 список его имитаторов ln1
  3. a выбирает второй передаточный узел n2 из списка ln1
  4. a запрашивает у n2 список его имитаторов ln2. Запрос идет через n1, при этом n1 не знает что именно он передает.
  5. a выбирает третий передаточный узел n3 из списка ln2
  6. Таким образом a наращивает туннель пока в нем не будет l узлов
  7. В конце, a случайным образом выбирает последний узел из числа всех узлов сети. Этот последний узел в Tor называется выходным узлом (exit node), а в Tarzan — PNAT.

В итоге получается такой путь: a -> n1 -> n2 -> ... -> nl -> PNAT -> svr
Важно что PNAT выбирается из всех узлов, а не только из числа имитаторов узла nl. На рисунке 2 изображена сеть Tarzan и созданный туннель. В примере каждый Tarzan-узел имеет 6 имитаторов.


 (52 Кб)

Рисунок 2. Архитектура Tarzan, основанная на имитаторах

2.3 MorphMix

Примечание переводчиков:
При переводе мы столкнулись с некоторыми противоречиями в описании работы MorphMix. Мы попытались нивелировать их с помощью вольного не дословного перевода, который дает достаточное в данном контексте представление о работе сети, однако не может претендовать на 100% точность. Поэтому, если вам нужна точная информация о работе MorphMix обращайтесь к соответствующим документам

MorphMix (Rennhard & Plattner 2002, Rennhard & Plattner 2004) это еще одна система анонимной связи с малыми задержками. MorphMix следует peer-to-peer архитектуре. Как и Tor, MorphMix использует цепочки передаточных узлов фиксированной длины и послойное шифрование (каждый узел может развернуть только свой слой). Как и в Tor, в MorphMix нет покрывающего трафика (cover traffic) — считается что он малоэффективен.


Разработчики MorphMix используют следующую терминологию:
цепочка передаточных узлов — анонимный туннель (anonymous tunnel)
первый узел — инициатор (initiator)
последний узел — последний узел (final node)
узлы между первым и последним узлом — промежуточные узлы (intermediate nodes)


В отличии от Tor и Tarzan, где узлы для организации туннеля назначает инициатор, в MorphMix каждый промежуточный узел сам выбирает своего преемника. Что бы подтвердить что выбор следующего узла происходит честно предусмотрен механизм свидетелей. Свидетелем может быть любой узел сети.


Когда узел-инициатор a хочет организовать анонимный туннель, он выбирает первый промежуточный узел b и свидетеля w из списка своих соседей. Свидетель w выступает в роли третьей доверенной стороны в процессе выбора следующего после b узла туннеля — назовем его c. w позволяет инициатору a установить общий ключ с узлом c через b, не раскрывая при этом ключевой материал узлу b.


На рисунке 3 (из работы Rennhard & Plattner 2002) показано как в MorphMix происходит процесс выбора следующего узла туннеля с помощью свидетеля. Предполагается что соединение между a и b уже установлено.


 (44 Кб)

Рисунок 3. Процесс выбора следующего (после b) узла туннеля в MorphMix.

1. a выбирает свидетеля w из числа известных ему узлов. Затем он генерирует половину ключевой информации DHa, добавляет к ней значение текущего времени (nonce1) и шифрует все это на публичном ключе w{nonce1, DHa} PuKw. Отметим, что указание текущего времени nonce1 используется для предотвращения атак повторной отправкой (replay attack). s — указывает b сколько узлов он должен отобрать (из этих узлов будет выбран следующий узел для туннеля). b не получает ни каких сведений о ключевой информации DHa, т.к. она зашифрована на публичном ключе w.


2. После того как b получил сообщение, он пересылает DHa (в составе зашифрованного послания {nonce1, DHa} PuKw) свидетелю w вместе с отобранными узлами и их публичными ключами ({ipc, PuKc, ipd, PuKd, ipe, PuKe}).


3. w выполняет два действия. Первое: он расшифровывает {nonce1, DHa} PuKw, что бы получить DHa. Затем w случайным образом выбирает следующий узел туннеля c. Далее w отправляет DHa и информацию о узле b и его публичный ключ {ipb, PuKb} узлу с.


4. Если с соглашается стать следующим узлом туннеля, он отправляет w сообщение “Ok”.


5. w подписывает список отобранных b узлом вместе с nonce1, при этом выбранный узел c указывается первым после nonce1. И отправляет b.


6. b получает сообщение от w. Он узнает что следующим узлом в туннеле должен быть с. Он генерирует идентификатор id анонимного соединения между b и c. Затем он отсылает id и новое значение текущего времени nonce2 узлу c.


7. В ответ c генерирует и отправляет b свою половину ключевой информации DHс вместе с указанием id.


8. b отправляет a DHс и список отобранных узлов с подписью свидетеля w.


В MorphMix узлы не обязательно должны знать обо всех других узлах сети.


3 Малозатратная атака на анонимную систему с малыми задержками

Примечание переводчиков:
8“Малозатратная атака” в данной контексте имя собственное.

В этом разделе мы рассмотрим Малозатратную атаку (Low cost attack)8 на Tor, описанную в (Murdoch & Danezis 2005). Термин Малозатратная атака означает что для успеха нападающему достаточно иметь возможность наблюдать только за частью сети, например быть одним из Tor-узлов. Мёрдоч и Данезис показали уязвимость Tor для некоторого варианта timing-атаки, не выходящей за рамки модели угроз. Они опровергли утверждение о то, что анонимность в Tor не может быть нарушена без помощи глобального пассивного наблюдателя.


Основная идея — использовать казалось бы неизбежное ограничение всех анонимизирующих систем с малыми задержками — время. Цель атаки определить какие именно узлы сейчас используются для организации Tor-цепочек. В случае успеха, это сильно ударит по анонимизирующим свойствам Tor. Авторы подтверждают теоретические выкладки результатами реальных экспериментов. А в конце делают вывод, что их атаке подвержены все анонимизирующие сети с малыми задержками, в том числе Tarzan и MorphMix.

Идея атаки

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


Действительно, нападающий не видит всех связей в сети. Но ни что не мешает ему выступить в качестве одного из узлов Tor и замерить задержки между собой и всеми другими узлами. С помощью знания этих задержек можно косвенно оценить объем трафика который передает каждый узел в каждый момент времени. Далее, зная картину распределения объема трафика от времени для всех улов сети, можно, используя технику (Danezis 2004), строить достаточно хорошие догадки о том какие узлы передают трафик с одинаковыми характеристиками. Другими словами выявить анонимизирующие цепочки.


Архитектура Tor способствует атаке. Tor-узел выделяет каждому соединению отдельный буфер, обработка буферов идет в режиме round robin fashion#. Если в буфере нет потока — он игнорируется, начинается обработка следующего буфера. Отметим, что по соображениям производительности смешивание было удалено. Таком образом,

  • когда устанавливается новое соединение;
  • или удаляется существующее соединение;
  • или когда меняется трафик в текущем соединении

изменяется нагрузка (объем передаваемого трафика) на Tor-узел. Это отражается на скорости ответов другим узлам которые уже имеют или только хотят установить соединение с текущим. По этим же самым причинам меняется нагрузка и на других Tor-узлах. Получается, что изменение нагрузки трафика на Tor-узле отражается на нагрузке соединенных с ним узлов. Следовательно, узлы в одной цепочке будут иметь похожие картины распределения нагрузки от времени. Отметим, изменение нагрузки трафика может возникать не только вышеописанным образом, но и из-за внутренних причин Tor-узла, например нагрузки на CPU — такие задержки не учитываются и могут снизить эффективность атаки.

Участники атаки

Для успешной атаки, нападающему достаточно быть одним из клиентов сети Tor. Такой узел называется вредоносным (corrupt node) или зондом (probe node).

Модель атаки

Основные этапы атаки:

  • Вредоносный Tor-узел устанавливает соединения с другими Tor-узлами для измерения задержек этих связей.
  • Вредоносный Tor-узел в течении некоторого времени наблюдает за задержками во всех этих соединениях.
  • Замеры задержек используются для оценки объемов трафиков передаваемых каждым Tor- узлом (нагрузок трафика на Tor-узпы), с которыми вредоносный узел имеет соединение.
  • На основе знания объемов трафиков, выводятся паттерны трафиков.
  • Когда нападающий знает паттерны трафиков всех узлов, он может выполнить атаку (Danezis 2004, Levine et al. 2004).

Атака будет еще более эффективной если нападающий контролирует сервер к которому подключается пользователь Tor. Так как в этом случае не нужно выявлять паттерн трафика — нападающий сам может видоизменять трафик так, чтобы его легко было обнаружить. Цель атаки: обнаружить путь между клиентским узлом жертвы и захваченным сервером. Это снизит анонимизирующую способность системы до уровня обычной proxy. В итоге, авторы делают вывод, что атака будет эффективна для всех анонимизирующих систем систем с малыми задержками, включая Tarzan и MorphMix.


В следующем разделе мы проверим это заявление и покажем что оно верно только при выполнении некоторых условии. На рисунке 5 показана модель атаки, а в таблице 6 приведен её алгоритм.


 (70 Кб)

Рисунок 4. Модель малозатратной timing-атаки на Tor.

 (44 Кб)

Рисунок 5. Алгоритм малозатратной атаки.

4 Анализ эффективности малозатратной timing-атаки на Tarzan и Morphmix

Для проверки на Tarzan и MorphMix мы взяли ту же модель атаки которая использовалась в Tor. Нападающему нужно две вещи: вредоносный узел и вредоносный сервер. В качестве вредоносного узла в обоих в сетях (Tarzan и MorphMix) будет выступать отправитель. В терминологии Tarzan он называется Tarzan-клиент, в MorphMix — узел-инициатор.


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


Таким образом, для успешной атаки должны быть выполнены следующие условия:

  • Задержки наблюдаемые вредоносным узлом действительно должны отражать нагрузку других узлов.
  • Вредоносный узел должен иметь возможность получить информацию обо всех других узлах сети.
  • Вредоносный узел должен иметь возможность установить прямое соединение со всеми другими узлами.

Tor подвержен атаке, потому что его архитектура удовлетворяет этим требованиям. Во-первых, разработчики Tor удалили операции смешивания и покрывающий трафик, поэтому временнЫе характеристики потоков сохраняются на протяжении всей цепочки. Это подтвердили эксперименты (Murdoch & Danezis 2005). Во-вторых, в Tor предусмотрена служба directory service с помощью которой Tor-клиент может получить список всех узлов (Tor-серверов) сети. В-третьих, ничего не мешает Tor-клиенту установить соединение со всеми Tor-серверами.

4.1 Малозатратная атака в Tarzan

Проверим выполняются ли в Tarzan перечисленные выше условия.

Задержки

Между Tarzan и Tor есть два основных отличия влияющих на возникающие в сетях задержки. Во-первых, Tor обрабатывает очереди в режиме round-robin fashion. Во-вторых, в Tor нет смешивания и покрывающего трафика (cover traffic). В Tarzan дела обстоят иначе. Tarzan предусматривает механизм имитаторов. Благодаря которому активность исходящих из узла связей сопоставима с активностью входящих. Если какая-нибудь связь недостаточно активна, Tarzan добавляет фальшивый трафик. Кроме того, перед отправкой, Tarzan-узел производит некоторые операции смешивания над всеми исходящими потоками.


Таким образом вопрос заключается в том, может ли механизм имитаторов уничтожить timing-характеристики передаваемых потоков. Единственный путь проверить — это провести эксперимент аналогичный тому который устроили в Tor. К сожалению, у нас нет испытательного стенда механизма имитаторов. Оставим этот вопрос открытым и будем считать что timing-характеристики не уничтожаются. Таким образом, мы по прежнему считаем что атака на Tor эффективна и для Tarzan.

Возможность получить информацию обо всех узлах сети

Для поиска других узлов сети Tarzan-узел использует механизм основанный на протоколе сплетен (gossip-protocol). Т.е. каждый Tarzan-узел теоретически может получить информацию обо всех других узлах сети. Но задача может быть трудно выполнима из-за того что Tarzan — это peer-to-peer сеть и количество узлов может быть очень большим и постоянно меняться. Таким образом, кажется сомнительным что вредоносный узел сможет оценить задержки всех других узлов сети. Однако, т.к. теоретическая возможность есть, будем считать что условие выполняется.

Возможность установить прямое соединение с другими узлами сети

Если, после получения списка всех других узлов сети, у вредоносного узла есть возможность установить прямое соединение с каждым из них — значит третье условие выполняется. В отличии от Tor, Tarzan позволяет передавать трафик только через мимики. Таким образом, если узел не входит в число мимиков вредоносного узла, то вредоносный узел не сможет установить с ним прямое соединение. Если соединение требует посредников, то вредоносный узел не может корректно замерить задержки. Т.к. замеры могут зависеть от задержек создаваемых промежуточными узлами. Таким образом, все выглядит так что малозатратная атака не применима к Tarzan. Тем не менее, это не так. В Tarzan есть PNAT – последний узел в туннеле, через который соединение выходит во внешний мир. В отличии от других промежуточных узлов в туннеле, когда выбор каждого следующего узла ограничен списком мимиков, PNAT-ом может быть назначен любой узел сети. Таки образом, у вредоносный узла есть возможность установить прямое соединение без посредников с любым узлом — механизм мимиков не решает проблемы.


Подведем итог. Малозатратная атака применима к Tarzan, т.к. механизм мимиков не разрушает timing-характеристики потоков, и PNAT может быть выбран из числа всех узлов сети, а не только из мимиков.

4.2 Малозатратная атака в MorphMix

Главное отличие между MorphMox и Tor состоит в архитектуре сети и том как происходит выбор передаточных узлов туннеля и выходного узла. MorphMix следует peer-to-peer архитектуре, а в Tor, в качестве передаточных узлов, используются выделенные сервера. В Tor, Tor-клиент самостоятельно выбирает все узлы для организации анонимного тоннеля. В MorphMix в формировании туннеля участвуют все промежуточные узлы. В Tor есть выходной узел (exit node), в MorphMix нет. Проверим применимость малозатратной атаки на MorphMix с помощью тех же трех критериев.

Задержки

После установления туннеля, узлы MorphMix и Tor работают одинаково. У обоих нет покрывающего трафика. Таким образом, в этом разрезе, атака может быть применена к MorphMix.

Возможность получить информацию обо всех узлах сети

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


Суть вот в чем. Для осуществлении атаки, вредоносному узлу нужно получить список всех узлов сети. Это не тривиальная задача, потому что получить информацию о других узлах можно только с помощью механизма создания туннеля. Для успешной атаки требуется более эффективный механизм поиска – иначе определение списка всех узлов сети получается очень накладным. Т.е. “малозатратная” атака становится “дорогой”. Кроме того, к моменту построения списка он скорее всего устареет, т.к. состав peer-to-peer сети очень нестабилен. Кроме того, так как MorphMix-узлы не знают всех других узлов сети, нет ни какой гарантии что между всеми узлами может быть установлена связь (не важно прямая или нет). Таким образом, атака не выполнима.

Возможность установить прямое соединение с другими узлами сети

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


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

5 Принципы построения безопасных систем с малыми задержками

Для успешной малозатратной атаки должны выполнятся два основных условия. Первое, вредоносный узел должен знать все другие узлы сети. Без этого рассматриваемая атака невозможна. Второе, возникающие задержки должны характеризовать объем передаваемого узлом трафика.


Исходя из результатов исследования, мы сделали следующие выводы. Малозатратная атака может быть устранена одним из двух способов:

  1. Сделать невозможным получение информации обо всех узлах сети.
  2. Добавить покрывающий трафик (cover traffic) таким образом чтобы характерные особенности отдельных потоков были нивелированы.

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


Отметим, что все на что опираются в своей работе Мердоч и Данезис (Murdoch & Danezis 2005) рушится при использовании второго способа. Однако, как они отметили, определить нужный объем покрывающего трафика — это трудная задача. Не важно, в любом случае, атаку можно предотвратить с помощью первого способа.

Дальнейшее обсуждение

Использование второго способа может значительно повысить анонимность, которую обеспечивает сеть, но для систем с малы задержками его сложно применить.
Это связано с основным требованием к системе — минимизировать задержки. Уменьшение задержек до приемлемого уровня приводит к тому, что передаточный узел не может перемешивать или делать свои входящие и исходящие потоки неразличимыми. Это дает нападающему зацепку, чтобы в конце концов сломать анонимность создаваемую системой. Однако, использование в анонимизирущем туннеле нескольких передаточных узлов значительно усложняет атаку, и приводит к тому что нападающий должен иметь возможность контролировать все узлы сети или все связи между узлами. Т.е. быть “глобальным наблюдателем”.


Разработать анонимизирующую систему

  • способную противостоять глобальному наблюдателю
  • и при этом минимизирующую задержки до приемлемого уровня

достаточно трудно. К счастью, стать глобальным наблюдателем в Интернет еще сложнее. Поэтому считается, что при создании анонимизирущих систем, достаточно следовать более слабой модели угроз, в которую не входит глобальный наблюдатель. В этой слабой модели нападающей может предпринимать некоторые активные и пассивные действия, например наблюдать часть трафика сети или создавать/ изменять/удалять трафик или управлять несколькими промежуточными узлами; но у него нет возможности наблюдать все связи в сети.


Системы, подобные Tor, утверждают что они способны противостоять описанному выше нападающему. Однако, они не предусмотрели вариант атаки которую можно провести и без глобального наблюдателя. Стремясь соответствовать временнЫм ограничениям и отказываясь от покрывающего трафика, Tor стал уязвим перед малозатратной атакой, которая укладывается в используемую слабую модель угроз. Эта модель должна быть расширена.


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


Следовательно, если при разработке анонимизирущей системы используется слабая модель угроз, нужно это учитывать. Каждый узел должен иметь возможность получить список только своих соседей, но не список всех узлов сети.


Исходя из вышесказанного, приходим к выводу что для анонимизирующих систем лучше использовать peer-to-peer архитектуру, а не выделенные сервера. Это связано с тем что в peer-to-peer сетях большое количество узлов. Даже если нападающему удастся получить список всех узлов сети, он скорее всего будет уже устаревшим, т.к. трудно обнаружить все узлы за короткое время.


6 Заключение

В данной статье мы исследовали одну из атак на анонимные сети связи с малыми задержками, которая называется малозатратная атака анализа трафика. Эта атака очень важна, потому что ей подвержены системы подобные Tor, системы при разработке которых основывались на слабой модели угроз. Мы показали в каких случаях атака не будет работать. Так же, мы выявили несколько важных свойств которыми должна обладать система чтобы противостоять подобным атакам.


 
На страницу: 1, 2, 3, 4, 5, 6 След.
Комментарии [скрыть комментарии/форму]
— Alex_B (26/01/2011 21:35)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143
Сначала a узнаёт список своих соседей и из них выбирает мимиков и n1. Затем a получает от выбранного узла n1 список его мимиков-соседей и строит через него с учётом полученных данных соединение до следующего узла n2. Следующий узел (n2) предоставляет следующий список мимиков из числа своих соседей и отправляет его к a. Сам a дальше из них выбирает n3 и т.д.
Получается, что каждый последующий узел тоннеля знает всю цепочку от себя и до последнего узла пред PNAT.

Вот как это происходит:

Выбор узла n3
что бы получить у узла n2 список его имитаторов (мимиков) a говорит n1 :"Запроси у n2 список его имитаторов и передай мне". Следовательно n1 знает что после него идет узел n2 (пока ничего криминального).
a выбрал узел n3.

Выбор узла n4
Затем a начинает выбирать узел n4. Для получения списка имитаторов узла n3 он говорит узлу n1: "Скажи что бы узел n2 запросил у узла n3 список его имитаторов и передай мне". Следовательно n1 знает узел n2 и теперь еще узнал узел n3 (вот тут криминал: узел должен знать только своего предшественника и последователя).

И таким образом узел n1 узнает всю цепочку до последнего перед PNAT узла nl.
— unknown (27/01/2011 09:43, исправлен 27/01/2011 09:44)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

он говорит узлу n1
Узлу n1 больше ничего говорить не должны, он должен только передавать данные сквозь себя в шифрованном виде. a подаёт на него команду установить соединение с n2 и мимиками, так что (возможно, это не уточнено) n1 даже не знает, какой из мимиков является реальным n2, а все фальшивые соединения управляются a.


В любом случае n2 (для решения задачи неотслеживаемости) должен передавать сведения о мимиках, шифрованные не только ключом n1, но и a, так что n1 ничего расшифровать при передаче списков ни от n2, ни от последующих узлов не должен.


По крайней тот вариант, который вы предложили, действительно заведомо уязвим и поэтому маловероятен.


Это всё общие соображения, на основе краткого описания и того, что читатель уже представляет, как работают подобные сети. Если очень хочется прояснить подробности, то нужно изучать библиографию в конце и читать работу по дизайну сети Tarzan.

— Гость (27/01/2011 10:08)   <#>
unknown, спасибо!
— unknown (27/01/2011 11:01)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Это хорошо, что вам интересно разбираться по существу вопроса, несмотря на предельную краткость описания этих сетей.
— unknown (27/01/2011 16:15, исправлен 27/01/2011 16:16)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Если это так, и "cover traffic" означает "прятать трафик", то как это происходило в первой версии Tor (сейчас эта операция удалена)? И чем "cover traffic" отличается от "mixing traffic"?

Покрывающий трафик (т.е. специально генерируемый и помеченный как пустой, чтобы на другом конце его могли отбросить) vs. смешивание трафика — пакетов от нескольких соединений в одном, так что стороннему наблюдателю не ясна принадлежность пакетов к инициаторам.

— Alex_B (28/01/2011 21:31, исправлен 28/01/2011 21:32)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143

Спасибо – места где упоминается покрывающий трафик поправил.


[20] Вроде бы явное расхождение: сначала говорится что именно узел a выбирает следующий после b узел c (в статье отметка [20]). А потом (при пояснении к рисунку 3) говорится, что узел c выбирает узел-свидетель w.
Но есть еще один момент: если узел c действительно выбирает w, то зачем тогда передавать список узлов, которые выбрал b, узлу a (метка [19]) ?

— unknown (28/01/2011 23:03)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Узел a выбирает свидетеля w и выбирает узел b из списка соседей. Далее, a отправляет сообщения узлу-свидетелю w через b и там эти узлы w и b совместно наращивают цепочкутуннель в той терминологии. Нужно смотреть подробнее пошагово как именно, но противоречий нет. b сам смотрит список доступных ему узлов, сам выбирает из него одного кандидата и посылает его a. w как свидетель наблюдает, заверяет, тоже как-то участвует в этом процессе и мешает атакам подмены ключа.

Вы читали этот раздел? Признаюсь, я переводил не так скрупулёзно и в дефиците времени (за что перевод справедливо поругали), стараясь больше следовать принципу as is, но надеюсь он всё-таки кое-что дополнительно объясняет.

P.S. Ваши вопросы стоят дороже некоторых правильных ответов и знаний!
— Alex_B (29/01/2011 22:06)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143
b сам смотрит список доступных ему узлов, сам выбирает из него одного кандидата и посылает его a.


Небольшое уточнение: b только смотрит список доступных ему узлов, выбор следующего узла делает w :
3. w has two tasks. First, it decrypts {nonce1, DHa} PuKw to get DHa. Then, w selects randomly node c as the next hop. Next, it sends request for next hop to c. This includes b's information {ipb, PuKvvbvvg } together with a'secret to c.


В любом случае, следующий узел после b выбирает не a, и этому противоречит:
To extend the tunnel, a asks b for a selection of nodes that should be used as its next hop. b sends a a set of its recommended nodes chosen from b's neighbors. a then chooses one of them, for example, node c





Вы читали этот раздел? Признаюсь, я переводил не так скрупулёзно и в дефиците времени (за что перевод справедливо поругали), стараясь больше следовать принципу as is, но надеюсь он всё-таки кое-что дополнительно объясняет.
Да, читал, спасибо за перевод. Насчет принципа as is — показательный пример как личные разумения могут перевернуть смысл на 180% :). Так что переводчикам надо быть поосторожней и следовать принципу "не навреди".
Кстати, я набрался наглости и связался с Willy Susilo – так что у нас официальный санкционированный перевод, можно в журналах печатать. Он даже разрешил взять части статьи, изменить их и сделать новую более короткую и более попсовую статью и при этом сослаться на него. Для этого мне пришлось всех "сдать" — не знаю как он проверял, возможно у него есть русскоговорящий знакомый, но только он попросил ссылку на перевод, на проект "openPGP" и на руководителя проекта (надеюсь SATtva не будет против, я дал только общедоступную информацию).
И совсем оффтопик, лишний раз убеждаюсь чем умнее и авторитетнее человек тем приятнее с ним общаться — в каждом письме Dear Alexey, Thank you и т.п. — как будто это ему надо, и это он мне о чем-то просит.
— SATtva (30/01/2011 22:29)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Нисколько, всё ж в свободном доступе.
— Alex_B (31/01/2011 22:49, исправлен 31/01/2011 22:49)   профиль/связь   <#>
комментариев: 143   документов: 31   редакций: 143

[ОФФ]

Насчет принципа as is — показательный пример как личные разумения могут перевернуть смысл на 180% :)

Звучит грубовато, но в данном примере имею ввиду "личные разумения" не автора перевода (т.е. вас), а автора комментария (т.е. меня).
[/ОФФ]

— unknown (01/02/2011 09:40)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
[off]Спасибо, что тогда заметили.[/off]

[22] Low costмалозатратные (слитно), так и перевести.

С протоколом Морфмикса надо разбираться.
— unknown (02/02/2011 10:47)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

successor — это преемник. Или последователь. Или следующий узел сети в конкретном контексте.
— Гость (02/02/2011 14:01)   <#>
successor — это преемник. Или последователь. Или следующий узел сети в конкретном контексте.
Спасибо, поправил опечатку (проверку грамотности сделаю после того как перевод будет окончен).
— unknown (02/02/2011 14:39)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Я честно говоря увяз в разборе Морфмикса и в количестве ваших вопросов/примечаний — предел трудоёмкости разбора превышен. Проще уже сделать свой подстрочный перевод этой главы и сравнить с вашим для поиска расхождений, но это требует большого куска времени.
— Гость (02/02/2011 15:40, исправлен 02/02/2011 16:08)   <#>

В разделе MorphMix на самом деле только один стоящий вопрос – Alex_B (29/01/2011 22:06): упрощенное и подробное описание работы сети немного расходится. (некоторые вопросы/примечания сделаны скорее для самого себя – что бы потом не забыть).


Может стоит написать автору (он вроде не прячется, выходит на связь)?


[Офф]На хабре опубликовал введение[/ОФФ]

На страницу: 1, 2, 3, 4, 5, 6 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3