Что такое Tor
Tor – это технология обеспечения анонимности в интернете. Изначально проект разрабатывался военными США, а сейчас развивается некоммерческой организацией Tor Project. Чаще всего для входа в Tor используется Tor Browser – программа с открытым исходным кодом.
Протокол Tor
Общая схема
- Клиент получает список всех узлов сети
- Клиент формирует цепочку (circuit) из трёх узлов: входной, промежуточный и выходной
- Клиент начинает передачу сообщений по цепочке
Роли узлов
- Входной – узел с которым первым соединяется клиент. Только он знает реальный адрес клиента
- Промежуточный – просто пересылает сообщение от входного узла к выходному
- Выходной – передаёт данные на сайт. Только выходной узел знает какой сайт посещается. В свою очередь, сайт видит адрес только выходного узла
Получение узлов сети
Актуальное состояние сети Tor отслеживается 9 доверенными серверами-хранителям (Directory nodes). Они собирают и сохраняют данные об активных узлах. Периодически хранители объединяют свои знания о состоянии сети, формируют консенсусное мнение, подписывают и сохраняют его. Когда клиенту нужно получить состояние сети, он запрашивает консенсус у любого хранителя.
Мосты
Если кто-то захочет заблокировать Tor, то может попытаться закрыть доступ к серверам-хранителям. В этом случае клиент не сможет получить актуальное состояние сети. Для защиты от такого сценария используются специальные прокси, которые называются мосты. Мосты выдаются клиентам небольшими порциями, ни у кого из клиентов нет полного списка мостов, из-за чего заблокировать их все очень трудно.
Выработка ключей
Чтобы шифровать сообщения, клиент вырабатывает ключ шифрования отдельно с каждым из узлов. При этом клиент не может обращаться к промежуточному и выходному узлам напрямую, ведь тогда они узнают его адрес. Поэтому сначала клиент вырабатывает ключ с входным узлом. Затем, используя входной узел как прокси, вырабатывает ключ с промежуточным узлом. И, наконец, используя входной и промежуточный узлы как прокси – с выходным узлом. Таким образом у клиента есть 3 ключа шифрования (по одному для каждого узла), а у узлов – по одному ключу.
Луковая маршрутизация
Для передачи данных клиент шифрует их последовательно на трёх ключах. Получается схема, похожая на луковицу (отсюда и название “луковая маршрутизация”):
Каждый узел расшифровывает свой слой и направляет данные дальше. Выходной узел снимает последний слой и получает исходные данные:
Ответ идёт в обратном порядке, начиная с выходного узла.
Заключение
Технология Tor обеспечивает анонимность и секретность передаваемых данных. Ключевая идея технологии в том, что данные проходят по защищённому каналу через несколько узлов, запутывая след и скрывая истинного отправителя.