Tor

From CryptoWiki
Jump to: navigation, search

Tor (сокр. от англ. The Onion Router) — свободное и открытое программное обеспечение для реализации второго поколения так называемой луковой маршрутизации. Это система прокси-серверов, позволяющая устанавливать анонимное сетевое соединение, защищённое от прослушивания. Рассматривается как анонимная сеть виртуальных туннелей, предоставляющая передачу данных в зашифрованном виде. Написана преимущественно на языках программирования C, C++ и Python.

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

Tor оперирует сетевыми уровнями onion-маршрутизаторов, позволяя обеспечивать анонимные исходящие соединения и анонимные скрытые службы. В 2011 году проект Tor был удостоен премии общественной значимости Фонда свободного программного обеспечения, а в 2012 году — награды EFF Pioneer Award.


Contents

Принципы работы

Анонимные исходящие соединения

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

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

Виды узлов Tor

Входные узлы (entry node)

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

Посреднические узлы (middleman node)

Посреднический узел, также иногда называемый невыходным (non-exit node), передаёт шифрованный трафик только между другими узлами сети Tor, что не позволяет его пользователям напрямую подключаться к сайтам, находящимся вне зоны .onion. Обслуживание посреднического узла гораздо менее рискованно, поскольку он не становится причиной жалоб, свойственных для выходного. Кроме того, IP-адреса посреднических узлов не появляются в логах.

Выходные узлы (exit node)

Последние в цепочке серверы Tor называются выходными узлами. Они выполняют роль передаточного звена между клиентом сети Tor и публичным Интернетом. Это делает их наиболее уязвимой частью всей системы. Поэтому каждый ретранслятор Tor имеет гибкие настройки правил вывода трафика, которые позволяют регулировать использование тех или иных портов, протоколов и лимитов скорости для запущенного пользователем узла сети. Эти правила представлены в директории Tor, следовательно, клиент автоматически будет избегать подключения к закрытым ресурсам. В любом случае, пользователю, решившему запустить у себя выходной узел, следует быть готовым к возникновению различных нештатных ситуаций. Специально для помощи энтузиастам в таких случаях появились соответствующие руководства от The Tor Project, Inc.

Сторожевые узлы (guard node)

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

Untagging Tor: A Formal Treatment