I2P

Aus BoyWiki

Was ist I2P?

I2P (Invisible Internet Project) ist eine Java Anwendung, die ein Netzwerk aus allen I2P Teilnehmern aufbaut, in dem Web- und andere Dienste anonym genutzt werden können. Dazu wird die Verbindung über mehrere "Knotenpunkte" (Teilnehmer im I2P-Netz) getunnelt, verschlüsselt und ständig die Route gewechselt.

I2P gilt als im Prinzip besser und sicherer als andere Anonymisierungslösungen wie TOR oder JAP, hat aber noch wenige Nutzer, weshalb es noch nicht allzu viele Angebote gibt.

Welche Anwendungen gibt es?

Neben einem eingebautem Jetty Server zum schnellen anbieten von anonymen Webseiten (sogenannten Eepsites) gibt es noch:

  • IRC
  • Gnutella Client I2PHex
  • eMule Client iMule
  • diverse torrent Clients
  • I2P Messenger a la MSN/ICQ/AIM
  • EMail (anonym auch nach extern)
  • 2 Out-Proxys (zum browsen von normalen Webseiten)

Man kann auch das Web (z.B. diese Seite) weitestgehend ganz normal nutzen, nur eben recht langsam. Die eepsites kann man eigentlich nur über I2P nutzen. Allerdings gibt es auch vom WWW aus zugängliche Proxys über die man sie erreichen kann, ohne selber I2P installiert haben zu müssen, z.B. hier. Eine empfehlenswerte eepsite ist z.B. "Verleihnix", wo man viele Bücher im pdf-Format findet, die es im normalen Web aus Urheberrechtsgründen nicht gibt. Die anonyme Tauschbörse imule gibt wegen der geringen Teilnehmerzahl noch nicht so viel her.[1]

Technik und Sicherheit

Die Verbindung wird über mehrere Knotenpunkte getunnelt, und diese Tunnel werden alle paar Minuten verworfen und neu angelegt. Die alten Hash-Dateien werden gelöscht, sodass es im nachhinein unmöglich ist, mit Sicherheit festzustellen, welche IP welche Informationen abgerufen/angeboten hat.

Dabei nutzt I2P die IP Adressen der Teilnehmer nur zum direkten Verbinden von einem Teilnehmer zum ersten Knotenpunkt, alle anderen Aktionen (wie z.B. das Anbieten von einem Webservice oder das Aufrufen eines dieser Services) werden mit sogenannten "Destination IDs" gehändelt. Dieses sind 512bit lange Public Keys, die unabhängig von der IP (und der I2P Router ID) sind. Somit wird in I2P nicht versteckt, dass eine IP (bzw. dessen PC) an I2P teilnimmt, es wird nur versteckt, welche Services diese IP (der PC) anbietet und nutzt. Alle transportierten Daten werden in 3 Schichten verschlüsselt: End-To-End Verschlüsselung, Tunnel-Verschlüsselung und Hop-to-Hop-Verschlüsselung.

Wie funktioniert es genau?

Um dieses Ziel zu erreichen werden ähnlich zu TOR Tunnel aufgebaut. Der Server (Anbieter eines Services) baut seinen EINgangs-Tunnel über 0-7 andere I2P Router auf während der Client (Nutzer eines Services) seinen AUSgangs-Tunnel über 0-7 andere I2P Router aufbaut. Dabei entscheidet der Server über den Weg seines EINgangs-Tunnels (er sucht die 0-7 anderen I2P Router aus) und der Client über den seines AUSgangs-Tunnels. Somit gehen die Daten bei einer Anfrage vom Client über dessen AUSgangs-Tunnel und durch den EINGangs-Tunnel des Servers bis zum Server: Client -> AUS-TUNNEL -> EIN-TUNNEL -> Server. Der Weg der Daten vom Server zum Client geschieht über 2 weitere Tunnel, dieses mal in umgedrehter Reihenfolge: Server -> AUS-Tunnel -> EIN-TUNNEl -> Client. Für jeden Service gibt es also jeweils einen EIN- und einen AUS-Tunnel, ebenso bei jedem Client einen EIN- und einen AUS-Tunnel. Diese Tunnel werden alle 10 Minuten neu aufgebaut und nach max. 11 Minuten wird jeder Tunnel zwangsweise beendet.

Was kann I2P nicht? Welche Nachteile gibt es?

I2P ist nicht primär dazu gedacht, zu normalen Webservices zu verbinden (normale Internetseiten gehen zwar, aber recht langsam). Z.B. besucht man normale Webseiten weiterhin am besten mit TOR oder chattet auf den üblichen IRC Servern mit TOR. Auch kann I2P nicht die normalen Torrents "anonymisieren". I2P ist ein internes Netzwerk, alle Anwendungen müssen leicht adaptiert werden um einerseits mit den Destintion IDs zurecht zu kommen und andererseits um möglichst wenig komprimierende Daten preis zu geben. Z.B. sendet jeder IRC Client die IP seines PCs ungefragt mit an den IRC Server. IRC und HTTP Verbindungen klappen in I2P mit den üblichen IRC Programmen und Webbrowsern - die Daten werden im I2P Router gefiltert (Header und IP Adressen). Dennoch sollte man sich gewiss darüber sein, dass normale Browser NICHT für den anonymen Gebrauch gedacht sind!

Auch kann I2P nicht mit der Geschwindigkeit der normalen Webclients mithalten. Da jedes Datenpaket per default über min. 4 andere PCs geleitet wird, werden z.B. aus 10 MB Traffic vom Server bis zum Client 50 MB Traffic (für das gesamte I2P Netz). Auch durch die Verschlüsselung und generelle Latenzen im Netzwerk werden die Datenraten stark gesenkt. Die übliche Bandbreite auf einem Tunnel beträgt ca. 5-10 kb/sec. Jedoch können einzelne Anwendungen mehrere Tunnel bündeln und so auf Datenraten von >50 kb/sec kommen.

Da jeder teilnehmende Computer auch selbst als Knoten verwendet wird, wird das ganze mit zunehmender Teilnehmerzahl (im Moment sind es etwa 2000 [1]) auch immer anonymer. Allerdings verbraucht das dauernde Auf- und Abbauen von Tunneln viel Rechnerleistung und macht das System im Moment noch sehr langsam, erinnert etwas an die Anfangstage des Internets, auch von der Pionierstimmung her. Geduld braucht man auch, da es am Anfang sehr lange dauert, bis das System vom Programm "gelernt" wurde, d.h. alle teinehmenden Knoten bekannt sind.

Weblinks