I2P
I2P (скор. від англ. «Invisible Internet Project», дос. «Проект Невидимий Інтернет», вимовляється «айтупі») — відкрите програмне забезпечення, створене для організації надстійкої анонімної, оверлейної, зашифрованої мережі і застосовуване для веб-серфінгу, анонімного хостингу (створення анонімних сайтів, форумів і чатів, файлообмінних серверів і т. д.), систем обміну миттєвими повідомленнями, ведення блогів, а також для файлообміну (у тому числі P2P — Torrent, eDonkey, Kad, Gnutella і т. д.), електронної пошти, VoIP і багато чого іншого. Адреси сайтів у мережі I2P мають вигляд: «http://адреса_сайту.i2p».
| |
I2P 0.9.8.1 Router Console | |
Тип | Оверлейна мережа |
---|---|
Автор(и) | I2P Team |
Перший випуск | 2003 |
Стабільний випуск | 0.9.34 (10 квітня, 2018 ) |
Версії | 0.9.50 (17 травня 2021)[1] |
Репозиторій | https://github.com/i2p/i2p.i2p, cvs://cvs.i2p.net/cvsroot/, cvs://cvs.invisiblenet.net:/cvsroot/freeweb |
Платформа | Віртуальна машина Java і Android |
Операційна система | Багатоплатформність |
Мова програмування | Java[2] |
Стан розробки | Активний розвиток |
Ліцензія | Громадське надбання, BSD, GPL, MIT, Artistic License |
Вебсайт | geti2p.net |
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 мережі використовуються (для різних рівнів і протоколів) наступні системи і методи шифрування і підпису:
- 256 біт AES режим CBC з PKCS#5;
- 2048 біт Схема Ель-Гамаля;
- 2048 біт Алгоритм Діффі — Хеллмана;
- 1024 біт DSA;
- 256 біт HMAC — Алгоритм посилення криптостійкості інших криптоалгоритмів;
- 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
Спеціально для мережі 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].
- Eepsite (http://localhost:7658) - захищені веб-вузли, доступні тільки у мережі I2P через eepProxy.
- SusiDNS (http://localhost:7657/susidns/index.jsp) - DNS-клієнт
- Susimail (http://localhost:7657/susimail/susimail) - поштовий клієнт
- I2Psnark (http://localhost:7657/i2psnark) - торент-клієнт
- I2PTunnel (http://localhost:7657/i2ptunnel/index.jsp) - інтегрована в I2P програма, що дозволяє різним службам TCP/IP встановлювати зв'язок поверх I2P за допомогою тунелів
- http://localhost:7657/tunnels.jsp - Моніторинг тунелів
- IRC (irc://127.0.0.1:6668/#i2p-help) — доступ на внутрішній IRC сервер.
Див. також
- AMule
- EMule
- IMule
- Мережі Kad
- Анонімні мережі
- Однорангові мережі
- Оверлейна мережа
Примітки
- https://geti2p.net/en/blog/post/2021/05/17/0.9.50-Release
- The i2p Open Source Project on Open Hub: Languages Page — 2006.
- Список сайтів I2P[недоступне посилання з червня 2019]
- [недоступне посилання з червня 2019]
- http://inproxy.tino.i2p.tin0.de. Архів оригіналу за 28 листопада 2009. Процитовано 18 червня 2019.
- i2p.to доступ до сайтів всередині I2P зі звичайного інтернету. Архів оригіналу за 27 грудня 2012. Процитовано 15 листопада 2012.
- https://github.com/i2p/i2p.i2p/releases
- За межею невидимості: нові методи зберегти інгоніто в інеті. Архів оригіналу за 16 листопада 2012. Процитовано 15 листопада 2012.