I2P альтернатива TOR?
В последние годы доверять Tor становится как-то неуютно. И дело даже не в том, что его "создали в ЦРУ" (хотя формально он вырос из разработок военно-морской лаборатории США, и это факт, а не теория заговора). Проблема в другом: вокруг Tor выстроилась целая инфраструктура доверия, которую всё сложнее поддерживать.
Постоянные истории про exit-ноды, которые кто-то слушает. Паранойя основання на архитектуре TOR и вопросы по типу "Могут ли в ЦРУ поднять столько нод чтобы занять 51% от всех?". Финансирование из государственных структур. Централизованные directory authorities, на которые теоретически можно давить. И главное - сама модель с тремя узлами, где exit-нода видит твой трафик в открытом виде, если ты не используешь HTTPS.
И вот тут кто-то вспомнит про I2P. Мол, вот там всё по-другому, там нет exit-нод, там нет центра, там настоящая анонимность. Хотелось бы разобраться: а что такое этот I2P на самом деле, и помогает ли это?
Что такое I2P и откуда он взялся
I2P расшифровывается как Invisible Internet Project. Это не "Tor v2" и не "Tor, но лучше". Это принципиально другая архитектура, которая решает другую задачу.
Если Tor создавался для того, чтобы анонимно выходить в обычный интернет, то I2P создавался для того, чтобы построить сеть внутри сети. Своего рода параллельный интернет, где ты не выходишь наружу, а живёшь внутри. Все сервисы, все сайты, всё общение происходит внутри этой оверлейной сети.
И это важное различие которые не все всегда понимают.
Технически это выглядит так. Каждый участник I2P одновременно и клиент, и узел. Ты не просто потребляешь трафик, ты участвуешь в его передаче. Трафик идёт по туннелям, которые живут около 10 минут, потом перестраиваются. Внутри туннелей используется garlic-маршрутизация (по сути тот же лук, но с "зубчиками чеснока", где в одном пакете может быть несколько сообщений). Нет центральных директорий, вместо них распределённая хеш-таблица, как в BitTorrent.
И главное отличие: в I2P нет exit-нод в классическом понимании. Ты не выходишь в открытый интернет через чужой сервер, который видит твой трафик. Ты остаёшься внутри сети, и ни один узел не видит одновременно и откуда ты, и куда ты идёшь.
Почему это выглядит привлекательно
Первое и самое очевидное: исчезает целый класс атак. В Tor главная боль это exit-нода. Кто её контролирует, тот видит, куда ты идёшь. Кто контролирует guard и exit одновременно, тот видит и кто ты, и куда ты. В I2P такой точки просто нет. Нет места, где весь трафик сходится в одном узле в расшифрованном виде.
Второе: нет централизации. Tor это The Tor Project, девять directory authorities, понятные центры влияния, финансирование из государственных структур. На это теоретически можно давить, это можно финансировать, туда можно внедряться. В I2P давить не на кого. Нет организации, нет директорий, нет единого центра, который можно попросить что-то заблокировать или изменить.
Третье: туннели короткоживущие. В Tor guard-нода знает твой IP месяцами, это сделано специально против атак, но это же и точка риска. В I2P туннель живёт 10 минут, потом перестраивается. Меньше долгосрочной привязки.
Четвёртое: фоновый шум. I2P генерирует трафик даже когда ты ничего не делаешь, потому что ты участвуешь в чужих туннелях. Это размывает корреляцию, усложняет анализ таймингов.
Почему I2P не панацея
Начнём с того, что меняется не так радикально, как хотелось бы.
Ты всё ещё уязвим на уровне клиента. Если ты запускаешь JavaScript, если твой браузер палит canvas fingerprint, если ты логинишься в личный аккаунт, разницы ноль. Ни Tor, ни I2P не спасут от того, что ты сам себя сдал. Анонимность это все таки не инструмент, это процесс.
Глобальный пассивный наблюдатель никуда не делся. Если у противника доступ к магистральным каналам, он видит объём и тайминги твоего трафика. И Tor, и I2P уязвимы к traffic correlation analysis. I2P чуть устойчивее за счёт коротких туннелей и фонового шума, но не полностью. Против АНБ с его ресурсами ни та, ни другая сеть гарантий не даёт.
Outproxy это та же дыра. Если тебе нужно выйти в обычный интернет через I2P, ты используешь outproxy. И этот outproxy видит твой трафик точно так же, как exit-нода в Tor. Просто их мало, они не являются частью основной модели, и на них меньше внимания. Но проблема никуда не уходит хотя не такая заметная.
Tor это большой проект с сообществом, с исследованиями, с быстрой реакцией на уязвимости. I2P меньше, разработчиков меньше, аудит слабее. Паранойя дизайна не равна безопасности реализации.
I2P сложнее для обычного юзера. В то время как Tor это скачал и запустил I2P это настроил, понял, разобрался. Для технически подкованных это не проблема, но это отсекает массу людей, а значит, меньше шума, легче коррелировать.
Меньше пользователей. Это парадокс, но чем меньше людей в сети, тем легче анализировать трафик. В Tor миллионы пользователей, в I2P на порядки меньше. Меньше шума, легче выделить тебя.
Где I2P реально можно использовать
Вот тут самое интересное. Потому что если отбросить разговоры про "анонимность для всех" и посмотреть на I2P трезво, оказывается, что у него есть вполне конкретные ниши, где он не просто альтернатива Tor, а реально лучше.
Разворот архитектуры для сайтов
Ключевая фишка I2P в том, что он изначально проектировался под хостинг сервисов внутри сети. Это не "мы сделали сеть, а потом прикрутили onion-сервисы", это "мы сделали сеть для того, чтобы в ней жили сервисы".
Что это даёт на практике.
Во-первых, eepsite это не отдельный режим, а базовая функция. Ты поднимаешь веб-сервер, направляешь его в I2P, и он доступен внутри сети. Никаких дополнительных танцев с настройкой onion-сервисов, никаких отдельных портов, никакой возни с HiddenServiceDir. Всё это встроено в саму логику работы.
Во-вторых, сервер не видит IP посетителя. И это принципиально. В Tor, если ты поднимаешь onion-сервис, ты защищён, но всё равно есть точки, где что-то может утечь. В I2P сама архитектура построена так, что сервер общается с клиентом через туннели, и ни одна сторона не знает реальный адрес другой. Это не "мы добавили анонимность сверху", это базовое свойство.
В-третьих, как уже упоминал нет exit-нод. Твой сайт живёт внутри сети, и трафик к нему не проходит через точку, где он расшифровывается. Это убирает целый класс атак, которые в Tor возможны на уровне onion-сервисов.
На практике это означает, что I2P хорошо подходит для:
- внутренних форумов и чатов;
- файлообменников внутри сети;
- сервисов, которые не должны быть доступны из клирнета в принципе;
- зеркал и бэкапов, которые должны быть доступны только своим.
В I2P ты создаёшь сервис, который существует в параллельной сети, и внешнего мира для него просто нет что звучит заманчиво.
I2P как среда для атаки
Вторая ниша, о которой мало говорят, но которая реально существует. I2P это удобная среда для проведения атак, и вот почему.
Во-первых, изоляция. Если ты проводишь атаку из I2P, ты находишься в сети, которая не пересекается с обычным интернетом. Твой трафик не идёт через exit-ноды, не светится в клирнете, не попадает в логи провайдеров, которые мониторят Tor. Для атакующего это означает меньше поверхностей для деанонимизации.
Во-вторых, отсутствие централизованного мониторинга. Tor мониторят все кому не лень. Есть исследователи, которые считают ноды, есть организации, которые следят за exit-нодами, есть спецслужбы, которые запускают свои relay. I2P мониторят меньше, потому что он меньше и менее интересен для массового исследователя. Это не значит, что там нет наблюдения в принципе просто его сильно меньше.
В-третьих, встроенные сервисы. В I2P можно поднять C2-сервер, который не будет доступен из клирнета в принципе. Никакие сканеры вроде Shodan его не найдут, потому что он не в клирнете. Никакие автоматические системы не просканируют его, потому что они не знают о его существовании. Это делает I2P удобной средой для скрытого управления чем-либо.
В-четвёртых, фоновый шум. Постоянный трафик внутри сети размывает корреляцию. Если ты проводишь атаку и твой трафик смешивается с трафиком других участников, анализировать его сложнее.
В-пятых, garlic-маршрутизация. Возможность упаковывать несколько сообщений в один пакет даёт гибкость, которой нет в Tor. Можно отправлять команды и получать ответы в одном пакете, можно смешивать разные типы трафика, можно строить более сложные схемы взаимодействия.
Но тут важно оговориться. I2P это не "среда для атак" в смысле "инструмент для взлома". Это среда, которая даёт атакующему дополнительные свойства: изоляцию, меньший мониторинг, встроенные сервисы, фоновый шум. Но она не даёт неуязвимости. Если ты скомпрометировал себя на уровне клиента, если ты допустил ошибку в метаданных, если твой C2-сервер настроен криво, никакой I2P не спасёт.
И ещё один момент. I2P как среда для атаки это не то, что стоит рекомендовать кому попало. Это инструмент для тех, кто понимает модель угроз и умеет с ней работать. Для остальных это просто ещё один способ создать себе проблемы.
Что в итоге
I2P это не "Tor, но лучше" и не "Tor, но хуже". Это другой инструмент для другой задачи. Он реально устойчивее к некоторым атакам, реально убирает целый класс проблем, реально предлагает другую модель. Но он не делает тебя невидимым. Никакая сеть не сделает тебя невидимым, если ты сам этого не хочешь.
Доверять Tor становится сложнее, это правда. Но переход на I2P не решает проблему доверия, он просто меняет её форму. Вместо "доверяем ли мы The Tor Project" встаёт вопрос "доверяем ли мы сообществу I2P, которое меньше, слабее аудировано и медленнее реагирует".
А если вам нужно настроить свою I2P сеть, или провести аудит безопасности то обращайтесь напрямую - @Marka_kol