I2P
Z Wikipedii
I2P – sieć peer-to-peer z komutacją pakietów, szyfrowaniem transmisji oraz w pełni rozproszoną organizacją. Sieć ta powstała z modyfikacji sieci Freenet, zapoczątkowanych w lutym 2003 r.
Spis treści |
[edytuj] Działanie sieci
[edytuj] Budowa sieci
Brak centralnego węzła sieci zmniejsza jej podatność na awarie oraz ataki. Szyfrowanie przesyłanych paczek danych przez każdy z węzłów pośredniczących w transmisji znacznie utrudnia ustalenie prawdziwych adresów IP węzła źródłowego i docelowego oraz praktycznie uniemożliwia odczytanie właściwej informacji.
[edytuj] Mechanizm transmisji
Transmisja odbywa się poprzez jednokierunkowe tunele o krótkim czasie życia:
- tunele odbiorcze, gdzie cały ruch odbywa się w kierunku od sieci do węzła, który utworzył tunel
- tunele nadawcze, obsługujące ruch wychodzący od twórcy tunelu do sieci.
Jednokierunkowość tuneli bardzo upraszcza wyszukiwanie dróg dostępu do innych węzłów sieci oraz utrudnia analizę ruchu przez osoby postronne.
Przesyłane paczki noszą nazwę wiadomości. W celu wysłania wiadomości do wybranego węzła sieci I2P, węzeł nadawczy odpytuje rozproszoną bazę połączeń (netDb) o identyfikator bramy, poprzez którą można się skomunikować z węzłem docelowym. Następnie wiadomość zostaje wpuszczona do odpowiedniego tunelu nadawczego, z poleceniem przekazania jej do jednego z tuneli odbiorczych węzła docelowego.
Wiadomości mogą one być grupowane i zamykane w strukturze zwanej obrazowo główką czosnku (ang. garlic). Oprócz wiadomości (ząbków czosnku), główka zawiera informacje o tunelu nadawczym, przez który wysyłana jest paczka. Przyspiesza to znacznie ustalanie trasy, którą może być przesyłana wiadomość zwrotna od węzła docelowego.
[edytuj] Baza połączeń (netDb)
Każdy węzeł przechowuje i na bieżąco uaktualnia swoją część rozproszonej bazy połączeń (netDb), w skład której wchodzą:
- routerInfo – etykieta danego węzła w sieci I2P
- unikalny identyfikator (klucz kryptograficzny)
- adres IP i numer portu TCP, poprzez który odbywa się komunikacja z węzłem I2P
- data i czas publikacji etykiety
- nieokreślone opcje, do wykorzystania przez użytkownika
- sygnatura kryptograficzna powyższych informacji
- leaseSet – lista otwartych tuneli (odbiorczych oraz nadawczych), każdy z nich opisany przez
- czas wygasania dzierżawy
- identyfikator tunelu (4-bajtowa liczba)
- kryptograficzny identyfikator bramy (pierwszego węzła w tunelu).
Baza netDb służy do ustalania najbardziej optymalnych ścieżek dostępu do innych węzłów sieci I2P. Idea została oparta na algorytmach trasowania sieci Kademlia.
[edytuj] Szyfrowanie transmisji
Dane przesyłane przez sieć I2P podlegają szyfrowaniu na czterech warstwach:
- warstwa wiadomości (danych użytkownika, przesyłanych od węzła źródłowego do docelowego)
- warstwa obejmująca całą "główkę czosnku", tzn. zbiór wiadomości w połączeniu z informacjami pomocnymi w wyszukiwaniu trasy
- warstwa transportowa wewnątrz tunelu (między bramą z punktem końcowym tunelu)
- warstwa transportowa między bramami różnych tuneli
[edytuj] Oferowane usługi
Wewnątrz sieci I2P możliwa jest implementacja oraz korzystanie z usług o funkcjonalności identycznej z ich odpowiednikami w sieci Internet. W szczególności są to:
- serwery HTTP (umożliwiające publikację stron, tzw. epsites)
- serwery IRC
- serwery Telnet/SSH
- mechanizmy wymiany plików
- anonimowe serwery proxy dla WWW spoza sieci I2P
- anonimowe serwery SMTP/POP3