Bu sayfa son olarak 2019 Ağustos tarihinde güncellendi ve 0.9.42 yöneltici sürümü için geçerli.

Özet

I2P Ağ Veritabanı (netDB), özel bir dağıtılmış veritabanıdır ve yalnızca iki tür veri içerir: Yöneltici iletişim bilgileri (Yöneltici Bilgileri (RouterInfo)) ile hedef iletişim bilgileri (Kiralama Kümeleri (LeaseSets)). Her veri parçası uygun tarafça imzalanır ve onu kullanan veya saklayan herkes tarafından doğrulanır. Ek olarak, verilerin içinde canlılık bilgileri bulunur. Böylece ilgisiz kayıtlar silinerek ve daha yeni kayıtlar eskilerin yerine geçirilerek belirli saldırı sınıflarına karşı koruma sağlanır.

Ağ Veritabanı (netDB), "otomatik doldurma" adı verilen basit bir yöntemle dağıtılır. Dağıtılmış veritabanını "otomatik doldurma yönelticileri" olarak adlandırılan tüm yönelticilerin bir alt kümesi korur.

RouterInfo

"Bir I2P yönelticisi ile başka bir yöneltici iletişim kurmak istediğinde, karşılıklı olarak bazı önemli veri parçalarını bilmeleri gerekir. Bunların tümü yöneltici tarafından anahtar olarak yöneltici kimliğinin SHA-256 değeri ile dağıtılan Yöneltici Bilgileri (RouterInfo) adlı bir yapı içine paketlenir ve imzalanır. Yapıda şunlar bulunur:

  • Yönelticinin kimliği (bir şifreleme anahtarı, bir imzalama anahtarı ve bir sertifika)
  • Ulaşılabilecek iletişim adresleri
  • Bunun ne zaman yayınlandığı
  • İsteğe bağlı metin seçenekleri
  • Kimliğin imzalama anahtarı tarafından yukarıdakiler ile oluşturulmuş imza

Beklenen Ayarlar

Şart olmamasına rağmen aşağıdaki metin seçeneklerinin var olması beklenir:

  • caps (Yetenek işaretleri - Otomatik doldurma katılımını, yaklaşık bant genişliğini ve algılanan erişilebilirliği belirtmek için kullanılır)
    • f: Otomatik doldurma
    • H: Gizli
    • K: 12 KBps paylaşılan bant genişliğinin altında
    • L: 12 - 48 KBps paylaşılan bant genişliği (varsayılan)
    • M: 48 - 64 KBps paylaşılan bant genişliği
    • N: 64 - 128 KBps paylaşılan bant genişliği
    • O: 128 - 256 KBps paylaşılan bant genişliği
    • P: 256 - 2000 KBps paylaşılan bant genişliği (as of release 0.9.20)
    • R: Erişilebilir
    • U: Erişilemez
    • X: 2000 KBps paylaşılan bant genişliğinin üstünde (as of release 0.9.20)
    "Shared bandwidth" == (share %) * min(in bw, out bw)
    For compatibility with older routers, a router may publish multiple bandwidth letters, for example "PO".
  • coreVersion (Çekirdek kitaplığı sürümü. Her zaman yöneltici sürümüyle aynıdır) (Never used, removed in release 0.9.24)
  • netId = 2 (Temel ağ uyumluluğu - Bir yöneltici farklı bir netId değerine sahip bir eşle iletişim kurmayı reddeder)
  • router.version (Daha yeni özellikler ve iletilerle uyumluluğu belirlemek için kullanılır)
  • stat_uptime = 90m (Yönelticilerin gerçek çalışma sürelerini yayınladığı ve yalnızca çalışma süresi 60 dakikadan fazla olan eşlere tünel istekleri gönderdiği eski bir şema ile uyumluluk için her zaman 90 dakika olarak gönderilir) (Unused since version 0.7.9, removed in release 0.9.24)

Bu değerler, diğer yönelticiler tarafından temel kararlar için kullanılır. Bu yönelticiye bağlanmalı mıyız? Bu yöneltici üzerinden bir tünel yöneltmeye çalışmalı mıyız? Özellikle bant genişliği yeteneği bayrağı, yalnızca yönelticinin tünelleri yöneltmek için en az eşiği karşılayıp karşılamadığını belirlemek için kullanılır. En az eşiğin üzerinde, duyurulan bant genişliği değeri, kullanıcı arayüzünde görüntüleme ve hata ayıklama ile ağ analizi dışında yönelticinin hiçbir yerinde kullanılmaz veya güvenilmez.

Valid NetID numbers:

UsageNetID Number
Reserved0
Reserved1
Current Network (default)2
Reserved Future Networks3 - 15
Forks and Test Networks16 - 254
Reserved255

Diğer Seçenekler

Ek metin seçeneklerinde, ağ başarımı analizi ve hata ayıklama için stats.i2p gibi siteler tarafından toplanan, yöneltici sağlığı hakkında az sayıda istatistik bulunur. Bu istatistikler, geliştiriciler için önemli olan tünel oluşturma başarı oranları gibi verileri sağlamak ve bu tür verilere olan gereksinimi bu verilerin ortaya çıkarılmasından kaynaklanabilecek yan etkilerle dengelemek için seçildi. Geçerli istatistikler şunlarla sınırlıdır:

  • Keşif tüneli oluşturma başarısı, reddetme ve zaman aşımı oranları
  • Katkıda bulunulan tünel sayısının 1 saatlik ortalaması

Otomatik doldurma yönelticileri ağ veritabanlarındaki kayıt sayısı hakkında ek veriler yayınlar.

Yayınlanan veriler yönelticinin kullanıcı arayüzünde görülebilir, ancak yöneltici içinde kullanılmaz veya güvenilmez. Ağ olgunlaştıkça, anonimliği iyileştirmek için yayınlanan istatistiklerin çoğunu kademeli olarak kaldırdık ve gelecekteki sürümlerde daha fazlasını kaldırmayı planlıyoruz.

Aile Ayarları

0.9.24 sürümüyle birlikte yönelticiler aynı varlık tarafından işletilen bir "ailenin" parçası olduklarını duyurabilir. Aynı ailedeki birden çok yöneltici tek bir tünelde kullanılmaz.

Aile ayarları şunlardır:

  • family (Aile adı)
  • family.key The signature type code of the family's Signing Public Key (in ASCII digits) concatenated with ':' concatenated with the Signing Public Key in base 64
  • family.sig The signature of ((family name in UTF-8) concatenated with (32 byte router hash)) in base 64

Yöneltici Bilgileri (RouterInfo) Sona Erme Süresi

