В условиях анонимности в электронном обществе: Обзор анонимных коммуникационных систем

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:58, 30 ноября 2015.
On Anonymity in an Electronic Society: A Survey of Anonymous Communication Systems
On Anonymity in an Electronic Society A Survey of Anonymous Communication Systems.png
Авторы Mattew Edman, Bülent Yener
Опубликован 2009 г.
Сайт Association for Computing Machinery
Перевели Darina Erendzhenova
Год перевода 2015 г.
Скачать оригинал

Аннотация. За последние два десятилетия наблюдается растущий интерес к методам анонимных коммуникаций в Интернете, как среди академического сообщества, так и среди широкой общественности. В литературе было предложено несколько конструкций системы, некоторые из них были реализованы и используются различными группами (журналистами, работниками в области прав человека, военными и простыми гражданами), чтобы защитить свои данные в Интернете. В данной статье мы рассмотрим предыдущие исследования, проведенные для проектирования, разработки и развертывания систем для обеспечения корпоративного и анонимного общения в Интернете. Мы дадим определения основным понятиям и технологиям в данной области, таким как микс-сети (mix networks), луковая маршрутизация (onion routing) и протокол «обедающих криптографов» (DC-nets). Мы также рассмотрим мощные атаки анализа трафика, которые побудили к изменениям многих из этих анонимных протоколов с момента их появления. Наконец, мы обобщим некоторые из основных открытых проблем в исследовании анонимной коммуникации и обсудим возможные направления будущей работы в этой области.

Ключевые слова: анонимность (anonymity), анонимная коммуникация (anonymous communication), протокол «обедающих криптографов» (DC-nets), миксы (mixes), микс-сети (mix networks), луковая маршрутизация (onion routing), анализ трафика (traffic analysis).

Содержание

Введение

"В Интернете никто не узнает, что на самом деле ты – собака", – говорится в подписи к опубликованной в журнале The New Yorker известной карикатуре [Штейнер, 1993][1]. Эта фраза символизирует представление широкой общественности о том, что Интернет позволяет общаться в относительной безвестности и анонимности. Как раз наоборот, сегодняшняя современная инфраструктура связи действительно способна выявить и записать то, что мы делаем, куда мы идем, и даже иногда то, что мы говорим в Интернете.
Каждый раз, когда мы отправляем письмо, посещаем веб-страницы, или разговариваем с друзьями и семьей, обмениваясь мгновенными сообщениями, мы посылаем пакеты данных через Интернет, которые содержат информацию о том, куда сообщение отправлено, и кто его послал (например, IP-адреса, информация заголовка SMTP, и т.д.). Так как пакеты от источника к месту назначения передаются за несколько шагов, то любой, наблюдающий связь на этом пути, может легко определить, кто с кем общается, на основе информации, содержащейся в каждом пакете. Даже если пакет данных зашифрован, адреса источника и пункта назначения в заголовке IP-пакета все равно видны наблюдателю.
Исследования в области проектирования и построения анонимных систем стремятся построить такую инфраструктуру, работающую поверх существующих интернет-протоколов, что позволит людям общаться друг с другом без обязательного раскрытия своих личных идентификаторов сети, таких как IP-адреса.
Мы можем представить себе множество ситуаций, в которых кому-либо захочется иметь гарантированные конфиденциальность и анонимность общения в Интернете. Правоохранительные органы могут создать анонимный сайт "горячей линии", работающий в режиме онлайн, где люди могут сообщать имеющуюся у них информацию о незаконной деятельности, не опасаясь возмездия или наказания. Государственным спецслужбам, возможно, потребуется следить за известными экстремистскими сайтами, не раскрывая свое присутствие для операторов веб-сайтов. Частные лица захотят иметь возможность свободно просматривать веб-страницы, чтобы рекламодатели не смогли собирать статистические данные об их личных привычках при просмотре и продавать эту личную информацию другим компаниям.
Анонимные сети могут также обеспечить прочную основу цензуроустойчивости для людей, живущих при деспотичных режимах, которые пытаются ограничить свободу граждан сообщать и передавать информацию в сети Интернет. Проектирование цензуроустойчивых систем стало интересной работой, позволившей людям анонимно хранить, публиковать и извлекать данные, делая их устойчивыми к воздействию противника [Уолдман и Мазьер, 2001; Динглдайн и др., 2000; Уолдман и др., 2000; Андерсон, 1996; Кларк и др., 2000][2][3][4][5][6]. Понятия, связанные с проектированием анонимных коммуникационных систем, также применяются в области систем криптографического голосования [Килиан и Сако, 1995; Якобсон и др., 2002; Боне и Голль, 2002][7][8][9], электронной валюты [Камениш и др., 2005][10], анонимных аукционов [Гаркави и др., 1998][11], и анонимных электронных удостоверений [Камениш и Лисянская, 2001; Камениш и др., 2006][12][13].
В данной статье мы рассмотрим предыдущие исследования, проведенные для проектирования, разработки и развертывания систем обеспечения корпоративного и анонимного общения в Интернете. Мы рассмотрим основные технологии в этой области, в том числе микс-сети (mix networks), луковая маршрутизация, и протокол «обедающих криптографов» (DC-nets), а также изменения примитивов, сделанные после введения этих протоколов в эксплуатацию. Мы также обобщим некоторые из мощных атак, которые злоумышленник может провести для выявления закономерностей связи в анонимной сети. Наш обзор завершается обсуждением основных открытых проблем анонимной коммуникации и направлений будущих исследований.

Предпосылки

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

Анонимность и Псевдонимность

Пфитцман и Хансен [2008][14] предложили стандартизировать терминологию, которая используется в литературе по анонимным системам передачи данных. В данном обзоре, в основном, мы будем следовать их определениям. Рассмотрим систему, которая будет множеством участников сети, таких как клиенты, сервера или пиры. Участники обмениваются сообщениями по каналам связи общего пользования (например, Интернет). Заимствуя термины из теории графов, мы иногда будем называть участников в сети узлами, а каналы связи между ними – связями.
Пфитцман и Хансен [2008][14] дали неформальное определение анонимности, как «состояния неидентифицируемости во множестве субъектов, множестве анонимности». Другими словами, множество анонимности – это множество всех возможных участников в системе, которые могут быть отправителями или получателями конкретного сообщения. Мы можем дополнительно уточнить множество анонимности, основываясь на субъектах, выполняющих определенную роль относительно конкретного сообщения. Множество субъектов, которые могли бы быть отправителем конкретного сообщения известно как множество анонимности отправителей и, аналогично, множество субъектов, которые могли бы быть получателем конкретного отправленного сообщения множество анонимности получателей.
В общем, анонимные системы стремятся обеспечить несвязываемость между отправленными сообщениями и их истинными получателями (анонимность получателя), а также между принятыми сообщениями и их истинными отправителями (анонимность отправителя). Пфитцман и Хансен [2008][14] дополнительно определили несвязываемость между отправителями и получателями в анонимной сети как анонимность отношения. Проще говоря, анонимность отношения означает, что противник, наблюдающий за отправителями и получателями в сети, не в состоянии различить, кто с кем общается. В разделе 2.2 мы рассмотрим более подробно типы противников, наблюдающих за сетью.
Обратите внимание, что мы до сих пор не рассматривали несвязываемость между отправителем и отправленными сообщениями, а также между получателями и полученными сообщениями. Интуитивно кажется, что некто, наблюдающий за отправленным или полученным сетевым трафиком в анонимной сети, может легко определить, когда этот субъект отправляет или получает сообщение. Тем не менее, в разделе 5 мы опишем анонимные сети, которые также пытаются скрыть тот факт, что субъект отправил или получил сообщения путем введения дополнительного случайно генерируемого "покрывающего" трафика, предназначенного, чтобы скрыть истинный характер связи между отправителями и получателями. Свойство, при котором отправленные или полученные субъектом сообщения неотличимы от случайного шума, известное как ненаблюдаемость, является более сильным свойством безопасности, чем несвязываемость [Пфитцман и Хансен, 2008][14].
Важно различать анонимность и псевдонимность. Если анонимность означает, что субъекты не могут быть идентифицированы во множестве анонимности, то псевдонимность просто означает, что такие действия, как отправка или получение сообщения, связаны с определенным идентификатором, а не с личностью субъекта. Пфитцман и Хансен [2008][14] также отметили, что псевдоним не обязательно связан только с одним владельцем. Например, несколько различных субъектов могут совместно использовать один псевдоним, известный как групповой псевдоним. В случае группового псевдонима, множество субъектов представлено одним псевдонимом, который может действительно порождать множество анонимности.
Несмотря на то, что анонимность и псевдонимность – два отдельных, но связанных понятия, Голдберг [2000][15] продемонстрировал свою концепцию «Nymity Slider», которая позволяет построить псевдонимность поверх анонимности. Субъект в анонимной сети может просто принять определенный псевдоним, который будет использован, чтобы связать транзакции поверх анонимной сети по этому идентификатору, обеспечивая тем самым псевдонимность, а не анонимность. Обратное, однако, не всегда верно.

Модели противника

Практически во всех исследованиях, связанных с безопасностью, противники чаще всего определяются в соответствии с их целями и сильными сторонами. Раймонд [2000][16] выявил ряд свойств, которые могут быть использованы в сочетании с описанием сильной стороны противника. Мы обобщили и классифицировали эти свойства следующим образом:

  • Активность. Важное свойство противника – является ли противник активным или пассивным. Пассивный противник – это тот, кто способен отслеживать и записывать сетевой трафик, входящий и исходящий от клиентов или серверов в анонимной сети. Пассивный противник также может записывать метаданные о потоках трафика сети, например длины пакетов и время прибытия. Даже обычный пассивный мониторинг трафика может включить в себя мощные статистические атаки, которые будут обсуждаться далее в разделе 6.
    Активный противник имеет не только все возможности пассивного противника для мониторинга, но также в состоянии управлять сетевым трафиком, манипулируя одним или несколькими сетевыми соединениями или влияя на работу узла в анонимной сети. Он может изменить или удалить трафик в некоторых частях сети, а также вставить свой собственный трафик или просмотреть легальный сетевой трафик, который ранее был записан.
  • Видимость. Хоть данное свойство не указано Раймондом [2000][16], видимость противника – это свойство, которое часто рассматривается в литературе при определении модели угроз [O’Коннор, 2005; Ньюман и др., 2003; Данезис и др., 2003; Динглдайн и др., 2004; Райтер и Рубин, 1998][17][18][19][20][21]. Видимость противника определяет, какая часть сети ему или ей доступна для пассивного наблюдения или активных манипуляций. Глобальный противник, как следует из названия, является мощным наблюдателем, который имеет доступ ко всем сетевым соединениям между клиентами и серверами в анонимной сети.
    В отличие от этого, частный противник может следить только за соединениями, входящими и исходящими от конкретного узла в сети, или за небольшим связанным подмножеством узлов в сети. Примером частного противника может быть тот, кто находится в той же локальной сети, что и узел в анонимной сети, или даже обычный интернет-провайдер (ISP) между несколькими узлами сети [Фимстер и Динглдайн, 2004; Мердок и Зелинский, 2007][22][23].
  • Мобильность. Даже если противник не имеет масштабную инфраструктуру, необходимую для мониторинга всех клиентов и серверов в анонимной сети одновременно, он может выбрать, какие подмножества сети он хочет контролировать на основе ранее полученных сведений. Назовем такого противника адаптивным (динамическим). Например, правительство может вызвать в суд несколько провайдеров, находящихся под его юрисдикцией для контролирования сетевого трафика на некоторых серверах в анонимной сети. Тогда на основе изучения информации о сетевых маршрутах, полученных из первой повестки в суд, адаптивный противник может выбрать для наблюдения другое, возможно пересекающееся, подмножество серверов.
    В отличие от этого, статический противник может поставить под угрозу или наблюдать за некоторым подмножеством сети, но не может изменить подмножество, за которым он наблюдает. Глобальный противник, почти по определению, является статическим противником, так как он имеет общее представление об анонимной сети, он не должен выборочно контролировать меньшую часть сети.
  • Причастность. Раймонд [2000][16] также предложил разделять противников на внутренних и внешних. Внутренний враг – это тот, кто участвует в протоколе анонимной сети в качестве клиента, или, возможно, работает с частью инфраструктуры сети, запустив сервер в сети. Следует отметить, что внутренний противник по определению не всегда является активным противником. Вместо этого, он может просто наблюдать за трафиком, проходящим через его собственный сервер без его активной модификации.
    С другой стороны, внешний враг не принимает участия в анонимной сети или его протоколе. Вместо этого, он ставит под угрозу коммуникационную среду, используемую клиентами (т.е. их сетевые подключения) для того, чтобы наблюдать или манипулировать их сетевым трафиком.

Тип противника, который чаще всего рассматривается в литературе по анонимным системам передачи данных – мощный пассивный глобальный противник. В общей практике безопасности принято, что для защиты системы в худшем случае наличие пассивного глобального противника является обоснованным.
Некоторые исследователи, однако, утверждают, что на практике пассивного глобального противника для больших анонимных сетей, развернутых в сети Интернет, не существует [Ньюман и др., 2003][18]. Географическое разнообразие и разнородность юрисдикций Интернета делает маловероятным, что один объект, или даже несколько объектов, могут контролировать все серверы в широко распределенной анонимной сети. Кроме того, если противник достаточно силен, чтобы контролировать всю сеть, разумно предположить, что противник не в состоянии активно управлять сетевым трафиком. Вместо этого, скорее всего, в реальном мире противник может быть активным противником с частичным представлением сети.

Анонимные системы с большими задержками

Системы анонимной связи часто делят на две основные категории: системы с большими задержками и системы с малыми задержками. Анонимные системы с большой задержкой в состоянии обеспечивают большую анонимность, но, как правило, применяются для неинтерактивных приложений, которые могут допускать задержки в течение нескольких часов или более, таких как электронная почта. Анонимные системы с малыми задержками часто обеспечивают большую производительность и предназначены для приложений в режиме реального времени, в частности, для просмотра веб-страниц. Отсюда следует другое название анонимных систем с большими задержками – системы на базе сообщений, а анонимных систем с малыми задержками – системы на базе соединений [Сержантов и Сьюэлл, 2003][24].

Обзор

Начнем с гипотетической ситуации, чтобы проиллюстрировать основной подход к анонимной почте. Представьте, что Алиса – корпоративный информатор, который хочет отправить письмо в The New York Times, выявляющее ряд проступков, но по-прежнему хочет остаться неизвестным из-за страха потерять работу. Подобно IP-адресам, с помощью которых можно выявить, кто послал конкретный пакет, почтовые марки на конверте дадут получателю информацию о том, откуда письмо было отправлено, если написать и опустить это письмо в почтовый ящик местного отделения.
Вместо этого, Алиса вкладывает конверт, адресованный The New York Times в другой конверт, адресованный третьему лицу по имени Чарли. Этот внешний конверт помещается внутри еще одного конверта, адресованный другому человеку Бобу. Затем Алиса опускает многократно вложенное письмо в местный почтовый ящик. Когда Боб получает конверт, он открывает его и находит другой конверт, адресованный Чарли. Признав, что конверт адресован не ему, Боб бросает его в свой местный почтовый ящик. Точно так же, когда Чарли получает и открывает конверт, адресованный ему, он находит другой, адресованный The New York Times, и затем отправляет его туда.
Так как конверт, полученный в The New York Times, пришел от почтового отделения Чарли, то он не дает никакой информации о местонахождении Алисы. Конверт, полученный Бобом, может быть использован для идентификации Алисы, но Боб знает только следующий шаг на пути, а не содержание письма или его назначение. Только если все люди на пути письма будут сотрудничать, они смогут определить Алису как отправителя письма.
Очевидно, что есть еще ряд подходов для идентификации отправителя оригинального письма, такие как ДНК-анализ материала, оставшегося на письме или конверте, анализ почерка, или лингвистический анализ содержимого письма – интересная область исследования, известная как стилометрия. Любой получатель, встретившийся на пути письма, мог также открыть все конверты и прочитать содержимое сообщения.
Тем не менее, основная идея пересылки сообщения через нескольких посредников лежит в основе многих современных анонимных систем связи, и криптография дает нам инструменты, необходимые для предотвращения «вскрытия» письма посредниками на пути. Стоит отметить, что в настоящее время системы анонимности и псевдонимности не обязательно защитят от языковой или стилометрической связи открытых (незашифрованных) сообщений, написанных тем же автором [Рао и Рохатги, 2000][25].

