April 29

Как работает TOR

Всем привет! На связи админ канала Falcon Bytes! На сегодняшний день в интернете распространилась подобная клоунада как "сваттинг" и многие пользуются TOR для того, чтобы совершать свои злодеяния. Это в основном школьники, которые даже не понимают, как работает тор. Давайте вместе разберемся в том, как работает механизм анонимности в TOR и почему он так важен для многих в интернете.

Введение

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

Из-за того, как работает интернет, ваш IP адрес может быть использован для того, чтобы определить ваше местоположение и связать все ваши действия в интернете с вашей личностью. Поэтому постепенно подходим к сети TOR.

Задача TOR - скрыть ваш реальный IP адрес а соответственно и местоположение. Однако TOR - это не просто браузер, это огромная сеть разных компьютеров, распределенных по всему миру, которые используют одинаковое ПО и подключены между собой. Некоторые из этих компьютеров являются узлами TOR, которые обеспечивают передачу информации внутри сети.

Краткая история Tor

Концепция луковичной маршрутизации (позже поясню это название) впервые была предложена в 1995 году. Сначала эти исследования финансировались министерством военно-морских исследований, а затем в 1997 году к проекту подключилась DARPA (Управление перспективных исследовательских проектов Министерства обороны США).

С тех пор Tor Project финансировали разные спонсоры, а не так давно проект победил в кампании по сбору пожертвований на reddit.

Код современной версии ПО Tor был открыт в октябре 2003 года, и это было уже 3-е поколение ПО для луковичной маршрутизации. Идея его в том, что мы оборачиваем трафик в зашифрованные слои (как у луковицы), чтобы защитить данные и анонимность отправителя и получателя.

Основы Tor

TOR - это аббревиатура. Она расшифровывается как:

  • THE
  • ONION
  • ROUTER

Когда вы запускаете TOR, программное обеспечение сначала закачивает список всех узлов в сети. Затем TOR выбирает путь, через который будет передаваться информация. Этот путь по умолчанию состоит из 3-х узлов. У каждого из узлов есть своя роль.

Рассмотрим пример:

Вы используя сеть TOR заходите на какой-то веб-сайт. Запрос к веб-сайту должен пройти через 3 узла:

  • 1-й узел - Входной или же сторожевой узел (Guard Relay) который является точкой взода в сеть ТОР. Входные узлы обычно выбираются из тех, что работают достаточно продолжительное время и имеют высокую пропускную способность.
  • 2-й узел - Промежуточный узел (Middle Relay) Передает трафик от охранных узлов к выходным. В результате первые узлы ничего не знают о последних
  • 3-й узел - Выходной узел (Exit Relay) - это точка вызода из сети ТОР. От этого узла пакет ваших данных отправляется в пункт назначения, выбранный клиентом.

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

Встретите оператора выходного узла – скажите ему спасибо. Он того заслуживает.

Клиент -> Охранный узел -> Промежуточный узел -> Выходной узел -> Пункт назначения

На момент 2022 года в сети Tor передачей трафика занимаются около 7000 маршрутизаторов. Они расположены по всему миру и работают благодаря добровольцам, которые соглашаются отдать немного трафика для благого дела. Важно, что у большинства узлов нет никакого специального железа или дополнительного ПО – все они работают при помощи ПО Tor, настроенного на работу в качестве узла.

Скорость и анонимность сети Tor зависит от количества узлов – чем больше, тем лучше! И это понятно, поскольку трафик одного узла ограничен. Чем больше у вас выбор узлов, тем сложнее отследить пользователя.

Причём здесь лук (ONION)?

Разобравшись в маршруте соединений, идущих через узлы, зададимся вопросом – а как мы можем им доверять? Можно ли быть уверенным в том, что они не взломают соединение и не извлекут все данные из него? Если кратко – а нам и не нужно им доверять!

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

