I2P — это анонимная, самоорганизующаяся распределённая сеть , которая использует модифицированный DHT Kademlia, но отличается тем, что хранит в себе хешированные адреса узлов сети, зашифрованные AES IP-адреса, а также публичные ключи шифрования, причём соединения по Network database тоже зашифрованы. Сеть предоставляет приложениям простой транспортный механизм для анонимной и защищённой пересылки сообщений друг другу. Хотя сеть I2P строго ориентирована на определение пути передачи пакетов, благодаря библиотеке Streaming lib реализована также и их доставка в первоначально заданной последовательности без ошибок, потерь и дублирования, что даёт возможность использовать в сети I2P IP-телефонию, интернет-радио, IP-телевидение, видеоконференции и другие потоковые протоколы и сервисы.
Внутри сети I2P работает собственный каталог сайтов, электронные библиотеки, а также торрент-трекеры. Кроме того, существуют гейты для доступа в сеть I2P непосредственно из Интернета созданные специально для пользователей, которые по разным причинам не могут установить на компьютер программное обеспечение «Проекта Невидимый Интернет».
Внешне сеть I2P похожа на интернет и отличается невозможностью цензуры благодаря использованию механизмов шифрования, P2P-архитектуре и переменным посредникам (хопам). Использование таких механизмов позволяет весьма увеличить сложность деанонимизации, MITM-атак и сделать полностью невозможной прозрачную для пользователя подмену пакетов.
В настоящий момент единственным централизованным элементом сети является своеобразная реализация обычных DNS-серверов. От привычных DNS оный отличается в следующих вещах:
Подверженность централизованным именным серверам и авторитетам, по мнению части сообщества, является проблемой и требует альтернативной реализации.
Поскольку сеть является одноранговой и децентрализованной, скорость и надежность сети напрямую зависит от участия людей в передаче чужого трафика. Официальный роутер по умолчанию сконфигурирован на его раздачу.
Для доступа в I2P необходимо установить на своем компьютере программу-маршрутизатор, которая (де)шифрует, (раз)сжимает трафик и направляет его пирам в I2P. Для работы с внутрисетевыми сайтами необходимо настроить браузер для направления HTTP-пакетов роутеру, слушающему определенный порт. Для обращения к внешнему интернету через I2P необходимо использовать прокси-серверы изнутри I2P (outproxy), которых на настоящее время мало. Также внутренние сайты в сети I2P доступны из внешнего интернета через прокси, ведущие внутрь (inproxy)
Сеть изначально была спроектирована с учётом предположения, что все промежуточные узлы являются скомпрометированными или злонамеренными, поэтому для противодействия был введён ряд активных мер.
Весь трафик в сети шифруется от отправителя до получателя. В сумме при пересылке сообщения используется четыре уровня шифрования (сквозное, чесночное, туннельное, а также шифрование транспортного уровня), перед шифрованием в каждый сетевой пакет автоматически добавляется небольшое случайное количество случайных байт, чтобы ещё больше обезличить передаваемую информацию и затруднить попытки анализа содержимого и блокировки передаваемых сетевых пакетов. В качестве адресов сети используются криптографические идентификаторы, представляющие собой открытые криптографические ключи, которые не имеют никакой логической связи с реальным компьютером. IP адреса в сети I2P не используются нигде и никогда, поэтому определить истинный адрес какого-либо узла в сети не представляется возможным. Каждое сетевое приложение на компьютере строит для себя отдельные шифрованные, анонимные туннели. Туннели в основном одностороннего типа (исходящий трафик идёт через одни туннели, а входящий — через другие) — направление, длину, а также, какое приложение или служба создали эти туннели, выяснить практически невозможно. Все передаваемые сетевые пакеты имеют свойство расходиться по нескольким разным туннелям, что делает бессмысленным попытки прослушать и проанализировать с помощью сниффера проходящий поток данных. Также происходит периодическая смена (примерно каждые 10 минут) уже созданных туннелей на новые, с новыми цифровыми подписями и ключами шифрования (цифровые подписи и ключи шифрования, разумеется, у каждого туннеля свои).
По этим причинам нет необходимости беспокоиться о том, чтобы прикладные программы обеспечивали шифрование своего трафика. Если существует недоверие к шифрованию программ, имеющих закрытый исходный код (как, например, Skype), возможно решить проблему программами IP-телефонии (такими, как Ekiga), передающими трафик в открытом виде. В любом случае сеть I2P произведет четырёхуровневое шифрование всех пакетов и обезопасит передачу/приём всех данных.
В сети I2P все пакеты зашифровываются на стороне отправителя и расшифровываются только на стороне получателя, при этом никто из промежуточных участников обмена не имеет возможности перехватить расшифрованные данные и никто из участников не знает, кто на самом деле отправитель и кто получатель, так как передающий пакеты узел может быть отправителем, а может быть таким же промежуточным узлом, а следующий узел, которому нужно этот пакет отправить, может быть получателем, а может быть тоже таким же промежуточным узлом, узнать конечные точки отправителя и получателя промежуточный узел никак не может, так же как не может узнать, что произошло с только что переданным следующему узлу пакетом — обработал ли тот его, или передал куда-то дальше, выяснить нельзя.
В I2P сети используются (для разных уровней и протоколов) следующие системы и методы шифрования и подписи:
Проект I2P был начат в 2003 году для поддержки всех, кто участвует в создании более свободного общества и заинтересован в новом нецензурируемом, анонимном и безопасном средстве общения и распространения информации. I2P — это попытка создать защищённую децентрализованную анонимную сеть с малым временем отклика и свойствами автономности, отказоустойчивости и масштабируемости. Конечной задачей является способность функционировать в жёстких условиях, даже под давлением организаций, обладающих значительными финансовыми или политическими ресурсами. Все аспекты сети доступны в виде исходного кода и бесплатны. Это позволяет пользователям убедиться, что программное обеспечение делает именно то, что заявлено, и облегчает сторонним разработчикам возможность совершенствовать защиту сети от настойчивых попыток ограничить свободное общение. Команда разработчиков I2P — это открытая группа, чьим участником может стать любой, кто заинтересован в проекте.
Многие люди из команды разработчиков I2P ранее участвовали в проектах IIP (англ.)русск. (англ.) и Freenet. Но, в отличие от последних, «Проект Невидимый Интернет» — это анонимная одноранговая распределённая коммуникационная среда, с которой могут работать как любые традиционные сетевые службы и протоколы, такие как электронная почта, IRC, HTTP, Telnet, так и распределённые приложения, вроде баз данных, Squid и DNS.
Начиная с версии 0.7.2 (выпущенной в мае 2009 года) релизы программы считаются стабильными. До мая 2009 года авторы проекта всеми силами удерживали пользователей от активной рекламы I2P сети, указывая на возможную нестабильность и beta-статус разработки. В 2009 году было выпущено девять обновлений, а трафик сети увеличился в 5 раз.
Осенью 2011 года в сети был замечен скачкообразный рост количества одновременных нод в сети за сутки с ~6500 до ~9500 и регистрируемых новых нод в сети за сутки с ~300 до ~600, также наблюдается рост Российского сегмента IP адресов, разработчики это связывают с открытием некоторых сайтов в сети I2P таких как Rusleaks и Флибуста. Параллельно с ростом сети была выпущена новая версия и две последующие версии в очень короткий срок. По состоянию на август 2013 года российские роутеры наиболее многочисленны. Новые релизы выходят регулярно раз в 2-3 месяца.
Специально для сети 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.
Ниже представлен список.