Алексей алексеев добро пожаловать в мой уютненький бложек. Анонимная сеть i2p – добро пожаловать! Установка и настройка Пользователи каких операционных систем могут установить «невидимый интернет»

Каждый пользователь Интернета, когда просматривает веб-страницы, оставляет за собой гораздо больше «следов», чем он думает. Иногда их данные собираются для статистики или учета, а иногда могут попасть к злоумышленникам. Но прогресс не стоит на месте. Командой разработчиков был создан и запущен проект i2p, который является своеобразным антидотом для любопытных сайтов и людей. Теперь осталось рассмотреть вопрос как пользоваться i2p.

Итак, i2p расшифровывается Invisible Internet Project и переводится как «Проект Невидимый Интернет». С его помощью можно создать зашифрованную сеть и остаться анонимным при совершении каких-либо действий в Интернете. Принцип работы следующий: пользователь запускает на своем компьютере программу, которая работает как прокси-сервер. Весь трафик отправляется предварительно в этот прокси. Можно сказать, что i2p - некий посредник между компьютером и конечной точкой доставки информации. При этом, трафик, поступая в этот посредник, шифруется шлюзом. Так, на конечную точку приходит уже зашифрованный, защищенный трафик.

Стоит заметить, что вся информация, отправляющаяся как пакет, при использовании такого прокси-сервера, разбивается на несколько пакетов и отправляется по случайным каналам, меняющимся ежеминутно. А сам IP-адрес заменятся на случайный криптографический ключ. Именно поэтому установить то, какой компьютер являлся отправителем, становится практически невозможно.

Стоит ли пользоваться i2p?

Такой проект может заинтересовать тех, для кого важно следующее:

  • невозможность установить IP-адрес, с которого была отправлена определенная информация;
  • невозможность отслеживания действий;
  • отсутствие DNS-серверов;
  • разделение исходящего трафика на пакеты и отправка частями;
  • шифровка исходящего трафика;
  • отсутствие цензуры;
  • возможность использования анонимной электронной почты;
  • возможность посещать анонимные сайты;
  • возможность анонимно передавать данные, например, torrent-файлы;
  • возможность анонимного использования служб мгновенной передачи сообщений (IRC и Jabber или альтернативного сервиса);
  • возможность посещения сайтов, не прошедших цензуру.

Какие сервисы встроены в эту программу?

  • Mail - классическая почта со множеством настроек и возможностью использования любого почтового клиента;
  • Bote - аналог почты;
  • IRC - чат;
  • Jabber - чат;
  • Messenger - «фирменный» чат;
  • Speedtest - аналог всем известного измерителя скорости;
  • Rapidshare - файлообменник;
  • Privacybox;
  • Радио - собственно, радио.

Пользователи каких операционных систем могут установить «невидимый интернет»?

В данный момент такой прокси -сервер совместим с большинством популярных операционных систем, а также может работать даже со слабыми ПК, поскольку не является ресурсоемким приложением. Так, установить его могут обладатели:

  • Windows;
  • MAC OS X;
  • BSD, Linux, GNU, Solaris;
  • Ubuntu, Debian;
  • Android.

Настройка i2p

В общем случае, для работы в анонимном интернете нужно:

  • скачать и установить программу i2p;
  • настроить браузер для работы с программой через прокси;
  • запустить установленную программу;
  • запустить отстроенный браузер.

Для начала скачиваем саму программу -i2p скачать можно на сайте этого . Выбираем нужный установочный файл, в зависимости от нашей операционной системы, и скачиваем его на свой компьютер. На рисунке рассмотрен пример использования Windows.

После того, как программа была скачана, нужно проверить версию Java Runtime - она должна быть не ниже 1,5. Но можно это и не возиться с проверкой -прога сама всё скажет. Смотрим и выполняем.

Запускаем установщик. Начинаем установку. Жмем кнопку «запустить».

Нажимаем OK. Нас перебрасывают на загрузку Java.

Жмём здоровенную красную кнопку загрузки. Выскакивает окно.

Соглашаемся с условиями — просто жмем кнопку и скачиваем установочный файл жабы, т. е.(прости меня, Господи) Java. запускаем его Подробно, как установить такой продукт не рассказываю, т.к. всё достаточно просто. Кто не справился можете написать в комментариях.

Рассмотрим пример работы в браузере .