Yöneltici Bilgileri (RouterInfo) kayıtlarının belirlenmiş bir geçerlilik süresi yoktur. Her yöneltici Yöneltici Bilgileri aramalarının sıklığını bellek veya disk kullanımına göre belirlemek için kendi yerel ilkesini kullanmakta özgürdür. Geçerli uygulamada aşağıdaki genel ilkeler bulunur.

  • Kalıcı olarak saklanan veriler eski olabileceğinden, ilk çalışma saatinde geçerlilik süresi kuıllanılmaz.
  • 25 veya daha az Yöneltici Bilgileri (RouterInfo) kaydı varsa geçerlilik süresi yoktur.
  • Yerel Yöneltici Bilgileri (RouterInfo) kaydı sayısı arttıkça, makul bir "Yöneltici Bilgileri" sayısını korumak amacıyla geçerlilik süresi kısalır. 120 altında yöneltici için geçerlilik süresi 72 saat, 300 yöneltici için geçerlilik süresi yaklaşık 30 saattir.
  • SSU tanıtıcıları içeren Yöneltici Bilgileri (RouterInfo) kayıtlarının geçerlilik, yaklaşık bir saattir. Çünkü tanıtıcı listesinin geçerlilik süresi yaklaşık olarak bu kadardır.
  • Geçerli Yöneltici Bilgileri (RouterInfo) kayıtları onlar için sık sık yeniden yayınlanacağından, otomatik doldurma sunucularında tüm yerel "Yöneltici Bilgileri" kayıtları için kısa bir geçerlilik süresi (1 saat) kullanılır.

Kalıcı Yöneltici Bilgileri (RouterInfo) Depolama

Yeniden başlatmadan sonra kullanılabilmesi için Yöneltici Bilgileri (RouterInfo) düzenli aralıklarla diske yazılır.

Kiralama Kümeleri (LeaseSets) üst verilerinin uzun süreli olarak kalıcı olarak saklanması istenebilir. Bu durum, uygulamaya bağlıdır.

Şunlara da bakabilirsiniz

Yöneltici Bilgileri (RouterInfo) teknik özellikleri

Yöneltici Bilgileri (RouterInfo) Java belgeleri

LeaseSet

Ağ Veritabanında (netDB) dağıtılan ikinci veri parçası, belirli bir müşteri hedefi için bir grup tünel giriş noktasını (kiralamaları) belgeleyen bir Kiralama Kümesi (LeaseSet) olur. Bu kiralamaların her birinde şu bilgiler bulunur:

  • Tünel ağ geçidi yönelticisi (kimliğini belirterek)
  • İleti göndermek için bu yönelticideki tünel kimliği (4 baytlık bir sayı)
  • Bu tünelin geçerlilik süresi.

Kiralama Kümesi (LeaseSet), hedefin SHA-256 değerinden türetilen anahtar altında Ağ Veritabanı (netDB) üzerinde tutulur. Bir istisna, 0.9.38 sürümünden başlayarak şifrelenmiş Kiralama Kümeleri (LS2 LeaseSet) içindir. Bayt (3) türünün SHA-256 değeri ve ardından körleştirilmiş herkese açık anahtar, DHT anahtarı için kullanılır ve sonra her zamanki gibi döndürülür. Aşağıdaki Kademlia yakınlık ölçümü bölümüne bakın.

Bu kiralamalara ek olarak, Kiralama Kümesi (LeaseSet) şunları içerir:

  • Hedefin kendisi (bir şifreleme anahtarı, bir imzalama anahtarı ve bir sertifika)
  • Ek herkese açık şifreleme anahtarı: Garlic iletilerinin uçtan uca şifrelenmesi için kullanılır
  • Ek herkese açık imzalama anahtarı: Kiralama Kümesi (LeaseSet) iptali için tasarlandı, ancak şu anda kullanılmıyor.
  • Hedefin bir Kiralama Kümesi (LeaseSet) yayınladığından emin olmak için tüm Kiralama Kümesi (LeaseSet) verilerinin imzası.

Kiralama teknik özellikleri
Kiralama Kümesi (LeaseSet) teknik özellikleri

Kiralama Java belgeleri
Kiralama Kümesi (LeaseSet) Java belgeleri

0.9.38 sürümüyle, üç yeni Kiralama Kümesi (LeaseSet) türü tanımlanmıştır; LeaseSet2, MetaLeaseSet ve EncryptedLeaseSet. Ayrıntılar için aşağıya bakın.

Yayınlanmamış Kiralama Kümeleri (LeaseSets)

Yalnızca gidiş bağlantıları için kullanılan bir hedef için Kiralama Kümesi (LeaseSet) yayından kaldırıldı. Hiçbir zaman yayınlanmak için bir otomatik doldurma yönelticisine gönderilmez. Web üzerinde gezinme ve IRC istemcileri için olanlar gibi "istemci" tünelleri yayınlanmaz. Sunucular, I2NP depolama iletileri nedeniyle, bu yayınlanmamış hedeflere ileti göndermeye devam edebilecektir.

Geçersiz Kılınmış Kiralama Kümeleri (LeaseSets)

Bir Kiralama Kümesi (LeaseSet), sıfır kiralama yapan yeni bir Kiralama Kümesi (LeaseSet) yayınlayarak geçersiz kılınabilir. Geçersiz kılmalar, Kiralama Kümesi'ndeki ek imzalama anahtarı ile imzalanmalıdır. Geçersiz kılma tam olarak kullanıma alınmadı ve herhangi bir pratik kullanımı olup olmadığı belirsiz. Söz konusu imzalama anahtarı yalnızca bunun için planlandığından şu anda kullanılmıyor.

LeaseSet2 (LS2)

0.9.38 sürümünden başlayarak otomatik dolgular yeni Kiralama Kümesi (LeaseSet) LS2 yapısını destekliyor. Bu yapı eski Kiralama Kümesi (LeaseSet) yapısına çok benzer ve aynı amaca hizmet eder. Yeni yapı, yeni şifreleme türlerini, çoklu şifreleme türlerini, seçenekleri, çevrimdışı imzalama anahtarlarını ve diğer özellikleri destekleyecek esnekliği sağlar. Ayrıntılı bilgi almak için 123 numaralı öneriye bakabilirsiniz.

Meta LeaseSet (LS2)

0.9.38 sürümünden başlayarak, otomatik doldurmalar yeni bir Üst Kiralama Kümesi (LeaseSet) yapısını destekler. Bu yapı, diğer Kiralama Kümelerine (LeaseSets) atıfta bulunmak için DHT üzerinde ağaç benzeri bir yapı sağlar. Bir site, Üst Kiralama Kümesini (LeaseSet) kullanarak, ortak bir hizmet sağlamak için birkaç farklı hedefin kullanıldığı büyük, çoklu barındırma hizmetlerini uygulayabilir. Bir Üst Kiralama Kümesindeki (LeaseSet) kayıtlar, hedefler veya diğer Üst kiralama kümeleridir ve 18,2 saate kadar uzun geçerlilik süreleri olabilir. Bu tesisi kullanarak, ortak bir hizmeti barındıran yüzlerce veya binlerce hedefi çalıştırılabilmelidir. Ayrıntılı bilgi almak için 123 numaralı öneriye bakabilirsiniz.

