id: Гость   вход   регистрация
текущее время 09:03 05/12/2020
Владелец: unknown редакция от 25/10/2012 14:27 (автор: unknown) Печать
Категории: софт, tor
создать
просмотр
редакции
ссылки

Это старая редакция страницы Библиотека / Статьи / 8 Y / Part 01 за 25/10/2012 14:27.


Часть 1

1. Получение данных об узлах и протокол директорий


Начиная с ранних версий Tor мы знали, что получение данных об узлах требует лучшей реализации, чем она у нас была. Есть несколько ключевых задач, которые должна решать система обнаружения узлов в анонимной сети.


Каждый клиент должен выбирать узлы, исходя из одинакового вероятностного распределения, иначе противник сможет использовать различия для распознавания клиентов. В худшем случае, если противник может заставить некоего клиента получить сведения о таком исходящем узле, который не использует никакой другой клиент, то противник может узнать, что трафик с этого исходящего узла исходит от данного целевого клиента. Но даже в более усреднённых случаях, где (скажем) каждый клиент знает о каждом узле с вероятностью P=90%, противник может использовать эту информацию для того, чтобы атаковать пользователей.


Хотя существуют некоторые работы по количественным оценкам этих так называемых "эпистемических атак", мы исходили из консервативного допущения, что клиенты, использующие разные множества узлов, скорее всего будут отделяться друг от друга, и таким образом, множество узлов для всех клиентов должно быть однородным.


Ранние версии Tor решали эту проблему с помощью такого объекта как "Директория" — каждый сервер генерировал подписанный "дескриптор роутера" и загружал его в один из небольшого набора (всего трёх) "корневых директорий". Каждая из этих директорий генерировала подписанный объединённый список роутеров и раздавала этот список клиентам через HTTP.


Эта система имела некоторое число существенных проблем:


  • Клиентам нужно было без конца загружать одни и те же десрипторы, неважно, нужны они им или нет.
  • Каждый клиент должен доверять каждому серверу корневой директории, из числа тех, с которыми он общался в самый последний раз: вместо того, чтобы обеспечить распределённое доверие, каждый сервер директорий был полностью доверяем сам по себе и любой некорректно функционирующий сервер директорий мог полностью скомпрометировать всех клиентов, которые с ним общались.
  • За счёт отклонения части запросов, серверы корневых директорий создают неравномерность в сведениях клиентов, что в наихудшем варианте позволяло противнику разделять клиентов, основываясь на знании того, с какого сервера директорий клиент чаще получал статистику.
  • Нагрузка на сервера директорий стремилась к чрезмерному росту, т.к. каждый клиент контактировал с каждым корневым сервером директорий.
  • Содержимое директорий посылалось в незашифрованном виде, что позволяло его легко прослушать по пути к клиенту.

Оглавление | Дальше