Необходимо зайти в настройки браузера, выбрать там настройки сети/прокси и установить HTTP прокси-сервер, вписав IP-адрес 127.0.0.1 и порт 4444.

Рассмотрим это действо подробно (с картинками).

В левом верхнем углу браузера жмем Firefox, затем «Настройки», в открывшемся контекстном меню жмем «Настройки»

На вкладке «Сеть» нажимаем кнопку «Настроить…».

Затем нажимаем радиокнопку «ручная настройка сервера прокси». Прописываем в соответствующие поля IP-адрес 127.0.0.1 и порт 4444.

И нажимаем OK.

Следующий шаг — это установка прокси-сервера на своем компьютере.

Запускаем скачанную программу-маршрутизатор. Выскакивает окошко.

Жмем ОК. И продолжаем настройку.

Жмем «Завершено».

После установки программы её запускаем. Нам откроется морда,т.е. консоль маршрутизатора.

В этой консоли можно ничего не делать. Просто проверяем, что у нас установка идет как надо.

Теперь смотрим, если в панели слева загорелась зеленая точечка «Коллективные каналы», то настройка завершена. А вот, что делать дальше, так будет рассказано в следующей статье.

I2p - программа, легкая в установке и не требующая определенных знаний для использования. Она позволяет оставаться анонимом в сети, что существенно повышает безопасность и личный комфорт. Нельзя не упомянуть о том, что программа будет работать даже в том случае, если число пользователей будет равняться двум. Ну и, поскольку развитие программы и сервиса продолжается, можно ожидать много новых и приятных функций.

Your web browser will need to be configured in order to browse web sites on I2P and to utilize the outproxies available within I2P. Below are walkthroughs for some of the most popular browsers.

Профиль Firefox для Windows

If you are using Windows, the recommended way of accessing I2P is using the Firefox profile .

If you do not wish to use that profile or are not on Windows, you need to configure your browser yourself. Read below on how to that.

Как настроить ваш браузер

Firefox

Инструкции для Firefox 57 ниже:

По кнопке Меню в правом верхнем углу выберите пункт Настройки . Прокрутите вниз, пока не увидите раздел сетевого прокси , как показано на скриншоте ниже. Нажмите на Настройки

Во всплывающем окне Параметры подключения выберите Настройка прокси-сервера вручную . Установите HTTP и SSL прокси для адреса 127.0.0.1 с портом 4444 , как показано на следующем скриншоте.


Finally, go to the address about:config and find the property media.peerConnection.ice.proxy_only. Ensure that this setting is True.


Chrome

Chromium-Based Browsers like Chrome have slightly different places for their proxy settings depending on variant and platform. These instructions may be slightly different in Brave or Iridium, for instance. From the Main menu, navigate to the Settings , and search for the menu item. Clicking it will open the right settings for your platform.


On Windows, this button will launch you into the shared proxy settings used by , and you can configure it by following the Internet Explorer 8 guide.

Internet Explorer

In the start menu search for the the "Network and Internet Settings" to open the settings. The last entry in the menu is the Proxy Settings, click it to your proxy to connect to I2P.


Now set the checkmark at "use a proxy server for your LAN" and at the "Bypass proxy server for local addresses". With a click on Advanced-button you open the window to open the ports. Enter the values like on the picture, IP 127.0.0.1 and port 4444 for HTTP, port 4445 for HTTPS. With clicks on OK you save the settings and your browser is set to use the I2P proxy.


Условия использования внешнего прокси

Помните: I2P не был спроектирован для создания прокси во внешний Интернет. Вместо этого I2P предназначена для использования в качестве внутренней сети.

The I2P project itself does not run any proxies to the Internet. The only outproxy is a service from the privacy solutions project. Consider donating to them for a continued stable service. Increased funding will allow them to improve this service.

http://privacysolutions.no

By default, I2P comes with two outproxies configured: false.i2p and outproxy-tor.meeh.i2p . Even the domain names are different, it"s the same outproxy you hit. (multi-homed/keyed for better performance)

На этих внешних прокси настроено фильтрование (например, mibbit и torrent-трекеры заблокированы). Сайты, доступные по адресам.i2p, также не разрешены через внешние прокси. Для удобства внешние прокси блокируют рекламные серверы.

Tor is a good application to use as an outproxy to the Internet.

