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

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

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

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

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

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

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

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

Маршрутизация[править | править вики-текст]

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

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

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

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

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

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

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

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

Tor[править | править вики-текст]

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

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

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

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

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

  1. The Tor Project, Inc. LICENSE (англ.). torproject.org. Проверено 5 сентября 2014.
  2. The Tor Project, Inc. Tor Metrics: Servers (англ.). torproject.org. Проверено 5 сентября 2014.

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

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

Ссылки[править | править вики-текст]