I2P

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
I2P logo.svg
Тип

Анонимная оверлейная сеть

Разработчик

Команда разработчиков I2P

Написана на

Java

Операционная система

Кроссплатформенное программное обеспечение

Первый выпуск

2003 год

Последняя версия

0.9.5 (8 марта 2013)

Лицензия

Общественное достояние, BSD, GPL, MIT, Artistic License (англ.)русск.[1]

Сайт

www.i2p2.de/index_ru.html

I2P (сокр. от англ.  «Invisible Internet Project», рус. «Проект Невидимый Интернет») — открытое программное обеспечение, созданное для организации сверхустойчивой анонимной, оверлейной, зашифрованной сети и применимое для веб-сёрфинга, анонимного хостинга (создания анонимных сайтов, форумов и чатов, файлообменных серверов и т. д.), систем обмена мгновенными сообщениями, ведения блогов, а также для файлообмена (в том числе P2P — Torrent, eDonkey, Kad, Gnutella и т. д.), электронной почты, VoIP и многого другого. Адреса сайтов в сети I2P находятся в псевдо-доменном пространстве .i2p.

Содержание

Обзор [править]

I2P — это анонимная, самоорганизующаяся распределённая сеть , которая использует модифицированный DHT Kademlia, но отличается тем, что хранит в себе хешированные адреса узлов сети, зашифрованные AES IP-адреса, а также публичные ключи шифрования, причём соединения по Network database тоже зашифрованы. Сеть предоставляет приложениям простой транспортный механизм для анонимной и защищённой пересылки сообщений друг другу. Хотя сеть I2P строго ориентирована на определение пути передачи пакетов, благодаря библиотеке Streaming lib реализована также и их доставка в первоначально заданной последовательности без ошибок, потерь и дублирования, что даёт возможность использовать в сети I2P IP-телефонию, интернет-радио, IP-телевидение, видеоконференции и другие потоковые протоколы и сервисы.

Внутри сети I2P работает собственный каталог сайтов[2], электронные библиотеки, а также торрент-трекеры[3]. Кроме того, существуют гейты для доступа в сеть I2P непосредственно из Интернета[4] созданные специально для пользователей, которые по разным причинам не могут установить на компьютер программное обеспечение «Проекта Невидимый Интернет».

Особенности сети [править]

Внешне, сеть I2P похожа на интернет и отличается невозможностью цензуры благодаря использованию механизмов шифрования, P2P-архитектуре, и переменным посредникам (хопам). Использование таких механизмов позволяет весьма увеличить сложность деанонимизации, MITM-атак и сделать полностью невозможной прозрачную для пользователя подмену пакетов.

В настоящий момент, единственным централизованным элементом сети является своеобразная реализация обычных DNS-серверов. От привычных DNS оный отличается в следующих вещах[5]:

  • Для определения дестхеша (адреса) используется локальная база адресов.
  • База адресов периодически обновляется с именных серверов, тогда как в традиционных DNS адрес определяется по запросу к нему (однако в некоторых ОС и браузерах осуществлено кэширование).
  • Поддомены не привязаны к домену-родителю, однако поставщик адресных подписок волен ограничить регистрацию субдоменов по разрешению домена-родителя.
  • Возможно использование нескольких именных серверов. В официальной реализации роутера конфликты решаются по схеме "первый пришёл - первый обслужил"[6], но стоит заметить, что дестхеши, явно указанные пользователем в адресных базах "privatehosts" и "userhosts", идут первыми - то есть имеют большее влияние, чем подписки.
  • Поскольку сеть одноранговая, адреса являются хешами, которые хопы адресующего (посредники) используют для адресации посредникам адресата.[7]
  • Именные сервера находятся изнутри одноранговой сети, хотя технически возможно обновлять базу извне.
  • Большинство именных серверов, в противоположность регистраторам внешних имён, на настоящий момент не требуют платы за регистрацию доменов в своей базе. Основной критерий - доступность сервера по адресу-дестхэшу.

Подверженность централизованным именным серверам и авторитетам, по мнению части сообщества, является проблемой и требует альтернативной реализации[8].

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