Миксы и микс-сети

Микс

Основой практически всех современных анонимных коммуникационных систем с большими задержками является микс – понятие, введенное Чаумом [1981][26]. На высоком уровне, микс представляет собой процесс, который принимает зашифрованные сообщения в качестве входа, группирует несколько сообщений в пакет, а затем расшифровывает и передает все или некоторые из сообщений в пакете.
Точнее, микс сначала генерирует пару ключей, открытый и закрытый, и делает открытую составляющую, известную для клиентов, которые хотят передавать сообщения через микс. Пусть означает шифрование сообщения с помощью открытого ключа микса , а также пусть обозначает расшифровку зашифрованного текста соответствующим закрытым ключом микса . Кроме того, пусть представляет личность или адрес микса (например, IP-адрес).
Рассмотрим отправителя, Алису, которая хочет анонимно отправить сообщение получателю Бобу, с помощью простого микса . В первоначальном варианте Чаума [1981][26], Алиса должна вычислить , где – строка случайных битов, а – адрес Боба. Затем она передает полученный зашифрованный текст в микс, который может использовать свой закрытый ключ для извлечения сообщения и адреса . просто отбрасывается, но входит в шифр, чтобы предотвратить определение противником двух идентичных сообщений, зашифрованных под тем же асимметричным ключом. Более сложные подходы к вероятностному шифрованию, как RSA-OAEP, были изобретены позднее [Гольдвассер и Микали, 1984; Беллар и Рогвей, 1994][27][28].
Микс собирает сообщения в пакет, до тех пор пока не получит «достаточное количество» (мы подробно остановимся на этом в следующем разделе), а затем пересылает каждый по адресу назначения, извлеченному из расшифрованного входного сообщения. Первоначальный вариант Чаума [1981][26] должен был выводить сообщения в лексикографическом порядке, хотя более поздние схемы выводили сообщения в случайном порядке [Мюллер и др., 2003; Данезис и др., 2003][29][19].
Если Алиса знает открытый ключ Боба (возможно, узнала вне канала или от сервера с открытым ключом), она также может сначала зашифровать исходное сообщение с помощью открытого ключа Боба, чтобы микс не смог прочесть открытое сообщение. Если Алиса и Боб хотят проверить подлинность друг друга по анонимному каналу, то они оба должны обменяться и проверить друг у друга открытые ключи до общения по каналу.
Мы можем более кратко представить вышеописанную ситуацию, используя следующее обозначение, где то, что слева находится от стрелки, обозначает вход микса, оператор представляет собой обработку, которую осуществляет микс , а то, что находится справа от стрелки, указывает на выход микса:

.

Наблюдатель, который может только контролировать сообщения, входящие и выходящие из микса, не может соотнести входы и выходы на основе битов сообщений, так как микс криптографически преобразует каждое сообщение. Кроме того, сообщения задерживаются, группируются и переупорядочиваются таким образом, чтобы наблюдатель не смог связать сообщения, основываясь на времени их прибытия и отправления. Только сам микс знает, какие входные сообщения соответствуют исходящим сообщениям; однако, отправители должны доверять миксу в том, что он не раскроет другим способ переупорядочивания сообщений.
Во времена публикации основополагающей работы Чаума [1981][26] криптосистемы с открытым ключом, как RSA, были еще относительно новым явлением в научных исследованиях [Ривест и др., 1983][30]. Следовательно, конструкция Чаума использовала RSA напрямую, которая позднее продемонстрировала восприимчивость к атаке маркировки, что позволяет противнику изменить зашифрованное входное сообщение, а затем определить соответствующее исходящее сообщение [Пфитцман и Пфитцман, 1990][31]. Более поздние схемы используют схему гибридного шифрования, в которой RSA используется только для шифрования симметричного ключа, а симметричный ключ используется для шифрования оставшейся части сообщения [Мюллер и др., 2003; Данезис и др., 2003][29][19].

Микс-сети

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

.

Как и раньше, в случае одного микса, наблюдатель, который следит за входами и выходами любого микса, не в состоянии связать входные сообщения микса с его выходами. Кроме того, каждый микс на пути сообщения знает только, что было перед ним и после него в пути. Таким образом, ни один оператор микса не может скомпрометировать анонимность сообщений, отправленных через его микс.
Для того чтобы длина сообщений не способствовала утечке информации о том, через сколько миксов сообщение уже прошло, миксы могут заполнять сообщения до фиксированной длины перед их передачей. После удаления заголовка сообщения, микс просто генерирует блок равномерно распределенных случайных битов, неотличимый от зашифрованной полезной информации, и добавляет его к сообщению. На последнем этапе в пути случайно сгенерированное заполнение просто отделяется от полученного расшифрованного сообщения, и конечному получателю отправляется исходное сообщение.
Предметом некоторых дебатов в литературе стал вопрос о том, как лучше выбрать последовательность миксов в качестве пути сообщения [Бертольд и др., 2000; Динглдайн и др., 2004][32][33]. Как правило, рассматриваются две главные стратегии выбора пути: свободные маршруты и каскады миксов. Топология свободного маршрута, как следует из названия, означает, что клиенты могут выбрать любую упорядоченную последовательность миксов в сети в качестве пути их сообщения. В топологии каскада существует один или несколько предопределенных маршрутов, через которые передается весь трафик клиента.
Представим также несколько вариантов, основанных на этих общих подходах. Например, в 1996 году[34] была разработана микс-система под названием Babel, которая использовала топологию свободного маршрута, но также позволяла отправлять сообщения по "обходному пути", указанному клиентом. Любой микс на пути сообщения может повторно зашифровать это сообщение и отправить его через серию миксов, изначально не указанных клиентом, прежде чем вернуться к своему изначальному пути. Данезис [2003][35] также предложил другую топологию микс-сети на основе расширяющих графов (экспандеров).
Бертольд и др.[2000][32] утверждали, что каскадная сеть обеспечивает большую анонимность, чем свободно-маршрутизируемая сеть, когда противник ставит под угрозу большое количество миксов в сети. Они представили несколько атак, которые продемонстрировали, как противник, который контролирует все кроме одного микса в сети свободных маршрутов, может использовать свои знания о том, через сколько миксов прошло сообщение, для того чтобы разделить сообщения на меньшие множества анонимности, тем самым уменьшая их анонимность.
Динглдайн и др. [2004][33] возразили, что безопасность каскадов миксов на самом деле не результат конкретной топологии, но скорее связана с тем, что сообщения попадают в сеть и проходят через сеть по строгой системе (синхронный пакетный режим). Затем авторы показали, что сети свободных маршрутов могут фактически обеспечить большую анонимность, чем каскады при использовании синхронного пакетного режима. Кроме того, сети свободных маршрутов могут обеспечить лучшую устойчивость в случае отказа узла, в то время как отказ микса в каскаде разорвет все связи в этом каскаде. В сети свободных маршрутов клиенты могут просто перенаправить свой трафик в обход отказавшего узла.

Флашинг-алгоритмы

При введении понятий микс и микс-сети, мы намеренно оставили неопределенным, как миксу решить, когда отправить пакет сообщений, которые они собрали. Алгоритм, который использует микс, чтобы определить какие сообщения направить в следующий пункт назначения и когда это сделать, часто называют флашинг-алгоритмом (flushing algorithm) [Сержантов и др., 2002][36]. Флашинг-алгоритмы иногда также называют алгоритмами группировки (batching strategies) [Диаз и Сержантов, 2003][37].
Существуют многочисленные флашинг-алгоритмы, описанные в литературе, а также простые, но эффективные активные атаки против них, которые мы рассмотрим ниже.

Миксы с определенным количеством пересылаемых сообщений

Классические миксы, первоначально определенные Чаумом [1981][26], известны как миксы с определенным количеством пересылаемых сообщений (threshold mixes). Суть заключается в том, что микс просто собирает входящие зашифрованные сообщения до тех пор, пока не получит сообщений, где – параметр, определяемый системой или оператором микса. После получения сообщений, микс затем расшифровывает эти сообщения и пересылает их в следующий пункт назначения в случайном порядке.
Данный микс является простым флашинг-алгоритмом, но он подвержен активной атаке, которая называется атакой, или атакой переполнения (флуд) [Сержантов и др., 2002][36]. В атаке злоумышленник задерживает законное сообщение на входе в микс. Затем он генерирует и посылает свои собственные "фиктивные сообщения" в микс, пока тот не будет переполнен. Фиктивные сообщения генерируются таким образом, что никто не сможет их отличить от законных сообщений, кроме атакующего. Наконец, злоумышленник пропускает сообщение в микс и посылает много фиктивных сообщений, пока микс снова не заполнится. Так как злоумышленник сам сгенерировал фиктивные сообщения, то он может легко определить, какие из расшифрованных исходящих из микса сообщений являются его сообщениями. Таким образом, единственное, исходящее из микса сообщение, которое не является одним из его собственных фиктивных сообщений, соответствует входному сообщению .

Миксы с определенным значением времени пересылки