Şifrelenmiş Kiralama Kümeleri (LeaseSets) (LS1)

Bu bölümde, sabit bir simetrik anahtar kullanarak eski, güvenli olmayan Kiralama Kümesi (LeaseSet) şifreleme yöntemi açıklanır. Şifrelenmiş Kiralama Kümesi (LeaseSet) LS2 sürümü için aşağıya bakın.

Bir Şifrelenmiş Kiralama Kümesi (LeaseSet) içinde, tüm kiralamalar ayrı bir anahtarla şifrelenir. Kiralamaların kodu yalnızca çözülebilir ve bu nedenle hedefle yalnızca anahtara sahip olanlar bağlantı kurabilir. Kiralama Kümesi'nin şifrelenmiş olduğuna hakkında bir işaret veya başka bir doğrudan gösterge yoktur. Şifrelenmiş Kiralama Kümeleri (LeaseSets) yaygın olarak kullanılmıyor. Kullanıcı arayüzünün ve Şifrelenmiş Kiralama Kümelerinin (LeaseSets) uygulanmasının geliştirilmesi geleceğe dönük bir araştırma konusudur.

Şifrelenmiş Kiralama Kümeleri (LeaseSets) (LS2)

0.9.38 sürümünden başlayarak, otomatik doldurma yeni bir Şifrelenmiş Kiralama Kümesi (LeaseSet) yapısını destekler. Hedef gizlidir ve otomatik doldurmada yalnızca körleştirilmiş bir herkese açık anahtar ve bir geçerlilik süresi görünür. Yalnızca tam hedefe sahip olanlar yapının şifresini çözebilir. Yapı, hedefin karma değerine değil, körleştirilmiş herkese açık anahtarın karma değerine dayalı olarak bir DHT konumunda depolanır. Ayrıntılar için 123 numaralı öneriye bakabilirsiniz.

Kiralama Kümesi (LeaseSet) geçerlilik süresi

Normal Kiralama Kümeleri (LeaseSets) için geçerlilik süresi, kiralamalarının sona erme zamanıdır. Yeni LS2 Kiralama Kümesi (LeaseSet) veri yapıları için geçerlilik süresi üst bilgilerde belirtilir. LS2 için geçerlilik süresi, kiralamaların sona erme zamanlarıyla eşleşmelidir. Şifrelenmiş Kiralama Kümesi (LeaseSet) ve Üst Kiralama Kümesi için geçerlilik süresi değişebilir ve belirlenmek üzere en uzun geçerlilik süresi dayatılabilir.

Kiralama Kümesi (LeaseSet) Kalıcı Depolaması

Kiralama Kümesi (LeaseSet) verilerinin kalıcı olarak depolanması gerekmez, çünkü bu veriler çok hızlı bir şekilde geçersiz olur. Ancak, Şifrelenmiş Kiralama Kümesi ve Üst Kiralama Kümesi verilerinin uzun geçerlilik süresiyle kalıcı olarak saklanması önerilebilir.

Şifreleme Anahtarı Seçimi (LS2)

LeaseSet2 birden çok şifreleme anahtarı içerebilir. Anahtarlar, en çok yeğlenen sunucu sırasına göredir. Varsayılan istemci davranışı, desteklenen bir şifreleme türüne sahip ilk anahtarın seçilmesidir. İstemciler, şifreleme desteğine, göreli başarıma ve diğer faktörlere dayalı diğer seçim algoritmalarını kullanabilir.

Ön yükleme

Ağ Veritabanı (netDB) merkezi değildir, ancak bütünleştirme sürecinin sizi bağlaması için en az bir eş referansına gerek duyarsınız. Bunun için, yönelticinizi etkin bir eşin Yöneltici Bilgileri (RouterInfo) ile "yeniden tohumlar", özellikle de routerInfo-$hash.dat dosyalarını alıp netDB/ klasörünüze kaydedersiniz. Bu dosyaları size herhangi biri sağlayabilir. Hatta kendi netDb klasörünüzü görünür kılarak bunları başkalarına da sunabilirsiniz. Süreci basitleştirmek için, gönüllüler netDb klasörlerini (veya bir alt kümesini) normal (i2p olmayan) ağda yayınlar ve bu klasör adresleri I2P içinde sabit kodlanmıştır. Yöneltici ilk kez başlatıldığında, otomatik olarak bu adreslerden biri rastgele seçilerek alınır.

Otomatik doldurma

Otomatik doldurma Ağ Veritabanı (netDB), basit bir dağıtılmış depolama mekanizmasıdır. Depolama algoritması basittir: Verileri, kendisini bir otomatik doldurma yönelticisi olarak tanıtan en yakın eşe gönderir. Otomatik doldurma Ağ Veritabanı üzerinde bulunan bir eş, otomatik doldurma Ağ Veritabanı üzerinde bulunmayan bir eşten bir Ağ Veritabanı deposu aldığında, onu otomatik doldurma Ağ Veritabanı eşlerinin bir alt kümesine gönderir. Seçilen eşler, belirli bir anahtara (XOR ölçüsü ile) en yakın olanlardır.

Otomatik doldurma Ağ Veritabanı (netDB) için kimin parçası olduğunu belirlemek önemsizdir. Her yönelticinin yayınlanan Yöneltici Bilgileri (RouterInfo) içinde bir yetenek olarak ortaya çıkar.

Otomatik doldurmaların merkezi bir yöneticisi yoktur ve bir "uzlaşma" oluşturmazlar. Yalnızca basit bir DHT kapsaması sağlarlar.

Otomatik doldurma yöneltici aboneliği

Dizin sunucularının sabit kodlandığı ve güvenilir olduğu ve bilinen varlıklar tarafından işletildiği Tor ağının aksine, I2P otomatik doldurma eş kümesinin üyelerinin güvenilir olması gerekmez ve zaman içinde değişebilir.

Ağ Veritbanı'nın (netDB) güvenilirliğini artırmak ve Ağ Veritabanı trafiğinin yöneltici üzerindeki etkisini en aza indirmek için, otomatik doldurma yalnızca yüksek bant genişliği sınırlarıyla yapılandırılmış yönelticilerde otomatik olarak etkinleştirilir. Yüksek bant genişliği sınırlarına sahip yönelticilerin (varsayılan çok daha düşük olduğu için el ile yapılandırılması gerekir) daha düşük gecikmeli bağlantılarda olduğu varsayılır ve 7/24 kullanılabilir olma olasılıkları daha yüksektir. Otomatik doldurma yönelticisi için geçerli en az paylaşım bant genişliği: 128 KBytes/sn.

