Смешанные сети в криптографии
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Red_de_mezcla.png/220px-Red_de_mezcla.png)
Смешанная сеть[1] (англ. Mix network) — протокол маршрутизации, создающий трудно прослеживаемую связь, используя цепь прокси-серверов, известных как миксы, которые принимают сообщения от множества пользователей, перемешивают их и рассылают дальше в случайном порядке до следующего пункта назначения (возможно, другому микс-узлу). Это разрушает связь между источником сообщения и получателем, усложняя перехват сообщения при end-to-end общении. Более того, каждый узел знает только информацию о предыдущем узле и адрес следующего получателя. Это делает сеть устойчивой к узлам злоумышленников[2].
Каждое сообщение шифруется для каждого прокси с помощью криптографической системы с открытым ключом. Результаты шифрования располагаются наподобие матрёшки, за тем исключением, что все элементы одинакового размера. Каждый узел сети раскрывает свой слой матрёшки. Таким образом он получает информацию о дальнейшем получателе. Даже если все узлы, кроме одного, будут скомпрометированы, личность все ещё будет сложно рассекретить.
Концепт смешанной сети был впервые описан в 1981 году[3]. Такие приложения как Tor и Mixmaster, а также микснет Nym, основаны на этом принципе.
История
[править | править код]Дэвид Чаум опубликовал концепт смешанных сетей в 1979 году в статье «Неотслеживаемая электронная почта, обратные адреса и цифровые псевдонимы» (англ. «Untraceable electronic mail, return addresses, and digital pseudonyms»)[4]. Эта статья была подготовлена для магистерской работы, вскоре после того, как он впервые был представлен в области криптографии с помощью криптографии с открытым ключом, Мартина Хеллмана, Уитфилда Диффи и Ральфа Меркла. В то время как криптография с открытым ключом давала безопасность информации, Чаум полагал, что в метаданных, обнаруженных в сообщениях, существуют уязвимости личной конфиденциальности. Некоторые уязвимости, которые сделали возможным нарушение личной конфиденциальности, включали время отправки и получения сообщений, размер сообщений и адрес исходного отправителя.
Алгоритм работы
[править | править код]Определим отправителя как , а получателя как . Рассмотрим отправку сообщения через сеть с одним узлом. готовит своё сообщение в несколько этапов. Во-первых, добавляет случайное значение к своему сообщению. Далее он кодирует это сообщение с помощью публичного ключа , добавляет адрес получателя и, наконец, кодирует это сообщение с помощью публичного ключа . Узел, получив сообщение, расшифровывает его использую свой приватный ключ, тем самым получает информацию о конечном адресе и отправляет сообщение получателю [4].
Формат сообщения
[править | править код]
Отправитель берёт открытый ключ и, используя его, шифрует своё сообщение предварительно добавив к нему случайный шум .
К полученному на первом сообщении добавляется адрес получателя (A) и случайная строка R1. Результат шифруется с помощью открытого ключа последнего узла .
Эти операции проводятся для всех N узлов. Получается сообщение вида:
Далее это сообщение проходя через каждый узел расшифровывается и к адресату попадает сообщение , которое он расшифровывает своим закрытым ключом.
Случайные строки нужны, чтобы предотвратить угадывание сообщений. Предполагается, что взломщик может обозревать все входящие и исходящие сообщения. Если он имеет представление о содержимом сообщения, он может зашифровать своё сообщение с помощью публичного ключа и сравнить результат с подсмотренным сообщением. Таким образом взломщик может узнать содержимое сообщения. С добавлением случайной строки это становится невозможно. Алгоритм добавления случайной строки называется Соль . Даже если взломщик отгадает наше сообщение, он не сможет проверить корректность своего предположения.
Обратный адрес
[править | править код]Более того, необходимо чтобы была возможность обратного ответа, сохраняя личность отправителя.
Решение этой задачи заключается в формировании не отслеживаемого обратного адреса , где — реальный адрес, — одноразовый открытый ключ сгенерированный только для текущего случая и который ведёт себя как случайная строка с целью предотвратить возможность компрометировать адрес. Далее отправляет адрес как часть сообщения по алгоритму описанному выше. Адресат отправляет ответное письмо в виде узлу M, и этот узел трансформирует сообщение к виду .
Этот узел использует строку битов как ключ для перекодировки части сообщения . Только А может декодировать сообщение, потому что он создал оба ключа и . Дополнительный ключ даёт уверенность, что узел не сможет увидеть контент ответного сообщения.
Для примера можно рассмотреть следующую последовательность действий. Сообщение от :
Ответное сообщение от :
Где: = открытый ключ B = открытый ключ узла.
Mix Master
[править | править код]Mixmaster является анонимной сетью сообщений II типа, который отправляет сообщения в пакетах фиксированного размера и переупорядочивает их, предотвращая отслеживание входящих и исходящих сообщениями тех, кто их просматривает. Это реализация сети Mix Network. Mixmaster был первоначально написан Лэнсом Коттреллом, и поддерживался Леном Сассаманом. Питер Палфрейдер — текущий сопровождающий. Текущее программное обеспечение Mixmaster также может быть скомпилировано для обработки сообщений Cypherpunk; они нужны как блоки ответа для nym-серверов.
В неинтерактивном режиме Mixmaster читает сообщение со своего стандартного ввода или из файла. Адрес назначения и входной файл могут быть указаны в командной строке. Если в командной строке не указан адрес, ожидается, что входной файл будет содержать сообщение с заголовками почты[5].
Уязвимости
[править | править код]Хотя смешанные сети обеспечивают безопасность, даже если злоумышленник может просмотреть весь путь, смешивание не является абсолютно идеальным способом сохранения анонимности. Злоумышленники могут проводить длительные корреляционные атаки и отслеживать отправителя и получателя пакетов[6][7].
Модель угрозы
[править | править код]Злоумышленник может выполнить пассивную атаку, отслеживая трафик в и из смешанной сети. Анализ времени прибытия между несколькими пакетами может дать необходимую информацию. Поскольку в пакеты не вносятся никаких изменений, подобную атаку трудно обнаружить. В худшем случае атаки мы предполагаем, что злоумышленник может наблюдать за всеми звеньями сети, а инфраструктура смешанной сети известна.
Пакет на входной линии не может быть соотнесён с пакетом на выходной линии на основе информации о времени, когда пакет был принят, о размере пакета или о содержимом пакета. Корреляция пакетов на основе синхронизации пакетов предотвращается путём пакетирования, а корреляция на основе содержимого и размера пакета предотвращается шифрованием и заполнением пакетов соответственно.
Межпакетные интервалы, то есть разница во времени между наблюдением двух последовательных пакетов в двух сетевых каналах, используются для определения, имеют ли эти каналы одно и то же соединение. Шифрование и заполнение не влияют на межпакетный интервал, связанный с одним и тем же потоком IP. Последовательности межпакетного интервала сильно различаются между соединениями, например, при просмотре веб-страниц трафик происходит пакетами. Этот факт может быть использован для идентификации соединения[3].
Активная атака
[править | править код]Активные атаки проводятся путём введения целевых пакетов с уникальными временными сигнатурами[8]. Злоумышленник может выполнить атаки, чтобы попытаться идентифицировать эти пакеты на других сетевых каналах. Он может не иметь возможности создавать новые пакеты из-за требуемого знания симметричных ключей во всех последующих микшерах.
Искусственное пространство
[править | править код]Большое пространство может быть создано путём отправления в целевой поток большого числа последовательных пакетов. Например, симуляция отправляет 3000 пакетов в целевой поток. По мере увеличения количества последовательных отбрасываемых пакетов эффективность защиты значительно снижается.
Искусственные взрывы
[править | править код]Атакующий может создавать искусственные взрывы. Это делается путём создания сигнатуры из искусственных пакетов, удерживая их в канале в течение определённого периода времени, а затем выпуская их все сразу. Защита ослабевает, и злоумышленник может определить целевой поток. Есть другие защитные меры, которые могут быть приняты, чтобы предотвратить эту атаку. Одним из таких решений могут быть алгоритмы адаптивного заполнения. Чем больше пакетов задерживается, тем легче определить поведение и, следовательно, можно обеспечивать лучшую защиту[7].
Примечания
[править | править код]- ↑ Claudio A. Ardagna. Privacy Preservation over Untrusted Mobile Networks (англ.).
- ↑ Danezis, George. Mix-Networks with Restricted Routes. In Dingledine, Roger (англ.).
- ↑ 1 2 David Chaum. Untraceable electronic mail, return addresses, and digital pseudonyms (англ.). Архивировано 6 мая 2020 года.
- ↑ 1 2 David Chaum, George. Untraceable electronic mail, return addresses, and digital pseudonyms // Untraceable electronic mail, return addresses, and digital pseudonyms (неопр.). Архивировано 7 ноября 2018 года.
- ↑ Mixmaster man page . SourceForge (14 января 2008). Дата обращения: 9 октября 2014. Архивировано 23 января 2015 года.
- ↑ Tom Ritter, «the differences between onion routing and mix networks», ritter.vg Архивная копия от 21 декабря 2018 на Wayback Machine Retrieved December 8, 2016.
- ↑ 1 2 Paul Syverson. Sleeping dogs lie on a bed of onions but wake when mixed (англ.). Архивировано 4 февраля 2019 года.
- ↑ Shmatikov, Vitaly; Wang, Ming-Hsiu. Timing Analysis in Low-Latency Mix Networks: Attacks and Defenses (англ.) // European Symposium on Research in Computer Security : journal. — 2006. — Vol. 4189. — P. 18—33. — doi:10.1007/11863908_2. (недоступная ссылка)