I2P

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 24 august 2022; verificarea necesită 1 editare .
I2P
Tip de software gratuit și open source , rețele anonime , rețea de suprapunere și aplicație mobilă
Scris in Java [2]
Sistem de operare Microsoft Windows , Linux , macOS , OpenBSD , FreeBSD și Android
Limbi de interfață engleză , spaniolă , germană , rusă și franceză
Prima editie 2003 [1]
Platformă hardware Mașină virtuală Java și Android
ultima versiune
Licență BSD , GNU GPL , licență MIT și 🅮 [d]
Site-ul web geti2p.net
 Fișiere media la Wikimedia Commons

I2P ( abrevierea în engleză  i nvisible i nternet project , IIP , I 2 P  - the Invisible Internet project) este o rețea de computere anonimă .

Rețeaua I2P este suprapusă , rezistentă (dezactivarea unui nod nu va afecta funcționarea rețelei), anonimă (este imposibil sau dificil să se determine adresa IP a nodului ) și descentralizată [4] (neavând un server central ). La transferul de date între nodurile de rețea, se utilizează criptarea .

Orice serviciu (sau serviciu) ( forum , blog , găzduire de fișiere , e-mail , mesagerie instantanee ( chat ), partajare de fișiere , VoIP etc.) poate fi plasat în rețeaua I2P , păstrând în același timp anonimatul serverului. Rețeaua I2P rulează servere http ; adresele site-urilor sunt în spațiul pseudodomeniului „.i2p”. Rețelele peer-to-peer (P2P) pot fi construite deasupra rețelei I2P , de exemplu, BitTorrent , eDonkey , Kad , Gnutella etc.

Prezentare generală

I2P este o rețea distribuită anonimă, care se organizează automat, care utilizează un DHT Kademlia modificat , dar diferă prin faptul că stochează adresele hashed ale nodurilor de rețea , adresele IP criptate AES , precum și cheile publice de criptare , iar conexiunile la bazele de date de rețea sunt, de asemenea, criptate. Rețeaua oferă un mecanism de transport pentru ca aplicațiile să trimită mesaje în mod anonim și sigur una către alta [5] . Deși rețeaua I2P stabilește sarcina principală de determinare a căii de transmisie a pachetelor , datorită bibliotecii Streaming lib , livrarea acestora este, de asemenea, implementată în secvența specificată inițial, fără erori, pierderi și duplicare, ceea ce face posibilă [6] utilizarea IP . telefonie , radio prin Internet , IP în rețeaua I2P - televiziune , videoconferințe și alte protocoale și servicii de streaming.

În interiorul rețelei I2P operează propriul director de site -uri , biblioteci electronice și trackere de torrent . În plus, există gateway-uri pentru accesarea rețelei I2P direct de pe Internet, create special pentru utilizatorii care, din diverse motive, nu pot instala software-ul proiectului Invisible Internet pe computerul lor [6] .

Caracteristici de rețea

Rețeaua I2P se distinge prin utilizarea mecanismelor de criptare , arhitectura P2P și intermediari variabili (hop-uri). Această metodă presupune o creștere a complexității deanonimizării, atacurilor MITM și face complet imposibilă înlocuirea pachetelor în mod transparent pentru utilizator .

În prezent, elementul rețelei este un fel de implementare a serverelor DNS convenționale . Diferă de DNS-ul obișnuit în următoarele aspecte [7] :

Deoarece rețeaua este peer-to-peer și descentralizată, viteza și fiabilitatea rețelei depind direct de participarea oamenilor la transmiterea traficului altor persoane.

Pentru a accesa I2P, trebuie să instalați pe computer un program de router care (de)criptează, (dez)comprimă traficul și îl trimite către colegii în I2P. Pentru a lucra cu site-uri intranet, trebuie să configurați browserul să trimită pachete HTTP către routerul care ascultă pe un anumit port . Pentru a accesa Internetul extern prin I2P, este necesar să folosiți servere proxy din interiorul I2P (outproxy), care în prezent sunt puține. De asemenea, site-urile interne din rețeaua I2P sunt accesibile de pe internetul extern printr-un server proxy [8] .

