Proiectul Internet Invizibil (I2P)

I2P este o rețea anonimă, care expune un strat simplu pe care aplicațiile îl pot sa folosesc pentru a-ți trimite mesaje în mod anonim și sigur. Rețeaua în sine este bazata strict pe mesaje (a la IP), dar există o bibliotecă disponibilă pentru a permite o comunicare în flux fiabilă deasupra acesteia (a la TCP). Toate comunicările sunt criptate de la capăt la capăt (în total sunt patru straturi de criptare folosită la trimiterea unui mesaj) și chiar punctele finale („destinații”) sunt identificatori criptografici (în esență o pereche de chei publice).

Cum funcționează?

Pentru a anonimiza mesajele trimise, fiecare aplicație client are „routerul” I2P. construiți câteva „tunele” de intrare și de ieșire - secvență de colegi care transmit mesaje într-o direcție (către și dinspre client, respectiv). La rândul său, când un client dorește să trimită un mesaj altui client, clientul transmite acel mesaj din unul dintre tunelurile sale de ieșire care vizează unul dintre tunelurile de intrare ale altui client, ajungând în cele din urmă la destinație. Fiecare participant la rețea alege lungimea acestor tuneluri și, în acest sens, face un schimb între anonimat, latență și randament în funcție de acestea nevoile proprii. Rezultatul este că numărul de colegi care se raportează la fiecare capăt la sfârșit mesajul este minimul absolut necesar pentru a îndeplini atât expeditorul, cât și mesajul modelul de amenințare al receptorului.

Prima dată când un client dorește să contacteze un alt client, face o interogare împotriva rețelei complet distribuite „ baza de date "- o structură personalizată tabel de hash distribuit (DHT) bazat pe Algoritmul Kademlia. Acest lucru este făcut pentru a găsi în mod eficient tunelurile de intrare ale celuilalt client, dar mesaje ulterioare între ele, de obicei, include aceste date, astfel încât nu mai există căutări suplimentare în bazele de date din rețea sunt necesare.

Mai multe detalii despre modul în care funcționează I2P sunt disponibile.

Ce poți face cu asta?

În cadrul rețelei I2P, aplicațiile nu sunt restricționate în modul în care pot comunica - cei care utilizează de obicei UDP pot folosi I2P funcționalitatea de bază, iar cele care utilizează în mod obișnuit TCP pot utiliza streamingul asemănător TCP bibliotecă. Avem o aplicație de punte TCP / I2P generică ("I2PTunnel") care permite oamenilor să transmită fluxuri TCP în rețeaua I2P precum și pentru a primi fluxuri din rețea și le transmite către o anumită adresă TCP / IP.

I2PTunnel este folosit în prezent pentru a permite oamenilor să ruleze propriul lor site anonim ("eepsite") rulând un server web normal și indicând un "server" I2PTunnel la ea, care oamenii pot accesa anonim prin I2P cu un browser web normal rulând un proxy HTTP I2PTunnel ("eepproxy"). În plus, folosim la fel tehnica de a rula o rețea IRC anonimă (unde este găzduit serverul IRC anonim, iar clienții IRC standard folosesc un I2PTunnel pentru a-l contacta). Acolo sunt și alte eforturi de dezvoltare a aplicațiilor, cum ar fi unul la construirea o aplicației optimizată de transfer de fișiere (a la BitTorrent), a magazin de date distribuit (a la Freenet / MNet) și un sistem de blogging (un sistem complet) distribuit LiveJournal), dar acestea sunt nu este încă pregătite pentru utilizare

I2P nu este în mod inerent o rețea „outproxy” - clientul carui îl trimiteți un mesaj este identificatorul criptografic, nu o adresă IP, deci mesajul trebuie fii adresat cuiva care rulează I2P. Cu toate acestea, este posibil pentru acel client pentru a fi un outproxy, permițându-vă să folosiți anonim conexiune cu internetul. Pentru a demonstra acest lucru, "eepproxy" va accepta normal non-I2P Adrese URL (de exemplu, "http://www.i2p.net") și le trimiteți către o anumită destinație care rulează un proxy HTTP squid, permițând simplă navigare anonimă pe web normală. Outproxies simple ca acestea sunt nu este viabil pe termen lung din mai multe motive (inclusiv costul rulării una precum și problemele de anonimat și securitate pe care le introduc), dar în anumite circumstanțe tehnica ar putea fi adecvată.

Echipa de dezvoltare I2P este un grup deschis, binevenit tuturor care sunt interesați să se implice și tot codul este open source. SDK I2P de bază și implementarea curentă a routerului se face în Java (funcționează în prezent cu ambele sun and kaffe, gcj support planificat pentru mai târziu) și există un API simplă bazată pe socket pentru accesarea rețelei din alte limbi (cu o bibliotecă C disponibilă, și Python și Perl în) dezvoltare). Rețeaua este dezvoltată activ și nu a ajuns încă versiunea 1.0, dar foaia de parcurs actuală descrie programul nostru