Для настройки нам потребуется:

  1. Java - если у вас она все ещё не установлена, то скачать можно .
  2. Firefox - пользоваться можно и любым другим, но в firefox это будет проще, скачать можно .
  3. FoxyProxy - плагин для firefox позволяющий разграничить доступ в обычный и i2p, скачать можно .

После того, как вы установите java (это обязательный компонент, без него, увы, ничего работать не будет), firefox и foxyproxy необходимо пройти на , скачать и установить i2p-клиент. На данный момент самая последняя версия 0.8.10, её-то и установим.

Если установщик не запускается по двойному клику, то необходимо запустить его из командной строки. Поместите файл в корень диска С: (можно в корень любого диска), назовите его i2p и в командной строке напишите java -jar c:\i2p.exe.

Если все выполнено правильно, то откроется окно выбора языка, после чего будет предложено посетить сайт разработчика и т.д.


Нажимаем далее, соглашаемся со всеми условиями, выбираем папку установки и т.д. пока не увидим окно успешной установки.

Теперь идем в папку установки i2p (у меня это program files\i2p) и запускаем файл i2p.exe, можно ещё и ярлык н рабочий стол сразу сделать! После запуска программы должен открыться браузер, но если не открылся, то ничего страшного, открываем браузер сами и идем по этому адресу , должно открыться окно как на рисунке снизу.
Теперь переместимся в самый конец страницы и найдем область как на скриншоте снизу:

Если есть такая надпись и горит зеленая звезда, то это значит что мы успешно подключились к i2p. Теперь приступим к первоначальной настройке ip2-маршрутизатора. Для этого нужно в левой части окна консоли нажать кнопку "НАСТРОЙКИ I2P".

После нажатия на кнопку "НАСТРОЙКИ I2P" должно открыться окно как на скриншоте снизу:

На этой странице я не рекомендую что-то менять кроме ограничения скорости, на скриншоте вверху красным обведена область в которую я вписал значения 256 и 512 соответственно. Вы можете ничего не менять, т.к. при этом повышается трафик.

Теперь необходимо добавить добавить в адресную книгу адреса подписок, это нужно что бы появилась возможность открыть i2p-сайт. Для этого кликаем по ссылке "Адресная книга".

После чего должна открыться страница адресной книги, которую можно увидеть на скриншоте.

Нас интересует ссылка "Подписки" которая на рисунке сверху выделена красным, нажимаем на нее и добавляем в список следующие адреса:

Должно получиться как на рисунке снизу:

После чего нажимаем кнопку "Сохранить".

Теперь приступим к настройке браузера. Если вы скачали и установили firefox и foxyproxy, как я просил в начале этой статьи, то открывайте firefox и foxyproxy в нем. Что бы настроить foxyproxy для работы с i2p нам нужно сделать несколько простых шагов, для начала откройте настройки плагина, для этого щелкните по иконке лисы в панели навигации браузера.

Должно открыться окно настроек плагина.

Теперь нужно нажать на кнопку "Добавить", на рисунке сверху выделена красным.

На вкладке Общее описание в строке "Имя Прокси" пишем: i2p

Переходим на вкладку Параметры соединения и пишем все как на скриншоте снизу (ip: 127.0.0.1, порт: 4444)

Переходим на вкладку Шаблоны URL и нажимаем кнопку "Добавить".

Заполняем все поля в соответствии со скриншотом:

Имя шаблона: i2p