Ek olarak, bir yöneltici, otomatik doldurma işlemi otomatik olarak etkinleştirilmeden önce sistem durumu (gidiş ileti kuyruğu süresi, görev gecikmesi vb.) için birkaç ek sınamadan geçmelidir.

Otomatik katılım için geçerli kurallarla, ağdaki yönelticilerin yaklaşık 6&37; kadarı otomatik doldurma yönelticileridir.

Bazı eşler, otomatik doldurma için el ile yapılandırılırken, diğerleri, otomatik doldurma eşlerinin sayısı bir eşik değerinin altına düştüğünde otomatik olarak gönüllü olan yüksek bant genişliğine sahip yönelticilerdir. Böylece herhangi bir saldırı olduğunda, otomatik doldurma yönelticilerinin kaybedilmesi ve uzun vadeli bir ağ hasarı önlenir. Ters durumda, bekleyen çok fazla otomatik doldurma yönelticisi olduğunda, bu eşler kendilerini otomatik doldurma rolünden çıkarır.

Otomatik Doldurma Yöneltici Rolleri

Otomatik doldurma yönelticilerin, otomatik doldurma olmayan yönelticilerin hizmetlerine ek olan tek hizmetleri, Ağ Veritabanı (netDB) depolarını kabul etmek ve Ağ Veritabanı sorgularına yanıt vermektir. Genellikle yüksek bant genişlikleri olduğunda, çok sayıda tünele katkıda bulunma olasılıkları daha yüksektir (diğer bir deyişle, diğerleri için bir "aktarıcı" olur). Ancak bu onların dağıtılmış veritabanı hizmetleriyle doğrudan ilgili değildir.

Kademlia Yakınlık Ölçümü

Ağ Veritabanı (netDB), yakınlığı belirlemek için Kademlia tarzı basit bir XOR ölçümü kullanır. Bir Kademlia anahtarı oluşturmak için RouterIdentity veya hedefin SHA-256 karması hesaplanır. Bir istisna, 0.9.38 sürümünden başlayarak şifrelenmiş Kiralama Kümeleri (LS2 LeaseSet) içindir. Bayt (3) türünün SHA-256 değeri ve ardından körleştirilmiş herkese açık anahtar, DHT anahtarı için kullanılır ve sonra her zamanki gibi döndürülür.

Sybil saldırılarının maliyetlerini artırmak için bu algoritmada bir değişiklik yapıldı. Aranan anahtarın kaydedilmiş SHA-256 karması yerine, SHA-256 karması, 8 baytlık bir ASCII dizgesi yyyyMMdd, yani SHA256(anahtar + yyyyMMdd) olarak gösterilen UTC tarihi ile eklenen 32 baytlık ikili arama anahtarından alınır. Buna "yöneltme anahtarı" denir ve her gün UTC gece yarısında değişir. Otomatik doldurma yöneltici karmaları değil, yalnızca arama anahtarı bu şekilde değiştirilir. Günlük DHT döndürmesi, tam anlamıyla bir döndürme olmasa da bazen "anahtar alanı döndürme" olarak adlandırılır.

Yöneltme anahtarları hiçbir zaman herhangi bir I2NP iletisinde kablo üzerinden gönderilmez. Yalnızca uzaklığın belirlenmesi için yerel olarak kullanılırlar.

Depolama, doğrulama ve arama mekanizması

Eşlerde Yöneltici Bilgileri (RouterInfo) Depolama

Yerel Yöneltici Bilgileri (RouterInfo) bulunduran I2NP veritabanı kaydetme iletileri (DatabaseStoreMessages), NTCP veya SSU taşıyıcı bağlantısının başlatılmasının bir parçası olarak eşlerle takas edilir.

Eşlere Kiralama Kümesi (LeaseSet) Depolama

İçinde yerel Kiralama Kümesi (LeaseSet) bulunan I2NP veritabanı kaydetme iletileri (DatabaseStoreMessages), ilgili hedeften gelen normal trafikle birlikte bir Garlic iletisinde bir araya getirilerek eşlerle düzenli olarak takas edilir. Böylece, herhangi bir Kiralama Kümesi araması gerekmeden veya iletişim halindeki hedeflerin Kiralama Kümeleri yayınlamasına gerek kalmadan ilk yanıtın ve daha sonraki yanıtların uygun kiralamaya gönderilmesini sağlar.

Floodfill Selection

Veritabanı kaydetme iletisi (DatabaseStoreMessage), tutulmakta olan Yöneltici Bilgileri (RouterInfo) veya Kiralama Kümesi (LeaseSet) için geçerli yöneltme anahtarına en yakın olan otomatik doldurucuya gönderilmelidir. Şu anda, en yakın otomatik doldurucu yerel veritabanında yapılan bir aramayla bulunur. Bu otomatik doldurucu gerçekte en yakındaki olmasa bile, birden fazla otomatik doldurucuya gönderilerek "daha yakın" doldurma sağlar. Böylece, yüksek düzeyde hata toleransı sağlanır.

Geleneksel Kademlia üzerinde, bir eş, DHT verilerine en yakın hedefe bir öge eklemeden önce "en yakını bul" araması yapar. Doğrulama işlemi, varsa daha yakın otomatik doldurucuları keşfetme eğiliminde olacağından, bir yöneltici, düzenli olarak yayınladığı "Yöneltici Bilgileri" (RouterInfo) ve Kiralama Kümeleri (LeaseSets) için DHT "mahallesi" hakkındaki bilgisini hızla artıracaktır. I2NP bir "en yakını bul" iletisi tanımlamasa da, gerekirse, bir yöneltici, veritabanı arama yanıtı iletisi (DatabaseSearchReplyMessages) içinde daha yakın bir eş alınmayana kadar en az anlamlı bit çevrilmiş bir anahtar (yani anahtar ^ 0x01) için yinelemeli bir arama yapabilir. . Böylece, daha uzaktaki bir eş Ağ Veritabanı (netDB) ögesine sahip olsa bile gerçek en yakın eşin bulunmasını sağlar.

Otomatik Doldurma Yönelticilerinde Yöneltici Bilgileri (RouterInfo) Depolama

Bir yöneltici, doğrudan bir otomatik doldurma yönlendiricisine bağlanarak ve ona sıfır olmayan bir yanıt belirteci ile bir I2NP bir veritabanı kaydetme iletisi (DatabaseStoreMessage) göndererek kendi Yöneltici Bilgileri (RouterInfo) verilerini yayınlar. Bu doğrudan bir bağlantı olduğundan, ileti uçtan uca Garlic şifrelemesi kullanmaz. Bu nedenle araya giren yönelticiler yoktur (ve yine de bu verileri gizlemeye gerek yoktur). Otomatik doldurma yönelticisi, ileti kimliği yanıt belirtecinin değerine ayarlanmış bir I2NP aktarım durumu iletisi (DeliveryStatusMessage) ile yanıt verir.

