Bu sayfa son olarak 2011 Temmuz tarihinde güncellendi ve 0.8.7 yöneltici sürümü için geçerli.

Özet

Bu sayfada, daha teknik sayfalara, ayrıntılara ve özelliklere verilen bağlantılarla birlikte I2P tünel terminolojisine ve çalışma şekline genel bir bakış bulunur.

Giriş bölümünde kısaca açıklandığı gibi, I2P, bir dizi yöneltici üzerinden geçici ve tek yönlü yollar olan sanal "tüneller" oluşturur. Bu tüneller, geliş tünelleri (kendisine verilen her şeyin tüneli oluşturan kişiye doğru gittiği) veya gidiş tünelleri (tünel oluşturucunun iletilerini gönderen) olarak sınıflandırılır. Alice Bob kullanıcısına bir ileti göndermek istediğinde, onu (tipik olarak) var olan gidiş tünellerinden birine gönderir ve o tünelin uç noktasının iletiyi Bob kullanıcısının var olan geliş tünellerinden birinin ağ geçidi yönelticisine iletmesi için yönergeler vererek aktarır.

Alice, gidiş tünelini kullanarak, Bob'un geliş tüneli üzerinden bağlantı kurar

A: Çıkış Ağ Geçidi (Alice)
B: Çıkış Katılımcısı
C: Gidiş Uç Noktası
D: Geliş Ağ Geçidi
E: Geliş Katılımcısı
F: Geliş Uç Noktası (Bob)

Tünel sözlüğü

  • Tünel ağ geçidi. Bir tüneldeki ilk yöneltici. Geliş tünelleri için, "Ağ veritabanında" (NetDB) yayınlanan "Kiralama kümesinde" (LeaseSet) anılan yönelticidir. Gidiş tünelleri için ağ geçidi, kaynak yönelticidir (yukarıdaki A ve D gibi).
  • Tünel uç noktası. Bir tüneldeki son yöneltici. (yukarıdaki C ve F gibi)
  • Tünel katılımcısı. Ağ geçidi veya uç nokta dışında bir tüneldeki tüm yönelticiler (yukarıdaki B ve E gibi)
  • n sıçramalı tünel.Belirli sayıda yönelticiler arası sıçrama içeren bir tünel. Örnek:
    • 0 sıçramalı tünel. Ağ geçidinin de bir uç nokta olduğu bir tünel
    • 1 sıçramalı tünel. Bir ağ geçidinin doğrudan uç nokta ile görüştüğü bir tünel
    • 2 (ya da daha fazla) sıçramalı tünel. En az bir ara tünel katılımcısının bulunduğu bir tünel (yukarıdaki şekilde biri Alice'den giden, biri Bob'a gelen iki tane 2 sıçramalı tünel bulunuyor)
  • Tünel kodu. Bir tüneldeki her sıçrama için farklı ve yöneltciideki tüm tüneller arasında benzersiz olan 4 baytlık bir tamsayı. Tünel oluşturucu tarafından rastgele seçilir.

Tünel Oluşturma Bilgileri