Criptare în rețeaua I2P

Rețeaua a fost proiectată inițial cu presupunerea că toate nodurile intermediare sunt compromise sau rău intenționate, așa că au fost introduse o serie de măsuri active pentru a o contracara [9] .

Tot traficul din rețea este criptat de la expeditor la destinatar. În total, la redirecționarea unui mesaj, sunt utilizate patru niveluri de criptare (de la capăt la capăt, usturoi , tunel și criptare la nivel de transport ), înainte de criptare, un număr mic aleatoriu de octeți sunt adăugați automat la fiecare pachet de rețea pentru depersonalizează în continuare informațiile transmise și îngreunează analiza conținutului și blochează pachetele de rețea transmise. Identificatorii criptografici , care sunt chei criptografice publice, sunt utilizați ca adrese de rețea . Adresele IP din rețeaua I2P nu sunt folosite nicăieri și niciodată, așa că nu este posibil să se determine adresa adevărată a vreunui nod din rețea [6] . Fiecare aplicație de rețea de pe un computer construiește tuneluri separate, criptate și anonime pentru sine. Tunelurile sunt în mare parte de tip unidirecțional (traficul de ieșire trece prin unele tuneluri, iar traficul de intrare prin altele) - direcția, lungimea și, de asemenea, aplicația sau serviciul care a creat aceste tuneluri este extrem de greu de aflat [6] . Toate pachetele de rețea transmise tind să diverge prin mai multe tuneluri diferite, ceea ce face inutil să încercați să ascultați și să analizați fluxul de date care trece folosind un sniffer . De asemenea, are loc o schimbare periodică (la fiecare 10 minute) a tunelurilor deja create la altele noi, cu semnături digitale noi și chei de criptare (semnături digitale și chei de criptare, desigur, fiecare tunel are propriile sale). Din aceste motive, nu este nevoie [6] să vă faceți griji că programele de aplicație le criptează traficul. Dacă există o lipsă de încredere în criptarea programelor cu sursă închisă (cum ar fi Skype ), este posibil să se rezolve problema cu programele de telefonie IP (cum ar fi Ekiga ) care transmit trafic în clar. În orice caz, rețeaua I2P va efectua o criptare pe patru nivele a tuturor pachetelor și va asigura transmiterea/recepția tuturor datelor [6] .

În rețeaua I2P, toate pachetele sunt criptate de partea expeditorului și decriptate doar de partea destinatarului, în timp ce niciunul dintre participanții intermediari la schimb nu este capabil să intercepteze datele decriptate și niciunul dintre participanți nu știe cine este expeditorul și cine este. destinatarul este, deoarece nodul care transmite pachetele poate fi expeditorul sau poate fi același nod intermediar, iar următorul nod către care trebuie trimis acest pachet poate fi destinatarul sau poate fi, de asemenea, același nod intermediar, nodul intermediar nu poate afla punctele finale ale expeditorului și destinatarului, la fel cum nu poate afla ce sa întâmplat cu pachetul care tocmai a trecut la următorul nod - dacă l-a procesat sau l-a transmis undeva mai departe, este imposibil de aflat [6] ] .

Rețeaua I2P utilizează (pentru diferite niveluri și protocoale) următoarele sisteme și metode de criptare și semnătură [6] :

  1. Mod AES CBC pe 256 de biți cu PKCS#5;
  2. Schema lui ElGamal pe 2048 biți ;
  3. 2048 biți algoritm Diffie-Hellman ;
  4. DSA 1024 biți ;
  5. 256 de biți HMAC - Algoritm pentru întărirea puterii criptografice a altor algoritmi criptografici ;
  6. Hashing SHA256 pe 256 de biți .

Istoria rețelei I2P