Otomatik Doldurma Yönelticilerine Kiralama Kümesi (LeaseSet) Depolama

Bir yönelticinin kiralama kümelerinin (LeaseSets) yönelticiyle ilişkilendirilememesine dikkat etmesi gerektiğinden, kiralama kümelerinin depolanması Yöneltici Bilgileri (RouterInfo) verilerine göre çok daha hassastır.

Bir yöneltici, o hedef için bir gidiş istemci tüneli üzerinden sıfır olmayan bir Yanıt Belirteci ile bir I2NP veritabanı kaydetme iletisi(DatabaseStoreMessage) göndererek yerel bir Kiralama Kümesi (LeaseSet) yayınlar. İleti, tünelin gidiş uç noktasından iletiyi gizlemek için hedefin oturum anahtarı yöneticisi kullanılarak uçtan uca Garlic şifrelenir. Otomatik doldurma yönelticisi, ileti kimliği Yanıt Belirtecinin değerine ayarlanmış olarak bir I2NP DeliveryStatusMessage ile yanıt verir. Bu ileti, istemcinin geliş tünellerinden birine geri gönderilir.

Otomatik Doldurma

Bir otomatik doldurma yönelticisi, yerel Ağ Veritabanında (netDB) önceden depolanmış olandan daha yeni olan geçerli Yöneltici Bilgileri (RouterInfo) veya Kiralama Kümesi (LeaseSet) içeren bir veritabanı kaydetme iletisi (DatabaseStoreMessage) aldıktan sonra, onu "otomatik doldurur". Bir Ağ Veritabanı kaydını otomatik doldurmak için, Ağ Veritabanı kaydın yöneltme anahtarına en yakın birkaç (şu anda 3) otomatik doldurma yönelticisini arar. (Yöneltme anahtarı, tarih (yyyyMMdd) eklenmiş olarak RouterIdentity veya hedefin SHA-256 karmasıdır.) Otomatik doldurma, kendisine en yakın olmayan, anahtara en yakın olan yönelticileri otomatik doldurarak, depolama yönelticisi yöneltme anahtarı için DHT "komşu" hakkında iyi bilgiye sahip olmasa bile depolamanın doğru yere gitmesini sağlar.

Otomatik doldurma daha sonra bu eşlerin her birine doğrudan bağlanır ve onlara sıfır Yanıt Belirteci ile bir I2NP veritabanı kaydetme iletisi (DatabaseStoreMessage) gönderir. Bu bağlantı doğrudan olduğundan, ileti uçtan uca Garlic şifreli değildir. Bu nedenle araya giren yönelticiler yoktur (ve yine de bu verileri gizlemeye gerek yoktur). Diğer yönelticiler, Yanıt Belirteci sıfır olduğu için yanıt vermez veya yeniden yükleme yapmaz.

Yöneltici Bilgileri (RouterInfo) ve Kiralama Kümesi (LeaseSet) Arama

I2NP veritabanı arama iletisi (DatabaseLookupMessage), bir otomatik doldurma yönelticisinden bir Ağ Veritabanı (netDB) kaydı istemek için kullanılır. Aramalar, yönelticinin gidiş keşif tünellerinden birine gönderilir. Yanıtlar, yönelticinin geliş keşif tünellerinden biri üzerinden döndürülecek şekilde belirtilir.

Aramalar genellikle istenilen anahtara en yakın iki "iyi" (başarısız olmayan bağlantı) aktarım yönelticisine paralel olarak gönderilir.

Anahtar otomatik doldurma yönelticisi tarafından yerel olarak bulunursa, I2NP veritabanı kaydetme iletisi (DatabaseStoreMessage) ile yanıt verir. Anahtar otomatik doldurma yönelticisi tarafından yerel olarak bulunamazsa, anahtara yakın diğer otomatik doldurma yönelticilerinin listesini içeren bir I2NP veritabanı arama yanıtı iletisi (DatabaseSearchReplyMessages) ile yanıt verir.

Kiralama Kümesi (LeaseSet) aramaları, 0.9.5 sürümünden başlayarak uçtan uca Garlic şifrelenmiştir. Yöneltici Bilgileri (RouterInfo) aramaları şifrelenmez ve bu nedenle istemci tünelinin gidiş uç noktası (OBEP) tarafından izlenmeye karşı savunmasızdır. Bunun nedeni ElGamal şifrelemesinin maliyetidir. Yöneltici Bilgileri (RouterInfo) arama şifrelemesi, gelecekteki bir sürümde etkinleştirilebilir.

0.9.7 sürümünden başlayarak, bir Kiralama Kümesi (LeaseSet) aramasına (bir veritabanı kaydetme iletisi (DatabaseStoreMessage) veya bir veritabanı arama yanıtı iletisi (DatabaseSearchReplyMessages)) verilen yanıtlar, aramaya oturum anahtarı ve etiketi katılarak şifrelenir. Böylece, yanıt tünelinin geliş ağ geçidinden (IBGW) gelen yanıt gizlenir. Arama şifrelemesini etkinleştirirsek, Yöneltici Bilgileri (RouterInfo) aramalarına verilen yanıtlar şifrelenir.

(Referans: Aşağıdaki yatık yazılmış terimler için Hashing it out in Public 2.2 ve 2.3 bölümleri)

Ağın nispeten küçük boyutu ve otomatik doldurma yedekliliği nedeniyle, aramalar genellikle O(log n) yerine O(1) şeklindedir. Bir yönelticinin, ilk denemede yanıtı almak için anahtara yeterince yakın bir otomatik doldurma yönelticisini bilme olasılığı yüksektir. 0.8.9 öncesindeki sürümlerde, yönelticiler iki arama yedekliliği kullandı (yani, farklı eşlere paralel olarak iki arama yapıldı) ve aramalar için ne iç içe ne de yinelemeli yöneltme uygulandı. Sorgu başarısızlığı olasılığını azaltmak için sorgular aynı anda birden fazla yöneltme ile gönderildi.

0.8.9 sürümünden itibaren, yinelemeli aramalar arama artıklığı olmadan uygulanıyor. Bu yöntem, tüm otomatik doldurma eşleri bilinmediğinde çok daha iyi çalışacak daha verimli ve güvenilir bir arama sağlıyor ve ağ büyümesine yönelik ciddi bir sınırlamayı ortadan kaldırıyor. Ağ büyüdükçe ve her yöneltici otomatik doldurma eşlerinin yalnızca küçük bir alt kümesini bildikçe, aramalar O(log n) şeklinde olur. Eş, anahtara daha yakın referanslar döndürmese bile, arama işlemi ek güvenlik sağlamak ve kötü niyetli bir otomatik doldurma yönelticisinin anahtar uzayının bir bölümünden kara delik oluşturmasını önlemek için bir sonraki en yakın eşle devam eder. Aramalar, toplam arama zaman aşımına ulaşılana veya en fazla eş sayısı sorgulanana kadar sürdürülür.