Üç rolü (ağ geçidi, katılımcı, uç nokta) gerçekleştiren yönelticilere, görevlerini yerine getirmeleri için ilk Tünel oluşturma iletisinde farklı veri parçaları iletilir:

  • Tünel ağ geçidine şunlar iletilir:
    • Tünel şifreleme anahtarı. Sonraki sıçramaya gönderilen iletileri ve yönergeleri şifrelemek için kullanılan Kişisel AES anahtarı
    • Tünel "Başlatma vektörü" (IV) anahtarı. Sonraki sıçramaya çift "Başlatma vektörü" (IV) şifrelemesi için Kişisel AES anahtarı
    • Yanıt anahtarı. Tünel oluşturma isteğinin şifrelenmesi için Herkese açık AES anahtarı
    • Yanıt IV. Tünel oluşturma isteğinin yanıtını şifreleyen IV
    • Tünel kodu. 4 bayt tamsayı (yalnızca geliş ağ geçitleri için)
    • Sonraki sıçrama. Yoldaki bir sonraki yönelticinin hangisi olduğu (bu bir 0 sıçramalı tünel değilse ve ağ geçidi aynı zamanda uç nokta değilse)
    • Sonraki tünel kodu. Sonraki sıçramanın tünel kodu
  • Tüm ara tünel katılımcılarına şunlar iletilir:
    • Tünel şifreleme anahtarı. Sonraki sıçramaya gönderilen iletileri ve yönergeleri şifrelemek için kullanılan Kişisel AES anahtarı
    • Tünel "Başlatma vektörü" (IV) anahtarı. Sonraki sıçramaya çift "Başlatma vektörü" (IV) şifrelemesi için Kişisel AES anahtarı
    • Yanıt anahtarı. Tünel oluşturma isteğinin şifrelenmesi için Herkese açık AES anahtarı
    • Yanıt IV. Tünel oluşturma isteğinin yanıtını şifreleyen IV
    • Tünel kodu. 4 bayt tamsayı
    • Sonraki sıçrama. Yoldaki bir sonraki yönelticinin hangisi olduğu
    • Sonraki tünel kodu. Sonraki sıçramanın tünel kodu
  • Tünel uç noktasına şunlar iletilir:
    • Tünel şifreleme anahtarı. Uç noktaya (kendisi) gönderilen iletileri ve yönergeleri şifrelemek için kullanılan Kişisel AES anahtarı
    • Tünel "Başlatma vektörü" (IV) anahtarı. Uç noktaya (kendisine) çift "Başlatma vektörü" (IV) şifrelemesi için Kişisel AES anahtarı
    • Yanıt anahtarı. Tünel oluşturma isteğinin şifrelenmesi için Herkese açık AES anahtarı (yalnızca gidiş uç noktaları için)
    • Yanıt IV. Tünel oluşturma isteğinin yanıtını şifreleyen IV (yalnızca gidiş uç noktaları için)
    • Tünel kodu. 4 bayt tamsayı (yalnızca gidiş uç noktaları için)
    • Yanıt yönelticisi. Yanıtın gönderileceği tünelin geliş ağ geçidi (yalnızca gidiş uç noktaları için)
    • Yanıt tüneli kodu. Yanıt yönelticisinin tünel kimliği (yalnızca gidiş uç noktaları için)

Ayrıntılı bilgi almak için tünel oluşturma teknik özellikleri bölümüne bakabilirsiniz.

Tünel havuzu

Belirli bir amaç için birkaç tünel, tünel teknik özellikleri bölümünde açıklandığı gibi bir "tünel havuzu" olarak gruplandırılabilir. Bu özellik, yedeklilik ve ek bant genişliği sağlar. Yönelticinin kendisi tarafından kullanılan havuzlar "keşif tünelleri" olarak adlandırılır. Uygulamaların kullandığı havuzlar "istemci tünelleri" olarak adlandırılır.

Tünel uzunluğu

Yukarıda bahsedildiği gibi, her istemci, yönelticisinin en azından belirli sayıda sıçrama içerecek şekilde tüneller sağlamasını ister. Bir kişinin gidiş ve geliş tünellerinde kaç tane yönelticiye sahip olacağına ilişkin karar, I2P tarafından sağlanan gecikme, aktarım hızı, güvenilirlik ve anonimlik üzerinde önemli bir etkiye sahiptir. İletiler ne kadar çok eşten geçerse, oraya ulaşmak o kadar uzun sürer ve bu yönelticilerden birinin zamanından önce başarısız olması daha olasıdır. Bir tünelde ne kadar az yöneltici varsa, bir saldırganın trafik analizi saldırıları gerçekleştirmesi ve birinin anonimliğini delmesi o kadar kolay olur. Tünel uzunlukları istemciler tarafından I2CP seçenekleri ile belirlenir. Bir tünelde en fazla 7 sıçrama olabilir.

0 sıçramalı tüneller

Bir tünelde uzak yönelticiler olmadığında, kullanıcının çok temel bir makul reddedilebilirliği vardır (çünkü kimse onlara ileti gönderen eşin yalnızca tünelin bir parçası olarak iletmediğine emin değildir). Ancak, istatistiksel bir analiz saldırısı başlatmak ve belirli bir hedefe yönelik iletilerin her zaman tek bir ağ geçidi üzerinden gönderildiğini fark etmek oldukça kolay olacaktır. 0 sıçramalı gidiş tünellerinde istatistiksel analiz yapmak daha karmaşıktır. Ancak benzer bilgileri gösterebilir (ancak bir araya getirmek biraz daha zor olacaktır).