Для доступа в I2P, необходимо установить на своем компьютере программу-маршрутизатор, которая (де)шифрует, (раз)сжимает трафик и направляет его пирам в I2P. Для работы с внутрисетевыми сайтами необходимо настроить браузер для направления HTTP-пакетов роутеру, слушающему определенный порт. Для обращения к внешнему интернету через I2P необходимо использовать прокси-серверы изнутри I2P (outproxy), которых на настоящее время мало[9]. Также внутренние сайты в сети I2P доступны из внешнего интернета через прокси, ведущие вовнутрь (inproxy)[10][11][12].

Шифрование в сети I2P [править]

Сеть изначально была спроектирована с учётом предположения, что все промежуточные узлы являются скомпрометированными или попросту злонамеренными (принадлежащими злоумышленнику и собирающими проходящую через них информацию), поэтому для противодействия был введён ряд активных мер.

Весь трафик в сети шифруется от отправителя до получателя. В сумме при пересылке сообщения используется четыре уровня шифрования (сквозное, чесночное, туннельное, а также шифрование транспортного уровня), перед шифрованием в каждый сетевой пакет автоматически добавляется небольшое случайное количество случайных байт, чтобы ещё больше обезличить передаваемую информацию и затруднить попытки анализа содержимого и блокировки передаваемых сетевых пакетов. В качестве адресов сети используются криптографические идентификаторы, представляющие собой открытые криптографические ключи, которые не имеют никакой логической связи с реальным компьютером. IP адреса в сети I2P не используются нигде и никогда, поэтому определить истинный адрес какого-либо узла в сети не представляется возможным. Каждое сетевое приложение на компьютере строит для себя отдельные шифрованные, анонимные туннели. Туннели в основном одностороннего типа (исходящий трафик идёт через одни туннели, а входящий — через другие) — направление, длину, а также, какое приложение или служба создали эти туннели, выяснить практически невозможно. Все передаваемые сетевые пакеты имеют свойство расходиться по нескольким разным туннелям, что делает бессмысленным попытки прослушать и проанализировать с помощью сниффера проходящий поток данных. Также происходит периодическая смена (примерно каждые 10 минут) уже созданных туннелей на новые, с новыми цифровыми подписями и ключами шифрования (цифровые подписи и ключи шифрования, разумеется, у каждого туннеля свои).

По этим причинам нет необходимости беспокоиться о том, чтобы прикладные программы обеспечивали шифрование своего трафика. Если существует недоверие к шифрованию программ, имеющих закрытый исходный код (как, например, Skype), возможно решить проблему программами IP-телефонии (такими, как Ekiga), передающими трафик в открытом виде. В любом случае сеть I2P произведет четырёхуровневое шифрование всех пакетов и обезопасит передачу/приём всех данных.

В сети I2P все пакеты зашифровываются на стороне отправителя и расшифровываются только на стороне получателя, при этом, в отличие от Tor[источник не указан 24 дня], никто из промежуточных участников обмена не имеет возможности перехватить расшифрованные данные и никто из участников не знает, кто на самом деле отправитель и кто получатель, так как передающий пакеты узел может быть отправителем, а может быть таким же промежуточным узлом, а следующий узел, которому нужно этот пакет отправить, может быть получателем, а может быть тоже таким же промежуточным узлом, узнать конечные точки отправителя и получателя промежуточный узел никак не может, так же как не может узнать, что произошло с только что переданным следующему узлу пакетом — обработал ли тот его, или передал куда-то дальше, выяснить нельзя[13].

В I2P сети используются (для разных уровней и протоколов) следующие системы и методы шифрования и подписи:

  1. 256 бит AES режим CBC с PKCS#5;
  2. 2048 бит Схема Эль-Гамаля;
  3. 2048 бит Алгоритм Диффи — Хеллмана;
  4. 1024 бит DSA;
  5. 256 бит HMAC — Алгоритм усиления криптостойкости других криптоалгоритмов;
  6. 256 бит Хэширование SHA256.

История сети I2P [править]

