TOR: внутренняя кухня луковой маршрутизации

TOR: внутренняя кухня луковой маршрутизации

Подробно объясняем принципы, архитектуру и ограничения анонимной сети.

image

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

От идеи к сети: исторический контекст

Луковая маршрутизация родилась в конце 1990-х в стенах Исследовательской лаборатории ВМС США. Инженеры Пол Сайверсон, Майкл Рид и Дэвид Голдшлаг искали способ защитить метаданные служебной переписки: содержание защищали стандартные алгоритмы, а вот связь адресата и отправителя оставалась на виду. «Оборачивание» пакета множеством шифровальных слоёв выглядело элегантным решением.

В 2002-м выходит первая публичная реализация Tor (The Onion Router). Код открыли, управление постепенно передали некоммерческой команде The Tor Project, а сеть стала развиваться в сотрудничестве с исследователями и волонтёрами по всему миру. Год от года в неё встраивались новые криптографические алгоритмы, улучшалась производительность, появлялись скрытые сервисы и специализированные операционные системы вроде Tails.

Что такое «луковый» пакет данных

Самая наглядная метафора Tor — это матрёшка, только сделана она из криптографии. Когда клиент формирует запрос, он подбирает три произвольных узла: guard-узел (вход), промежуточный узел и exit (выход). Для каждого узла генерируется свой симметричный ключ. Затем сообщение шифруется тремя слоями:

  1. Внутренний слой — ключ выхода.
  2. Средний — ключ промежуточного узла.
  3. Внешний — ключ входного узла.

По пути каждый узел «снимает» лишь свой слой, а оставшееся содержимое для него выглядит как случайный набор байт. Так никто из операторов не знает сразу «кто с кем» и «о чём» общается.

Устройство цепочки и роли узлов

Guard-узел — первая точка соприкосновения клиента с сетью. Он знает IP пользователя, но не видит конечного назначения. Чтобы усложнить статистический анализ, Tor назначает один guard на длительный срок, снижая вероятность перехвата.

Промежуточный узел просто ретранслирует зашифрованный поток, не имея данных ни о начале, ни о конце пути. На практике таких «hop»-ов может быть больше трёх, но классическая трёхзвенная схема балансирует безопасность и скорость.

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

Криптография под капотом

Tor опирается на гибридную схему. Сначала происходит рукопожатие через модифицированный протокол TLS: используется диффи-хеллмановский обмен (ntor) для выработки одноразовых симметрических ключей SES (Session Key). Это обеспечивает perfect forward secrecy — компрометация узла не раскрывает прошлые сессии.

Все последующие данные шифруются блочным алгоритмом AES-CTR, а контроль целостности реализован через HMAC-SHA-256. Ключи раз в минуту автоматически обновляются, поэтому даже длинные передачи разбиваются на короткие, независимые криптографические сессии.

Сеть в действии: построение маршрута шаг за шагом

1. Запрос к директории. Клиент загружает у «директорий» список всех публичных реле. Эти доверенные серверы подписывают консенсус-документ каждые десять минут.

2. Выбор цепочки. Алгоритм случайным образом, но с учётом пропускной способности, отбирает guard, middle и exit. Клиент инициирует поэтапное рукопожатие: сначала договаривается с guard, через него — с middle, далее — с exit.

3. Передача данных кадрами по 512 байт. Каждый кадр проходит шифрование «луковыми» слоями; обратный кадр проходит те же узлы в обратном порядке, но ключи для чтения слоёв симметрично известны лишь тем узлам, которые их устанавливают.

4. Соединение со скрытым сервисом. Для .onion-ресурсов создаётся «двойная луковица»: и клиент, и сервис строят половину цепочки к общему rendezvous-узлу. Ни клиент не узнаёт IP сервера, ни сервер — IP клиента; встречная точка связана со всеми только шифрованным трафиком.

Зачем это нужно: практические сценарии

Tor решает не одну, а целый набор задач приватности. Приведём наиболее характерные случаи:

  • Журналистика и источники. Расследователи передают материалы редакции, не рискуя раскрыть геолокацию и рабочие контакты.
  • Защита конкурирующих разработок. Инженеры облачных сервисов тестируют прототипы, не афишируя внешний трафик и IP-блоки.
  • Исследования больших данных. Аналитики обращаются к API, чтобы не «засветить» корпоративный диапазон адресов и избежать таргетирования.
  • Повышение приватности в публичных сетях. Пользователь кафе работает через Tor, чтобы владелец Wi-Fi не отслеживал историю запросов.
  • Снижение риска корпоративной слежки. Сотрудники обходятся без дополнительной VPN-конфигурации, если в штатной сети не разрешено устанавливать туннели.

Сильные стороны и ограничения

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

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

Вторая слабая точка — производительность. Каждый «хоп» добавляет латентность, а шифрование всех пакетов отнимает CPU. Большие файлы или стриминг видео будут проигрывать в скорости даже среднему VPN.

Мифы о Tor

«Tor — приют киберпреступности». Хотя злоумышленники действительно ценят анонимность, подавляющее большинство трафика сети — обычные пользователи, которые просто не хотят раскрывать лишние метаданные.

«Tor даёт абсолютную анонимность». Любая технология анонимности работает лишь как часть более широкой гигиены: защита конечного устройства, отключение сторонних плагинов, осторожность с учётными записями. Tor скрывает IP и усложняет трафиковый анализ, но не отменяет человеческих ошибок.

«Tor всегда медленный». С развитием протокола и ростом пропускной способности реле средняя скорость выросла в разы. Для веб-серфинга и обмена документами она вполне пригодна, особенно если выбирать выходные узлы с высоким bandwidth weight.

Безопасная эксплуатация

Лучшей практикой остаётся Tor Browser: он заранее заточен под идею «не оставлять лишних следов». Плагины, JavaScript, шрифты загружаются с ограничениями; отпечаток браузера по максимуму уравнен для всех.

Для GTK/Qt-приложений подходит torsocks. Инструмент перехватывает системные вызовы socket и перенаправляет их в Tor-сессию. Так CLI-утилита и графическая программа могут выходить в Сеть через уже построенную цепочку.

Развитие и будущее

Сегодня команда Tor Project тестирует реализацию Arti, переписанную на Rust: более строгая работа с памятью, асинхронность, модульная архитектура. Параллельно идёт миграция на транспорт Tor over QUIC: одно рукопожатие сокращает задержку, а скользящий поток UDP облегчает работу мобильным клиентам.

Ещё один вектор — защита от квантовых атак. В тестовой ветке уже можно включить пост-квантовые варианты ntor-рукопожатия (например, CRYSTALS-Kyber). Это создаёт запас прочности на десятилетия вперёд.

Полезные ресурсы

  • Официальный сайт Tor Project — документация, свежие сборки и отчёты о развитии.
  • Tor Metrics — графики числа реле, пропускной способности и версии протокола.
  • Nyx — консольный монитор для операторов собственных реле.
  • Tails — живой дистрибутив, где весь трафик автоматически идёт через Tor.

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


Онлайн-митап Positive Technologies по сетевой безопасности.

16 сентября специалисты по ИБ поделятся честным опытом работы с PT Sandbox и PT NAD.

Реклама. 18+ АО «Позитив Текнолоджиз», ИНН 7718668887