# I2P
Görünmez İnternet Projesi (I2P), sansüre dayanıklı, eşler arası iletişime olanak tanıyan anonim bir ağ katmanıdır (karma ağ olarak uygulanır). Anonim bağlantılar, kullanıcının trafiğinin şifrelenmesi (uçtan uca şifreleme kullanılarak) ve dünyanın dört bir yanına dağıtılmış yaklaşık 55.000 bilgisayardan oluşan, gönüllüler tarafından işletilen bir ağ üzerinden gönderilerek elde edilir. Trafiğin geçebileceği çok sayıda olası yol göz önüne alındığında, üçüncü bir tarafın tam bağlantıyı izlemesi pek olası değildir. Bu katmanı uygulayan yazılıma "I2P yönlendirici", I2P çalıştıran bilgisayara ise "I2P düğümü" adı verilir. I2P ücretsiz ve açık kaynaklıdır ve birden fazla lisans altında yayınlanmaktadır.


## Teknik tasarım.
I2P, 2003 yılında Freenet'in bir çatalı olarak başladığından beri beta yazılımdır. Yazılımın geliştiricileri, beta sürümde hata oluşma ihtimalinin yüksek olduğunu ve hakem incelemesinin bugüne kadar yetersiz kaldığını vurguluyor. Bununla birlikte, kodun artık oldukça istikrarlı ve iyi geliştirilmiş olduğuna ve daha fazla görünürlüğün I2P'nin geliştirilmesine yardımcı olabileceğine inanıyorlar.
Ağ, IP gibi kesinlikle mesaj tabanlıdır, ancak bunun üzerinde güvenilir akış iletişimine izin veren bir kitaplık mevcuttur (Engellemeyen IO tabanlı TCP'ye benzer, ancak sürüm 0.6'dan itibaren yeni bir Güvenli Yarı-güvenilir UDP aktarımı mevcuttur) kullanılmış). Tüm iletişim, sarımsak yönlendirme yoluyla uçtan uca şifrelenir (bir mesaj gönderilirken toplamda dört katman şifreleme kullanılır) ve hatta uç noktalar ("hedefler") bile kriptografik tanımlayıcılardır (esasen bir çift genel anahtar), böylece ne mesaj gönderenlerin ne de alıcıların IP adreslerini diğer tarafa veya üçüncü taraf gözlemcilere açıklamasına gerek kalmaz.
Pek çok geliştirici Invisible IRC Project (IIP) ve Freenet topluluklarının bir parçası olmasına rağmen tasarımları ve konseptleri arasında önemli farklılıklar bulunmaktadır. IIP, anonim bir merkezi IRC sunucusuydu. Freenet, sansüre dayanıklı, dağıtılmış bir veri deposudur. I2P, herhangi bir geleneksel internet hizmetini (örn. Usenet, e-posta, IRC, dosya paylaşımı, Web barındırma ve HTTP veya Telnet) ve ayrıca daha geleneksel dağıtılmış uygulamaları (örn. veri deposu, Squid veya DNS kullanan bir web proxy ağı).
Birçok I2P geliştiricisi yalnızca takma adlarla tanınır. Önceki ana geliştirici jrandom şu anda ara vermiş olsa da zzz, killyourtv ve Complication gibi diğerleri geliştirme çabalarına liderlik etmeye devam etti ve çok sayıda katkıda bulunan kişi tarafından desteklendi.
I2P, 2048bit ElGamal/AES256/SHA256+Oturum Etiketleri şifrelemesini ve Ed25519 EdDSA/ECDSA imzalarını kullanır.


### Sürümler.
I2P her altı ila sekiz haftada bir kararlı sürüme sahiptir. Güncellemeler I2P torrentleri aracılığıyla dağıtılır ve sürüm yöneticisi (genellikle zzz veya str4d) tarafından imzalanır.


## Finansman.
Web sitesinde "I2P finansmanının tamamen bağışlardan sağlandığı" belirtiliyor. Projenin yöneticileri ve yöneticileri "ana projenin bağış kabul etmediğini" söyledi. Bunlar bunun yerine ikincil uygulamalara gitmeli veya I2P üzerinde çalışmak üzere başkalarını işe almaya harcanmalıdır. I2P'ye katılım desteği Açık Teknoloji Fonu'ndan geldi. Tor Projesi'nin aksine, I2P "bir çıkış düğümleri ağını destekleyecek mali veya yasal altyapıya sahip değildir". Kullanıcıyı I2P ağına katılmak için ilk eş kümesine bağlayan bir tür önyükleme düğümü olan yeniden tohumlama sunucuları, gönüllüler tarafından çalıştırılmalıdır.