Düğüm kimlikleri, doğrulanabilir. Çünkü yöneltici karmasını doğrudan hem düğüm kimliği hem de Kademlia anahtarı olarak kullanırız. Arama anahtarına daha yakın olmayan yanlış yanıtlar genellikle yok sayılır. Ağın güncel boyutu göz önüne alındığında, bir yöneltici hedef kimliği uzayının komşuluğu hakkında ayrıntılı bilgiye sahiptir.

Yöneltici Bilgileri (RouterInfo) Depolama Doğrulaması

Not: Yöneltici Bilgileri (RouterInfo) doğrulaması, Practical Attacks Against the I2P Network belgesinde açıklanan saldırıyı önlemek için 0.9.7.1 sürümünden başlayarak devre dışı bırakılmıştır. Doğrulamanın güvenli olarak yapılacak şekilde yeniden tasarlanıp tasarlanamayacağı açık değildir.

Bir depolamanın başarılı olduğunu doğrulamak için, bir yöneltici yalnızca 10 saniye kadar bekler. Ardından anahtara yakın başka bir otomatik doldurma yönelticisine bir arama gönderir (ancak depolamanın gönderildiğine değil). Aramalar, yönelticinin gidiş keşif tünellerinden birini gönderdi. Aramalar, gidiş uç noktası (OBEP) tarafından gözetlenmeyi önlemek için uçtan uca Garlic şifrelenir.

Kiralama Kümesi (LeaseSet) Depolama Doğrulaması

Bir depolamanın başarılı olduğunu doğrulamak için, bir yöneltici yalnızca 10 saniye kadar bekler. Ardından anahtara yakın başka bir otomatik doldurma yönelticisine bir arama gönderir (ancak depolamanın gönderildiğine değil). Aramalar, doğrulanmakta olan Kiralama Kümesinin (LeaseSet) hedefi için istemci gidiş tünellerinden birini gönderdi. Gidiş tünelinin OBEP tarafından gözetlenmesini önlemek için, aramalar uçtan uca Garlic olarak şifrelenir. Yanıtlar, istemcinin geliş tünellerinden biri aracılığıyla döndürülecek şekilde belirtilir.

0.9.7 sürümünden başlayarak, yanıt tünelinin geliş ağ geçidinden (IBGW) gelen yanıtı gizlemek için hem Yöneltici Bilgileri (RouterInfo) hem de Kiralama Kümesi (LeaseSet) aramaları (bir veritabanı kaydetme iletisi (DatabaseStoreMessage) veya bir veritabanı arama yanıtı iletisi (DatabaseSearchReplyMessages)) için yanıtlar şifrelenir.

Keşif

Keşif, bir yönelticinin yeni yönelticiler hakkında bilgi edinmeye çalıştığı özel bir Ağ Veritbanı (netDB) arama biçimidir. Bunu, bir otomatik doldurma yönelticisine rastgele bir anahtar arayan bir I2NP veritabanı arama iletisi (DatabaseLookupMessage) göndererek yapar. Bu arama başarısız olacağından, otomatik doldurma işlemi normalde anahtara yakın otomatik doldurma yönelticilerinin karmalarını içeren bir I2NP veritabanı arama yanıtı iletisi (DatabaseSearchReplyMessages) ile yanıt verir. İstekte bulunan yöneltici büyük olasılıkla bu otomatik doldurma yönelticilerini zaten bildiğinden, bu bilginin yardımı olmaz ve tüm otomatik doldurma yönelticilerini veritabanı arama iletisinin (DatabaseLookupMessage) "katılmayacaklar" alanına eklemek pratik olmaz. Bir keşif sorgusu için istekte bulunan yöneltici, veritabanı arama iletisi (DatabaseLookupMessage) içine özel bir işaret koyar. Otomatik doldurma yönelticisi yalnızca istenen anahtara yakın, otomatik doldurma olmayan yönelticilerle yanıt verir.

Arama Yanıtları Hakkında Notlar

Bir arama isteğine verilen yanıt, bir veritabanı depolama iletisi (başarı durumunda) veya bir veritabanı arama yanıt iletisi (başarısızlık durumunda). DSRM, yanıtın kaynağını belirtmek için bir yöneltici karma alanı içerir. Veritabanı depolama iletisinde bu bulunmaz. Veritabanı arama yanıt iletisinin 'kimden' alanı kimliği doğrulanmamış ve sahte veya geçersiz olabilir. Başka bir yanıt etiketi bulunmaz. Bu nedenle, paralel olarak birden çok istekte bulunurken, çeşitli otomatik doldurma yönelticilerinin başarımını izlemek zordur.

Birden Çok Barındırma

Hedefler, aynı kişisel ve herkese açık anahtarlar (geleneksel olarak eepPriv.dat dosyalarında depolanır) kullanılarak aynı anda birden çok yönelticide barındırılabilir. Her iki örnek de imzalı Kiralama Kümelerini (LeaseSets) otomatik doldurma eşlerine düzenli olarak yayınlayacağından, en son yayınlanan Kiralama Kümesi (LeaseSet) bir veritabanı araması isteği yapan bir eşe döndürülür. Kiralama Kümelerinin (en fazla) 10 dakikalık bir kullanım ömrü olduğundan, belirli bir bulut sunucusunun çökmesi durumunda kesinti en fazla 10 dakika olur ve genellikle bundan çok daha azdır. Çoklu barındırma arama işlevi doğrulandı ve ağdaki çeşitli hizmetler tarafından kullanılıyor.

0.9.38 sürümünden başlayarak, otomatik doldurmalar yeni bir Üst Kiralama Kümesi (LeaseSet) yapısını destekler. Bu yapı, diğer Kiralama Kümelerine (LeaseSets) atıfta bulunmak için DHT üzerinde ağaç benzeri bir yapı sağlar. Bir site, Üst Kiralama Kümesini (LeaseSet) kullanarak, ortak bir hizmet sağlamak için birkaç farklı hedefin kullanıldığı büyük, çoklu barındırma hizmetlerini uygulayabilir. Bir Üst Kiralama Kümesindeki (LeaseSet) kayıtlar, hedefler veya diğer Üst kiralama kümeleridir ve 18,2 saate kadar uzun geçerlilik süreleri olabilir. Bu tesisi kullanarak, ortak bir hizmeti barındıran yüzlerce veya binlerce hedefi çalıştırılabilmelidir. Ayrıntılı bilgi almak için 123 numaralı öneriye bakabilirsiniz.

Tehdit İncelemesi

Ayrıca tehdit modeli sayfasında tartışılmıştır.

Kötü niyetli bir kullanıcı, bir veya daha fazla otomatik doldurma yönelticisi oluşturarak ve bunları kötü, yavaş veya hiç yanıt vermeyecek şekilde hazırlayarak ağa zarar vermeye çalışabilir. Bazı senaryolar aşağıda tartışılmıştır.