Proiectul I2P a fost demarat în 2003 pentru a-i sprijini pe cei interesați de un nou mijloc necenzurat, anonim de comunicare și diseminare a informațiilor. I2P este o încercare de a crea o rețea sigură, descentralizată, anonimă, cu timp de răspuns și autonomie reduse, toleranță la erori și scalabilitate. Provocarea supremă este capacitatea de a funcționa în condiții dure, chiar și sub presiunea organizațiilor cu resurse financiare sau politice semnificative. Toate aspectele web sunt disponibile ca cod sursă și sunt gratuite. Acest lucru permite utilizatorilor să verifice dacă software-ul face exact ceea ce pretinde că face și face mai ușor pentru dezvoltatorii terți să îmbunătățească securitatea rețelei împotriva încercărilor persistente de a restricționa comunicarea liberă [10] .

Mulți din echipa de dezvoltare I2P au participat anterior la proiecte IIPși Freenet . Dar, spre deosebire de acesta din urmă, „Proiectul Internet Invizibil” este un mediu de comunicare anonim distribuit peer -to-peer care poate funcționa cu orice servicii și protocoale de rețea tradiționale , cum ar fi e-mail , IRC , HTTP , Telnet , precum și aplicații distribuite precum baze de date. , Squid și DNS [11] .

De la jumătatea anului 2013, a fost dezvoltat activ I2Pd , un client alternativ open source pentru rețeaua i2p, scris în limbajul de programare C++ cu diferențe în abordarea criptării, o echipă de dezvoltatori independenți lucrează la el, dintre care unii sunt din Rusia, ceea ce poate afecta credibilitatea demonului pentru unii utilizatori în absența auditurilor independente de cod sursă. Vulnerabilitățile critice se găsesc ocazional în i2pd. O scurtă listă de diferențe față de clientul oficial: o dimensiune mai mică a aplicației, absența completă a programelor terțe în ansamblul oficial, integrarea cu aplicații scrise în C++, utilizarea economică a resurselor computerului și viteza mai mare a rețelei.

Vulnerabilități existente

Schimbarea nodurilor

Această metodă de atac a rețelei poate fi implementată cu o utilizare destul de mică a resurselor (pentru un atac de succes, doar aproximativ 2% din toate nodurile de rețea trebuie capturate). Cu toate acestea, această metodă limitează atacul prin captarea a 20% din toate inundațiile rețelei [12] .

Pentru a efectua un atac, un atacator trebuie să înlocuiască nodurile de rețea sănătoase (care sunt deja active în el) cu unele compromise. Pentru a face acest lucru, este necesar să dezactivați nodurile care pot fi reparate, înlocuindu-le cu ale dvs. Atacatorul ar trebui să înlocuiască gazde cu gazde master (configurate ca manual ). Dezactivarea nodurilor de lucru ale rețelei nu este o condiție prealabilă pentru efectuarea unui atac - routerele nodurilor din rețea sunt computere de utilizator obișnuite, prin urmare, nu participă întotdeauna în rețea, iar nodurile sunt, de asemenea, deconectate atunci când routerul este repornit. (de exemplu, la actualizarea software-ului). Rețeaua în sine nu conectează noduri noi până când sunt necesari noi membri sau nu există o lipsă de resurse. Prin urmare, pentru înlocuirea mai ușoară a nodurilor, este suficient să așteptați până când unul dintre noduri este deconectat de la rețea, luându-i locul cu propriul nod [12] .

Pentru a accelera procesul, împreună cu așteptarea ca unul dintre noduri să se deconecteze în mod independent de la rețeaua de înlocuire a nodurilor, un atacator poate provoca o depășire a stivei de sarcini pentru nodurile de lucru (așa-numita întârziere a jobului). Constă în efectuarea unui atac DoS asupra unui nod. Atacatorul trebuie să creeze multe tuneluri noi prin nodul atacat pentru a-și umple în continuare coada de sarcini cu solicitări continue prin fiecare tunel. În acest caz, există o întârziere mare în execuția sarcinilor, iar nodul se exclude din lista de inundații [12] .

