I2P

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
I2P
I2P logo.svg
I2P 0.9.8.1.png
I2P 0.9.8.1 Router Console
Тип Оверлейна мережа
Автор(и) I2P Team
Перший випуск 2003
Стабільний випуск 0.9.34 (10 квітня 2018; 164 дні тому)
Версії 0.9.36 (23 серпня 2018)[1]
Репозиторій github.com/i2p/i2p.i2p
Платформа Віртуальна машина Java
Операційна система Багатоплатформність
Написано на Java[2]
Стан розробки Активний розвиток
Ліцензія Громадське надбання, BSD, GPL, MIT, Artistic License[en]
geti2p.net

CMNS: I2P на Вікісховищі

I2P (скор. від англ. «Invisible Internet Project», укр. «Проект Невидимий Інтернет», вимовляється «айтупі») — відкрите програмне забезпечення, створене для організації надстійкої анонімної, оверлейної, зашифрованої мережі і застосовуване для веб-серфінгу, анонімного хостингу (створення анонімних сайтів, форумів і чатів, файлообмінних серверів і т. д.), систем обміну миттєвими повідомленнями, ведення блогів, а також для файлообміну (у тому числі P2P — Torrent, eDonkey, Kad, Gnutella і т. д.), електронної пошти, VoIP і багато чого іншого. Адреси сайтів у мережі I2P мають вигляд: «http://адреса_сайта.i2p».

Огляд[ред. | ред. код]

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

Всередині мережі I2P працює власний каталог сайтів[3], електронні бібліотеки, а також торент-трекери[4]. Крім того, існують гейти для доступу в мережу I2P безпосередньо з Інтернету[5] створені спеціально для користувачів, які з різних причин не можуть встановити на комп'ютер I2P.

Структура мережі[ред. | ред. код]

Мережа I2P схожа за своєю структурою з традиційним Інтернетом і відрізняється лише неможливістю цензури завдяки використанню механізмів шифрування і анонімізації. Тому для третіх осіб немає можливості дізнатися, що переглядає користувач, які сайти відвідує, яку інформацію викачує, яке його коло інтересів, знайомств і т. д.

У I2P мережі немає ніяких центральних серверів і немає звичних DNS-серверів, також мережа абсолютно не залежить від зовнішніх DNS, що призводить до неможливості знищення, блокування та фільтрації мережі, яка буде існувати і функціонувати, поки на планеті залишаться хоча б два комп'ютери у мережі. Також відсутність DNS-серверів і використання DHT Kademlia — механізму розподілу імен у мережі I2P — дає можливість створення будь-яким користувачем мережі I2P свого сайту, проекту, торент-трекера і т. д. без необхідності десь реєструватися, оплачувати будь-кому доменне ім'я або чекати чийогось дозволу. Кожна людина вільна абсолютно безкоштовно і вільно створювати будь-які сайти, при цьому дізнатися місцезнаходження сервера і людини практично неможливо.

Кожен новий учасник, що приймає вхідні підключення від інших маршрутизаторів, збільшує надійність, анонімність і швидкість всієї мережі в цілому.

Щоб потрапити у мережу I2P, потрібно всього лише встановити на своєму комп'ютері програму-маршрутизатор, яка буде розшифровувати/зашифровувати весь трафік і перенаправляти його у мережу I2P. Для роботи з .i2p сайтами необхідно заздалегідь налаштувати браузер. При зверненні до сайту або іншого ресурсу у звичайному (зовнішньому) інтернеті програма-маршрутизатор автоматично, подібно Tor, прокладає «тунель» до одного з зовнішніх шлюзів і дає можливість відвідувати і використовувати зовнішні інтернет-ресурси приховуючи свою IP-адресу. Також внутрішні сайти у мережі I2P доступні з зовнішнього інтернету через спеціальні шлюзи[6].

На перший погляд може здатися, що робота I2P маршрутизатора, через постійну необхідність зашифровувати вихідні і розшифровувати вхідні пакети та застосування великої кількості алгоритмів шифрування з довгими ключами, повинна негативно позначатися на навантаженні процесора і пам'яті комп'ютера, насправді навантаження ніяк не позначається навіть на малопотужних офісних комп'ютерах і обчислюється одиницями відсотків. Однак при великій кількості транзитних тунелів завантаження процесора Pentium 4 може досягати 70-80 відсотків (core i7-2600 ~ 400KBps=7-8%).

Шифрування у мережі I2P[ред. | ред. код]

Мережа спочатку була спроектована з урахуванням припущення, що всі проміжні вузли є скомпрометованими або зловмисними (захоплені зловмисником і збирають інформацію, що через них проходить), тому для протидії було введено ряд активних заходів.

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

З цих причин немає необхідності турбуватися про шифрування свого трафіку. Або, якщо існує недовіра до шифрування програм, що мають закритий сирцевий код (як, наприклад, Skype). Також, наприклад, існують програми IP-телефонії (такі, як Ekiga), що не вміють шифрувати свій трафік і передають його у відкритому вигляді. У будь-якому випадку мережа I2P здійснить чотирьохрівневе шифрування всіх пакетів та убезпечить передачу/прийом всіх даних.

У мережі I2P всі пакети зашифровуються на стороні відправника та розшифровуються тільки на стороні одержувача, при цьому, на відміну від Tor, ніхто з проміжних учасників обміну не має можливості перехопити розшифровані дані і ніхто з учасників не знає, хто насправді відправник і хто одержувач, оскільки вузол, передає пакети, може бути відправником, а може бути таким же проміжним вузлом, а наступний вузол, якому потрібно цей пакет відправити, може бути одержувачем, а може бути теж таким же проміжним вузлом, дізнатися кінцеві точки відправника та одержувача проміжний вузол ніяк не може, так само як не може дізнатися, що сталося з тільки що переданим наступному вузлу пакетом — обробив той його, або передав кудись далі, з'ясувати не можна.

У 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 раніше брали участь у проектах Invisible IRC Project/Proxy і Freenet. Але, на відміну від останніх, I2P — це анонімна однорангове розподілене комунікаційне середовище, в якому можуть працювати як будь-які традиційні мережеві служби і протоколи, такі як E-Mail, IRC, HTTP, Telnet, так і розподілені застосунка, подібне до баз даних, Squid і DNS.

Починаючи з версії 0.7.2 (випущеної в травні 2009 року) релізи програми вважаються стабільними. До травня 2009 року автори проекту всіма силами утримували користувачів від активної реклами I2P мережі, вказуючи на можливу нестабільність і beta-статус розробки. У 2009 році було випущено дев'ять оновлень, а трафік мережі збільшився в 5 разів. Восени 2011 року в мережі було помічено стрибкоподібне зростання кількості одночасних нод в мережі за добу з ~ 6500 до ~ 9500 і реєстрованих нових нод в мережі за добу з ~ 300 до ~ 600.

З травня 2012-го останньою гілкою вважається 0.9.x, та налічує 34 релізи (станом на квітень 2018)[7].

IMule в мережі I2P[ред. | ред. код]

Докладніше: iMule
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. iMule як і попередник aMule, кросплатформовий з використанням бібліотеки wxWidgets. Зараз клієнт підтримує Linux, Mac OS X, різні BSD-подібні операційні системи, Windows і Solaris.

Основні застосунки, доступні для використання всередині мережі I2P[ред. | ред. код]

Нижче наведено список[8].

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

Посилання[ред. | ред. код]