К примеру, первый сервер в цепочке сети TOR, выбранный для тоннеля, не может точно определить, назначены ли данные для пользователя или он тоже является посредником в цепочке для другого пользователя. Ни один узел в цепочке тоннеля, кроме выходного сервера, не имеет доступа к передаваемым данным (в незашифрованном виде), так как это не нужно для их работы. Серверам из цепочки в тоннеле необходима лишь информация о том, какой следующий сервер в цепи посредников будет получать зашифрованное содержимое.
Для того чтобы каждый сервер в цепи имел только часть необходимой именно для него информации, используется шифрование с открытыми ключами. Данный метод шифрования хорошо себя зарекомендовал и очень надежен, и даже если отдельный сервер в цепочке находится под контролем противника, он не сможет получить информацию, предназначенную для других серверов в цепочке тоннеля.
Только последний сервер R3 в цепочке тоннеля может расшифровать передаваемые данные, которые он отсылает в конечный пункт назначения (интернет-ресурс). Обратный ответ он может доставить на компьютер пользователя таким же образом, с сохранением анонимности.
Другими словами, имеются:
– входной узел для первичного шифрования;
– посреднический узел, который осуществляет только обмен между узлами сети TOR;
– выходной узел, который является передаточным звеном между сетью TOR и интернет-ресурсом.
В последней версии TOR используются также сторожевые узлы, которые защищают от компрометации. Фактически они снижают вероятность компрометации, но не обеспечивают полную защищенность. В сети TOR также есть анонимные мостовые узлы, которые применяются для построения цепочек. Их основная цель – противодействовать блокированию узлов системы TOR по списку.
В качестве еще одной особенности можно отметить построение в системе TOR новой цепочки каждые 10 минут и наличие встроенных механизмов имитации работы некоторых протоколов с целью обеспечения защищенного обмена между мостами и узлами.
Однако следует заметить, что построение подобных географически распределенных цепей узлов сети снижает скорость работы в интернете.
Основные уязвимости, дестабилизирующие работу сети TOR, можно разбить на три вида:
– уязвимости браузера TOR, работающего на базе браузера Mozilla;
– уязвимости архитектуры сети TOR;
– уязвимости, связанные с работой других сервисов.
В первом случае речь идет об уязвимостях самого браузера и сопутствующих элементов – плагинов. Действительно, уязвимости браузера позволяют заинтересованным лицам произвести атаки на сам клиент. Однако даже с ресурсами Агентства национальной безопасности США уследить за всеми пользователями невозможно, учитывая, что устраняются уязвимости довольно быстро. Это подтверждается опубликованными в WikiLeaks документами, ранее украденными Эдвардом Сноуденом. К уязвимостям плагинов можно отнести внутренние ошибки Flash и HTML5, с помощью которых можно вынудить пользователя сети TOR отправить реальный адрес. В настоящий момент эти уязвимости стали менее актуальными в связи с отсутствием поддержки данных плагинов в последних версиях браузера TOR.
Во втором случае речь идет о еще менее эффективных способах, которые требуют использования высокопроизводительных компьютеров:
– атаке по времени, то есть расшифровке данных в результате анализа параметров времени шифрования. Эффективность этого способа низка, так как шифрование происходит на всех трех узлах цепи серверов TOR. Для анализа параметров времени шифрования необходимо слушать трафик на первом узле, однако использование сторожевых узлов сводит эту возможность к минимуму;
– глобальном пассивном наблюдении. Этот способ позволяет наблюдать отклонения по назначению трафика, тем самым выявляя нужный трафик. Однако при малых скоростях выявить отклонения невозможно, а работа пользователей TOR связана преимущественно с малыми скоростями, что обусловлено географической распределенностью узлов, которые участвуют в построении цепи;
– взломе и заражении мостов TOR c дальнейшей слежкой за пользователями, в том числе подменой ключей шифрования. Поиск мостов и их взлом также считаются малореализуемой задачей;
– выводе из строя сторожевых узлов с помощью DDoS-атак. В настоящее время эта уязвимость стала неактуальной, поскольку разработчики проекта TOR максимально скрывают адреса сторожевых узлов.
В третьем случае уязвимость связана с работой пользователей через TOR с системой Bitcoin. Методика использует уязвимость протокола криптовалюты, которая позволяет клиентам осуществлять свободный сбор статистики и произвольный выбор узлов. Поэтому атакующий, используя даже незначительное в общей массе количество случайных соединений, может собрать достаточно информации для последующего ее анализа. После накопления определенного массива данных, применяя DoS-атаку на сеть Bitcoin, можно деанонимизировать не менее половины ее пользователей. Так как в системе Bitcoin по умолчанию применяется бан IP-адресов, причастных к DoS-атакам, атака через выходные узлы TOR позволяет последовательно выводить из строя клиентов, работающих через эту анонимную сеть. И как следствие, становится возможным выделение тех IP-адресов, которые не работают с клиентом, выходящим в сеть через TOR. Опасность этой атаки заключается в том, что она работает, даже если соединения с Bitcoin зашифрованы. Однако атака неэффективна в случае краткосрочных действий пользователей в сервисе Bitcoin, не говоря о том, что работа с виртуальной валютой не является нарушением закона.