Deanonimizarea membrilor tunelului

Tunelurile sunt utilizate în rețeaua I2P [13] :

Tunelurile sunt lanțuri de routere prin care sunt transmise mesajele. Tunelurile sunt de ieșire și de intrare. Căsuțele de ieșire sunt concepute pentru a ascunde locația expeditorului, în timp ce căsuțele de intrare ascund locația destinatarului.

Când se utilizează tuneluri scurte nestandard - 0, 1, 2 hop, există un risc crescut de deanonimizare a tuturor participanților la tunel. Deoarece informațiile despre destinatar și expeditor sunt transmise împreună cu mesajul însuși în pachetul IP (deoarece datele sunt transmise pe un canal normal nesecurizat), nodul intermediar cunoaște destinatarul și expeditorul pachetului, astfel încât nodul intermediar atacator, de control poate face presupuneri despre nodurile inițiale și finale.

Această problemă este rezolvată prin creșterea lungimii tunelului, dar încetinește foarte mult transmiterea mesajelor în rețea. În acest moment, rețeaua folosește implicit tuneluri cu trei hop, ceea ce face ca acest tip de atac să fie practic inaplicabil doar dacă atacatorul nu controlează 2 din 3 noduri intermediare ale unui tunel. [13] .

Atacul de excepție

Acest atac folosește vulnerabilități I2P, care se datorează proprietăților rețelelor P2P din această rețea , și anume: timpul de funcționare non-constant al routerelor de rețea (care sunt computere obișnuite ale participanților la rețea), precum și unele reguli de tunel [13] :

Pentru a efectua atacul, atacatorul alcătuiește o listă de routere de rețea care sunt potențial noduri pentru tunelul cu nodul final atacat (nodul atacat în sine nu este inclus în listă). În continuare, atacatorul începe să trimită cereri continue către gazda atacată pentru a afla intervalele de timp în care routerul este online. În cazul unui nod activ (starea curentă: „online”), atacatorul verifică lista pregătită de noduri pentru a găsi noduri inactive printre ele, trimițând cereri unice către fiecare dintre ele. Dacă nu a fost primit niciun răspuns la interogarea unui anumit nod (starea curentă: „offline”), atunci routerul este exclus din lista de noduri. Acțiuni similare sunt efectuate în cazul opus: dacă nodul atacat este inactiv, nodurile active în prezent sunt excluse din listă. Astfel, până la urmă, lista va consta din routere active constant. Următorul pas în filtrarea nodurilor din listă va fi exploatarea regulilor de tunel descrise mai sus: routerele de tunel incluse în LeaseSet [14] al nodului atacat sunt excluse; are în vedere și cota pe durata tunelului [13] .

Evaluarea vitezei acestei metode: va dura aproximativ 7 zile ale algoritmului pentru a căuta prin 5 mii de noduri ale listei preliminare [13] .

Atacul Sybil

Un singur atacator este suficient pentru a efectua un „atac Sybil” și necesită o cantitate mică de resurse. Această metodă oferă posibilitatea de a prelua controlul asupra mai multor noduri de inundare într-o anumită zonă a spațiului de taste . Deoarece un atacator nu poate lansa noduri compromise în rețea suficient de repede (de exemplu, folosind atacuri de excludere), această metodă diferă de altele prin faptul că nu preia controlul asupra unui anumit nod (fără a fi proprietarul acestuia). În acest caz, atacatorul poate genera un număr mare de ID-uri de noduri la nivel local și apoi le poate selecta pe cele mai potrivite pentru a le utiliza (cele care sunt mai apropiate decât orice nod sănătos din baza de date) [12] .

Pentru ca acest atac să aducă rezultate, este nevoie de ceva timp, deoarece atunci când un nou nod se conectează la rețea, durează aproximativ o oră pentru ca acest nod să proceseze informații despre alte noduri de rețea [12] .

