Эта страница была обновлена Ноябрь 2016.

Tor / Onion Routing

[Tor] [Onion Routing]

Tor и Onion Routing это анонимные сети прокси-серверов, позволяющие пользователям туннелировать данные через их сеть с низкими задержками. Два основных отличия Tor и I2P основаны на разнице в моделях угроз и дизайне выходных прокси-узлов (хотя Tor и поддерживает скрытые сервисы, как и I2P). Кроме того, Tor реализует централизованную точку для управления видимостью сети, а так же для сбора статистики, в отличие от распределенной модели сети I2P, базы сети и выбора пира.

Функция выходных узлов в I2P/Tor обладает несколькими явными проблемами - как только данные покидают сеть, глобальные наблюдатели легко обеспечивают мониторинг этого траффика. В добавок, выходные узлы имеют доступ к незашифрованным данным в обе стороны, а также легко выявляются и подвержены разного рода атакам реального мира. И это все в добавление к обычным проблемам безопасности, которые мы знаем.

Тем не менее, многим людям не стоит беспокоиться на этот счет, т.к. они за пределами угроз модели. Они также вне (формальной) границы I2P (если людям нужно сделать выходной узел, они могут его сделать). На самом деле, ряд пользователей I2P в качестве выходного узла используют Tor.

Сравнение терминологии Tor и I2P

Хотя Tor и I2P во многом похожи, у них значительно отличается терминология.

TorI2P
ЯчейкаСообщение
КлиентМаршрутизатор или Клиент
ЦепочкаТуннель
СправочникNetDb
Сервер справочниковFloodfill маршрутизатор
Входные стражиБыстрые пиры
Входные узлыВходной прокси
Выходной узелВыходной прокси
Скрытый сервисСкрытый сервис, Eepsite или Назначение
Дескриптор скрытого сервисаLeaseSet
ВведениеВходной шлюз
УзелМаршрутизатор
Onion ProxyI2PTunnel клиент (более-менее)
Onion ServiceСкрытый сервис, Eepsite или Назначение
RelayМаршрутизатор
Точка встречичто-то вроде Входной шлюз + Выходная точка
Дескриптор маршрутизатораRouterInfo
СерверМаршрутизатор

Преимущества Tor перед I2P

  • Значительно большая пользовательская база; Большее внимание со стороны науки и хакерского сообщества; выгоды от формальных исследований анонимности, сопротивления и производительности; известен не анонимный, видимый, связанный с университетом лидер
  • Уже разрешили ряд проблем масштабирования, к которым I2P еще просто не подошел
  • Имеет значительное финансирование
  • Больше разработчиков, включая ряд оплачиваемых
  • Более устойчивый к блокировкам на уровне государств, благодаря транспорту поверх TLS и мостам (I2P имеет предложения по "полностью закрытым путям", но они еще не реализованы)
  • Достаточно большая сеть, чтобы адаптироваться к блокировке и попыткам DOS
  • Разработан и оптимизирован для выхода трафика, с большим числом выходных узлов
  • Лучше документация, есть исследования и спецификации, лучше вебсайт, гораздо больше переведенных данных
  • Более эффективен в использовании памяти
  • Клиенты Tor работают с очень небольшими затратами на протоколе
  • Централизованный контроль уменьшает сложность каждого узла и может эффективно работать с атаками Sybil
  • Набор высокопроизводительных узлов обеспечивает высокую производительность и меньшие задержки
  • реализация на C, не Java (фу...)

Преимущества I2P перед Tor

  • Разработан и оптимизирован для работы скрытых сервисов, что гораздо быстрее, чем в Tor
  • Полностью распределенная и самоорганизующаяся сеть
  • Пиры выбираются на основе постоянного профайлинга и замеров по производительности, нежели по объявленной пиром пропускной способности
  • Пиры Floodfill ("справочные сервера") постоянно меняются и не обладают доверием, в отличие от явно прошитых в Tor
  • Достаточно небольшая, чтобы ее сильно блокировали или DOS'или.
  • Обеспечивает пиринговые сервисы
  • Коммутирует пакеты, нежели соединения
    • Явная прозрачная балансировка сообщений по многим пирам, в отличие от использования одного пути
    • Надежность и отказоустойчивость за счет поддержания нескольких параллельных туннелей и обеспечения ротации туннелей
    • соединения каждого пользователя масштабируются как O(1) вместо O(N) (например, Алиса держит 2 входящих туннеля, которые может использовать любой пир, с которым Алиса общается, а не держим по цепочке на каждый пир)
  • Односторонние туннели, вместо двусторонних цепочек, удваивая число узлов, которые пир должен скомпроменировать, чтобы получить ту же информацию Контраргументы и дальнейшая дискуссия здесь.
  • Защита против детектирования клиентской активности, даже если атакующий участвует в туннеле, так как туннели используются не только для передачи сообщений, но и для работы NetDb, управления туннелями, проверки работоспособности туннелей)
  • В I2P реализованы короткоживущие туннели, что уменьшает количество примеров, которые атакующий может использовать для атаки, в отличие от цепочек в Tor'е, которые как правило живут долго.
  • API I2P спроектированы под анонимность и безопасность, тогда как SOCKS сделан для функциональности
  • За редким исключением, все пиры участвуют в маршрутизации трафика для других
  • Затраты на работу в полном режиме довольно низки, тогда как в Tor, если клиент сам по себе не требует много полосы, но они еще и не полностью используют сеть.
  • Встроенный механизм автоматических обновлений
  • Используется как TCP, так и UDP транспорт
  • Реализация на Java, не C (фу....)

Другие потенциальные, но еще не реализованные преимущества I2P

... и возможно никогда не реализуемые, так что не рассчитывайте на них

  • Защита от количественного анализа сообщений за счет заворачивания нескольких сообщений в одно
  • Защита от статистического анализа за счет добавления задержек на разных хопах (где задержки не зависят от других хостов)
  • Разные стратегии имитовставки на уровне туннелей (например создание туннеля, который будет обрабатывать 500 сообщений в минуту, где эндпойнт посылает случайные данные, если полезный трафик не передается и т.д)