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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Луковая маршрутизация (англ. Onion routing) — технология анонимного обмена информацией через компьютерную сеть. Сообщения неоднократно шифруются и потом отсылаются через несколько сетевых узлов, называемых луковыми маршрутизаторами. Каждый маршрутизатор удаляет слой шифрования, чтобы открыть трассировочные инструкции и отослать сообщения на следующий маршрутизатор, где все повторяется. Таким образом, промежуточные узлы не знают источник, пункт назначения и содержание сообщения.

Луковая маршрутизация была разработана Михаэлем Ридом, Паулем Сиверсоном и Дэвидом Голдшлагом, запатентована Военно-морскими силами США, выдан патент Соединенных Штатов № 6266704 (1998). По состоянию на 2009 год, анонимная сеть Tor является доминирующей технологией, которая использует луковую маршрутизацию.

Возможности[править | править код]

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

Луковая маршрутизация работает в соответствии с принципом смешанных соединений Чаума: сообщения передаются из источника к месту назначения через последовательность прокси («луковых маршрутизаторов»), которые перенаправляют сообщение в непредсказуемом направлении. Чтобы избежать «прослушивания» сообщений злоумышленником, между маршрутизаторами они передаются в зашифрованном виде. Преимущество луковой маршрутизации (и смешанных соединений в целом) состоит в том, что отпадает необходимость доверия каждому участвующему маршрутизатору. Даже если один или несколько из них окажутся взломанными, анонимное соединение все равно сможет быть установлено. Это достигается за счёт того, что каждый маршрутизатор в ЛМ-сети принимает сообщения, шифрует их заново и передает их на другой луковый маршрутизатор. Злоумышленник, имеющий возможность проводить мониторинг всех луковых маршрутизаторов в сети, теоретически может проследить путь сообщения через сеть. Но задача сильно усложняется, даже если злоумышленник имеет доступ к одному или нескольким маршрутизаторам на пути сообщения.

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

Маршрутизация[править | править код]

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

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

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

Слабости[править | править код]

У луковой маршрутизации есть несколько слабостей. Во-первых, она не обеспечивает защиты против анализа синхронизации. Если злоумышленник наблюдает за относительно слабо загруженным луковым маршрутизатором, он может определить, какие исходящие сообщения соответствуют каким входящим, анализируя время получения и отсылки сообщений. Анализу синхронизации можно противостоять путём буферизации нескольких сообщений и их передачи с использованием псевдослучайного временно́го алгоритма.

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

Луковая маршрутизация не в состоянии защитить данные, проходящие через выходные узлы, при наличии полного доступа аналитика к передаваемому трафику (через сниффинг), и поэтому луковые сети не должны использоваться для передачи личной информации без использования конечной криптографии, такой, как TLS. Шведскому исследователю Дэну Эгерстаду удалось собрать около ста паролей от ящиков иностранных посольств, используя сниффинг[1].

Приложения[править | править код]

Tor[править | править код]

Основная статья: Tor

13 августа 2004 года, на 13-м USENIX симпозиуме по безопасности, Роджер Динглдайн, Ник Мэтьюсон и Паул Сиверсон представили Tor, луковый маршрутизатор второго поколения.

Tor использует не оригинальную запатентованную луковую маршрутизацию, а телескопические схемы. Tor обеспечивает отличную секретность пересылки и использует очистку протокола снаружи слоя луковой маршрутизации, создавая в основном TCP-передачу. Он также обеспечивает низкий пинг, каталог серверов, конечную проверку целостности и вариативные политики выхода для маршрутизаторов. Ответные луковицы были заменены стыковочной системой, позволяющей иметь скрытые сервисы и веб-сайты. Псевдо-домен верхнего уровня .onion используется для адресации в сети Tor.

Исходный код Tor опубликован под лицензией BSD[2]. На сентябрь 2014 года насчитывается более 6000 публичных луковых маршрутизаторов[3].

См. также[править | править код]

Примечания[править | править код]

  1. Security expert used Tor to collect government e-mail passwords. Дата обращения 21 сентября 2016.
  2. The Tor Project, Inc. LICENSE (англ.). torproject.org. Дата обращения 5 сентября 2014.
  3. The Tor Project, Inc. Tor Metrics: Servers (англ.) (недоступная ссылка). torproject.org. Дата обращения 5 сентября 2014. Архивировано 25 декабря 2010 года.

Исследовательские работы[править | править код]

Книги по теме[править | править код]

Ссылки[править | править код]