Шаблон URL: *.ip2/*

Нажимаем OK, теперь мы можем гулять по i2p. Если же вы не хотите пользоваться firefox, то просто выставляете в настройках прокси вашего браузера адрес 127.0.0.1:4444 и можете гулять по просторам ip2 сети.

Ниже представлен небольшой список ресурсов сети.

http://www.i2p2.i2p/ главная страница проекта в сети I2P
http://i2p-projekt.i2p/ зеркало для http://www.i2p2.i2p/
http://i2plugins.i2p/ плагины I2P
http://i2pbote.i2p/ распределённая p2p почта I2P 2010 (плагин)
http://inr.i2p/ про eepsites
http://forum.i2p/ I2P форум
http://forum.rus.i2p/ русский I2P форум
http://rus.i2p/ русская I2P вики

Каталоги сайтов:

http://ugha.i2p/ I2P Вики и стартовые страницы в сети I2P, каталог eepsites
http://inproxy.tino.i2p/ список eepsites и индикация их активности, статистика I2P сети
http://epsilon.i2p/ поисковик по eepsites
http://yacysearch.i2p/ поисковик по eepsites
http://search.rus.i2p/ поисковик
http://i2host.i2p/ можно получить 64-разр. номер указанного eepsite (try it)
http://stats.i2p/ статистика I2P сети

http://exotrack.i2p/ трекер
http://tracker2.postman.i2p/ большой трекер
http://imules-weed.i2p/ трекер iMules
http://tracker.rus.i2p/ трекер (заброшенный)
http://anonymouszero.i2p/ скачать все сезоны Rozen Maiden
http://1c.i2p/ дистрибутивы 1C

http://bitcoin4cash.i2p/ купить bitcoins
http://bitcoin2cc.i2p/ обмен bitcoins на виртуальную VISA карту
http://bitcoin-escrow.i2p/ безопасные транзакции bitcoins продавец-покупатель

Библиотеки:

http://blacklib.i2p/ библиотека книг на английском языке
http://de-ebook-archiv.i2p/ библиотека книг на немецком языке
http://bookpusher.i2p/ личная библиотека книг
http://anarchydocuments.i2p/ коллекция анархических текстов

http://zzz.i2p/ сайт разработчика
http://godfrey.i2p/ godfrey"s блог (активный) - политика
http://darkman.i2p/ darkman"s блог (заброшенный)
http:// gaunergazette.i2p/ блог Gaunergazette - новости
http://ident.i2p/ zwitter
http://hq.postman.i2p/ блог почтовой службы I2P
http://killyourtv.i2p/ ubunter"s eepsite
http://fakeboobs.i2p/ галерея эротики
http://duck.i2p/ блог Tahoe-LAFS, криптоказино за bitcoins

http://hiddenchan.i2p/ I2P board
http://4chan.i2p/

http://jonatan.walck.i2p/ страничка программиста
http://hashparty.i2p/ hello, anonymous cyberpank
http://h2ik.i2p/ h2ik"s eepsite
http://i2p-bt.postman.i2p/ i2p bt торрент клиент 2005
http://hips.i2p/ блог
http://darktunnel.i2p/ I2P - TOR Gateway

Нет похожих статей.

В свете тотальной слежки многие пользователи посматривают в сторону решений, позволяющих скрыть свою частную жизнь от чужих глаз. Два наиболее популярных варианта - это Tor и I2P. Tor уже не раз мелькал на страницах журнала, и с его надежностью, в принципе, все понятно - сами разработчики пишут, что стопроцентной анонимности он не дарует. А вот с I2P нам сегодня придется разобраться самостоятельно - действительно ли эта штука так надежна, как считают многие?

Немного истории

В начале 2000-х годов существовало множество P2P-сетей, практическим применением которых был файлообмен. Копирастеры приходили в ярость, поскольку в распространении файлов принимали участие все сразу. Попытки же устроить «показательную порку» индивидуумам приводили лишь к колоссальным затратам времени и средств с нулевым конечным результатом. Для тех же, кто опасался оказаться в числе «попавших под раздачу», была предложена сеть Freenet, ключевой идеей которой был обмен зашифрованными блоками данных, при этом участник не имел представления о том, что это за данные, если они не были предназначены ему самому. Хотя сеть предоставляла и другие сервисы вроде полностью анонимных форумов, фактически все сводилось к скачиванию файлов.

Задачи I2P

Основные задачи I2P следующие:
  1. Скрывать местоположение eepsite’ов.
  2. Скрывать местоположение клиентов, подключающихся к eepsite’ам, в том числе и от самих сайтов.
  3. Сделать невозможным ограничение доступа к сайтам со стороны провайдеров и/или магистральных узлов.

Со временем весь файлообмен переместился в торренты. В результате возникла идея развития Freenet’а в направлении «невидимого интернета» - анонимной сети поверх существующего интернета. Так появился I2P. Долгое время проект был интересен лишь его создателям и некоторому числу гиков. Вскоре борьба уже стала вестись за саму информацию, поскольку, с одной стороны, интернетом стало пользоваться большинство людей, а с другой стороны, интернет оказался местом никем не контролируемого обмена информацией. Стало понятно, что так долго продолжаться не может, и поднялась новая волна интереса к подобным проектам.

WARNING

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

I2P и Тор

«Спусковым крючком», вызвавшим массовый интерес к «невидимому интернету», стало законодательное ограничение доступа к информационным ресурсам в ряде стран, а также разоблачения Сноудена о слежке за всеми. Разумеется, многим это не понравилось: действительно, с какой стати непонятно кто станет решать за взрослого дееспособного человека, какую информацию ему следует получать, а какую нет. Что касается слежки, то она вообще никому не приятна. Осознав это, обыватель бросился искать две магические кнопки «Обойти цензуру» и «Спрятаться от слежки». И такие «кнопки» он получил в виде специальных браузеров или плагинов к браузерам для сети Tor. Технически грамотные люди же обратили внимание на сеть I2P в качестве альтернативы Tor’у. Поскольку ты, уважаемый читатель, относишься к технически грамотным людям (иначе зачем тебе «Хакер»?), то, прочитав данную статью, поймешь, какие задачи решает сеть I2P и каким образом она это делает. Следует обратить внимание на главное отличие I2P от Tor: основной задачей Tor’а является сокрытие истинного IP-адреса клиента, обращающегося к серверу. По большому счету серверам нет дела до того, каким образом к ним подключаются клиенты, - скорее, Тоr является для них лишней головной болью из-за хулиганов, в случае же I2P, наоборот, владельцы серверов (eepsite’ов) размещают их анонимно, а клиенты вынуждены использовать I2P, если хотят обращаться к этим серверам. Таким образом, Тоr является сетью клиентов, а I2P - серверов. Конечно, есть и onion-сайты в Тоr, и выходные узлы в I2P, однако это скорей побочные технологии.

Myth busters

В Сети гуляет несколько популярных мифов о I2P, в которые многие верят. Мы же их развеем. Миф 1: чем больше участников, тем быстрее работает сеть. А на самом деле: каждый новый участник должен поддерживать свою базу данных в актуальном состоянии, поэтому сеть, а особенно floodfill’ы просто захлебнутся в потоке таких запросов. В результате часть узлов станет просто недоступной другим узлам. Миф 2: чем больше доля транзитного трафика, тем выше анонимность. А на самом деле: I2P оперирует отдельными пакетами, поэтому реальные тоннели поверх обычного интернета, как, например, в VPN, не строятся. Для каждого пакета выбирается подходящий способ доставки, независимо от того, свой ли это пакет или транзитный. Провайдер же видит активность участника как обмен зашифрованными пакетами с различным адресами, выбираемыми достаточно бессистемно. В этом потоке, помимо тоннельных сообщений, присутствуют в большом количестве сообщения, передаваемые напрямую. С другой стороны, узел может видеть часть транзитного трафика, если является концом тоннеля, а не промежуточным узлом, в этом случае извне транзитный тоннель выглядит точно так же, как собственный. Миф 3: в Тоr’е применяется многослойное «луковое» шифрование, а в I2P более прогрессивное «чесночное», в котором сообщение состоит из нескольких «чесночин», предназначенных разным узлам, при этом узел может расшифровать только свою «чесночину», содержимое остальных ему неизвестно. А на самом деле: изначально оно именно так и планировалось, однако из-за необходимости использования тоннелей парами «исходящий - входящий» пришлось шифровать весь «чеснок» целиком, а не каждую «чесночину» по отдельности. Действительно сообщение, явно именуемое «чесноком», состоит из «чесночин», но поскольку его структура становится видна только после расшифровки, то «чесночины» фактически вырождаются во фрагменты тоннельных сообщений. Как должно выглядеть реальное «чесночное» шифрование, можно понять из механизма создания тоннелей: сообщение состоит из нескольких записей, из них зашифрованы все, кроме одной, предназначенной данному узлу; он перешифровывает сообщение своим ключом и отсылает дальше. Естественно, следующему узлу предназначается уже другая запись сообщения. Таким образом, декларируемое «чесночное» шифрование применяется всего лишь в одном сообщении, используемом относительно редко, в основном же потоке данных используется обычное многослойное шифрование: промежуточные узлы шифруют сообщение каждый своим ключом, а владелец расшифровывает, применяя эти ключи последовательно.

Как участники I2P находят друг друга?

Начнем с того, что рассмотрим встроенные в I2P механизмы, которые позволяют участникам находить друг друга, и попробуем найти в них потенциальные уязвимости. Каждый узел I2P идентифицируется I2P-адресом, представляющим собой две пары открытых и закрытых ключей, генерируемых в момент создания узла случайным образом, без какой-либо корреляции с IP-адресом или местоположением. Центрального источника адресов нет, предполагается, что вероятность совпадения двух случайно сгенерированных адресов пренебрежимо мала. Одна пара ключей используется для асимметричного шифрования, а другая - для подписи. Владельцем узла является тот, у кого имеется файл с полным набором ключей длиной 660 байт. Этот файл располагается на компьютере владельца и по сети не передается. Два открытых ключа и 3-байтный сертификат (на настоящий момент всегда нулевой) образуют 387-байтный идентификатор узла, под которым узел становится известен в I2P. Поскольку полный 387-байтный идентификатор довольно неэффективен для сравнения, сортировки и передачи данных, то для обозначения узла используется 32-байтный SHA-256 хеш от идентификатора. Строковое Base32 представление этого хеша и является адресом в.b32.i2p-адресах. А что делать, если известен только хеш, а нужно знать публичные ключи, содержащиеся в идентификаторе, например для шифрования или проверки подписи? Для этого существует сетевая база данных (netDb) - не очень удачное название, правильнее было бы назвать базой данных о сети, но такова уже устоявшаяся терминология.
У каждого участника эта база своя, и одной из задач программы-клиента является поддержка базы в актуальном состоянии. Если узел с искомым хешем в локальной базе не найден, то следует о нем спросить другие узлы; если у запрашиваемого узла адрес присутствует в базе, то он пришлет в ответ информацию о нем, в противном случае вернет список трех других узлов, где, по его мнению, адрес может быть. То есть, чтобы узнать информацию об узле, нужно знать по крайней мере его хеш - возможность скачать список всех известных на данный момент узлов умышленно отсутствует. Также предусмотрен механизм «зондирования», при котором посылается запрос случайно сгенерированного хеша со специальным флагом, и тогда узел вернет список трех узлов, присутствующих в его базе, хеши которых наиболее «близки» к запрошенному, тем самым позволяя узнать о новых участниках.

Обманываем новичков

Наличие локальной базы данных позволяет участнику выходить в сеть немедленно, не обращаясь к серверам каталогов узлов, как это делается в Тоr’е (из-за этого китайское правительство в 2010 году смогло отключить его, блокировав доступ к каталогам). Однако у такой децентрализации есть один существенный недостаток: чтобы получать информацию о новых узлах, в локальной базе данных должны уже присутствовать какие-то узлы. Значит, при первом запуске их придется откуда-то загрузить. Этот процесс называется «посевом» (reseeding) и заключается в скачивании файлов с небольшого числа жестко прописанных в коде сайтов. Достаточно заблокировать доступ к этим сайтам, и новые узлы не смогут стартовать. Правда, в этом случае для первого запуска можно просто взять список узлов у кого-то другого. Гораздо хуже, если доступ будет не заблокирован, а перенаправлен на сайты с фальшивым списком узлов, - тем самым новый узел рискует попасть в изолированную от остальной сеть, и нет простого способа распознать эту ситуацию. К чести разработчиков, они понимают масштаб проблемы и работают над тем, чтобы распространять начальный список узлов в виде подписанного их ключом архива по различным каналам.

Невидимый интернет

Сеть I2P состоит из узлов двух видов: маршрутизаторы, имеющие помимо I2P-адресов обычные IP-адреса и видимые в обычном интернете, и узлы, находящиеся позади маршрутизаторов и собственных IP-адресов не имеющие, - они и образуют тот самый «невидимый интернет». Маршрутизаторы представлены в сетевой базе данных структурой RouterInfo, помимо полного идентификатора содержащей один или несколько внешних IP-адресов и доступных протоколов, а также список возможностей данного маршрутизатора, важнейшей из которых является floodfill. Floodfill-маршрутизаторы служат своего рода «досками объявлений», куда узлы публикуют информацию о себе и куда приходят запросы клиентов. Во избежание подделки данные подписываются ключом, входящим в адрес. Поскольку информация о маршрутизаторе меняется довольно редко, то соответствующие файлы сохраняются на диске и загружаются в память при старте. У нормально функционирующего I2P-клиента таких файлов должно быть порядка нескольких тысяч. < Так выглядит файл RouterInfo типичного floodfill’а «Невидимый интернет» представлен структурами данных LeaseSet, содержащих полный идентификатор, дополнительный ключ шифрования и список тоннелей, ведущих к маршрутизатору с данным узлом. Хотя входящие тоннели имеются и у самих маршрутизаторов, они никогда не формируют LeaseSet’ы: к маршрутизаторам всегда следует обращаться, устанавливая с ними прямые соединения, тоннели же используются только для получения ответов на запросы. Поскольку продолжительность жизни одного тоннеля десять минут, то LeaseSet’ы также существуют недолгое время и поэтому на диске не сохраняются, а при рестарте перезапрашиваются по новой. Тоннели и ключ шифрования из LeaseSet’а являются единственным способом обращения к «невидимому» узлу, то есть, зная адрес, следует сначала запросить его LeaseSet у ближайшего к нему floodfill’а и потом отправить сообщение в один из тоннелей. Для получения ответа требуется сформировать собственный LeaseSet, который можно отправить вместе с сообщением или же опубликовать на ближайшем floodfill’е. Невозможность установить, на каком маршрутизаторе располагается тот или иной LeaseSet, является краеугольным камнем технологии обеспечения анонимности в сети I2P. Соответственно, большинство атак злоумышленников направлены на решение противоположной задачи. С этой целью в I2P для передачи информации используется сильная криптография, скрывающая данные от особо любопытных провайдеров разных уровней, а удачно применяемые электронные подписи делают сеть устойчивой к атакам типа man-in-the-middle.

Перехватываем тоннели

Для обеспечения анонимности внутри I2P применяются тоннели, представляющие собой цепочки маршрутизаторов, через которые передаются сообщения. Тоннели бывают исходящие и входящие. Исходящие предназначены для сокрытия местоположения отправителя, а входящие - получателя. Потому LeaseSet’ы и представляют собой список входных узлов и идентификаторов входящих тоннелей, информация об исходящих тоннелях не публикуется. Местоположение второго конца тоннеля держится в секрете. Для получения ответов клиент посылает серверу собственный LeaseSet. Каким путем проложен тоннель и, соответственно, на каком узле находится его второй конец, известно только создателю тоннеля. Все промежуточные участники тоннеля знают лишь следующий узел, которому следует передать перешифрованное сообщение. Но это в теории - на практике же промежуточные узлы также знают, откуда пришло сообщение, потому что сообщения между узлами передаются по обычному интернету и узнать IP-адрес отправителя не составляет труда. Далее, при достаточном размере базы можно найти и RouterInfo. Таким образом, если промежуточный узел тоннеля принадлежит злоумышленнику, то он немедленно узнает и двух своих соседей, что компрометирует одно- или двухшаговые тоннели, поскольку позволяет отследить всю цепочку. Теоретически можно увеличить длину тоннелей вплоть до восьми узлов, практически же каждый дополнительный узел резко замедляет скорость работы и надежность, поскольку присутствие узла онлайн на все время существования тоннеля не гарантировано. Поэтому в настоящий момент в I2P используются трехшаговые тоннели. Таким образом, для успешной деанонимизации узла злоумышленнику следует узнать маршрут любого из тоннелей в любой момент времени - для этого достаточно, чтобы два узла одного тоннеля были доступны злоумышленнику. При нынешнем размере сети в несколько тысяч узлов такой сценарий вполне по силам крупным структурам. Если в деанонимизации серверов ранее описанный перехват reseeding’а мало поможет, поскольку серверы выбирают узлы входящих тоннелей сами, то для выявления клиентов, посещающих «неблагонадежные» ресурсы, данный метод идеален: все узлы, в том числе выходные, используемые клиентом для построения его исходящих тоннелей, будут априори принадлежать злоумышленнику. Тем самым сразу станет известно, откуда пришло сообщение, предназначенное какому-нибудь входящему тоннелю сервера.

Атака методом исключения

Для тех, кто не обладает достаточными ресурсами по захвату большого числа узлов, однако располагает временем и терпением, подойдет другой способ. Цель его - резкое сужение круга «подозреваемых» маршрутизаторов (при должном везении даже до одного), на которых может располагаться искомый узел. Возможность проведения такой атаки обусловлена P2P-природой сети I2P - большинство маршрутизаторов сети не находятся онлайн 24 часа в сутки, поскольку располагаются на компьютерах ее участников. С другой стороны, эксплуатируются особенности I2P:
  1. Время существования тоннеля десять минут.
  2. Узел не участвует в тоннеле дважды.
  3. Для построения тоннеля каждый раз выбирается новая последовательность узлов.
Перед началом атаки злоумышленник набирает достаточно обширную базу, предполагая, что в ней находится и маршрутизатор атакуемого узла. Далее он начинает постоянно обращаться к атакуемому узлу с запросом, предполагающим получение ответа. Это можно делать ненавязчиво, главное, чтобы запрос-ответ шли постоянно, тем самым злоумышленник определяет временные интервалы, когда атакуемый узел и, соответственно, его маршрутизатор находится онлайн. Одновременно с этим оставшиеся маршрутизаторы опрашиваются путем установления непосредственного соединения, отправки какого-нибудь запроса или создания тоннеля. Делается это массово в течение максимально короткого промежутка времени. Те маршрутизаторы, которые оказались неактивными в то время, как атакуемый узел показывает активность, выбрасываются из списка, и наоборот - выбрасываются активные, когда узел неактивен. Если же атакуемый узел активен все время, то в конце концов список будет состоять из постоянно активных маршрутизаторов. И он может оказаться достаточно большим. Вот тут на помощь злоумышленнику и приходят перечисленные выше особенности: входные маршрутизаторы тоннелей, входящих в LeaseSet атакуемого узла, заведомо не являются его маршрутизатором и могут быть немедленно исключены. LeaseSet обновляется не реже чем раз в десять минут и обычно содержит пять тоннелей. За час будут исключены 30 узлов, за сутки 720, таким образом, перебор списка в 5 тысяч узлов займет не более недели.

Определяем соседей по запаху чеснока

Для обеспечения анонимности с обеих сторон тоннели используются парами: исходящий тоннель отправителя и входящий тоннель получателя. Поскольку тоннели создаются независимо друг от друга, то выходной и входной маршрутизаторы в месте соединения тоннелей видят незашифрованные передаваемые данные. Поэтому поверх тоннельного используется дополнительный уровень шифрования - специальное «чесночное» сообщение, полностью зашифрованное и предназначенное для конечных узлов в цепочке. Проблема заключается в том, что расшифровкой таких сообщений занимается маршрутизатор узла, а не сам узел. Таким образом, ключ шифрования, присутствующий в полном идентификаторе, не используется, вместо этого в LeaseSet’е присутствует предназначенный для шифрования отдельный ключ, сгенерированный маршрутизатором, на котором располагается данный LeaseSet. При этом ключ должен быть одним и тем же для всех расположенных на маршрутизаторе узлов, даже если каждый LeaseSet использует свой собственный набор тоннелей. Иначе и нельзя, поскольку «чесночное» сообщение должно быть расшифровано до того, как станет понятно, кому предназначена та или иная «чесночина». В результате изначально здравая идея «чесночной» передачи данных обрела столь уродливую форму при передаче через пару тоннелей. Таким образом, ключ шифрования, публикуемый в LeaseSet’е, является уникальным идентификатором соответствующего маршрутизатора. Достаточно скомпрометировать любой из узлов, чтобы также скомпрометировать все остальные, в том числе и клиентские. Для проведения данной атаки злоумышленнику следует запустить один или несколько floodfill’ов, куда узлы будут публиковать свои LeaseSet’ы.

Выводы

Суммируя вышесказанное, приходим выводу: анонимность I2P в нынешнем состоянии носит лишь базовый характер, позволяя укрыться только от пассивного наблюдения, вроде сбора маркетологической информации. Безусловно, проведение данных типов атак требует серьезных ресурсов, вроде высокоскоростных серверов и специализированного софта, но если кому-то сильно понадобится, то он сможет раскрыть анонимность довольно быстро. Увеличение числа узлов в сети могло бы решить данную проблему, однако при нынешней организации сети это приведет к ее фактическому коллапсу. В то же самое время I2P прекрасно подходит для построения «неубиваемых» ресурсов, доступ к которым невозможно ограничить в принципе.