Проект I2P был начат в 2003 году для поддержки всех, кто участвует в создании более свободного общества и заинтересован в новом нецензурируемом, анонимном и безопасном средстве общения и распространения информации. I2P — это попытка создать защищённую децентрализованную анонимную сеть с малым временем отклика и свойствами автономности, отказоустойчивости и масштабируемости. Конечной задачей является способность функционировать в жёстких условиях, даже под давлением организаций, обладающих значительными финансовыми или политическими ресурсами. Все аспекты сети доступны в виде исходного кода и бесплатны. Это позволяет пользователям убедиться, что программное обеспечение делает именно то, что заявлено, и облегчает сторонним разработчикам возможность совершенствовать защиту сети от настойчивых попыток ограничить свободное общение. Команда разработчиков I2P — это открытая группа, чьим участником может стать любой, кто заинтересован в проекте.

Многие люди из команды разработчиков I2P ранее участвовали в проектах IIP (англ.)русск. (англ.) и Freenet. Но, в отличие от последних, «Проект Невидимый Интернет» — это анонимная одноранговая распределённая коммуникационная среда, с которой могут работать как любые традиционные сетевые службы и протоколы, такие как E-Mail, IRC, HTTP, Telnet, так и распределённые приложения, вроде баз данных, Squid и DNS.

Начиная с версии 0.7.2 (выпущенной в мае 2009 года) релизы программы считаются стабильными. До мая 2009 года авторы проекта всеми силами удерживали пользователей от активной рекламы I2P сети, указывая на возможную нестабильность и beta-статус разработки[14].

В 2009 году было выпущено девять обновлений, а трафик сети увеличился в 5 раз.

Осенью 2011 года в сети был замечен скачкообразный рост количества одновременных нод в сети за сутки с ~6500 до ~9500 и регистрируемых новых нод в сети за сутки с ~300 до ~600, также наблюдается рост Российского сегмента IP адресов, разработчики это связывают с открытием некоторых сайтов в сети I2P таких как Rusleaks и Флибуста. графики активности сети I2P Параллельно с ростом сети была выпущена новая версия и две последующие версии в очень короткий срок. По состоянию на июнь 2012 года российский сегмент сети один из самых крупных. Последняя версия 0.9.5 была выпущена 8 марта 2013.

iMule в сети I2P [править]

EMule mascot.png
iMule

Специально для сети I2P был создан анонимный, защищенный клиент на базе aMule под названием «iMule» — (невидимый Mule) — который представляет собой свободный анонимный клиент файлообменной сети, который использует анонимные соединения с помощью сети I2P и сети Kad. В отличие от сети EDonkey, используемой в «классических» клиентах eMule и aMule, которые подключаются к серверам и раскрывают всю идентификационную информацию — IP-адреса и т. д. — iMule скачивает и отдаёт файлы без раскрытия своего IP-адреса и какой-либо идентификационной информации и весь входящий и исходящий трафик подвергается четырёхуровневому шифрованию в сети I2P. iMule разработан как анонимный клиент файлообменной сети. С версии 1.2.3 в поставку программы входит I2P-маршрутизатор и исходный код, так что никакого дополнительного ПО для подключения к сети I2P не требуется. Если же пользователь хочет использовать остальные возможности сети I2P (например, BitTorrent, Gnutella, анонимную электронную почту, анонимные веб-сайты и т. д.), он должен установить полный пакет маршрутизатора I2P. Будучи похожим на aMule, iMule старается быть максимально портабельным и кроссплатформенным с использованием библиотеки wxWidgets. В данный момент клиент поддерживает Linux, Mac OS X, различные BSD-подобные операционные системы, Windows и Solaris.

Премии за работу над полезными для I2P проектами [править]

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

Разработчики также открыты для денежных пожертвований со стороны всех, кто желает материально поддержать I2P, но не может определиться, какому именно из заявленных проектов нужно помочь. В таком случае Вы можете сделать пожертвование в фонд общего назначения и довериться выбору команды I2P — деньги из фонда идут на вознаграждения за разнообразные проекты, на оплату хостинга и тому подобные расходы. Ознакомиться со списком оплачиваемых целевых проектов можно в специальном разделе официального сайта I2P[15].

Основные приложения, доступные для использования внутри сети I2P [править]

Ниже представлен список[16].

Ссылки на статьи в других источниках [править]

См. также [править]

Примечания [править]

Ссылки [править]