The Invisible Internet Project (I2P)

I2p adalah jaringan anonim, mengekspos lapisan sederhana yang dapat digunakan oleh aplikasi secara anonim dan aman untuk mengirim pesan ke satu sama lain. Jaringannya sendiri adalah benar-benar berbasis pesan (seperti IP), tetapi ada sebuah library tersedia untuk memungkinkan komunikasi streaming yang handal di atasnya (seperti TCP). Semua komunikasi dienkripsi end-to-end (secara total ada empat lapisan enkripsi yang digunakan bila mengirim pesan), dan bahkan titik akhir ("destinasi") adalah pengidentifikasi kriptografi (pada dasarnya sepasang public key).

Bagaiman cara kerjanya?

Untuk menanonimkan pesan yang dikirim, masing-masing client application telah membangun beberapa inbound dan outbound "tunnel" - sebuah urutan peer yang saling mengirimkan pesan dalam satu arah (ke dan dari klien masing-masing). Pada gilirannya, ketika client ingin mengirim pesan ke client lain, client mengirimkan pesan salah satu tunnel outbound. menargetan salah satu tunnel masuk milik client lain, akhirnya mencapai tujuan. Setiap peserta dalam jaringan memilih panjang tunnel ini, dan dengan berbuat demikian, membuat tradeoff antara anonimitas, latency dan throughput yang sesuai dengan kebutuhan mereka sendiri. Hasilnya adalah bahwa jumlah peer yang menyampaikan pesan hingga akhir minimum mutlak diperlukan untuk memenuhi model ancaman pengirim dan penerima.

Saat pertama kali client ingin menghubungi client lain, mereka membuat sebuah query terhadap "jaringan database" yang sepenuhnya terdistribusi - struktur terkustomisasi distributed has table (DHT) didasarkan dari Kademlia algorithm. Hal ini dilakukan untuk secara efisien menemukan inbound tunnel milik client lain, tetapi pesan-pesan berikutnya antara mereka biasanya mencakup data sehingga jaringan database pencarian tidak lebih lanjut diperlukan.

Rincian lebih lanjut tentang bagaimana I2P bekerja juga tersedia.

Apa yang dapat anda lakukan dengan I2P?

Dalam jaringan I2P, aplikasi tidak terbatas dalam bagaimana mereka dapat berkomunikasi - mereka yang biasanya menggunakan UDP dapat menggunakan dasar fungsi I2P, dan mereka yang biasanya menggunakan TCP dapat menggunakan library untuk TCP-like streaming. Kami memiliki sebuah aplikasi jembatan TCP I2P generik ("I2PTunnel") yang memungkinkan orang untuk meneruskan TCP stream ke jaringan I2P serta menerima stream dari jaringan dan meneruskannya ke arah alamat TCP/IP tertentu.

I2PTunnel saat ini digunakan untuk membuat orang-orang menjalankan situs mereka sendiri secara anonim ("eepsite") dengan menjalankan normal webserver dan menunjuk I2PTunnel 'server', yang orang dapat mengakses secara anonim melalui I2P dengan browser web normal dengan menjalankan proxy I2PTunnel HTTP ("eepproxy"). Selain itu, kami menggunakan teknik yang sama untuk menjalankan jaringan IRC anonim (di mana server IRC dihosting secara anonim, dan klien IRC standar menggunakan I2PTunnel untuk dihubungi). Ada upaya pengembangan aplikasi lain, seperti membangun sebuah optimalisasi aplikasi transfer file swarm (seperti BitTorrent), Penyimpanan data terdistribusi (seperti Freenet / MNet), dan sistem blogging (sepenuhnya terdistribusi LiveJournal), tetapi mereka belum siap untuk digunakan.

I2p bukan jaringan "outproxy" - klien kepada anda mengirim pesan adalah pengidentifikasi kriptografi, bukan alamat IP, sehingga pesan harus ditujukan kepada seseorang yang menjalankan I2P. Namun, memungkinkan untuk client yang menjadi outproxy, untuk secara anonim membuat anda penggunaan koneksi Internet mereka. Contohnya, "eepproxy" akan menerima URL normal non I2p (misalnya "http://www.i2p.net") dan meneruskannya ke tempat tujuan spesifik di mana sedang menjalankan proxy HTTP squid, memungkinkan browsing web normal secara simpel dan anonim. Outproxies Sederhana seperti itu tidak layak dalam jangka panjang karena beberapa alasan (termasuk biaya operasional serta isu-isu anonimitas dan masalah keamanan), tetapi dalam keadaan tertentu teknik ini dapat digunakan.

Pengembangan I2P tim adalah grup terbuka, menerima semua orang yang tertarik untuk terlibat, dan semua kode adalah open source. Core I2P SDK dan implementasi router saat ini dilakukan dengan menggunakan Java (saat ini bekerja dengan Sun dan Kaffe, dukungan gcj direncanakan untuk nanti), dan ada API berbasis soket sederhana untuk mengakses jaringan dari bahasa lain (C library sudah tersedia, Python dan Perl sedang dalam pengembangan). Jaringan secara aktif sedang dikembangkan dan belum mencapai versi 1,0, tetapi saat ini roadmap menjelaskan jadwal kami.