## Yazılım.
I2P anonimleştirici bir ağ katmanı olduğundan, diğer yazılımların onu anonim iletişim için kullanabilmesi için tasarlanmıştır. Bu nedenle, şu anda I2P için mevcut veya geliştirilmekte olan çeşitli araçlar bulunmaktadır.
I2P yönlendiricisi, bir web tarayıcısı aracılığıyla erişilen bir web ön ucu olan yönlendirici konsolu aracılığıyla kontrol edilir.


### Genel ağ oluşturma.
  - I2PTunnel, localhost üzerinde önceden belirlenmiş bağlantı noktalarına bağlanarak erişilebilen "tüneller" kurarak isteğe bağlı TCP/IP uygulamalarının I2P üzerinden iletişim kurmasına olanak tanıyan, I2P'ye gömülü bir uygulamadır.
  - SAM (Basit Anonim Mesajlaşma), herhangi bir programlama dilinde yazılmış bir istemci uygulamasının, I2P yönlendiricisine soket tabanlı bir arayüz kullanarak I2P üzerinden iletişim kurmasına olanak tanıyan bir protokoldür.
  - BOB (Temel Açık Köprü), "SAM"a benzer, yönlendirici protokolüne yönelik daha az karmaşık bir uygulamadır
  - Orchid Outproxy Tor eklentisi


### Sohbet.
  - İnternet Aktarmalı Sohbet için oluşturulan herhangi bir IRC istemcisi, I2P IRC sunucusuna (localhost üzerinde) bağlandıktan sonra çalışabilir. I2P, kullanıcının anonimliğini kaldırabilecek belirli komutların filtrelendiği, bu kullanıma özel tüneller oluşturma seçeneğine sahiptir.


### Dosya paylaşımı.
  - Birkaç program, I2P ağı içinde kullanım için BitTorrent işlevselliği sağlar. Kullanıcılar I2P olmayan torrentlere veya eşlere I2P içinden bağlanamaz veya I2P torrentlerine veya eşlere I2P dışından bağlanamazlar. I2P kurulum paketine dahil olan I2PSnark, Snark adlı BitTorrent istemcisinin bir bağlantı noktasıdır. Eskiden Azureus olarak bilinen Vuze, I2P için bir eklenti içeren ve bu ağ üzerinden anonim kaynaşmaya izin veren bir BitTorrent istemcisidir. Bu eklenti henüz geliştirme aşamasındadır ancak oldukça kararlıdır. I2P-BT, I2P için dosya paylaşımı için anonim kaynaşmaya izin veren bir BitTorrent istemcisidir. Bu istemci, MS Windows ve Unix'in çoğu lehçesinde GUI ve komut satırı ortamında çalışan orijinal BitTorrent 3.4.2 programının değiştirilmiş bir sürümüdür. I2P'de 'duck' olarak bilinen kişi tarafından 'smeghead' işbirliğiyle geliştirildi. Artık aktif olarak geliştirilmiyor  ancak I2P-BT istemcisini BitTorrent 4.0 sürümüyle aynı düzeye yükseltmek için küçük bir çaba var. I2PRufus, Rufus BitTorrent istemcisinin bir I2P bağlantı noktasıdır. Robert (P2P Yazılımı), en aktif olarak bakımı yapılan I2PRufus çatalıdır. XD, Go'da yazılmış bağımsız bir BitTorrent istemcisidir. BiglyBT, indirme/tohumlama için i2p kullanımına da izin veren Vuze tabanlı bir bittorrent istemcisidir.
  - I2P ağı için iMule ve Nachtblitz olmak üzere iki Kad ağ istemcisi mevcuttur. iMule (görünmez Katır), I2P ağı için bir eMule bağlantı noktasıdır. iMule 2013'ten beri geliştirilmedi. iMule anonim dosya paylaşımı için tasarlanmıştır. Diğer eDonkey istemcilerinin aksine iMule, Kademlia'yı yalnızca I2P ağı üzerinden bağlanmak için kullanır, dolayısıyla herhangi bir sunucuya gerek yoktur. Nachtblitz, .NET Framework üzerine kurulu özel bir istemcidir. En son sürüm 23 Mart 2016'da yayınlanan 1.4.27'dir. Nachtblitz, yazılımın yayın tarihinden bir yıl sonra devre dışı bırakılmasını sağlayan bir zaman kilidi içerir.
  - I2Phex, popüler Gnutella istemcisi Phex'in I2P'ye bağlantı noktasıdır. Kararlı ve oldukça işlevseldir.
  - Tahoe-LAFS, I2P'ye taşındı. Bu, dosyaların Tahoe-LAFS ızgaralarında anonim olarak saklanmasına olanak tanır.
  - MuWire, I2P ağı üzerinde çalışan LimeWire Gnutella istemcisinden ilham alan bir dosya paylaşım programıdır.