Acest atac poate fi folosit, de exemplu, pentru a bloca accesul la nodurile rețelei la anumite informații (de exemplu, o cheie care indică un nod cu un anumit serviciu). Prin compromiterea celor mai apropiați vecini ai unui anumit nod, este posibil să ne asigurăm că la accesarea acestui nod pentru adresa unui serviciu de rețea, se returnează din timp o interogare despre incertitudinea serviciului ( orig., necunoașterea resursei) [12] .

Principalele aplicații disponibile pentru utilizare în rețeaua I2P

Mai jos este o listă [15] .

Vezi și

Note

  1. https://staas.home.xs4all.nl/t/swtr/documents/wt2015_i2p.pdf
  2. Proiectul i2p Open Source pe Open Hub: Pagina de limbi - 2006.
  3. zzz https://geti2p.net/en/blog/post/2022/8/22/1.9.0-Release-2022 .
  4. Revista Chip 11/2013, p.53
  5. Anonimitatea pe Internet // ComputerPress  : revistă. - 2010. - Nr. 9 .
  6. ↑ 1 2 3 4 5 6 7 8 Denis Kolisnichenko. Anonimitate și securitate pe Internet: de la „ceainic” la utilizator. - BHV-Petersburg, 2011. - S. 44, 46, 47. - 240 p. - ISBN 978-5-9775-0363-1 .
  7. Jon Snow. Găzduire anonimă prin I2P: Sfaturi practice pentru utilizarea Cryptonetului . Xakep.ru (7 iulie 2011). Data accesului: 12 decembrie 2014. Arhivat din original pe 8 noiembrie 2014.
  8. ↑ 1 2 Juan Pablo Timpanaro, Isabelle Chrisment, Olivier Festor. Monitorizarea rețelei I2P  // INRIA Nancy-Grand Est. - Universitatea Henri Poincar'e, Franţa, 2011. - P. 5-7 . Arhivat din original pe 13 decembrie 2014.
  9. Adrian Crenshaw. Darknets și servere ascunse: identificarea adevăratei identități IP/rețea a gazdelor de servicii I2P // În Proceedings of Black Hat 2011. - Washington, DC, 2011.
  10. Lars Schimmer. Profilare și selecție peer în rețeaua anonimă I2P. — 2011.
  11. DeI Abou-Tair, L. Pimenidis, J. Schomburg, B. Westermann. Inspecția utilizării rețelelor de anonimat. — Universitatea Tehnică din Dresda. - 2009. - 76 p. — ISBN ISSN 1430-211X.
  12. ↑ 1 2 3 4 5 6 Christoph Egger, Johannes Schlumberger, Christopher Kruegel, Giovanni Vigna. 3.2 Atacul Sybil; 3.3 Atacul Eclipse // Atacuri practice împotriva rețelei I2P . — Al 16-lea Simpozion internațional privind cercetarea în atacuri, intruziuni și apărări (RAID 2013), 2013-10. - P. 8-9. Arhivat pe 26 decembrie 2014 la Wayback Machine
  13. ↑ 1 2 3 4 5 Jon Snow. Dezvăluirea secretelor rețelei I2P . Xakep.ru (4 septembrie 2014). Data accesului: 8 decembrie 2014. Arhivat din original pe 11 decembrie 2014.
  14. Juan Pablo Timpanaro, Isabelle Chrisment, Olivier Festor. Caracterizarea utilizării I2P // Raport de cercetare RR-7844. — INRIA Nancy-Grand Est, Franța: Universitatea Henri Poincaré, 2011.
  15. Andrey Komarov ([email protected]). Dincolo de invizibilitate: noi metode pentru a salva Ingonito pe Internet  // Editura LLC „Game Land” : revistă. - 2008. - Nr. 120 . Arhivat din original pe 5 iunie 2015.
  16. XD este un client torrent de sine stătător pentru rețeaua i2p , Web Of Dark - suntem purtătorul de cuvânt al Darknetului  (6 septembrie 2017). Arhivat din original pe 27 februarie 2018. Preluat la 27 februarie 2018.

Link -uri