1 sıçramalı tüneller

Tünelde yalnızca bir uzak yöneltici ile kullanıcı, bir iç saldırgana karşı olmadığı sürece ( tehdit modeli bölümünde açıklandığı gibi) hem makul reddedilebilirliğe hem de temel anonimliğe sahiptir. Ancak, saldırgan, tüneldeki tek uzak yönelticinin genellikle güvenliği ihlal edilenlerden biri olmasını sağlamaya yetecek kadar sayıda yöneltici işletiyorsa, yukarıdaki istatistiksel trafik analizi saldırısını gerçekleştirebilir.

2 sıçramalı tüneller

Bir tünelde iki ya da daha fazla uzak yöneltici olduğunda, trafik analizi saldırısını bir araya getirme maliyetleri artar. Bu saldırıyı yapabilmek için birçok uzak yönelticisinin güvenliğinin ihlal edilmesi gerekir.

3 (ya da daha fazla) sıçramalı tüneller

Bazı saldırılara, duyarlılığı azaltmak için, en yüksek koruma düzeyi sağlamak amacıyla 3 ya da daha fazla sıçrama kullanılması önerilir. Ayrıca son çalışmalar 3 sıçramadan fazlasının ek koruma sağlamadığı sonucuna varmıştır.

Varsayılan tünel uzunlukları

Yöneltici, kendi keşif tünelleri için varsayılan olarak 2 sıçramalı tüneller kullanır. İstemci tüneli varsayılanları, I2CP seçenekleri kullanılarak uygulama tarafından belirlenir. Çoğu uygulama varsayılan olarak 2 veya 3 sıçrama kullanır.

Tünel sınaması

Tüm tüneller, bir gidiş tünelinden bir "Aktarım durumu iletisi" (DeliveryStatusMessage) göndererek ve başka bir geliş tüneline bağlanarak (her iki tüneli aynı anda sınayarak) oluşturucuları tarafından düzenli olarak sınanır. Bir dizi ardışık sınama başarısız olursa, tünel işlevsel değil olarak işaretlenir. Bir istemcinin geliş tüneli için kullanılıyorsa, yeni bir "Kiralama kümesi" (LeaseSet) oluşturulur. Tünel sınamasındaki başarısızlıklar, eş profilindeki kapasite değerlendirmesine de yansıtılır.

Tünel oluşturma

Tünel oluşturma, garlic yöneltme tarafından bir yönelticiye bir tünel oluşturma iletisi gönderilerek ve tünele katılmalarını isteyerek gerçekleştirilir (yukarıdaki gibi tüm uygun bilgiler ve şu anda 'boş' olan bir sertifika sağlanır, ancak gerektiğinde hashcash veya diğer boşta olmayan sertifikalar da desteklenir). Bu yöneltici gelen iletiyi tüneldeki bir sonraki sıçramaya iletir. Ayrıntılı bilgi almak için tünel oluşturma teknik özellikleri bölümüne bakabilirsiniz.

Tunnel encryption

Çok katmanlı şifreleme, tünel iletilerinin garlic şifrelemesi ile gerçekleştirilir. Ayrıntılı bilgi almak için tünel teknik özellikleri bölümüne bakabilirsiniz. Her sıçramadaki IV orada açıklandığı gibi ayrı bir anahtarla şifrelenir.

Gelecekte Yapılacak Çalışmalar

  • Sınamaların sayısını sarımsak dişleri ile sarmalamak, bireysel tünel katılımcılarını ayrı ayrı sınamak gibi diğer tünel sınama yöntemleri kullanılabilir.,
  • Varsayılan olarak 3 sıçramalı keşif tünellerine geçiş.
  • Uzak gelecekteki bir sürümde, havuz oluşturma, karıştırma ve artık oluşturma ayarlarını belirten seçenekler uygulanabilir.
  • Uzak gelecekteki bir sürümde, tünelin ömrü boyunca izin verilen iletilerin miktarı ve boyutuna ilişkin sınırlamalar uygulanabilir (300 iletiden ya da dakikada 1MB boyutundan fazla olamaz gibi).

Şunlara da bakabilirsiniz