#### Clearnet'e geçiş.
Şu anda Vuze ve BiglyBT, clearnet (I2P üzerinden olmayan bağlantılar) torrentlerini I2P'de kullanılabilir hale getiren torrent istemcileridir ve bunun tersi de geçerlidir. İstemci ayarlarına bağlı olarak, internetten gelen torrentler I2P'de (I2P'nin DHT ağına yapılan duyurular yoluyla) ve I2P'den gelen torrentler internete sunulabilir. Bu nedenle, daha önce yalnızca I2P'de yayınlanan torrentler tüm İnternet'in kullanımına sunulabilir ve I2P kullanıcıları, I2P'nin anonimliğini korurken çoğu zaman İnternet'ten popüler içerikleri indirebilir. Ağustos 2022 itibarıyla varsayılan outproxy, StormyCloud Inc. tarafından çalıştırılan çıkış.stormycloud.i2p'dir.


### E-posta.
  - I2P-Bote, güvenliğe güçlü bir şekilde odaklanan ücretsiz, tamamen merkezi olmayan ve dağıtılmış bir anonim e-posta sistemidir. Birden fazla kimliği destekler ve e-posta meta verilerini açığa çıkarmaz. 2015 yılı itibarıyla hala beta yazılım olarak kabul edilmektedir. I2P-Bote'a I2P web konsolu arayüzü aracılığıyla veya standart e-posta protokolleri (örn. IMAP/SMTP) kullanılarak erişilebilir. Tüm bote-postalar şeffaf bir şekilde uçtan uca şifrelenir ve gönderenin özel anahtarıyla imzalanır, böylece PGP veya diğer e-posta şifreleme yazılımlarına olan ihtiyaç ortadan kalkar. I2P-Bote, değişken uzunluklu gecikmelere sahip posta aktarımlarının kullanımına izin vererek ek anonimlik sunar. Merkezi olmayan bir sistem olduğundan, farklı e-posta kimliklerini birbiriyle iletişim kurarak (örn. profil oluşturma) ilişkilendirebilecek merkezi bir e-posta sunucusu yoktur. Postaları ileten düğümler bile göndereni bilmez ve gönderici ve alıcı dışında yalnızca yüksek gecikmeli posta yolunun sonu ve depolayan düğümler kime (hangi I2P-Bote adresi – kullanıcının IP adresi hala I2P tarafından gizlenmiştir) posta hedeflenmiştir. Orijinal gönderen, e-postanın alıcıya ulaşmasından çok önce çevrimdışı olmuş olabilir. Hesap kaydına gerek yok, kullanmak için tek yapmanız gereken yeni bir kimlik oluşturmak. I2P-Bote bir I2P eklentisi olarak kurulabilir.
  - I2P ayrıca Postman adlı bir kişi tarafından işletilen ücretsiz bir takma ad içeren e-posta hizmetine de sahiptir. Susimail, öncelikle Postman'ın posta sunucularıyla kullanılması amaçlanan web tabanlı bir e-posta istemcisidir ve güvenlik ve anonimlik göz önünde bulundurularak tasarlanmıştır. Susimail, SMTP sunucusuyla iletişim kurarken kullanıcının ana bilgisayar adının sızdırılması gibi, bu sunucuların doğrudan geleneksel e-posta istemcileri kullanılarak kullanılmasındaki gizlilik endişelerini gidermek için oluşturuldu. Şu anda varsayılan I2P dağıtımına dahil edilmiştir ve I2P yönlendirici konsolu web arayüzü aracılığıyla erişilebilir. Mail.i2p, hem I2P e-posta kullanıcılarıyla hem de genel internet e-posta kullanıcılarıyla iletişim kurabilir.
  - Bitmessage.ch I2P üzerinden kullanılabilir.


### Anlık mesajlaşma.
  - I2P-Messenger, I2P için basit, Qt tabanlı, sunucusuz, uçtan uca şifrelenmiş bir anlık mesajlaşma aracıdır. Hiçbir sunucu kullanıcının konuşmalarını günlüğe kaydedemez. Hiçbir ISP, kullanıcının kiminle, ne zaman veya ne kadar süreyle sohbet ettiğini kaydedemez. Sunucusuz olduğundan I2P'nin uçtan uca şifrelemesinden faydalanarak iki taraf arasındaki herhangi bir düğümün düz metne erişimini engelleyebilir. I2P-Messenger, kullanıcının tanımadığı kişilerle tamamen anonim anlık iletişim için veya alternatif olarak arkadaşlarıyla, aile üyeleriyle veya meslektaşlarıyla güvenli ve izlenemez bir şekilde iletişim kurmak için kullanılabilir. Mesajlaşmanın yanı sıra dosya aktarımı da desteklenmektedir.
  - I2P-Talk, I2P-Messenger ile uyumlu olmayan ancak aynı güvenlik özelliklerine sahip başka bir basit anlık mesajlaşma programıdır.


### Yayınlama.
  - Syndie, bloglar, haber grupları, forumlar ve küçük medya eklentileri için uygun bir içerik dağıtım uygulamasıdır. Syndie ağ dayanıklılığı için tasarlanmıştır. I2P, Tor ağı (Syndie, Socks proxy'lerini desteklemez, Tor erişimi için geçici çözüm gereklidir), Freenet ve normal internet bağlantılarını destekler. Sunucu bağlantıları kesintilidir ve daha yüksek gecikmeli iletişimleri destekler. Bilinen herhangi bir sayıda sunucuya bağlantı yapılabilir. İçerik, bir Dedikodu protokolü kullanılarak verimli bir şekilde yayılır.
  - Aktie, anonim bir dosya paylaşımı ve dağıtılmış Web güven forumları sistemidir. Aktie, dahili yönlendiricisi ile I2P'ye bağlanabilir veya harici bir yönlendirici kullanabilir. Spam ile mücadele etmek amacıyla yayınlanan her öğe için "karma ödemeler" (CPU çalışmasının kanıtı) hesaplanır.


### Yönlendiriciler.
  - I2PBerry, ağ trafiğini I2P ağı üzerinden şifrelemek ve yönlendirmek için yönlendirici olarak kullanılabilen bir Linux dağıtımıdır.
  - i2pd, C++ ile yazılmış, e-posta, torrent ve şişkinlik olarak kabul edilebilecek diğer aşırı uygulamaları ortadan kaldıran hafif bir I2P yönlendiricisidir.
  - Kovri, C++ ile yazılmış bir I2P yönlendiricisidir. Geliştirici anlaşmazlıkları sonrasında i2pd'den çatallandı. Kovri'nin birincil amacı, I2P üzerinden yeni işlem bilgileri göndermek için kripto para birimi Monero ile entegre olmak ve böylece bir işlem talebinin kaynağının hangi düğüm olduğunu bulmayı çok daha zorlaştırmaktır. Kovri yönlendiriciyi kullananlar, mevcut Java yönlendiricinin yaptığı gibi I2P ağına katkıda bulunan tam I2P yönlendiricileri çalıştıracak. Bu projenin hem Monero hem de I2P topluluklarına fayda sağlaması bekleniyor çünkü Monero'da daha fazla gizliliğe izin verecek ve I2P ağındaki düğüm sayısını artıracak.


### Gizlilik Çözümleri projesi.
I2P yazılımını geliştiren ve sürdüren yeni bir kuruluş olan Gizlilik Çözümleri projesi, I2P protokollerine ve teknolojisine dayalı olarak kullanıcılar için gizliliği, güvenliği ve anonimliği geliştirmek üzere tasarlanmış birkaç yeni geliştirme çalışması başlattı.
Bu çabalar şunları içerir:
  - Abscond tarayıcı paketi.
  - i2pd, I2P'nin alternatif bir uygulamasıdır ve Java yerine C++ ile yazılmıştır.
  - "BigBrother" I2P ağ izleme projesi.
i2pd ve Abscond projesinin kod deposu ve indirme bölümleri herkesin incelemesine ve indirmesine açıktır. Ocak 2015'ten itibaren geçerli olmak üzere i2pd, PurpleI2P kapsamında faaliyet göstermektedir.


### Android.
  - Android için bir I2P Router uygulamasının sürüm yapıları, Google Play mağazasında Gizlilik Çözümleri Projesi'nin Google Play hesabı altında veya geliştiriciler tarafından barındırılan bir F-Droid deposunda bulunabilir.
  - Nightweb, blog yazılarını, fotoğrafları ve diğer benzer içerikleri paylaşmak için I2P ve Bittorrent'i kullanan bir Android uygulamasıdır. Ayrıca masaüstü uygulaması olarak da çalıştırılabilir. Artık geliştirme aşamasında değil.


### Kripto para.
I2P'yi destekleyen bazı kripto para birimleri aşağıda listelenmiştir.
  - Bitcoin
  - Monero
  - Verge


## Terminoloji.
### Eepsite.
Eepsiteler I2P ağı içerisinde anonim olarak barındırılan web siteleridir. Eepsite adları ugha.i2p veya forum.i2p gibi .i2p ile biter. EepProxy, bu siteleri I2P program dizininde bulunan hosts.txt dosyasında saklanan şifreleme tanımlayıcı anahtarlar aracılığıyla bulabilir. Genellikle bu eepsitelere erişmek için I2P gerekir.


### .i2p.
'I2p', yalnızca I2P yer paylaşımlı ağ kapsamında geçerli olan sözde üst düzey bir alandır. .i2p adları, tarayıcılar tarafından, adları bir I2P eş anahtarına çözümleyecek ve tarayıcı için şeffaf kalarak I2P ağı üzerinden veri aktarımlarını gerçekleştirecek olan EepProxy'ye istekler gönderilerek çözümlenir.


### EepProxy.
EepProxy programı, tarayıcı ile herhangi bir eepsite arasındaki tüm iletişimi yönetir. Herhangi bir web tarayıcısı tarafından kullanılabilecek bir proxy sunucusu olarak işlev görür.


### Eşler, I2P düğümleri.
Ağ içerisinde kullanıcının makinesine bağlı I2P kullanan diğer makineler. Ağdaki her makine, şifrelenmiş paketlerin yönlendirilmesini ve iletilmesini paylaşır.


### Tüneller.
Her on dakikada bir kullanıcının makinesi ile başka bir eş arasında bağlantı kurulur. Kullanıcıya gelen ve kullanıcıdan gelen veriler, diğer eşlerin verileriyle birlikte (kullanıcının makinesi aracılığıyla yönlendirilir), bu tünellerden geçer ve nihai hedeflerine iletilir (daha fazla atlama içerebilir).


### netDb.
I2P düğümleri ve I2P eepsiteleri hakkında bilgi tutan Kademlia algoritmasını temel alan dağıtılmış karma tablo (DHT) veritabanı. Bu veritabanı "taşkın doldurma yönlendiricileri" olarak bilinen yönlendiriciler arasında bölünmüştür. Bir kullanıcı bir eepsite ile nasıl iletişim kuracağını veya daha fazla eşin nerede olduğunu bilmek istediğinde veritabanını sorgular.


## Güvenlik açıkları.
Ağda barındırılan web sitelerine karşı hizmet reddi saldırıları mümkündür, ancak site operatörü, sitesini bu tür saldırıların belirli sürümlerine karşı bir dereceye kadar koruyabilir.
2014 yılında I2P'ye yönelik bir sıfır gün güvenlik açığı keşfedildi ve en az 30.000 kullanıcının anonimliğinin kaldırılması için bu güvenlik açığından yararlanıldı. Buna Tails işletim sisteminin kullanıcıları da dahildi. Bu güvenlik açığı daha sonra düzeltildi.
Adli araştırmacıların yararlı kanıtlar toplamak için I2P yazılımındaki güvenlik açıklarından nasıl yararlanabileceğini inceleyen 2017 tarihli bir çalışma, I2P yönlendirici yazılımı çalıştıran ele geçirilen bir makinenin kolluk kuvvetleri için yararlı olabilecek şifrelenmemiş yerel verileri barındırabileceğini gösterdi. Daha sonra ele geçirilen bir makinenin kullanıcısının ilgilendiği eepsitelerin kayıtları da çıkarılabilir. Çalışma, yöneticisi tarafından terk edilmiş gibi görünen ve çalışmanın kolluk kuvvetleri tarafından ele geçirilmesi için potansiyel bir hedef olarak tanımladığı "güvenilir" bir I2P alan adı kayıt kuruluşunu ("NO.i2p") belirledi. Alternatif olarak, I2P topluluğunun sahte bir yeni sunucuya geçmesi için sosyal mühendislik yapmak amacıyla NO.i2p sunucusunun arızalanmasını beklemeyi önerdi. Çalışmanın önerdiği bir diğer öneri ise hedef web sitesinin ayna versiyonunun aynı alan adı altında kaydedilmesiydi.


## I2PCon.
15 Ağustos 2015'ten 16 Ağustos 2015'e kadar Toronto, Ontario'da bir I2P kongresi düzenlendi. Konferansa yerel bir hacker alanı olan Hacklab ev sahipliği yaptı. Konferansta I2P geliştiricileri ve güvenlik araştırmacılarının sunumları yer aldı.


### Yazılım.
  - Freenet
  - Mixnet
  - Retroshare
  - Tor
  - Tribler
  - ZeroNet