Büyümeyle Genel Azaltma

Şu anda ağda yaklaşık 1700 otomatik doldurma yönelticisi var. Aşağıdaki saldırıların çoğu, ağ boyutu ve otomatik doldurma yönelticilerinin sayısı arttıkça daha zor hale gelir veya daha az etkiye sahip olur.

Süreklilikle Genel Azaltma

Otomatik doldurma yoluyla, tüm Ağ Veritabanı (netDB) kayıtları, anahtara en yakın 3 otomatik doldurma yönelticisinde depolanır.

Sahtecilikler

Tüm Ağ Veritabanı (netDB) kayıtları oluşturucuları tarafından imzalanmıştır. Bu nedenle hiçbir yöneltici bir Yöneltici Bilgileri (RouterInfo) veya Kiralama Kümesi (LeaseSet) verisini taklit edemez.

Yavaş ya da Yanıtsız

Her yöneltici, her bir otomatik doldurma yönelticisi için eş profilinde o eş için çeşitli kalite ölçümlerini kapsayan genişletilmiş bir istatistik kümesi tutar. Kümede şunlar bulunur:

  • Ortalama yanıt süresi
  • İstenilen verilerle yanıtlanan sorguların yüzdesi
  • Başarıyla doğrulanan depolamaların yüzdesi
  • Son başarılı depolama
  • Son başarılı arama
  • Son yanıt

Bir yönelticinin hangi otomatik doldurma yönelticisinin bir anahtara en yakın olduğunu belirlemesi gerektiğinde, hangi otomatik doldurma yönelticilerinin "iyi" olduğunu belirlemesi için bu ölçümler kullanılır. "İyiliği" belirlemek için kullanılan yöntemler ve eşikler nispeten yenidir ve daha fazla analiz ve iyileştirmeye açıktır. Tamamen yanıt vermeyen bir yöneltici hızlı bir şekilde belirlenip bunlardan kaçınılırken, yalnızca bazen kötü niyetli olan yönelticilerle uğraşmak çok daha zor olabilir.

Sybil Saldırısı (Tam Anahtar Uzayı)

Saldırgan, anahtar uzayı boyunca yayılmış çok sayıda otomatik doldurma yönelticisi oluşturarak Sybil saldırısı başlatabilir.

(İlgili bir örnekte, bir araştırmacı yakın zamanda çok sayıda Tor aktarıcısı oluşturmuştur.) Başarılı olursa, bu şekilde tüm ağ üzerinde etkili bir DOS saldırısı yapılabilir.

Otomatik doldurma yönelticileri, yukarıda açıklanan eş profil ölçümleri kullanılarak "kötü" olarak işaretlenecek kadar hatalı çalışmıyorsa, bu senaryonun, ele alınması zordur. Tor yanıtı, aktarıcı durumunda çok daha çevik olabilir, çünkü şüpheli aktarıcılar uzlaşmadan el ile kaldırılabilir. I2P ağı için bazı olası yanıtlar aşağıda listelenmiştir. Ancak bunların hiçbiri tam olarak tatmin edici değildir:

  • Kötü yöneltici karmalarının veya IP adreslerinin bir listesini derleyin ve listeyi çeşitli yollarla duyurun (konsol haberleri, web sitesi, forum vb.); kullanıcıların listeyi el ile indirmeleri ve yerel "kara listelerine" eklemeleri gerekir.
  • Ağdaki herkesten otomatik doldurmayı el ile etkinleştirmesini isteyin (Sybil ile daha fazla Sybil kullanarak savaşın)
  • Sabit kodlanmış "hatalı" listeyi içeren yeni bir yazılım sürümü yayınlayın
  • "Kötü" eşleri otomatik olarak belirleme girişiminde bulunarak, eş profili ölçümlerini ve eşiklerini iyileştiren yeni bir yazılım sürümü yayınlayın.
  • Tek bir IP bloğundaki otomatik doldurma yönelticileri çok fazla sayıdaysa azaltan yazılım ekleyin
  • Tek bir kişi veya grup tarafından kontrol edilen, aboneliğe dayalı otomatik bir kara liste uygulayın. Bu, aslında Tor "uzlaşma" modelinin bir bölümünü uygular. Ne yazık ki, tek bir bireye veya gruba belirli bir yönelticinin veya IP adresinin ağdaki katılımını engelleme veya hatta tüm ağı tamamen kapatma veya yok etme gücü de verir.

Ağ boyutu büyüdükçe bu saldırı daha zor hale gelir.

Sybil Saldırısı (Parçalı Anahtar Uzayı)

Saldırgan, anahtar alanında yakın bir şekilde kümelenmiş az sayıda (8-15) otomatik doldurma yönelticisi oluşturarak bir Sybil saldırısı başlatabilir ve bu yönelticiler için Yöneltici Bilgilerini (RouterInfo) geniş çapta dağıtabilir. Ardından, bu anahtar alanındaki tüm aramalar ve anahtarlar, saldırganın yönelticilerinden birine yöneltilir. Başarılı olursa, belirli bir I2P sitesinde etkili bir DOS saldırısı gibi olabilir.

Anahtar uzayı, anahtarın şifreleme (SHA-256) karması tarafından dizine eklendiğinden, bir saldırgan, anahtara yeterince yakın olana kadar üst üste yöneltici karmaları oluşturmak için bir kaba kuvvet yöntemi kullanmalıdır. Ağ boyutuna bağlı olduğundan bunun için gereken hesaplama gücü miktarı bilinmemektedir.

Bu saldırıya karşı kısmi bir savunma olarak, Kademlia tarafından "yakınlığı" belirlemek için kullanılan algoritma zamanla değiştirilir. Yakınlığı belirlemek için anahtarın karmasını (H(k)) kullanmak yerine, geçerli tarih dizgesine eklenen anahtarın karmasını kullanırız, (H(k + YYYYMMDD)). Özgün anahtarı bir "yöneltme anahtarına" dönüştüren "yöneltme anahtarı oluşturucu" adlı bir işlev bunu yapar. Başka bir deyişle, Ağ Veritabanı (netDB) anahtar uzayının tamamı her gün UTC gece yarısında "döndürülür". Herhangi bir kısmi anahtar alanı saldırısının her gün yeniden oluşturulması gerekir. Çünkü döndürme işleminden sonra saldıran yönelticiler artık hedef anahtara veya birbirlerine yakın olmayacaktır.

Ağ boyutu büyüdükçe bu saldırı daha zor hale gelir. Bununla birlikte, son araştırmalar, anahtar uzayını döndürmenin özellikle etkili olmadığını göstermektedir. Bir saldırgan, çok sayıda yöneltici karma değerini önceden hesaplayabilir ve yalnızca birkaç yöneltici, döndürmeden sonraki yarım saat içinde anahtar uzayının bir bölümünü "tutturmak" için yeterlidir.