Так что там насчёт луковиц? Давайте разберём работу шифрования в процессе установки соединения клиента через сеть Tor:

  • Клиент шифрует данные так, чтобы их мог расшифровать только выходной узел.
  • Эти данные затем снова шифруются так, чтобы их мог расшифровать только промежуточный узел.
  • А потом эти данные опять шифруются так, чтобы их мог расшифровать только сторожевой узел
Сторожевой узел -> Промежуточный узел -> Выходной узел -> Оригинальные данные

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

Замечание: выходные узлы могут увидеть исходные данные, поскольку им надо отправлять их в пункт назначения. Поэтому они могут извлекать из трафика ценную информацию, передаваемую открытым текстом по незащищенным протоколам (HTTP, FTP, SMTP). Если данные передаются по защищенному протоколу, например (HTTPS), то даже выходной узел не сможет увидеть исходных данных, так как они будут дополнительно зашифрованы.

Для того, чтобы всегда быть уверенными, что ваши данные будут зашифрованы, рекомендую использовать расширения для браузеров, которые будут всегда шифровать данные, и блокировать соединения по протоколу HTTP. Например есть расширение: HTTPS Everywhere.

Как утверждают разработчики TOR, это расширение заранее установлено для мобильных версий TOR браузера, а в новых версиях для ПК это расширение заменено на постоянный режим HTTPS-Only

Узлы и мосты: проблема с узлами

После запуска Tor-клиента ему нужно получить списки всех входных, промежуточных и выходных узлов. И это список не является тайной – позже я расскажу, как он распространяется (можете сами поискать в документации по слову “concensus”). Публичность списка необходима, но в ней таится проблема.

Чтобы понять её, давайте прикинемся атакующим и спросим себя: что бы сделало Авторитарное Правительство (АП)? Размышляя таким образом, мы сможем понять, почему Tor устроен именно так.

Так что бы сделало АП? Цензура – дело серьёзное, а Tor позволяет её обходить, поэтому АП захотело бы блокировать пользователям доступ к Tor. Для этого есть два способа:

  • блокировать пользователей, выходящих из Tor;
  • блокировать пользователей, входящих в Tor.

Первое – возможно, и это свободный выбор владельца маршрутизатора или веб-сайта. Ему всего лишь нужно скачать список выходных узлов Tor, и блокировать весь трафик с них. Это будет плохо, но Tor ничего с этим не может сделать.

Второй вариант серьёзно хуже. Блокировка выходящих из Tor пользователей может предотвратить посещение определённого сервиса, а блокировка всех входящих не даст им ходить ни на какие сайты – Tor станет бесполезным для тех пользователей, кто уже страдает от цензуры, в результате чего они и обратились к этому сервису. И если бы в Tor были только узлы, это было бы возможным, так как АП может скачать список сторожевых узлов и заблокировать трафик к ним.

Хорошо, что разработчики Tor подумали об этом и придумали хитрое решение проблемы. Познакомьтесь с мостами.

Мосты

Мосты являются некими посредниками между клиентом и сторожевыми узлами, таким образом интернет провайдер клиента не видит прямого подключения клиента (вас) к сторожевому узлу.

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

Просто он не публичный. Вместо этого пользователи могут получать небольшой список мостов, чтобы соединиться с остальной частью сети. Этот список, BridgeDB, выдаёт пользователям только по нескольку мостов за раз. Это разумно, так как много мостов сразу им и не нужно.

Выдавая по нескольку мостов, можно предотвратить блокировку сети Авторитарным Правительством. Конечно, получая информацию о новых узлах, можно блокировать и их, но может ли кто-то обнаружить все мосты?

Список мостов строго секретен. Если АП(авторитарное правительство) получит этот список, оно сможет полностью заблокировать Tor. Поэтому разработчики сети проводили исследования возможностей получения списка всех мостов.

На этом пока что все, на связи был админ канала Falcon Bytes, надеюсь пост был полезен.