Вместо того чтобы собирать определенное количество сообщений, как в предыдущем варианте, микс с фиксированным значением времени пересылки (timed mix) собирает сообщения за определенное время [Сержантов и др., 2002][36]. После прошедших секунд, микс расшифровывает все сообщения, которые он получил, а затем пересылает их в следующий пункт назначения в случайном порядке.
Данный вид миксов подвержен активной атаке, которая похожа на атаку. В атаке просачивания (trickle attack), активный противник задерживает все сообщения на входе в микс в течение секунд, и микс заполняется. Затем злоумышленник пропускает одно конкретное сообщение в микс, но при этом продолжает блокировать поступление в микс других сообщений. Когда микс снова заполнен, будет только одно исходящее сообщение, соответствующее .
Атака и атака просачивания часто называются атаками смешивания (blending attacks) [О'Коннор, 2005; Сержантов и др., 2002; Диаз и Пренил, 2004][17][36][38].

Миксы с определенным количеством пересылаемых сообщений и/или значением времени пересылки

Мы можем также рассмотреть сочетание двух предыдущих флашинг-алгоритмов. Threshold-or-timed микс собирает сообщения, пока он либо не получит сообщений, либо, если второй вариант наступит раньше, до тех пор, пока не пройдут секунд, с тех пор как микс в последний раз был заполнен. Также threshold-and-timed микс собирает сообщения, пока не истекут секунд, и при этом он собрал, по крайней мере, сообщений. В обоих алгоритмах все собранные сообщения будут сбрасываться в конце каждого раунда [Сержантов и др., 2002][36].
Данные флашинг-алгоритмы не уменьшает возможность атаки или атаки просачивания. Вместо этого, противник просто объединяет два типа атак: заполняет микс фиктивными сообщениями, а затем ждет секунд до сброса сообщений.

Миксы на основе пулов

Вместо того чтобы сбрасывать все сообщения, собранные в ходе предыдущего раунда, миксы на основе пулов (pool mixes) выбирают произвольное подмножество собранных сообщений, предназначенные для сброса, а затем удерживают в миксе до следующего раунда [Сержантов и др., 2002; Диаз и Сержантов, 2003; Сержантов и Ньюман, 2003][36][37][39]. Множество сообщений, удерживаемых в миксе, называют пулом. Когда микс запускается в первый раз, пул инициализируется фиктивными сообщениями, которые неотличимы от реальных сообщений.
Простейший тип микса на основе пулов просто сохраняет постоянное количество сообщений в пуле на каждом раунде, которое мы обозначим как . В случае, когда микс на основе пулов имеет фиксированное количество пересылаемых сообщений (threshold pool mix), микс ждет, пока получит сообщений в дополнение к сообщениям в пуле. Затем случайным образом выбирает сообщений из всех сообщений в миксе, чтобы переотправить их.
Миксы на основе пулов с фиксированным значением времени пересылки (timed pool mixes) работают аналогичным образом, собирая сообщения за секунд и добавляя их в пул. Пусть обозначает число сообщений, полученных миксом за предыдущие секунд. Тогда микс случайным образом выбирает сообщений из пула от общего числа сообщений в миксе, чтобы переслать их.
Вместо того чтобы сохранять постоянное количество сообщений в пуле и пересылать остальные, динамические миксы на основе пулов (dynamic pool mixes) отправляют часть от общего числа сообщений в пул в конце раунда. Если есть сообщений в миксе в конце раунда, микс случайным образом выбирает сообщений для пересылки [Сержантов и др., 2002][36]. Остальные остаются в пуле до следующего раунда. В каком-то смысле, простые миксы, описанные в 3.3.1 и 3.3.2, можно также рассматривать как случаи динамического микса на основе пулов, но с и .
Хотя миксы на основе пулов не ликвидируют угрозу атаки и атаки просачивания, они действительно увеличивают усилия, необходимые противнику для проведения успешной атаки. Вместо того чтобы точно идентифицировать целевое сообщение в случае атаки на простой микс, атака становится вероятностной, поскольку сообщение может удерживаться в пуле непредсказуемое количество раундов.
Конечно, вероятность того, что сообщение будет оставаться в пуле раундов подряд, уменьшается, поскольку увеличивается. О'Коннор [2005][17] представил полный анализ количества раундов, необходимых для противника, чтобы провести атаку против данных видов миксов на основе пулов.

Миксы Stop-and-Go

Кесдоган и др. [1998][40] предложили алгоритм, который они назвали миксом Stop-and-Go (SG-mix), иногда также классифицируется как непрерывный микс (continuous mix) [Данезис, 2004][41]. Вместо группирования сообщений в пакеты, SG-миксы задерживают каждое сообщение, проходящее через микс.
Клиент, посылающий сообщение через последовательность из SG-миксов, вычисляет промежуток времени и выбирает случайное время задержки в соответствии с экспоненциальным распределением для каждого микса . Временные отрезки вычисляются так, чтобы , а также . Временное окно и случайная задержка для микса включаются в сообщение, зашифрованное открытым ключом микса.
После расшифровки полученного сообщения, микс может извлечь временное окно и случайную задержку , выбранные отправителем. Если текущее время находится вне заданного временного окна, микс отбрасывает сообщение. Иначе, микс переотправляет сообщение следующему миксу в момент времени .

Миксы с биномиальной функцией распределения вероятности пересылки

Все представленные выше флашинг-алгоритмы выводят определенное количество сообщений, выдающих внутреннее состояние микса и его параметры. Вместо этого микс с биномиальной функцией распределения вероятности пересылки (binomial mix) сбрасывает случайную часть писем, которые он собрал в предыдущих раундах [Диаз и Сержантов, 2003][37].
В конце раунда микса, который длится секунд, данный микс "подбрасывает" смещенную монету с вероятностью пересылки для каждого сообщения, которое в настоящее время находится в миксе, где – общее количество сообщений в миксе, и – смещение монеты, когда микс содержит сообщений. Если результатом подбрасывания монеты стал орел, то сообщение передается к следующему транзитному участку. Иначе, сообщение удерживается в миксе до следующего раунда. Результат этого подхода состоит в том, что фактическое число исходящих сообщений на каждом раунде выбирается в соответствии с биномиальным распределением с математическим ожиданием и дисперсией .
Этот алгоритм также не устраняет возможность активных атак смешивания. Однако Диаз и Сержантов [2003][37] показали, что алгоритм может увеличить количество времени, необходимое противнику для проведения успешной атаки, а также затрат на ресурсы для отправления фиктивных сообщений в микс. Также О'Коннор [2005][17] получил примерное число раундов микса, которое потребуется противнику, чтобы провести атаку.

RGB-миксы

Хотя ни один из флашинг-алгоритмов, предлагаемых на сегодняшний день, полностью не ликвидировали угрозу простой, но эффективной атаки, Данезис и Сэссман [2003][42] предложили метод для обнаружения атаки злоумышленника и сведения к минимуму его негативного воздействия на анонимность законных сообщений. Авторы назвали данную схему RGB-миксом (Red-Green-Black mix, RGB mix).
В RGB-миксах истинные сообщения клиентов, полученные во время раунда микса, считаются черными сообщениями. Так как сообщения зашифрованы, микс не может определить, какая доля полученных сообщений является черными и какие сообщения, генерируемые противником, проводят атаку. Для того чтобы оценить количество законных сообщений, полученных во время раунда, с каждым исходящим пакетом миксы отправляют "пульсирующий" трафик, который называется красными сообщениями. Красный трафик ничем не отличается от черного трафика для внешнего наблюдателя, и "анонимно" отправляется через микс-сеть обратно в микс. Так как красный трафик адресован самому себе, микс может контролировать долю красных сообщений, которые он получает по сравнению с черным трафиком. Если он обнаруживает статистически значимое уменьшение полученного красного трафика, то он делает вывод, что в настоящее время находится под угрозой.
Когда микс обнаруживает атаку, он генерирует дополнительные фиктивные сообщения, которые называются зеленым трафиком, и передает их вместе с каждым пакетом. Зеленые сообщения увеличивают анонимность легитимных черных исходящих сообщений во время каждого раунда, даже если микс находится под угрозой. Кроме того, противник не в состоянии отличить зеленый трафик от легитимного черного трафика, что делает определение целевого сообщения с помощью атаки намного сложнее.

Развернутые системы

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

anon.penet.fi

Одним из первых развернутых ремейлеров был весьма популярный финский сервис обеспечения псевдонимности anon.penet.fi, созданный Йоханом Хельсингиусом 1993 г. [Хелмерс, 1997][43]. Технически сервис был реализован довольно просто. Клиент просто посылает сообщение на сервис, который затем генерирует псевдоним для отправителя, если он еще не существует, и сохраняет соответствие между псевдонимным и реальным адресом электронной почты отправителя в базе данных. Затем сервис зачищает любую идентифицирующую информацию из сообщения и передает его получателю. Если ремейлер получает сообщение, адресованное ранее созданному псевдониму, ремейлер смотрит истинный адрес псевдонима в базе данных, и сообщение может быть доставлено псевдонимному пользователю.
В свое время, anon.penet.fi обрабатывал свыше 10 000 сообщений ежедневно, и база данных псевдонимов содержала более 200 000 записей [Хелмерс, 1997][43]. Очевидно, база данных псевдонимов основана на доверии и может стать вероятной мишенью для атаки. Действительно, Хельсингиус в конце концов подвергся юридическим нападкам со стороны Церкви Саентологии, которая сообщила, что пользователь разместил сообщение в группу новостей, нарушающее их авторские права, и они подали запрос о выдаче идентификационных данных рассматриваемого пользователя [Ньюман, 1996][44]. Впоследствии сервис был закрыт в 1996.

"Шифропанк"

Ремейлеры «Шифропанк», которые иногда называют ремейлерами I-ого типа, первоначально были разработаны Эриком Хьюзом и Холом Финни и основаны на конструкции микса Чаума [1981][26] [Парех, 1996][45]. В отличие от системы anon.penet.fi, система ремейлеров «Шифропанк» состоит из нескольких распределенных серверов. Клиенты выбирают последовательность серверов и подключают заголовок для каждого узла, который определяет следующий сервер, куда должны быть отправлены полезные данные. Каждый узел использует свой закрытый ключ для расшифровки полученного сообщения, удаляет информацию заголовка и отправляет содержимое на следующий сервер.
Однако в отличие от конструкции Чаума [1981][26], ремейлеры I-го типа не добавляют случайное заполнение сообщений после удаления команд управления, содержащихся в зашифрованных для каждого узла заголовках. Таким образом, пассивный противник, наблюдая за сетью, потенциально может связать сообщения, зная, что сообщения уменьшаются в длине при прохождении через сеть. Кроме того, ремейлеры не делают никакого группирования или задерживания сообщений, так что пассивный злоумышленник также может связать сообщения, проходящие через ремейлер, на основе количества входящих и исходящих сообщений.
Ремейлеры I-го типа обеспечивают анонимность ответов с помощью конструкции, которая называется блоками ответа (reply blocks). Блок ответа создается послойно аналогично обычному сообщению. Тогда отправитель может включить в анонимное сообщение блок ответа, чтобы получатель мог использовать этот блок для ответа на анонимное сообщение. Ответ направляется через сеть ремейлера в соответствии с адресом, зашифрованным в блоке ответа обратно отправителю.
Мэтт Гио позже реализовал nym-сервер (nymserver), который упрощал использование блоков ответа [Парех, 1996][45]. Пользователь может анонимно отправить свой блок ответа в nym-сервер через цепочку ремейлеров. Затем nym-сервер выделяет псевдоним для полученного блока ответа и сохраняет их в базе данных. Когда nym-сервер получает сообщение, адресованное псевдонимному адресу, он пересылает сообщение через сеть ремейлера, используя сохраненный блок ответа для данного псевдонима. Мы видим, что nym-сервер работает аналогично anon.penet.fi, но, так как блоки ответа отправляются на nym-сервер анонимно, nym-сервер фактически не отображает псевдоним.

Mixmaster

Mixmaster или ремейлер II-ого типа, несколько улучшил конструкцию по сравнению с ремейлером "Шифропанк", в том числе добавил заполнение и группирование сообщений [Мюллер и др., 2003][29]. Mixmaster использует динамический флашинг-алгоритм на основе пулов с фиксированным значением времени пересылки. Каждые секунд микс случайным образом выбирает

сообщений для пересылки, где – общее число сообщений в миксе, - минимальное количество сообщений, удерживаемых в пуле, и – доля сообщений, пересылаемых на каждом раунде.
Mixmaster дополнительно пытается отразить атаки воспроизведения путем записи идентификаторов пакетов, включенных в заголовок сообщения, зашифрованный для каждого узла. Если микс получает сообщение с ID пакета, который уже обрабатывался, дубликат просто отбрасывается. Однако в отличие от ремейлера «Шифропанк» Mixmaster не включает поддержку анонимных ответов.
По состоянию на декабрь 2007 года, сеть общего пользования Mixmaster имела 24 работающих сервера.

Mixminion

Mixminion, или ремейлер III-его типа, является новейшей конструкцией ремейлера [Данезис и др., 2003][19].
Mixmaster при подходе к обнаружению воспроизведения требовал, чтобы микс хранил список недавно обработанных идентификаторов сообщений. Поскольку миксы имеют ограниченный объем памяти, идентификаторы старых сообщений обязательно удаляются через определенный промежуток времени. Противник может легко воспроизвести сообщение еще раз после того, как ID его сообщения был удален из истории микса. Mixminion также хранит историю недавно обработанных сообщений, но миксы периодически меняют ключ, который клиенты используют для шифрования сообщений. После изменения ключа сообщения, зашифрованные с помощью старого ключа, больше не принимаются и не могут быть воспроизведены. Таким образом, серверы Mixminion только сохраняют хэши ранее обработанных сообщений за относительно короткий промежуток времени.
Конструкция Mixminion является также улучшенной по сравнению с Mixmaster в том, что она включает в себя спецификацию о том, как клиенты могут узнать о ремейлерах в сети Mixminion, в отличие от неформального специального метода MixMaster. Распределенное множество избыточных серверов каталогов (directory servers) предоставляет клиентам информацию о текущих миксах в сети (например, их IP-адреса, информация об открытом ключе и т.д.). Когда клиенты подключаются к сети, они могут извлечь эту информацию с серверов каталогов.
Как ремейлеры «Шифропанк», Mixminion также поддерживает анонимные блоки ответа. В ремейлерах «Шифропанк» и Babel блок ответа может быть использован несколько раз, что может быть использовано активным противником, чтобы выследить предполагаемого получателя через сеть. Противник может послать сообщение с тем же блоком ответа в микс на протяжении нескольких раундов микса и наблюдать за исходящими сообщениями. Следующий узел для этого конкретного блока ответа должен быть на пересечении всех наблюдаемых исходящих пакетов. Повторение этого процесса несколько раз в конечном итоге приведет к тому, что атакующий сможет определить первоначального владельца блока ответа.
Вместо того чтобы позволить одному блоку ответа воспроизводиться несколько раз, в Mixminion блоки ответа являются одноразовыми (single-use reply blocks, SURBs). Поэтому анонимный получатель должен создать новый SURB для каждого ответа, который хочет получить. В отличие от ремейлера 1-го типа, разработчики Mixminion внимательно отнеслись к тому, чтобы ответы были неотличимы от обычных пересылаемых сообщений. Так как ответы, вероятно, будут реже, чем пересылаемые сообщения, разработчику выгодно разделить множество анонимности с типом последнего сообщения.
Несмотря на то, что в Mixminion одноразовые блоки ответа устойчивы к атакам повторного воспроизведения, они все еще подвержены к долгосрочным атакам пересечения (мы опишем данную атаку в разделе 6). Вместо того чтобы полагаться на блоки ответа, система Pynchon Gate [Сэссман и др., 2005][46] предлагает хранить почту, отправленную псевдониму, на nym-сервере. Тогда владелец псевдонима может использовать собственный протокол поиска информации [Чор и др., 1995][47], чтобы извлечь свою почту из nym-сервера.
По состоянию на декабрь 2007 года, сеть общего пользования Mixminion имела 29 работающих серверов.

Анонимные системы с малыми задержками

Флашинг-алгоритмы, используемые системами на основе миксов, описанные выше, могут приводить к большим задержкам порядка нескольких часов или даже дней с момента, когда сообщение было отправлено, и до момента, когда оно пришло получателю. Для таких приложений, как электронная почта, такие задержки являются допустимыми и часто даже ожидаемыми; однако работающие в режиме реального времени приложения, такие как просмотр веб-страниц и SSH, требуют значительно меньшие задержки.
Улучшенная производительность анонимных систем с малыми задержками, однако, может увеличить восприимчивость системы к определенным атакам анализа трафика [Шматиков и Ванг, 2006; Сержантов и Сьюэлл, 2003; Либератор и Левин, 2006][48][24][49]. Мы рассмотрим такие атаки более подробно в разделе 6.

Anonymizer.com

Мы видели в предыдущем разделе, что основным строительным блоком для многих анонимных систем с большими задержками, как правило, является микс. Анонимные системы с малыми задержками, однако, часто основаны на понятии прокси (proxy). В то время как миксы явно группируют и переупорядочивают входящие сообщения, прокси просто пересылают весь входящий трафик (например, соединения TCP) непосредственно без какого-либо переупорядочивания пакетов.
Например, anonymizer.com – это компания, которая предоставляет услуги коммерческого прокси-сервиса. Клиенты платят абонентскую плату, а затем им разрешается передавать их веб-трафик через прокси-серверы, эксплуатируемые компанией. Веб-запросы клиента исходят от серверов anonymizer.com, а не от собственного IP-адреса клиента. Такой подход является простым и эффективным, но требует, чтобы клиенты были уверены, что компания не контролирует их трафик.
В оставшейся части этого раздела мы рассмотрим другие разработки систем, которые стремятся обеспечить надежную анонимность клиентов при сохранении уровня производительности, приемлемого для интерактивных приложений.

Луковая маршрутизация

Возможно, наиболее распространенным в литературе подходом к анонимным коммуникациям с малыми задержками является подход, называемый луковой маршрутизацией (onion routing), первоначально разработанный Гольдшлагом и др. [1996][50]. В отличие от Crowds (см. раздел 4.4), при луковой маршрутизации клиентам не обязательно пропускать через себя трафик других клиентов. Вместо этого, есть множество серверов, называемых луковыми маршрутизаторами (onion routers), которые передают трафик клиентов. Пусть представляет собой множество из луковых маршрутизаторов в сети. Как и в микс-сетях, каждый луковый маршрутизатор так же генерирует пару ключей (открытый и закрытый), открытый ключ должен быть известен всем клиентам. Прототип луковой маршрутизации, однако, не включал в себя формальный механизм распределения такой информации для клиентов или других луковых маршрутизаторов [Сайверсон и др., 2000][51].
Первый шаг к созданию анонимного соединения на прикладном уровне в сети луковой маршрутизации – создание узлом, инициирующим передачу потока через сеть, многократно зашифрованного туннеля, или цепочки (circuit). Сначала узел-инициатор выбирает упорядоченную последовательность серверов в сети, чтобы использовать ее в качестве пути цепочки, точно так же, как в микс-сети.
Однако в микс-сетях инициатор должен выполнять отдельные асимметричные криптографические операции для каждого микса на пути сообщения, которое он хочет отправить. Кроме того, каждый микс также должен выполнить асимметричную криптографическую операцию для каждого обрабатываемого сообщения. Такой подход приемлем для сообщений электронной почты, которые появляются довольно редко. Однако, например, при загрузке одной веб-страницы, инициатору может потребоваться извлечь несколько больших изображений или множество других веб-объектов. Использование асимметричного шифрования для каждого запрашиваемого объекта потребует больших вычислительных затрат и для инициаторов, и для серверов в сети. Чтобы свести к минимуму вычислительные затраты, отправители в сети луковой маршрутизации используют криптографию с открытым ключом только для создания зашифрованной цепочки, а затем используют менее затратное шифрование симметричным ключом для передачи фактических данных.
Инициатор случайным образом генерирует два симметричных секретных ключа – прямой ключ и обратный ключ – для каждого маршрутизатора вдоль его пути. Он также выбирает прямую и обратную криптографические функции, которые соответствуют генерируемым симметричным ключам. Пара используется для шифрования данных, которые проходят путь от инициатора к получателю запроса (например, веб-сайту), и пара применяется к данным, отправленным от получателя запроса инициатору цепочки.
В качестве примера, если инициатор выбрал путь , то он должен создать зашифрованную "луковицу данных" следующим образом:



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

PipeNet

PipeNet – анонимная система с малыми задержками, предложенная примерно в то же время, что и луковая маршрутизация [Дай, 1998][52]. Пользователи в PipeNet сначала выбирают случайную последовательность серверов в сети на подобии выбора пути в луковой маршрутизации. Затем клиенты создают многократно зашифрованный туннель путем создания симметричного ключа на первом узле, передачи его через зашифрованное соединение и создания другого ключа на втором узле, и так далее. Однако конструкция PipeNet непрактична для реальных сетей, таких как Интернет, и никогда не была широко развернута.
Обмен сообщениями в PipeNet происходит в дискретные единицы времени. Конструкция предполагала, что за единицу времени по каждому каналу между сетевыми узлами отправляется ровно один пакет. Если по одному из каналов узел не получил пакет, он не сможет переслать любые пакеты в течение данной единицы времени. В результате, единственный неправильно работающий узел может прекратить функционирование всей сети, если просто перестанет пересылать сообщение в течение одной или нескольких единиц времени [Бэк и др., 2001][53].

Crowds

Система Crowds была специально разработана для анонимного просмотра веб-страниц [Райтер и Рубин, 1998][21]. Каждый пользователь в системе представлен приложением jondo (как Джон Доу). Jondo определяют к толпе (crowd) других jondo c помощью административного процесса, который называется блендер (blender). Блендер также несет ответственность за информирование членов crowds о регистрации новых jondo.
Когда браузер пользователя сначала делает веб-запрос, его jondo создает случайный путь в сети со случайно выбранным jondo из толпы (возможно, даже с самим собой) и отправляет ему запрос. Затем этот jondo "подбрасывает" смещенную монету с вероятностью пересылки . В зависимости от результатов подбрасывания монеты, jondo отправляет запрос либо выбранному случайным образом другому пользователю из толпы, либо на конечный веб-сервер. Также каждый jondo запоминает узел-предшественник, таким образом, ответ от вер-сервера передается обратно по установленному пути. Попарные связи между jondo шифруются с использованием общих ключей, которые генерируются блендером, когда новый jondo присоединяется к толпе.
Так как каждый член толпы передает запросы другому члену, когда jondo получает запрос, он не знает, был ли предыдущий jondo источником запроса или он просто отправил запрос от другого jondo; однако, один или несколько вредоносных jondo на пути сообщения могут сотрудничать, чтобы попытаться определить истинного инициатора соединения. Рассмотрим путь, который включает в себя по крайней мере один вредоносный, сотрудничающий jondo. Разработчики Crowds доказали, что вероятность того, что предшественником первого сотрудничающего узла будет именно отправитель, такая же, чем если бы он не был отправителем (свойство, которое они определили как возможная невиновность (probable innocence), если:

,

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

Java Anonymous Proxy (JAP)

Как следует из названия, веб-миксы [Бертольд и др., 2000][54] – система, предназначенная для обеспечения анонимности работающих в режиме реального времени, интерактивных интернет-приложений, таких как просмотр веб-страниц. Однако веб-миксы довольно сильно отличаются от луковой маршрутизации и Crowds.
Система состоит из программного обеспечения Java Anonymous Proxy (JAP), которое запускается на компьютере клиента и пересылает трафик клиента в один из нескольких доступных каскадов миксов. Каждый микс в каскаде криптографически преобразует полученные пакеты и сортирует пакеты между потоками данных перед их передачей в следующий микс. Последний микс в каскаде пересылает трафик на "кэш-прокси", который направляет анонимный веб-запрос по назначению. Кэш-прокси сканирует веб-ответ на встроенные объекты и извлекает их перед отправкой ответа обратно через каскад клиенту.
Пытаясь помешать анализу трафика, конструкция веб-миксов предусматривает поддерживание постоянной скорости трафика между клиентом и первым миксом в каскаде с помощью ПО JAP, которое будет вставлять фиктивный трафик, если клиент не имеет никакого фактического трафика передачи данных. Также предлагается постоянное заполнение трафика между кэш-прокси и последним миксом каждого каскада. Однако развернутая реализация не использует покрывающий трафик из-за чрезмерной нагрузки на сеть.
Программное обеспечение JAP было в публичном доступе в течение нескольких лет и является вторым по популярности после Tor (обсуждается в разделе 4.8). Недавно превратилось в коммерческую эксплуатацию под названием JonDonym [JonDos GmbH 2008][55].

Tarzan

Tarzan – это анонимная система с малыми задержками [Фридман и Моррис, 2002][56], и слабо связана с оригинальной конструкцией луковой маршрутизации. Как и в луковой маршрутизации, инициаторы в сети Tarzan строят цепочки в сети путем создания симметричных ключей для каждого узла и многократного шифрования их открытыми ключами серверов в цепи. Симметричные ключи затем используются для передачи данных по цепи. Однако Tarzan использует протокол UDP для передачи, в отличие от Tor, которая использует протокол TCP.
Как в Crowds, все участники пропускают через себя трафик других пользователей. Особенность конструкции Tarzan заключается в том, как клиенты узнают о других серверах в сети. Вместо того чтобы полагаться на небольшое множество серверов каталогов, имея полное представление о сети, Tarzan использует peer-to-peer протокол "сплетен" (“gossip” protocol), для того чтобы делиться информацией о других серверах. Когда узел инициализируется, он обнаруживает другие сервера, выбрав случайный соседний узел, о котором он уже знает (скажем, из множества начальных узлов) и запрашивает его о других серверах, который тот знает. Затем запрашивающий узел может выбрать другой случайный узел из вновь изученного множества серверов и повторить процесс.
Tarzan также вводит покрывающий трафик в сети, предназначенный для того, чтобы скрыть паттерны настоящего трафика данных и помешать глобальному пассивному противнику определить отправителей по объемам трафика. Когда узел присоединяется к сети, он выбирает других узлов, которые называются имитаторами (mimics), и просит их обменять "имитирующий трафик" ("mimic traffic") с ним. Каждый узел выбирает своих имитаторов на основе результата повторного применения криптографической хэш-функции, включающей IP-адрес узла и текущую дату. В результате, выбор имитаторов однозначен, что мешает противнику выбрать более имитаторов. Выбор имитаторов также симметричен; в противном случае узлы бы только отправляли данные.
Инициатор анонимного тоннеля создает цепь через сеть Tarzan, выбрав случайным образом первый узел из его множества имитаторов. Второй узел выбирается из множества имитаторов первого выбранного узла, и так далее. Прикладной трафик передается по цепи с помощью многоуровневого подхода шифрования, похожего на луковую маршрутизацию.
В то время как узел находится в сети, он обменивается имитирующим трафиком с соседними имитаторами, неотличимым для внешнего наблюдателя от трафика приложений. Скорость, с которой узел посылает исходящий трафик, предназначен для приблизительного согласования скорости, с которой он получает трафик. Поскольку инициатор цепи также обменивается имитирующим трафиком с другими узлами, тому, кто наблюдает за узлом, будет очень трудно определить источник конкретной цепи. Кроме того, первый узел в цепи не знает, является ли полученный трафик покрывающим трафиком или прикладным трафиком.
Отметим, что из-за покрывающего трафика, включенного в разработку Tarzan, мы могли бы, возможно, отнести его к системам для ненаблюдаемости в разделе 5 и до сих пор придерживаться определения ненаблюдаемости Пфитцмана и Хансена [2008][14]; однако из-за его тесной связи с луковой маршрутизацией и MorphMix мы решили включить его в данном разделе для ясности и логичности.

MorphMix

Так же как и Tarzan, MorphMix [Реннхард и Платнер, 2002][57] является peer-to-peer анонимной системой с малыми задержками, в которой все узлы в сети передают трафик других узлов. Как в системе Tarzan и луковой маршрутизации, MorphMix использует многократно вложенные симметричные шифрования для передачи данных по цепям. Подход MorphMix к обнаружению узлов и создание цепочек, однако, довольно сильно отличается от предыдущих подходов и значительно более сложен.
Для построения цепи отправитель выбирает узел из множества узлов, о которых он в данный момент знает. Затем узел запрашивает у узла список других узлов, которые ему известны, из которых может выбрать следующий узел для его цепи. Пусть будет следующим выбранным узлом из множества узлов узла . Кроме того, пусть будет другим узлом из числа известных узлу , который будет использоваться в качестве узла «свидетеля» (“witness” node).
Узел устанавливает симметричный ключ с узлом , отправив узлу половину ключевой информации, зашифрованную алгоритмом Диффи-Хеллмана (DH) с помощью открытого ключа узла-свидетеля . Узел передает зашифрованный текст узлу который снимает слой шифрования и пересылает результат узлу . Узел генерирует свою половину ключевой информации DH и отправляет ее узлу через узел . Тогда обе стороны могут сгенерировать их общий симметричный ключ. Обратите внимание, что никто, кроме узлов и никогда не увидит обе половины ключевой информации; таким образом, нет никакой возможности для проведения атаки «Человек посередине» (при условии, что – честный узел). Инициатор повторяет этот процесс для каждого узла в его цепи.
Однако если новый узел делает запрос злонамеренному узлу, взаимодействующему с другими узлами, злонамеренный узел может отправить свидетелю только те узлы, с которыми он взаимодействует. Таким образом, он может вызвать узел , чтобы выбрать путь, состоящий только из вредоносных узлов, которые затем могут тайно сговориться, чтобы определить инициатора и его местоположение. Чтобы попытаться свести к минимуму эту атаку, разработчики MorphMix попытались добавить механизм обнаружения сговора, отслеживающий те узлы, которые появляются в туннеле вместе. Если какие-то узлы находятся в сговоре, то вероятность их появления вместе в туннеле более высока, чем у несговорившихся узлов. К сожалению, было доказано, что противник может с легкостью обойти этот метод, предлагая отправителю множества сговорившихся узлов, которые пересекаются как можно меньше [Тейбриз и Борисов, 2006][58].

Tor

Tor [Динглдайн и др., 2004][20] является самым последним поколением луковой маршрутизации и представляет текущее положение дел в области анонимных систем с малыми задержками. Конструкция Tor внесла несколько изменений и улучшений по сравнению с первоначальной конструкцией луковой маршрутизации с точки зрения безопасности, эффективности и развертывания. Сеть Tor в настоящее время является наиболее развитой среди существующих анонимных сетей. По состоянию на декабрь 2007 года она насчитывала около 1000 серверов и более 250000 пользователей.
Серверы каталогов
Первоначальный вариант луковой маршрутизации не включал в себя никакого формального описания того, как клиенты узнают о маршрутизаторах в сети. Конструкция Tor включает в себя описание небольшого множества надежных авторитетных серверов каталогов (authoritative directory servers), аналогичных серверам в Mixminion. Серверы каталогов несут ответственность за сбор и распространение информации об известных маршрутизаторах в сети. Информация о каталогах может быть отправлена другими маршрутизаторами в сети для того, чтобы снизить нагрузку на авторитетные серверы каталогов.
Создание цепочек
Клиенты Tor используют телескопический (telescopic) подход к построению цепочек, впервые описанный в луковичной маршрутизации Cebolla [Браун, 2002][59]. Инициатор цепи итеративно обменивается эфемерными сеансовыми ключами с каждым маршрутизатором в пути цепи, используя обмен ключами Диффи-Хеллмана (DH) и одностороннюю аутентификацию RSA. Когда установлен общий ключ с первым узлом, инициатор может создать туннель через это зашифрованное соединение и сгенерировать эфемерный сеансовый ключ со вторым узлом, и так далее. Когда цепочка больше не используется, сеансовые ключи отбрасываются.
Такой телескопический подход к построению цепочек в результате имеет два ключевых преимущества. Во-первых, прекращение использования сеансовых ключей, когда цепь замкнута, означает, что впоследствии ущерба маршрутизатор не позволит противнику восстановить сеансовый ключ и расшифровать трафик, зашифрованный этим ключом, что дает клиентам Tor совершенную прямую секретность (perfect forward secrecy). Во-вторых, луковым маршрутизаторам больше не нужно хранить хэши ранее обработанных луковиц в целях предотвращения атак воспроизведения. Воспроизведение одной половины ключевой информации DH приводит к другому сеансовому ключу, что не позволяет злоумышленнику получить никакой информации.
Недавно были сделаны два отдельных предложения по изменению алгоритма построения цепочек в Tor. Кейт и др. [2007][60] для создания цепочек предложили протокол, использующий криптографию на основе сопряжения (pairing-based cryptography). Преимуществом данного подхода является то, что сеансовые ключи могут быть установлены за «один проход», а не в интерактивном режиме при обмене ключами с каждым последующим узлом в цепи, что приводит к снижению вычислений и потери пропускной способности. Однако их конструкция зависит от одного или нескольких доверенных узлов, чтобы генерировать и распространять секретные ключи для всех маршрутизаторов в сети.
Другая альтернатива алгоритма построения цепочек, представленная Оверлье и Сайверсоном [2007][61], основывается на предварительно вычисленных параметрах Диффи-Хеллмана (DH), открытые компоненты которых публикуются каждым маршрутизатором в службе каталогов и регулярно обновляются. Клиенты могут генерировать свои собственные параметры DH, и, используя открытую информацию DH маршрутизаторов, вычислить сеансовые ключи для совместного использования с маршрутизаторами в их цепи. Подход Оверлье и Сайверсона [2007][61] эффективно устраняет три операции шифрования RSA для клиентов и одну операцию расшифрования RSA для каждого узла в цепи. Он также имеет преимущество, позволяющее клиентам делать вычисления DH в режиме ожидания процессора.
Скрытые сервисы
Конструкция Tor также добавила интересную особенность, которая называется скрытыми сервисами (location-hidden services, hidden services). Скрытые сервисы позволяют пользователям предоставлять услуги, такие как веб-сервер, доступные любому клиентом Tor, но при этом не раскрывать IP-адрес или место сервера [Динглдайн и др., 2004][20].
Скрытые сервисы поддерживают анонимные подключения к подмножеству узлов в сети, известные как контактные точки (introduction points). Клиенты могут подключиться к контактным точкам скрытого сервиса и указать другой узел, известный как точка рандеву (rendezvous point), наряду с половиной ключевой информации DH. И клиент, и скрытый сервис подключаются к точке рандеву и создают зашифрованный туннель через нее. Этот в некоторой степени хитрый подход предназначен для того, чтобы контактные точки не несли ответственность за контент, предложенный компрометирующим скрытым сервисом.
Оверлье и Сайверсон[2006][62] описали атаку, которая может позволить противнику определить настоящий хост скрытого сервиса. Противник просто запускает узел в сети и делает много запросов на скрытый сервис. Со временем, скрытый сервис многократно выберет сервер противника в качестве первого узла в его цепи к точке рандеву, так как путь для цепочки выбирается случайным образом. Противник может статистически определить наиболее вероятный хост скрытого сервиса.
Авторы описали контрмеру для их атаки, которую назвали сторожевыми узлами (entry guards), похожую по своей концепции на вспомогательные узлы (helper nodes), введенные Райтом и др. [2003][63]. Скрытый сервис выбирает небольшое множество узлов («сторожей»), из которого он всегда выберет первый узел для своих цепочек. Конечно, если некоторые или все из выбранных сторожевых узлов управляются противником, то атака еще может быть проведена; однако, если ни один из выбранных сторожевых узлов не скомпрометирован, то атака, описанная выше, никогда не произойдет, так как узел противника никогда не будет находиться рядом со скрытым сервисом в цепи на пути к точке рандеву. Таким образом, сторожевые узлы дают скрытому сервису некоторую возможность защиты от этой атаки, в то время как без них атака всегда может пройти успешно.

Системы ненаблюдаемости

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

Простое решение

Для иллюстрации простой реализации системы ненаблюдаемости, рассмотрим систему, состоящую из пользователей, подключенных через широковещательный канал. Во время начальной фазы установки, каждый пользователь с помощью асимметричной криптосистемы создает пару ключей: открытый и закрытый, что обеспечивает ключевую конфиденциальность [Беллар и др., 2001][64]. Открытая компонента распространяется всем пользователям через аутентифицированный, но не обязательно закрытый канал. Система также имеет параметр , который определяет длительность временного интервала, и все пользователи имеют приблизительно синхронизированные часы.
По истечении интервала времени , все участников в системе одновременно передают сообщение фиксированной длины байт. Если один пользователь хочет послать сообщение другому пользователю в течение этого интервала времени, отправитель шифрует сообщение с открытым ключом получателя и передает полученный шифротекст другим пользователям. Если необходимо, либо округляется до байт, либо дополняется байтами, которые генерируются случайным образом перед шифрованием сообщения. Пользователи, которые не хотят отправлять фактическое сообщение другому пользователю в течение этого интервала времени просто передают случайных байт.
После приема передаваемого сообщения каждый получатель пытается расшифровать с использованием своего экземпляра закрытого ключа. Во многих стандартных системах шифрования, если результатом является исходное незашифрованное сообщение, которое "имеет смысл", то получатель знает, что другой пользователь послал сообщение. Если - это просто сообщение, состоящее из случайных байтов, или шифротекст сообщения, зашифрованного с помощью открытого ключа другого пользователя, то результатом "расшифровки" будет случайная последовательность байтов. Таким образом, другие пользователи в системе, которые не являются предполагаемыми получателями, не узнают, является ли передаваемое сообщение шифротекстом, предназначенным для другого пользователя, или это просто блок байтов, сгенерированных случайным образом.
Поскольку передаваемые сообщения, состоящие из случайно сгенерированных байтов побитово неотличимы от зашифрованного шифротекста, и все пользователей канала ведут передачу всем другим пользователям во время каждого раунда, даже глобальный противник, наблюдающий за сетью, не в состоянии определить, какие пользователи передают фактическое сообщение другому пользователю в ходе раунда. Если мы предположим, что пользователи имеют способ маскировки или перезаписи адреса источника сообщения, посланного на широковещательный канал, то система также обеспечивает анонимность для отправителя.
Эта система концептуально проста и удобна в реализации, но явно неэффективна с точки зрения расходов сетевых ресурсов. Параметр интервала времени также подразумевает производительность системы. То есть, пользователи не могут общаться быстрее, чем байтов в секунду. Когда стремится к нулю, система начинает вести себя как широковещательный канал с постоянной скоростью, который является непрактичным для широкой глобальной сети, такой как Интернет.
В оставшейся части этого раздела мы рассмотрим более сложные конструкции, которые обеспечивают ненаблюдаемость с улучшенной эффективностью, масштабируемостью, надежностью, или какой-либо комбинацией этих свойств. Тем не менее, как мы увидим, многие из них до сих пор содержат компоненту, основанную на трансляции, которая ограничивает их область применения.

Сети "обедающих криптографов"

В дополнение к изобретению концепции микса, Дэвид Чаум также разработал систему, которую назвал сетью обедающих криптографов (Dining Cryptographer Networks, DC-сети) [Чаум, 1988][65]. В своей работе он предложил следующую проблему, которая отражает название этого протокола. Группа криптографов, сидящих вокруг стола, обедает в ресторане. По завершении трапезы официант сообщил им, что их счет уже оплачен анонимно. Они считают, что их счет был оплачен либо одним из криптографов, сидящим за столом, либо Агенством национальной безопасности (АНБ) США. Криптографы полагают, что оплата могла быть произведена каждым из них с равной вероятностью, но им все еще любопытно, не могло ли АНБ заплатить за них. Если это был один из криптографов, может ли он поставить в известность остальных, при этом оставаясь анонимным?
Оказывается, что на самом деле такое возможно. Предположим, что криптографы сидят по кругу. Каждый из них тайно подбрасывает монетку и записывает "0", если результат подбрасывания - это решка (tails), и "1" - если орел (heads). Затем каждый делится своим результатом с соседом слева. Учитывая эти два значения, каждый криптограф может вычислить , где является результатом его собственного подбрасывания, является значением, полученным от криптографа справа, а представляет сложение по модулю 2 (то есть, XOR). Он объявляет свой результат группе. Если один из криптографов заплатил за еду, он объявляет значение . Пусть значения, объявленные криптографами, сидящими за столом. Они могут все вместе вычислить .
Если ни один из криптографами не заплатил за еду, то результат будет равен 0. Если , то один из криптографов за столом оплатил счет. Такую схему можно легко представить, если рассматривать криптографов в качестве узлов неориентированного, циклического графа, с ребрами между ними, которые показывают значения, переданные криптографами. Назовем этот граф графом ключей (key graph). Пусть - это бит, переданный между криптографами и . Далее, пусть будет секретным битом, показывающим, заплатил ли за еду -ый криптограф. Таким образом, каждый криптограф объявляет свой результат как . Отсюда следует, что




,

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



.

Таким образом, два сотрудничающих узла могут вступить в сговор, чтобы показать сообщение, отправленное узлом между ними. Чтобы предотвратить это, узлы могут делиться секретным ключом (результатам подбрасывания монетки) не только со своими соседями, но и с другими участниками в зависимости от ожидаемого количества сговаривающихся противников в сети. Если раньше мы имели цикличный граф ключей с узлами и ребрами, то теперь каждый узел может обменять секретный ключ с каждым другим узлом в сети. Полученный граф является полным. Только если все узлы объединятся для нарушения анонимности других, они могут определить отправителя конкретного сообщения.
Очевидно, что схема, представленная таким образом, далеко неэффективна с точки зрения пропускной способности. Каждый бит сообщения, переданный анонимно, требует, чтобы все пользователи отправляли результат их локального вычисления каждому другому пользователю. Таким образом, в общей сложности передается бит для анонимной отправки одного бита сообщения. Вместо этого пользователи могут разделиться по кольцам, в которых некоторый "начальный" узел посылает узлу . Узел вычисляет и отправляет следующему узлу , и т.д. Этот процесс повторяется по кругу, пока последний узел в кольце не передаст окончательный результат для всех других узлов. Этот подход требует только передач, в отличии от предыдущих . С ростом , для поддержки большого числа пользователей, однако, пропускная способность и задержка при таком подходе все еще остаются обременительными.
Другой серьезной проблемой DC-сетей является столкновение сообщений (message collisions). Если два отправителя пытаются передать сообщения одновременно, их сообщения будут наложены, выдавая непреднамеренный выход. Рассмотрим снова криптографов, сидящих за столом. Если два криптографа утверждают, что они заплатили за ужин (т.е. для некоторых , ), значение будет равно нулю. Действительно, пользователь, который хочет нарушить работу системы, может просто постоянно транслировать случайные биты, выполняя эффективную атаку отказа обслуживания. Обнаружение и предотвращение этих атак было в центре внимания некоторых исследований [Вейднер и Пфитцман, 1990; Голль и Джулз, 2004][66][67], но затраты на пропускную способность и неэффективность протокола остаются высокими.
DC-сети уникальны тем, что они предлагают информационно-теоретическое обеспечение анонимности, а не полагаются на вычислительные предположения. То есть, современные криптосистемы, такие как RSA, основаны на вычислительной нецелесообразности решения определенных проблем. Безопасность DC-сетей, однако, не может быть взломана, при предоставлении неограниченного количества вычислительной мощности и времени [Чаум, 1988][65]. К сожалению, как мы уже упоминали выше, их пропускная способность и восприимчивость к столкновениям делает их весьма неэффективными и неосуществимыми на практике.

Herbivore

Система анонимности Herbivore (англ. - "травоядная", название произошло от системы мониторинга ФБР Carnivore (англ. - "плотоядная") [Electronic Privacy Information Center, 2005][68]) пыталась адаптировать DC-сети в конструкцию, которая делает их более эффективными и пригодными для использования в сети Интернет в интерактивных приложениях с малыми задержками [Гоэл, 2003][69].
В простой DC-сети из примера выше, все пользователи системы должны объединить свои персонально вычисленные биты для передачи одного бита анонимного сообщения. Конечно, этот подход не выходит за рамки нескольких пользователей, общающихся между собой по незагруженной сети. Herbivore вместо этого использует иерархический подход. Когда новый пользователь присоединяется к сети, его прикрепляют к одной из многих небольших групп пользователей, которая называется кликой (clique) (англ. – "небольшая группа друзей"). Каждая клика включает в себя от до пользователей, где - это параметр системы. Если клика становится слишком маленькой, ее пользователи объединяются в другие клики. Точно так же, когда клика становится слишком большой, она может быть разделена на более мелкие. Пользователи внутри клики расположены в виде звезды с одним пользователем в центре, а все остальные узлы связываются с помощью этого центра. Каждый пользователь клики по-прежнему имеет общий ключ с каждым узлом клики. На более высоком уровне, клики расположены в виде кольца, что позволяет кликам связываться между собой.
Новизна системы Herbivore заключается в протоколе анонимной резервации мест (anonymous slot-reservation protocol) для предотвращения столкновений в DC-сети. Связь в Herbivore происходит на протяжении ряда раундов, в течение которых узлы резервируют полосу пропускания по каналу, а затем передают фиксированные блоки данных.
Чтобы зарезервировать слот, каждый узел, который хотел бы передавать информацию в течение данного раунда, выбирает случайное число , а затем генерирует вектор резервации (reservation vector) длиной бит, где , а остальные биты заполняются нулями. Если узел не хочет совершать передачу в данном раунде, он просто создает нулевой вектор резервации. Затем все узлы одновременно и анонимно транслируют свои векторы резервации группе. Далее векторы резервации будут сложены по модулю 2, получая на выходе -битный вектор, имеющий "1" на той позиции, на которой некоторый узел хочет осуществить передачу. Затем узлы передают сообщение по порядку во время фазы передачи раунда, в соответствии с их случайно выбранным образом местом в этом векторе резервации. Длина вектора является параметром системы и выбирается в зависимости от количества пользователей в среднем, которые должны осуществить передачу за один раунд.
В течение каждого интервала передачи в данном раунде, каждый узел локально вычисляет XOR сообщения, которое хочет отправить (если он зарезервировал текущий интервал), и парных ключей, которые он разделяет со всеми другими членами клики. Центральный узел затем вычисляет XOR его собственного значения и значений, посланных остальными членами клики, а затем транслирует результат. Такой подход требует бит для передачи одного анонимного информационного бита.

P5

Устройство системы P5 [Шервуд и др., 2002][70] не основано на DC-сетях, но вместо этого полагается на пользователей для создания и трансляции покрывающего трафика, чтобы скрыть настоящий трафик. P5 группирует пользователей в логическую иерархию групп вещания (broadcast groups), представленную в виде двоичного дерева. Когда сообщение передается в группу вещания , оно отправляется в том числе всем группам, которые являются потомками , а также тем группам, для которых является потомком. Чтобы отправить сообщение в P5, пользователь сначала шифрует сообщение с помощью открытого ключа предполагаемого получателя и передает шифротекст одной из групп вещания, в которую входит отправитель. Если получатель не находится ни в одной из групп вещания отправителя, сообщение может быть анонимно передано другим группам в бинарном дереве.
Уникальной особенностью устройства системы P5 является то, что она позволяет пользователям обменивать анонимность на производительность, позволяя пользователям выбирать, вступать ли в группы выше или ниже в иерархии вещания, в зависимости от потребности в большей анонимности или в более высокой производительности соответственно. Например, вступление в группу вещания в корне дерева означает, что все сообщения, отправленные в эту группу, также передаются в любую другую группу дерева.
Пользователи в P5 также генерируют шумовой трафик (noise traffic) с постоянной скоростью, так что пакеты с шумами неотличимы от подлинного пакета сообщений. В результате противник, наблюдающий за сетью, не в состоянии различить, когда пользователь послал настоящее сообщение. Шумовой трафик передается к выбранной случайным образом группе. В связи с постоянной передачей трафика от каждого пользователя и широковещательной природе системы, пользователям P5, возможно, придется отказаться от трафика, для которого они не имеют ресурсов. Группы выше по иерархии получают больше всего трафика, в этих каналах выше всего вероятность возникновения потерь.

Nonesuch

В то время как предыдущие системы не давали злоумышленнику различить передачу настоящего сообщения от случайного шума, противник все еще мог различить, какие пользователи участвуют в анонимной сети. В отличие от этого, система Nonesuch не позволяет противнику определить, что отправитель участвовал в анонимной передаче, с помощью стеганографического скрытия сообщений внутри изображения в микс-сетях с большими задержками [Хейдт-Бенджамин, 2006][71]. Разработка предполагает наличие подходящего стеганографического алгоритма, а не разработку нового.
В Nonesuch пользователи используют стеганографию, чтобы скрыть сообщение в графическом файле, а затем выкладывают этот файл в группу новостей Usenet, например, на сайт о фотографии. Так как простой осмотр изображения не должен показывать содержит ли оно скрытый стеготекст, остальные изображения в новостях служат как покрывающий трафик. Узлы Nonesuch периодически получают все опубликованные изображения, которые были размещены в группу и попытаются извлечь стеготекст из каждого.
Если исходное незашифрованное сообщение было встроено в качестве стеготекста, то злоумышленник мог бы просто получить все изображения из группы, запустить алгоритм извлечения стеготекста для каждого, чтобы определить те, которые несут скрытое сообщение, а затем определить отправителя, основываясь на том, кто разместил изображение. Чтобы предотвратить подобную атаку, скрытые сообщения по факту являются многократно зашифрованными сообщениями, которые будут проходить через микс-сеть с большими задержками. Следовательно, стеготекст неотличим от случайных битов.
Так как узлы в Nonesuch не могут изначально отличить настоящие сообщения от покрывающего трафика, все стеготексты рассматриваются, как если бы это было нужное сообщение. После того как узлы Nonesuch попытались извлечь стеготекст из изображения, узлы используют хэш части стеготекста в качестве индекса в глобальной таблице маршрутизации. С некоторой вероятностью, в зависимости от размера хэша и плотности таблицы маршрутизации, заголовок сообщения покрывающего трафика будет иметь хеш в глобальной таблице маршрутизации, что указывает на следующий узел в микс-сети. Если хэш не соответствует ни одному индексу в таблице маршрутизации, сообщение просто отбрасывается. Таким образом, покрывающий трафик ослабляется, когда узлы пытаются распространять его через сеть.
В процессе криптографической трансформации сообщения ищется следующий узел в таблице маршрутизации и сообщение повторно пересылается до тех пор, пока все слои шифрования не будут удалены и сообщение не будет доставлено получателю, иначе сообщение удаляется как покрывающий трафик.

Anonymous Buses

Беймел и Долев [2003][72] представили довольно новый подход к ненаблюдаемости, не основанной на DC-сетях. Рассмотрим систему общественного транспорта с автобусами, которые забирают пассажиров на заранее определенных автобусных станциях и высаживают их на другой станции в соответствии с некоторым фиксированным графиком. Отправители и получатели в сети связи могут быть точно смоделированы как "станции", а автобус можно рассматривать как перенос сообщений между ними.
В простейшем подходе, путь, который проходит автобус, сформирован как эйлеров путь, проходящий через всех отправителей и получателей в сети. Автобус имеет "мест", место зарезервировано для отправки сообщения от пользователя пользователю . Если хочет отправить сообщение некоторому узлу , он шифрует свое сообщение с помощью открытого ключа узла и размещает его в , когда автобус останавливается в . В противном случае, просто заполняет некоторыми случайными байтами, а затем отправляет автобус до следующей остановки по расписанию. Когда автобус прибывает в , узел пытается расшифровать содержание всех , чтобы узнать, получил ли он какие-нибудь сообщения. Из-за семантической безопасности шифрования, наблюдатель не в состоянии различить, содержит ли место в автобусе настоящее сообщение или просто некоторые случайные байты.
Представленный выше простой подход предполагает сложность по времени и по памяти. Кроме того, активный противник может просто перезаписать произвольные места в автобусе со случайными данными, чтобы повредить сообщения. Авторы также проанализировали более сложные варианты, которые пытаются оптимизировать сложности по времени и по памяти, а также задачу византийских генералов [Беймел и Долев, 2003][72].

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

Так же как устойчивость к криптоанализу является мерилом, с помощью которого разработчики криптографического алгоритма оценивают безопасность их алгоритмов, анализ трафика зачастую является эффективным инструментом, который разработчики систем анонимности используют для определения устойчивости их системы к атакам. Анализ трафика игнорирует содержание сообщений и вместо этого пытается получить как можно больше информации только из метаданных сетевого трафика, таких как время прибытия пакета и длина сообщений.
Область исследований анализа трафика на самом деле достаточно широка и заслуживает особого внимания [Данезис и Клейтон, 2007][73]. Вместо этого, мы сосредоточимся только на некоторых из наиболее значимых методах анализа трафика, которые были применены к системам анонимности. Эти атаки стремятся соотнести отправителей и получателей, используя только пассивно собранные метаданные о сообщениях или трафике в системе.

Дактилоскопия веб-сайтов

Если у противника есть список предположений о том, какие сайты посещает определенный пользователь, злоумышленник может также получить эти сайты. Он следит за количеством и длиной пакетов данных, принятых отправителем в ответ на запрос. Из этих метаданных противник может построить отпечаток того, как выглядит трафик ответов веб-сайта, полученный с помощью зашифрованного соединения [Хинтц, 2002; Сан и др., 2002][74][75].
Например, если бы вы посетили cnn.com, вы бы получили не только текст страницы, но и ряд внедренных объектов, таких как изображения. Даже если запрос зашифрован с помощью SSL, размер и скорость возвращаемых пакетов не очень хорошо скрыты. Однако, такой подход требует наличие у злоумышленника приблизительного списка сайтов, которые посещает целевой пользователь, тогда он может создать базу данных отпечатков сайта для сравнения.
Чтобы смягчить этот удар, большинство современных систем анонимности разделяют сообщения на ячейки фиксированной длины. Сообщения короче, чем длина ячейки, и, как правило, дополняются случайными данными. Обеспечение того, чтобы весь переданный пакет данных имел одну и ту же длину, помогает скрывать истинную природу трафика ответа, что, возможно, помешает проведению простой атаки с помощью отпечатков. Либератор и Левин [2006][49] исследовали эффективность различных подходов дополнения пакетов данных. Авторы предположили, что они могли бы приблизить размер пакета (потенциально разбитый между несколькими ячейками) к размеру пакета в системах анонимности с малыми задержками, таких как Tor, дополнительно принимая во внимание время между прибытиями пакетов.

Атака по времени

Как уже говорилось в разделе 4, системы анонимности с малыми задержками, такие как луковая маршрутизация, не вводят какие-либо задержки или значительные изменения временных характеристик анонимного подключения. В результате, пассивный глобальный противник, который может следить за соединениями на входе и выходе анонимной сети, может связать входы и выходы на основе их шаблонов времени прибытия пакетов.
Эффективность таких атак была широко проанализирована в литературе [Левин и др., 2004; Чжу и др., 2004; Мердок и Зелинский, 2007; Шматиков и Ванг, 2006][76][77][23][48]. Левин и др. [2004][76] предложили подход к смягчению атак по времени, названный защитный сброс (defensive dropping), в котором узлы вводят случайные пакеты в начале цепи, называемые фиктивным трафиком (dummy traffic). Фиктивный трафик затем теряется при прохождении через сеть. Шматиков и Ванг [2006][48] также предложили концепцию дополнения трафика, где узлы в цепи вводят фиктивный трафик между собой в соответствии с распределением вероятностей по времени между прибытием пакетов.
Защита, предложенная Левиным и др. [2004][76], Шматиковым и Вангом [2006][48] предполагает пассивного противника. Чжу и др. [2004][77] показали, что активный атакующий может вызвать временные задержки в трафике клиента, что позволит ему легко соотнести входные и выходные потоки в анонимной сети.
Атака по времени также может быть выполнена активным противником, который не может наблюдать оба конца соединения. Мердок и Данезис [2005][78] показали такую атаку против сети Tor. Если противник может вызвать клиента для подключения к веб-сайту, который он контролирует, вредоносный сайт может отправить данные обратно по идентифицируемому шаблону трафика. Противник затем исследует маршруты с трафиком одинаковой скорости в сети Tor. Когда злоумышленник исследует маршрут, используемый на пути клиента, посланный вредоносным веб-сайтом идентифицируемый шаблон трафика вызывает трафик ответа, для того чтобы выставить схожий шаблон синхронизации (timing pattern). Противник может повторить эту атаку, чтобы проследить связь клиента с первым маршрутизатором в цепи клиента.
В то время как атака, предложенная Мердоком и Данезисом [2005][78] позволяет злоумышленнику только определить маршрутизаторы, используемые в пути клиента, Хоппер и др. [2007][79] позаимствовали атаку Мердока-Данезиса и улучшили ее, чтобы попытаться сузить месторасположение клиента в сети до определенного множества. После нанесения атаки Мердока-Данезиса, противник может оценить время прохождения между клиентом и первым узлом в предполагаемой траектории для того, чтобы сузить набор возможных месторасположений клиента. После повторения этой атаки против клиента несколько раз по разным цепям, противник может знать приблизительное сетевое расположение клиента с огромной точностью.

Атака на предшественника

При анализе системы Crowds, Райтер и Рубин [1998][21] рассмотрели атаку, в которой несколько злоумышленников присоединяются к толпе и пытаются определить инициатора конкретного постоянного соединения. Когда пути периодически преобразуются в толпе, постоянное соединение должно быть восстановлено. Со временем, истинный инициатор соединения имеет гораздо большую вероятность быть непосредственным предшественником узла противника на пути, чем любой другой узел. Атака предполагает, соединение может быть определено после каждого преобразования пути.
Сайверсон и др. [2000][51] проанализировали атаку на сеть луковой маршрутизации. Если противник может наблюдать первый и последний прыжок в цепи клиента, он может провести атаку по времени, чтобы попытаться связать их. Таким образом, инициатором цепи является непосредственный предшественник противника, наблюдающий входной узел клиента. Авторы вывели ограничение на вероятность того, что противник, который скомпрометировал из узлов, будет выбран в качестве первого и последнего узлов в цепи инициатора. Когда инициатор неоднократно устанавливает цепь, вероятность того, что один из выбранных путей находится под угрозой, увеличивается.
Райт и др. [2004][80] определили общую модель этих атак, названных атаками на предшественника (predecessor attacks). Авторы проанализировали ожидаемое число раундов (преобразований пути), которое необходимо противнику, чтобы иметь возможность определить инициатора соединения с высокой степенью уверенности для Crowds, луковой маршрутизации, микс-сетей, и DC-сетей. Они показали, что полносвязные DC-сети предлагают лучшую устойчивость против атак на предшественника. Такая топология сети страдает от довольно ограниченной масштабируемости, по причинам, рассмотренным в разделе 5.2.

Атака раскрытия

Кесдоган и др. [2002][81] представил атаку, которую он назвал атакой раскрытия (disclosure attack). Рассмотрим пользователя Алису, которая неоднократно посылает сообщения одному из различных участников соединения на каждом раунде микса. Пассивный противник наблюдает сообщения, входящие и выходящие из микса, и хочет знать, с кем Алиса связывается. Злоумышленник сначала ждет, пока не увидит непересекающихся множеств получателей . Каждый из этих множеств содержит ровно одного из участников соединения, с которыми общалась Алиса.
Противник затем уточняет эти множества, ждет, чтобы обнаружить новое множество получателей , которое пересекается только с одним из ранее наблюдаемых . затем уменьшается до . Противник может продолжать эту атаку, пока он не сведет все до одного элемента, таким образом, определяя каждого из партнеров Алисы. По этой причине атака раскрытия также упоминается в литературе как атака пересечением (intersection attack) [Данезис и Сержантов, 2004; Бертольд и др., 2000][82][32].
Обычная атака раскрытия является вычислительно трудной для выполнения из-за необходимости нахождения непересекающихся множеств. В самом деле, первая часть атаки эквивалентна задаче удовлетворения ограничений, которая является NP-полной [Кесдоган и др., 2002][81]. Кесдоган и Пименидис [2004][83] предложили более эффективные варианты, которые называются атакой множества представителей (hitting set attack) или HS* атакой, дающие "точные" результаты с меньшим количеством наблюдений и меньшей вычислительной сложностью.
Вместо того чтобы устанавливать точную атаку, которая точно определяет партнеров Алисы, Данезис [2003][84] определил статистическую атаку раскрытия, которая показывает вероятных получателей Алисы. Атака основывается на компиляции большого количества векторов наблюдений, элементы которых представляют собой вероятность того, что Алиса послала сообщение каждому из получателей в этом раунде. Исходя из этого, злоумышленник может приблизительно установить поведение Алисы.
Обычная и статистическая атаки раскрытия основаны на некоторых допущениях, которые могут не выполняться на практике. В частности, они предполагают, что Алиса в каждом раунде посылает сообщение только одному из партнеров, и что эти получатели выбираются с одинаковой вероятностью. Мэтьюсон и Динглдайн [2004][85] улучшили атаку, включив несколько Алис, которые посылают нескольким получателям в каждом раунде с разными вероятностями. Модель, используемая в обычной атаке раскрытия, также предполагает простой микс с определенным количеством пересылаемых сообщений, хотя Данезис и Сержантов [2004][82] показали, что статистическое раскрытие может быть эффективным против пул-миксов. Позже Данезис и др. [2007][86] описали вариант атаки под названием двусторонняя статистическая атака раскрытия (two-sided statistical disclosure attack), которая также учитывает анонимные ответы для того, чтобы определить атаку.
Эффективного метода для абсолютного предотвращения атак пересечением не найдено; однако, вставка фиктивного трафика является мерой, часто предлагаемой для снижения эффективности таких атак. Бертольд и Лангос [2002][87] заметили, что атаки пересечением возможны, если не все пользователи системы активны все время. Они предложили схему, где Алиса предварительно генерирует фиктивные сообщения, пока она находится онлайн, которые впоследствии посылаются другими узлами от ее имени, пока она находится оффлайн. Мэтьюсон и Динглдайн [2004][85] рассмотрели случай, когда Алисы посылают сообщений (реальных или фиктивных) в каждом раунде, и показали, что атака все еще может быть успешна, даже если Алиса появляется в онлайне только 99% времени.
К сожалению, схемы дополнения фиктивным трафиком, эффективные против атак пересечением, часто вызывают значительные расходы на полосу пропускания. Диаз и Пренил [2004][38] представили обзор вопросов, связанных с фиктивным трафиком в микс-сетях.

Дальнейшее развитие

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

Устойчивость к блокировке

В связи с недавним акцентированием внимания на спонсируемые правительством проекты цензуры в Интернете, такие как «Великий китайский файрвол» [Клейтон и др., 2006; Крандалл и др., 2007][88][89], легкость, с которой анонимизирующие технологии могут быть заблокированы, вероятно, станет более проблематичной. В случае с Tor [Динглдайн и др., 2004][20], список всех серверов в сети обязательно находится в общем доступе, чтобы клиенты имели возможность узнать IP-адреса серверов в сети. Правительство, управляющее национальным брандмауэром, может просто получить этот список IP-адресов серверов и блокировать все соединения к ним со стороны клиентов с помощью брандмауэра. Позволение законным клиентам получать список IP-адресов серверов, и в то же время ограничение доступа к ним злоумышленникам, является сложной задачей.
Система обхода Псифон (Psiphon) [Citizen Lab, 2008][90] использует социальные сети для обнаружения сервера. Система требует, чтобы пользователь на открытой стороне брандмауэра запустил прокси-сервер, а затем сообщил свой адрес доверенному пользователю на сторону с цензурой вне сети. Так как адрес прокси не вывешен открыто, у цензора уже нет легкого способа идентификации и блокировки подключения к прокси-серверам за пределами брандмауэра. К сожалению, закрытые клиенты, которые не знают никого на внешней стороне, также не имеют никакой возможности узнать об открытых прокси-серверах.
Анонимные системы могут быть также заблокированы цензорами сети на основе характеристик, уникальных для их сетевых протоколов. Если брандмауэр также проверяет полезную нагрузку пакетов, в отличие от простого просмотра заголовков IP, он может обнаружить модели, уникальные для конкретного протокола, используемый некоторыми анонимными сетями. Например, ранние версии протокола Tor включали строку "Tor" в сертификатах, используемых во время TLS Handshake [Динглдайн и Мэтьюсон, 2007][91], который делает протокол легко идентифицируемым. Брандмауэр, вероятно, может затем прекратить соединения, соответствующие анонимному сетевому протоколу, вводя пакеты TCP RST [Клейтон и др., 2006][88]. Проектирование эффективных анонимных сетевых протоколов со стеганографическими свойствами, которые не могут быть легко определены по отпечаткам и цензурой, все еще является открытой и сложной задачей.
Копселл и Хиллинг [2004][92] предложили системы, устойчивые к блокировке, которые должны следовать принципу "множества точек доступа" такому, что клиенту нужно найти только одну незаблокированную точку доступа, чтобы подключиться к остальной части анонимной системы. Интуитивно понятно, что противник может блокировать некоторые, но, скорее всего, не все из точки доступа. Тогда возникает вопрос: как клиенты должны узнавать о точках доступа к сети, которые не заблокированы в настоящий момент.
Tor недавно адаптировал этот подход в своей конструкции смены мостов (bridge relay). Добровольцы в открытых (без цензуры) странах управляют реле, называемые "мостами", которые не перечислены в списке серверов. Поскольку нет полного открытого списка всех мостов, противнику становится намного труднее найти и заблокировать их все. Заблокированные клиенты могут узнать о некоторых доступных мостах через веб-сайт или автоматизированную электронную почту, а затем использовать мосты для подключения к сети Tor. Как полагают Копселл и Хиллинг [2004][92], проблема построения устойчивой к блокировке анонимной системы будет существовать, пока имеет место гонка между блокираторами, которые пытаются узнать о существующих точках доступа (мостах), и разработчиками анонимной системы, которые пытаются придумать альтернативные способы распределения адресов мостов.

Удобство

Часто упускается из виду такой аспект анонимности как удобство развернутых анонимных систем. Тем не менее, как отметили Бэк и др. [2001][53], удобство должно быть целью безопасности в любой системе анонимности.
С увеличением количества активного Web 2.0 контента, такого как Flash, Java и JavaScript, число способов подорвать анонимность пользователя через неправильно настроенные приложения или плохо написанное программное обеспечение, продолжает расти. Эти угрозы были признаны еще в изначальной версии луковой маршрутизации [Гольдшлаг и др., 1996][50] и разработчиками Crowds [Райтер и Рубин, 1998][21]. Клейтон и др. [2001][93] также выявили ряд атак на уровне приложений, которые могут поставить под угрозу анонимность пользователя.
Тем не менее, после 10 лет, те же угрозы представляют собой, пожалуй, самые простые методы нападения на анонимность пользователя. Разработка для пользователей более эффективных способов определения и избежания потенциально вредоносного веб-контента, является открытой проблемой не только для систем анонимности, но и для веб-безопасности в целом.
Улучшение пользовательского интерфейса для анонимных систем также является ценным направлением исследований [Динглдайн и др., 2007][94]. В прошлом, установка и использование многих систем анонимности были несколько громоздкими, ограничивая их принятие широкой общественностью. Tor добилась определенного прогресса в этом направлении, связывая программное обеспечение Tor с пользовательским интерфейсом и другими часто используемыми инструментами [Кларк и др., 2007][95], которые способствовали его популярности. Делая еще более удобным для пользователей установку и настройку программного обеспечения для анонимности, можно увеличить количество пользователей системы и, таким образом, повысить анонимность для всех пользователей [Динглдайн и Мэтьюсон, 2006][96].

Стимулы

Любой успешной анонимной сети требуется широкая пользовательская база, а также операторы серверов по всему миру. Но как мы можем побудить людей к участию в анонимной системе? Аккуисти и др. [2003][97] представили модель анализа потенциальных стимулов для людей, участвующих в анонимной системе. Модель включает в себя несколько факторов затрат и выгод от участия в системе анонимности, такие как финансовые или временные затраты отправки анонимного сообщения и преимущества поведения как и честного, так и нечестного узла сети.
Сеть Freedom использовала коммерческий подход: оплачивала персоналу управление серверами и брала с клиентов абонентскую плату за услуги [Буше и др., 2000][98]; однако, коммерческая модель была неустойчива, и сервис быстро обанкротился. В 2007 году JonDonym начал предлагать похожий платный анонимайзер, основанный на системе JAP [JonDos GmbH, 2008][55]. Программное обеспечение и базовая услуга доступна для клиента бесплатно. Возможно, те, кто желает иметь лучшую производительность может приобрести "премиум", который позволяет клиентам использовать каскады с улучшенной пропускной способностью. Операторы миксов в "премиум" каскадах могут получить оплату в зависимости от объема трафика, передаваемого через их миксы.
Полностью бесплатная сеть Tor до сих пор оказалась наиболее успешной, так как она является крупнейшей анонимной сетью на сегодняшний день. Тем не менее, спрос со стороны клиентов может превышать пропускную способность относительно ограниченного количества серверов. Мы должны разработать стимулы для волонтеров для управления серверами в сети, например, путем предоставления гарантий более высокого качества в обслуживании трафика. Хотя такой подход может иметь неизведанные последствия анонимности, так как определение потока трафика сети, принадлежащего оператору сервера, обязательно ведет к утечке информации об инициаторе.
В то время как система анонимности почти всегда выигрывает от наличия большего количества серверов в сети, поощрение большего количества пользователей клиентов в сети также помогает улучшить безопасность [Динглдайн и Мэтьюсон, 2006][96]. Один из распространенных критических замечаний Tor является то, что веб-браузер с подключением по Tor работает медленно, в результате чего некоторые пользователи просто отказываются от использования системы. Учитывая широкий круг людей, которые пользуются Интернетом, кажется, вполне естественно, что они также имеют широкий спектр требований безопасности и анонимности. То есть, пользователи в Китае, обсуждающие Фалуньгун, могут иметь больше требований к конфиденциальности, чем те, кто просто читает последние новости и готов терпеть большую задержку ради более высокой степени анонимности.
Следовательно, мы можем привлечь большее количество пользователей к участию в системе анонимности, давая им возможность контролировать их соотношение производительности и анонимности [Шнадер и Борисов, 2008][99]. Однако важно, что трафик всех пользователей все равно сливается в один поток, несмотря на их самостоятельно выбранные разницы в производительности [Динглдайн и др., 2006][100]. Чтобы точно рассмотреть компромисс между анонимностью и производительностью, пользователи также должны знать об уровне анонимности, который представляет им система при выбранных ими в настоящее время параметрах производительности.

Масштабируемость

Большинству развернутых систем анонимности не пришлось иметь дело с масштабируемостью, так как количество участвующих в сети было относительно ограничено. В то время как широкая общественность становится все более обеспокоенной угрозой личной конфиденциальности в Интернете, число пользователей анонимных систем, скорее всего, растет. В анонимной системе связи для поддержания действительно повсеместного использования, конструкции должны поддерживать не только большое количество пользователей, но и большое количество серверов.
Многие проекты, такие как Tor, полагаются на небольшое подмножество серверов для публикации списков всех серверов, доступных в сети в настоящее время, через которые клиенты могут направлять свой трафик. Легко увидеть, что размер каталога сервера растет линейно с увеличением числа серверов в сети. В результате, большая часть пропускной способности сети потребляется за счет отправки клиентам списка серверов, а не из-за задерживания трафика приложений.
Во многих централизованных анонимных системах на основе каталогов предполагается, что каждый узел в сети может подключаться непосредственно к любому другому узлу. Когда количество и разнообразие сетевых узлов растет, маловероятно, что данное предположение может быть выполнено. Сетевые маршруты могут потерпеть неудачу, потенциально оставляя некоторые узлы недоступными из некоторых частей Интернета. Кроме того, серверы не будут иметь достаточного количества доступных слотов для поддержания связи со всеми другими серверами в сети, включающих сотни тысяч серверов [Динглдайн и др., 2005][101].
Методом поддерживания увеличивающейся масштабируемости с более слабыми подключениями может быть простое разделение анонимной сети на несколько более мелких сетей [Динглдайн и др., 2005][101]. Вместо того, чтобы разделять сеть, Данезис [2003][35] рассмотрел альтернативную топологию микс-сети на основе расширяющих разреженных графов. Он утверждал, что такие сетевые топологии обеспечивают более высокую масштабируемость, чем полносвязные или каскадные топологии, в то же время обеспечивая сопротивление анализу трафика.
Peer-to-peer конструкции, как MorphMix, также представляют собой интересное направление для исследований в проектировании значительно расширяемых анонимных систем. Совсем недавно была разработана система Salsa с учетом масштабируемости на основе распределенной хеш-таблицы [Намбияр и Райт, 2006][102]. К сожалению, peer-to-peer конструкции до сих пор имеют сложности в вопросах анонимности [Тейбриз и Борисов, 2006; Борисов и др., 2007][58][103].

Заключение

Мы живем в цифровом обществе. Каждый день многие из нас читают новости, ведут бизнес, общаются с друзьями и семьей в режиме онлайн. В то время как мы проводим все больше времени в Интернете, угрозы нашей личной жизни постоянно растут. Хранение данных стало дешевым, поэтому многие из наших действий могут быть записаны. Рекламодатели придумывают все более и более интересные способы сбора личной информации, например, для целевой рекламы.
К счастью, за последние 30 лет научные исследователи и шифропанки далеко продвинулись в области разработки и внедрения анонимных систем связи. Публично доступные микс-сети с большими задержками, как Mixminion, могут обеспечить анонимность электронной почты. Системы анонимности с малыми задержками, как Tor, дают возможность анонимного просмотра веб-страниц, IRC, и т.д. Однако скорость, с которой появляются новые и интересные атаки против этих систем, кажется, опережает нашу способность разрабатывать эффективные средства защиты от них. Некоторые атаки, такие как атаки на уровне приложений Java и атаки обхода прокси на базе Flash, остаются нерешенными более десяти лет с момента их первого появления.
Мы считаем маловероятным то, что будет найдена "серебряная пуля", которая обеспечит доказуемую безопасную, эффективную и практичную анонимность для пользователей по всему Интернету. Как угрозы личной жизни продолжают расти, так и общественный и научный интерес в улучшении существующих систем для анонимности только увеличивается. Уроки, извлеченные из текущего исследования анонимности, могут также помочь разрешить и поощрять будущие разработки глобальных сетей, включающих в себя конфиденциальность и анонимность как фундаментальное свойство.
Наконец, мы отсылаем интересующихся читателей к библиографии анонимности[прим. 1], где можно найти много источников, на которые ссылается данная работа, а также дополнительные работы, не рассмотренные здесь.

Благодарность

Мы хотели бы поблагодарить анонимных рецензентов за их замечания и предложения. Мы также благодарим Пола Сайверсона и Аарона Джонсона за полезные обсуждения при подготовке этого обзора.

Примечание

Литература

  1. Steiner, P. 1993. Cartoon. The New Yorker, July 5, page 61.
  2. Waldman, M. and Mazìeres, D. 2001. Tangler: A censorship-resistant publishing system based on document entanglements. In Proceedings of the 8th ACM Conference on Computer and Communications Security (CCS). 126–135.
  3. Dingledine, R., Freedman, M. J., and Molnar, D. 2000. The Free Haven project: Distributed anonymous storage service. In Proceedings of Designing Privacy Enhancing Technologies:Workshop on Design Issues in Anonymity and Unobservability, H. Federrath, Ed. Lecture Notes in Computer Science, vol. 2009. Springer-Verlag, Berlin, Germany.
  4. Waldman, M., Rubin, A., and Cranor, L. 2000. Publius: A robust, tamper-evident, censorship-resistant and source-anonymous Web publishing system. In Proceedings of the 9th USENIX Security Symposium. 59–72.
  5. Anderson, R. 1996. The eternity service. In Proceedings of Pragocrypt.
  6. Clarke, I., Sandberg, O., Wiley, B., and Hong, T. W. 2000. Freenet: A distributed anonymous information storage and retrieval system. In Proceedings of the Designing Privacy Enhancing Technologies:Workshop on Design Issues in Anonymity and Unobservability. 46–66.
  7. Kilian, J. and Sako, K. 1995. Receipt-free MIX-type voting scheme—a practical solution to the implementation of a voting booth. In Proceedings of EUROCRYPT 1995. Springer-Verlag, Berlin, Germany.
  8. Jakobsson, M., Juels, A., and Rivest, R. L. 2002. Making mix nets robust for electronic voting by randomized partial checking. In Proceedings of the 11th USENIX Security Symposium.
  9. Boneh, D. and Golle, P. 2002. Almost entirely correct mixing with application to voting. In Proceedings of the 9th ACM Conference on Computer and Communications Security (CCS), V. Atluri, Ed., 68–77.
  10. Camenisch, J., Hohenberger, S., and Lysyanskaya, A. 2005. Compact e-cash. In Proceedings of EUROCRYPT 2005, R. Cramer, Ed. Lecture Notes in Computer Science, vol. 3494. Springer, Berlin, Germany, 302–321.
  11. Harkavy, M., Tygar, J., and Kikuchi, H. 1998. Electronic auctions with private bids. In Proceedings of the 3rd conference on USENIX Workshop on Electronic Commerce (WOEC’98). USENIX Association, Berkeley, CA, 61–74.
  12. Camenisch, J. and Lysyanskaya, A. 2001. An efficient system for non-transferable anonymous credentials with optional anonymity revocation. In Proceedings of the International Conference on the Theory and Application of Cryptographic Techniques (EUROCRYPT’01). Springer-Verlag, London, U.K., 93–118.
  13. Camenisch, J., Hohenberger, S., Kohlweiss, M., Lysyanskaya, A., and Meyerovich, M. 2006. How to win the clonewars: Efficient periodic n-times anonymous authentication. In Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS). ACM Press, New York, NY, 201–210.
  14. 14,0 14,1 14,2 14,3 14,4 14,5 Pfitzmann, A. and Hansen, M. 2008. Anonymity, unobservability, and pseudonymity: A consolidated proposal for terminology. Draft.
  15. Goldberg, I. 2000. A pseudonymous communications infrastructure for the internet. Ph.D. dissertation. University, of California, Berkeley, Berkeley, CA.
  16. 16,0 16,1 16,2 Raymond, J.-F. 2000. Traffic analysis: Protocols, attacks, design issues, and open problems. In Proceedings of Designing Privacy Enhancing Technologies: Workshop on Design Issues in Anonymity and Unobservability, H. Federrath, Ed. Lecture Notes in Computer Science, vol. 2009. Springer-Verlag, Berlin, Germany, 10–29.
  17. 17,0 17,1 17,2 17,3 O’Connor, L. 2005. On blending attacks for mixes with memory. In Proceedings of Information Hiding Workshop (IH). 39–52.
  18. 18,0 18,1 Newman, R. E., Moskowitz, I. S., Syverson, P., and Serjantov, A. 2003. Metrics for traffic analysis prevention. In Proceedings of Privacy Enhancing Technologies Workshop (PET’03), R. Dingledine, Ed. Lecture Notes in Computer Science, vol. 2760. Springer-Verlag, Berlin, Germany.
  19. 19,0 19,1 19,2 19,3 Danezis, G., Dingledine, R., and Mathewson, N. 2003. Mixminion: Design of a type III anonymous remailer protocol. In Proceedings of the IEEE Symposium on Security and Privacy.
  20. 20,0 20,1 20,2 20,3 Dingledine, R., Mathewson, N., and Syverson, P. 2004a. Tor: The second-generation onion router. In Proceedings of the 13th USENIX Security Symposium.
  21. 21,0 21,1 21,2 21,3 Reiter, M. and Rubin, A. 1998. Crowds: Anonymity forWeb transactions. ACMTrans. Inform. Syst. Sec. 1, 1 (Nov.), 66–92.
  22. Feamster, N. and Dingledine, R. 2004. Location diversity in anonymity networks. In Proceedings of the Workshop on Privacy in the Electronic Society (WPES). Washington, DC.
  23. 23,0 23,1 Murdoch, S. J. and Zieli´nski, P. 2007. Sampled traffic analysis by Internet-exchange-level adversaries. In Proceedings of the 7th Workshop on Privacy Enhancing Technologies (PET), N. Borisov and P. Golle, Eds.
  24. 24,0 24,1 Serjantov, A. and Sewell, P. 2003. Passive attack analysis for connection-based anonymity systems. In Proceedings of ESORICS.
  25. Rao, J. R. and Rohatgi, P. 2000. Can pseudonymity really guarantee privacy? In Proceedings of the 9th USENIX Security Symposium. USENIX, Berkeley, CA, 85–96.
  26. 26,0 26,1 26,2 26,3 26,4 26,5 26,6 Chaum, D. 1981. Untraceable electronic mail, return addresses, and digital pseudonyms. Commun. ACM 24, 2 (Feb.), 84–88.
  27. Goldwasser, S. and Micali, S. 1984. Probabilistic encryption. J. Comput. Syst. Sci. 28, 2, 270–299.
  28. Bellare, M. and Rogaway, P. 1994. Optimal asymmetric encryption—how to encrypt with rsa. In Proceedings of EUROCRYPT.
  29. 29,0 29,1 29,2 Möller, U., Cottrell, L., Palfrader, P., and Sassaman, L. 2003. Mixmaster Protocol—Version 2. IETF Internet draft. www.ietf.org.
  30. Rivest, R. L., Shamir, A., and Adleman, L. 1983. A method for obtaining digital signatures and public-key cryptosystems. Commun. ACM 26, 1, 96–99.
  31. Pfitzmann, B. and Pfitzmann, A. 1990. How to break the direct RSA-implementation of mixes. In Proceedings of the Workshop on the Theory and Application of Cryptographic Techniques on Advances in Cryptology (EUROCRYPT’89). Springer-Verlag, Berlin, Germany, 373–381.
  32. 32,0 32,1 32,2 Berthold, O., Pfitzmann, A., and Standtke, R. 2000b. The disadvantages of free MIX routes and how to overcome them. In Proceedings of Designing Privacy Enhancing Technologies:Workshop on Design Issues in Anonymity and Unobservability, H. Federrath, Ed. Lecture Notes in Computer Science, vol. 2009. Springer-Verlag, Berlin, Germany, 30–45.
  33. 33,0 33,1 Dingledine, R., Shmatikov, V., and Syverson, P. 2004b. Synchronous batching: From cascades to free routes. In Proceedings of the Privacy Enhancing Technologies Workshop (PET’04). Lecture Notes in Computer Science, vol. 3424. Springer-Verlag, Berlin, Germany, 186–206.
  34. Gülcü, C. and Tsudik, G. 1996. Mixing E-mail with Babel. In Proceedings of the Network and Distributed Security Symposium (NDSS). IEEE, Los Alamitos, CA, 2–16.
  35. 35,0 35,1 Danezis, G. 2003a. Mix-networks with restricted routes. In Proceedings of Privacy Enhancing Technologies Workshop (PET’03), R. Dingledine, Ed. Lecture Notes in Computer Science, vol. 2760. Springer-Verlag, Berlin, Germany, 1–17.
  36. 36,0 36,1 36,2 36,3 36,4 36,5 36,6 Serjantov, A., Dingledine, R., and Syverson, P. 2002. From a trickle to a flood: Active attacks on several mix types. In Proceedings of the Information Hiding Workshop (IH’02), F. Petitcolas, Ed. Lecture Notes in Computer Science, vol. 2578. Springer-Verlag, Berlin, Germany.
  37. 37,0 37,1 37,2 37,3 Díaz, C. and Serjantov, A. 2003. Generalising mixes. In Proceedings of Privacy Enhancing Technologies Workshop (PET’03), R. Dingledine, Ed. Lecture Notes in Computer Science, vol. 2760. Springer-Verlag, Berlin, Germany, 18–31.
  38. 38,0 38,1 Díaz, C. and Preneel, B. 2004. Taxonomy of mixes and dummy traffic. In Proceedings of I-NetSec04: 3rd Working Conference on Privacy and Anonymity in Networked and Distributed Systems (Toulouse, France).
  39. Serjantov, A. and Newman, R. E. 2003. On the anonymity of timed pool mixes. In Proceedings of the Workshop on Privacy and Anonymity Issues in Networked and Distributed Systems. Kluwer, Athens, Greece, 427–434.
  40. Kesdogan, D., Egner, J., and Büschkes, R. 1998. Stop-and-go MIXes: Providing probabilistic anonymity in an open system. In Proceedings of Information Hiding Workshop (IH’98). Lecture Notes in Computer Science, vol. 1525. Springer-Verlag, Berlin, Germany.
  41. Danezis, G. 2004. The traffic analysis of continuous-time mixes. In Proceedings of Privacy Enhancing TechnologiesWorkshop (PET’04). Lecture Notes in Computer Science, vol. 3424. Springer-Verlag, Berlin, Germany, 35–50.
  42. Danezis, G. and Sassaman, L. 2003. Heartbeat traffic to counter (n−1) attacks. In Proceedings of the Workshop on Privacy in the Electronic Society (WPES), Washington, DC.
  43. 43,0 43,1 Helmers, S. 1997. A brief history of anon.penet.fi—the legendary anonymous remailer. http://www.december.com/cmc/mag/1997/sep/helmers.html.
  44. Newman, R. 1996. The church of scientology vs. anon.penet.fi. http://www.xs4all.nl/∼kspaink/cos/rnewman/anon/penet.html.
  45. 45,0 45,1 Parekh, S. 1996. Prospects for remailers. First Monday 1, 2 (Aug).
  46. Sassaman, L., Cohen, B., and Mathewson, N. 2005. The Pynchon gate: A secure method of pseudonymous mail retrieval. In Proceedings of the Workshop on Privacy in the Electronic Society (WPES).
  47. Chor, B., Goldreich, O., Kushilevitz, E., and Sudan, M. 1995. Private information retrieval. In Proceedings of the IEEE Symposium on Foundations of Computer Science. 41–50.
  48. 48,0 48,1 48,2 48,3 Shmatikov, V. and Wang, M.-H. 2006. Timing analysis in low-latency mix networks: Attacks and defenses. In Proceedings of ESORICS.
  49. 49,0 49,1 Liberatore, M. and Levine, B. N. 2006. Inferring the source of encrypted HTTP connections. In Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS). 255–263.
  50. 50,0 50,1 Goldschlag, D. M., Reed, M. G., and Syverson, P. F. 1996. Hiding routing information. In Proceedings of Information Hiding: First InternationalWorkshop, R. Anderson, Ed. Lecture Notes in Computer Science, vol. 1174. Springer-Verlag, Berlin, Germany, 137–150.
  51. 51,0 51,1 Syverson, P., Tsudik, G., Reed, M., and Landwehr, C. 2000. Towards an analysis of onion routing security. In Proceedings of Designing Privacy Enhancing Technologies: Workshop on Design Issues in Anonymity and Unobservability, H. Federrath, Ed. Lecture Notes in Computer Science, vol. 2009. Springer-Verlag, Berlin, Germany, 96–114.
  52. Dai, W. 1998. Pipenet 1.0. Post to Cypherpunks mailing list.
  53. 53,0 53,1 Back, A., Möller, U., and Stiglic, A. 2001. Traffic analysis attacks and trade-offs in anonymity providing systems. In Proceedings of the Information Hiding Workshop (IH’01), I. S. Moskowitz, Ed. Lecture Notes in Computer Science, vol. 2173. Springer-Verlag, Berlin, Germany, 245–257.
  54. Berthold, O., Federrath, H., and Köpsell, S. 2000a. Web MIXes: A system for anonymous and unobservable Internet access. In Proceedings of Designing Privacy Enhancing Technologies: Workshop on Design Issues in Anonymity and Unobservability, H. Federrath, Ed. Lecture Notes in Computer Science, vol. 2009. Springer-Verlag, Berlin, Germany, 115–129.
  55. 55,0 55,1 JonDos GmbH. 2008. Jondonym. https://www.jondos.de/en/.
  56. Freedman, M. J. and Morris, R. 2002. Tarzan: A peer-to-peer anonymizing network layer. In Proceedings of the 9th ACM Conference on Computer and Communications Security (CCS).
  57. Rennhard, M. and Plattner, B. 2002. Introducing MorphMix: Peer-to-peer based anonymous internet usage with collusion detection. In Proceedings of the Workshop on Privacy in the Electronic Society (WPES).
  58. 58,0 58,1 Tabriz, P. and Borisov, N. 2006. Breaking the collusion detection mechanism of morphmix. In Proceedings of the 6thWorkshop on Privacy Enhancing Technologies (PET’06), G. Danezis and P. Golle, Eds. Springer, Cambridge, U.K., 368–384.
  59. Brown, Z. 2002. Cebolla: Pragmatic IP anonymity. In Proceedings of the Ottawa Linux Symposium.
  60. Kate, A., Zaverucha, G., and Goldberg, I. 2007. Pairing-based onion routing. In Proceedings of the 7th Workshop on Privacy Enhancing Technologies (PET’07), N. Borisov and P. Golle, Eds. Springer, Ottawa, Canada.
  61. 61,0 61,1 Øverlier, L. and Syverson, P. 2007. Improving efficiency and simplicity of Tor circuit establishment and hidden services. In Proceedings of the 7th Workshop on Privacy Enhancing Technologies (PET’07), N. Borisov and P. Golle, Eds. Springer, Ottawa, Canada.
  62. Øverlier, L. and Syverson, P. 2006. Locating hidden servers. In Proceedings of the IEEE Symposium on Security and Privacy.
  63. Wright, M., Adler, M., Levine, B. N., and Shields, C. 2003. Defending anonymous communication against passive logging attacks. In Proceedings of the IEEE Symposium on Security and Privacy. 28–43.
  64. Bellare, M., Boldyreva, A., Desai, A., and Pointcheval, D. 2001. Key-privacy in public-key encryption. In Proceedings of the 7th International Conference on the Theory and Application of Cryptology and Information Security (ASIACRYPT’01). Springer-Verlag, London, U.K., 566–582.
  65. 65,0 65,1 Chaum, D. 1988. The dining cryptographers problem: Unconditional sender and recipient untraceability. J. Cryptol. 1, 65–75.
  66. Waidner, M. and Pfitzmann, B. 1990. The dining cryptographers in the disco: Unconditional sender and recipient untraceability. In Proceedings of EUROCRYPT 1989. Lecture Notes in Computer Science, vol. 434. Springer-Verlag, Berlin, Germany.
  67. Golle, P. and Juels, A. 2004. Dining cryptographers revisited. In Proceedings of Eurocrypt.
  68. Electronic Privacy Information Center. 2005. Carnivore. http://epic.org/privacy/carnivore/.
  69. Goel, S., Robson, M., Polte, M., and Sirer, E. G. 2003. Herbivore: A Scalable and Efficient Protocol for Anonymous Communication. Tech. rep. 2003-1890. Cornell University, Ithaca, NY. February.
  70. Sherwood, R., Bhattacharjee, B., and Srinivasan, A. 2002. P5: A protocol for scalable anonymous communication. In Proceedings of the IEEE Symposium on Security and Privacy.
  71. Heydt-Benjamin, T. S., Serjantov, A., and Defend, B. 2006. Nonesuch: A mix network with sender unobservability. In Proceedings of the Workshop on Privacy in the Electronic Society (WPES). ACM Press, New York, NY, 1–8.
  72. 72,0 72,1 Beimel, A. and Dolev, S. 2003. Buses for anonymous message delivery. J. Cryptol. 16, 1, 25–39.
  73. Danezis, G. and Clayton, R. 2007. Introducing traffic analysis. In Digital Privacy: Theory, Technologies, and Practices, A. Acquisti, S. Gritzalis, C. Lambrinoudakis, and S. di Vimercati, Eds. Auerbach Publications, Boca Raton, FL, Chapter 5, 95–117.
  74. Hintz, A. 2002. Fingerprinting websites using traffic analysis. In Proceedings of Privacy Enhancing Technologies Workshop (PET’02), R. Dingledine and P. Syverson, Eds. Lecture Notes in Computer Science, vol. 2482. Springer-Verlag, Berlin, Germany.
  75. Sun, Q., Simon, D. R., Wang, Y.-M., Russell, W., Padmanabhan, V. N., and Qiu, L. 2002. Statistical identification of encrypted Web browsing traffic. In Proceedings of the IEEE Symposium on Security and Privacy.
  76. 76,0 76,1 76,2 Levine, B. N., Reiter, M. K., Wang, C., and Wright, M. K. 2004. Timing attacks in low-latency mix-based systems. In Proceedings of Financial Cryptography (FC’04), A. Juels, Ed. Lecture Notes in Computer Science, vol. 3110. Springer-Verlag, Berlin, Germany, 251–265.
  77. 77,0 77,1 Zhu, Y., Fu, X.,Graham, B., Bettati, R., and Zhao, W. 2004. On flow correlation attacks and countermeasures in mix networks. In Proceedings of Privacy Enhancing Technologies Workshop (PET’04). Lecture Notes in Computer Science, vol. 3424. Berlin, Germany, 207–225.
  78. 78,0 78,1 Murdoch, S. J. and Danezis, G. 2005. Low-cost traffic analysis of Tor. In Proceedings of the 2005 IEEE Symposium on Security and Privacy.
  79. Hopper, N., Vasserman, E. Y., and Chan-Tin, E. 2007. How much anonymity does network latency leak? In Proceedings of CCS.
  80. Wright, M., Adler, M., Levine, B. N., and Shields, C. 2004. The predecessor attack: An analysis of a threat to anonymous communications systems. ACM Trans. Inform. Syst. Sec. 4, 7 (Nov.), 489–522.
  81. 81,0 81,1 Kesdogan, D., Agrawal, D., and Penz, S. 2002. Limits of anonymity in open environments. In Proceedings of Information HidingWorkshop (IH’02), F. Petitcolas, Ed. Lecture Notes in Computer Science, vol. 2578. Springer-Verlag, Berlin, Germany.
  82. 82,0 82,1 Danezis, G. and Serjantov, A. 2004. Statistical disclosure or intersection attacks on anonymity systems. In Proceedings of the 6th Information Hiding Workshop (IH). 293–308.
  83. Kesdogan, D. and Pimenidis, L. 2004. The hitting set attack on anonymity protocols. In Proceedings of the 6th Information Hiding Workshop (IH). 326–339.
  84. Danezis, G. 2003b. Statistical disclosure attacks: Traffic confirmation in open environments. In Proceedings of Security and Privacy in the Age of Uncertainty (SEC’03), G. Gritzalis, Vimercati, Samarati, and Katsikas, Eds. IFIP TC11. Kluwer, Dordrecht, The Netherlands, 421–426.
  85. 85,0 85,1 Mathewson, N. and Dingledine, R. 2004. Practical traffic analysis: Extending and resisting statistical disclosure. In Proceedings of Privacy Enhancing Technologies workshop (PET’04). Lecture Notes in Computer Science, vol. 3424. Berlin, Germany, 17–34.
  86. Danezis, G., Díaz, C., and Troncoso, C. 2007. Two-sided statistical disclosure attack. In Proceedings of the Seventh Workshop on Privacy Enhancing Technologies (PET’07), N. Borisov and P. Golle, Eds. Springer, Ottawa, Canada.
  87. Berthold, O. and Langos, H. 2002. Dummy traffic against long term intersection attacks. In Proceedings of Privacy Enhancing Technologies Workshop (PET’02), R. Dingledine and P. Syverson, Eds. Lecture Notes in Computer Science, vol. 2482. Springer-Verlag, Berlin, Germany.
  88. 88,0 88,1 Clayton, R., Murdoch, S. J., and Watson, R. N. M. 2006. Ignoring the Great Firewall of China. In Proceedings of the sixth Workshop on Privacy Enhancing Technologies (PET’06), G. Danezis and P. Golle, Eds. Springer, Cambridge, U.K., 20–35.
  89. Crandall, J. R., Zinn, D., Byrd, M., Barr, E., and East, R. 2007. ConceptDoppler: A weather tracker for internet censorship. In Proceedings of the 14th ACM Conference on Computer and Communications Security (CCS’07). ACM Press, New York, NY, 352–365.
  90. Citizen Lab. 2008. Psiphon. http://psiphon.civisec.org.
  91. Dingledine, R. and Mathewson, N. 2007. Tor protocol specification. https://svn.torproject.org/svn/tor/trunk/doc/spec/tor-spec.txt.
  92. 92,0 92,1 Köpsell, S. and Hilling, U. 2004. How to achieve blocking resistance for existing systems enabling anonymous web surfing. In Proceedings of the Workshop on Privacy in the Electronic Society (WPES).
  93. Clayton, R., Danezis, G., and Kuhn, M. G. 2001. Real world patterns of failure in anonymity systems. In Proceedings of the Information HidingWorkshop (IH’01), I. S.Moskowitz, Ed. Lecture Notes in Computer Science, vol. 2173. Springer-Verlag, Berlin, Germany, 230–244.
  94. Dingledine, R., Mathewson, N., and Syverson, P. 2007. Deploying low-latency anonymity: Design challenges and social factors. IEEE Sec. Priv. 5, 5, 83–87.
  95. Clark, J., van Oorschot, P. C., and Adams, C. 2007. Usability of anonymousWeb browsing: An examination of Tor interfaces and deployability. In Proceedings of the 3rd Symposium on Usable Privacy and Security (SOUPS). ACM Press, New York, NY, 41–51.
  96. 96,0 96,1 Dingledine, R. and Mathewson, N. 2006. Anonymity loves company: Usability and the network effect. In Proceedings of the Fifth Workshop on the Economics of Information Security (WEIS), R. Anderson, Ed.
  97. Acquisti, A., Dingledine, R., and Syverson, P. 2003. On the economics of anonymity. In Proceedings of the Financial Cryptography (FC’03), R. N. Wright, Ed. Lecture Notes in Computer Science, vol. 2742. Springer-Verlag, Berlin, Germany.
  98. Boucher, P., Shostack, A., and Goldberg, I. 2000. Freedom systems 2.0 architecture. White paper. Zero Knowledge Systems, Inc. December. Zero Knowledge Systems, Inc., Montreal, P.Q., Canada.
  99. Snader, R. and Borisov, N. 2008. A tune-up for Tor: Improving security and performance in the Tor network. In Proceedings of the Network and Distributed Security Symposium (NDSS). Internet Society, Reston, VA.
  100. Dingledine, R., Serjantov, A., and Syverson, P. 2006. Blending different latency traffic with alpha-mixing. In Proceedings of the 6thWorkshop on Privacy Enhancing Technologies (PET’06), G. Danezis and P. Golle, Eds. Springer, Cambridge, U.K., 245–257.
  101. 101,0 101,1 Dingledine, R., Mathewson, N., and Syverson, P. 2005. Challenges in deploying low-latency anonymity. NRL CHACS rep. 5540-625. U.S. Naval Research Laboratory, Washington, DC.
  102. Nambiar, A. and Wright, M. 2006. Salsa: A structured approach to large-scale anonymity. In Proceedings of CCS.
  103. Borisov, N., Danezis, G., Mittal, P., and Tabriz, P. 2007. Denial of service or denial of security? How attacks on reliability can compromise anonymity. In Proceedings of CCS.