В основе работы системы Tor лежит распределение маршрутов между несколькими серверами, по которым происходит обмен пакетами. Представим себе, что компьютер Алисы подключается к Интернету. В самом начале работы - когда в системном трее запускается Tor, он получает список доступных к настоящему моменту серверов. В результате, компьютер Алисы знает, какие сервера сейчас доступны (рис. 11.13):
Рис. 11.13. Получение списка серверов сети Tor. Иллюстрация Tor Project, Inc. (http://www.torproject.org/overview.html.ru).
Далее, Алиса открывает браузер и открывает какую-то страницу. Условно говоря, это будет сайт Боба. Система Tor отправляет получаемую информацию от Боба через цепочку серверов к компьютеру Алисы. Каждый сервер знает лишь маленький кусочек цепочки, но никто не знает полного пути. В результате незашифрованным участком остается лишь канал от Боба до первого сервера (рис. 11.14):
Рис. 11.14. Передача трафика в системе Tor. Иллюстрация Tor Project, Inc.
Мы знаем, что компьютер Боба - а это веб-сайт, может определять IP-адрес своих посетителей. Но в данном случае Боб узнает лишь IP-адрес последнего звена, который обратился к нему. Для того чтобы распутать всю цепочку обращения, понадобится отследить всех участников цепи.
Созданная цепочка сохраняется в течении десяти минут. Если Алиса решает посетить другой веб-сайт, то создается новая цепочка соединений (рис. 11.15):
Рис. 11.15. Создание новой цепочки соединений. Иллюстрация Tor Project, Inc.
Самым уязвимым местом всей системы были бы узлы Tor, если бы они представляли собой централизованные сервера. В самом деле, достаточно было бы отследить их местонахождение - а это лишь вопрос времени, чтобы отслеживать любые цепочки соединений. В конце концов, при наличии конкретных ответственных лиц, возможно было бы оказание на них давления для распутывания нужных соединений.
Однако в качестве узлов системы Tor используются компьютеры самих пользователей. Если скорость вашего соединения составляет не менее 20 килобайт/сек (160 Кбит\сек), то вы можете настроить свой компьютер в качестве сервера. Это не является обязательным правилом сети Tor - можно пользоваться сервисом и без предоставления услуг сервера. Но всегда находятся добровольцы, которые могут это сделать. Щелкаем правой кнопкой мыши на иконке Tor в системном трее, в появившемся контекстном меню выбираем пункт "Карта Сети" (рис. 11.16):
Рис. 11.16. Просмотр карты сети Tor.
Открывается окно "Карта сети Tor", в котором можно видеть карту мира, с красными точками на ней - сервера Tor. Отображается список всех доступных серверов, их географическое расположение, IP-адреса, а также размер предоставляемого канала. Отметим, что в число серверов Tor входит несколько десятков точек, относящихся к России (рис. 11.17):
Рис. 11.17. Карта Tor серверов.
Децентрализованная система автоматически означает стабильность и надежность работы. Можно закрыть несколько точек в отдельном регионе или даже стране, но в этом случае система просто переключит цепочки на доступные узлы.
На сайте проекта (http://www.torproject.org/download.html.ru) также можно скачать исходные коды программы. Специалисты могут оценить их на предмет наличия "черных входов". В самом деле, критики системы иногда делают акцент на том, что несмотря на децентрализованный подход, в программе встроена возможность определения отслеживания всех пользователей. Впрочем, анализ исходных кодов, доступный всем желающим, может развеять все эти сомнения.
Плагины (расширения) позволяют интегрировать возможности браузера и системы Tor. На момент создания курса доступны плагины OperaTor (http://archetwist.com/en/opera/operator) для Opera и Torbutton (https://addons.mozilla.org/ru/firefox/addon/2275) для Mozilla Firefox.
Если же система Tor используется без плагинов, то можно просто снимать галочки использования прокси-серверов в настройках браузера.