I2P

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

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

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

2003 год

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

0.9.14.1 [1]9 августа 2014

Лицензия

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

Состояние

активное

Веб-сайт

https://geti2p.net

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

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

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

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

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

Сеть изначально была спроектирована с учётом предположения, что все промежуточные узлы являются скомпрометированными или злонамеренными[источник не указан 421 день], поэтому для противодействия был введён ряд активных мер.

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

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

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

В 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. Но, в отличие от последних, «Проект Невидимый Интернет» — это анонимная одноранговая распределённая коммуникационная среда, с которой могут работать как любые традиционные сетевые службы и протоколы, такие как электронная почта, IRC, HTTP, Telnet, так и распределённые приложения, вроде баз данных, Squid и DNS.

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

Осенью 2011 года в сети был замечен скачкообразный рост количества одновременных нод в сети за сутки с ~6500 до ~9500 и регистрируемых новых нод в сети за сутки с ~300 до ~600, также наблюдается рост Российского сегмента IP адресов, разработчики это связывают с открытием некоторых сайтов в сети I2P таких как Rusleaks и Флибуста. [14]. Параллельно с ростом сети была выпущена новая версия и две последующие версии в очень короткий срок. По состоянию на август 2013 года российские роутеры наиболее многочисленны. Новые релизы выходят регулярно раз в 2-3 месяца.

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[править | править вики-текст]

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

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

Примечания[править | править вики-текст]

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

П: Портал «Анархизм»
П: Портал «Криптография»
П: Портал «Компьютерные сети»
П: Портал «Свободное программное обеспечение»