I2P - невидимый Интернет

I2P - невидимый Интернет

National Network Security (N.N.S.)

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 работает собственный каталог сайтов, электронные библиотеки, а также торрент-трекеры. Кроме того, существуют гейты для доступа в сеть I2P непосредственно из Интернета созданные специально для пользователей, которые по разным причинам не могут установить на компьютер программное обеспечение «Проекта Невидимый Интернет».


Особенности сети

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

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

1. Для определения хеш-суммы получателя используется локальная база адресов.

2. База адресов периодически обновляется с серверов имен, тогда как в традиционных DNS-адрес определяется по запросу к нему (однако в некоторых ОС и браузерах осуществлено кэширование).

3. Поддомены не привязаны к домену-родителю, однако поставщик адресных подписок волен ограничить регистрацию субдоменов по разрешению домена-родителя.

возможно использование нескольких серверов имен. В официальной реализации роутера конфликты решаются по схеме «первый пришёл - первый обслужил», но стоит заметить, что хеш-суммы получателя, явно указанные пользователем в адресных базах «privatehosts» и «userhosts», идут первыми - то есть имеют большее влияние, чем подписки.

· Поскольку сеть одноранговая, адреса являются хешами, которые хопы адресующего (посредники) используют для адресации посредникам адресата.

· Сервера имен находятся внутри одноранговой сети, хотя технически возможно обновлять базу извне.

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

· После создания тоннеля для передачи данных, время его существования не превышает 10 минут.

· Для создания тоннеля передачи данных каждый раз выбирается уникальная последовательность узлов.

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


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


Шифрование в сети I2P

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


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


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


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

256 бит AES режим CBC с PKCS#5;

2048 бит Схема Эль-Гамаля;

2048 бит Алгоритм Диффи — Хеллмана;

1024 бит DSA;

256 бит HMAC — Алгоритм усиления криптостойкости других криптоалгоритмов;

256 бит Хэширование SHA256.


История сети I2P

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


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