Günlük anahtar uzayı döndürmenin bir sonucu, dağıtılmış Ağ Veritabanı'nın (netDB) döndürme işleminden birkaç dakika sonra güvenilmez olmasıdır. Yeni "en yakın" yöneltici henüz bir depolama almadığı için aramalar başarısız olur. Sorunun kapsamı ve hafifletme yöntemleri (örneğin gece yarısı Ağ Veritabanı "terkleri") üzerinde daha fazla çalışılması gereken bir konudur.

Ön Yükleme Saldırıları

Bir saldırgan, yeniden oluşturulmuş bir web sitesini ele geçirerek veya geliştiricileri, yeniden oluşturulmuş web sitesini yönelticideki sabit kodlanmış listeye eklemeleri için kandırarak, yalıtılmış veya çoğunluğun denetimindeki bir ağda yeni yönelticiler başlatmayı deneyebilir.

Birkaç savunma önlemi alınabilir ve bunların çoğu planlanmıştır:

  • Yeniden tohumlama için HTTPS yerine HTTP iletişim kuralına dönülmesine izin vermeyin. Bir MITM saldırganı kolayca HTTPS erişimini engelleyip ardından HTTP iletişim kuralına yanıt verebilir.
  • Kurucuda yeniden çekirdek verilerinin paketlenmesi

Uygulanan savunmalar:

  • Yeniden tohumlama görevi, yalnızca tek bir site kullanmak yerine, birkaç yeniden oluşturulmuş sitenin her birinden bir Yöneltici Bilgileri (RouterInfo) alt kümesi alacak şekilde değiştirildi.
  • Yeniden tohumlanmış web sitelerini düzenli olarak yoklayan ve verilerin eskimiş veya ağın diğer görünümleriyle tutarsız olmadığını doğrulayan ağ dışı bir yeniden izleme hizmeti oluşturuldu.
  • 0.9.14 sürümünden başlayarak, yeniden tohumlama verileri imzalanmış bir zip dosyasında paketleniyor ve indirildiğinde imza doğrulanıyor. See the su3 specification for details.

Sorgu Yakalama

Ayrıca lookup bölümüne bakabilirsiniz (Referans: Aşağıdaki yatık yazılmış terimler için Hashing out in Public 2.2 ve 2.3 bölümleri)

Ön yükleme saldırısına benzer şekilde, otomatik doldurma yönelticisi kullanan bir saldırgan, referanslarını döndürerek, eşleri kendisi tarafından kontrol edilen bir yöneltici alt kümesine "yöneltmeye" çalışabilir.

Bunun keşif yoluyla çalışması pek olası değildir. Çünkü keşif düşük sıklıkla yapılan bir görevdir. Yönelticiler, eş referanslarının çoğunu normal tünel oluşturma faaliyeti yoluyla elde eder. Keşif sonuçları genellikle birkaç yöneltici karmasıyla sınırlıdır ve her keşif sorgusu rastgele bir otomatik doldurma yönelticisine yönlendirilir.

0.8.9 sürümünden başlayarak yinelemeli aramalar uygulanıyor. Bir aramaya I2NP veritabanı arama yanıtı iletisi (DatabaseSearchReplyMessages) ile döndürülen otomatik doldurma yönelticisi referansları için, bu referanslar arama anahtarına daha yakınsa (veya bir sonraki en yakınsa) izlenir. İstekte bulunan yöneltici, referansların anahtara daha yakın olduğuna güvenmez (yani, bunlar doğrulanabilir şekilde doğrudur. Arama, daha yakın bir anahtar bulunmadığında da durmaz, ancak zaman aşımına uğrayana ya da en fazla sorgu sayısına ulaşılana kadar sonfraki en yakın düğümünü sorgulanarak sürdürülür. Böylece, kötü niyetli bir otomatik doldurma yönelticisinin anahtar uzayının bir bölümünde kara delik oluşturması önlenir. Ayrıca, günlük anahtar uzayını döndürmek, bir saldırganın istenen anahtar alanı uzayında bir yöneltici bilgisini yeniden oluşturmasını gerektirir. Bu tasarım, Hashing it in Public bölümünde açıklanan sorgu yakalama saldırısının çok daha zor olmasını sağlar.

DHT Temelli Aktarıcı Seçimi

(Referans: Hashing it out in Public 3. bölüm)

Bunun otomatik doldurma ile pek bir ilgisi yoktur. Yine de tüneller için eş seçiminin güvenlik açıkları hakkında bir tartışmayı görmek için eş seçimi sayfasına bakın.

Bilgi Kaçakları

(Referans: In Search of an Anonymous and Secure Lookup 3. bölüm)

Bu belgede, Torsk ve NISAN tarafından kullanılan "Finger Table" DHT aramalarındaki zayıflıklaı ele alınmıştır. İlk bakışta, bunlar I2P için geçerli görünmüyor. İlk olarak, Torsk ve NISAN tarafındaki DHT kullanımı I2P üzerindekinden önemli ölçüde farklıdır. İkincisi, I2P Ağ Veritabanı aramaları, eş seçimi ve tünel oluşturma süreçleriyle yalnızca gevşek bir şekilde ilişkilidir. Tüneller için yalnızca önceden bilinen eşler kullanılır. Ayrıca, eş seçimi, herhangi bir DHT anahtar yakınlığı kavramıyla ilgisizdir.

Bunlardan bazıları, I2P ağı daha fazla genişlediğinde daha ilginç olabilir. Şu anda, her yöneltici ağın büyük bir bölümünü biliyor. Bu nedenle ağ veritabanında belirli Yöneltici Bilgilerini aramak, gelecekte bu yönelticiyi bir tünelde kullanma niyetinin güçlü bir göstergesi değildir. Belki ağ 100 kat daha büyük olduğunda, arama daha ilişkilendirilebilir olabilir. Tabii ki, daha büyük bir ağ, bir Sybil saldırısını çok daha zor hale getirir.

Ancak, I2P üzerindeki DHT bilgi sızıntısı genel konusunun daha fazla araştırılması gerekiyor. Otomatik doldurma yönelticileri, sorguları gözlemleyecek ve bilgi toplayacak bir konumdadır. Elbette, f = 0,2 (20% yazısında belirtildiği gibi; kötü niyetli düğümler) düzeyinde, tanımladığımız Sybil tehditlerinin çoğunun (burada, burada ve burada) belirtilen nedenlerle sorunlu hale gelmesini bekliyoruz.

Geçmiş

Ağ Veritabanı (netDB) tartışma sayfasına taşındı.

Gelecekte Yapılacak Çalışmalar

Ek Ağ Veritabanı (netDB) aramalarının ve yanıtlarının uçtan uca şifrelenmesi.

Arama yanıtlarını izlemek için daha iyi yöntemler.