Wissenswertes über I2P - TEIL Igeschrieben von postman
postman@i2pmail.orgI2P (Invisible Internet Project) ist ein Projekt, welches die Entwicklung eines
anonymisierten Kommunikationsnetzwerks zum Ziel hat. Auf Basis von I2P soll es
möglich sein, verschiedenste, aus dem Internet bekannte Dienste in sicherer und anonymer
Form zu nutzen bzw anzubieten. Zusätzlich soll I2P in Zukunft noch eine Reihe selbst entwickelter
Services zur Verfügung stellen
Bitte werft einen Blick auf
www.i2p.net, um näheres zu erfahren.
Das Projekt hat sich mehrere Ziele gestellt
- Schutz gegen möglichst viele Bedrohungsszenarien
- Dezentralität
- höchstmögliche Skalierbarkeit
- Anwendbarkeit
- State of the art anonymität / Kryptoimplementierung
Bitte beachte, dass I2P per se kein klassisches P2P Netzwerk ist!!!Man kann es AUCH benutzen, um P2P Applikationen damit zu betreiben, jedoch bedürfen
diese einer entsprechenden Portierung. Zum aktuellen Zeitpunkt existiert bereits ein Bittorrent Port für I2P, sowie
ein Port des Phex Gnutella Client, genannt i2phex.
Das eigentliche Design sieht I2P als in sich geschlossenes Netzwerk. In- und Outproxies
existieren jedoch, um Dienste wie Internet HTTP Proxys oder das Senden/Empfangen von
E-Mails mit dem Internet zu ermöglichen.
-> Gegen welche Bedrohungsszenarien schützt mich I2P?
Beim Design wurden verschiedene sogenannte Thread Models beachtet.
Welche Thread Models es gibt, und mit welchen Mitteln I2P Euch vor
dem erfolgreichen Durchführen ebendieser schützen soll, könnt Ihr unter
http://www.i2p.net/how_threatmodelnachlesen. Ich werde später eine Einführung in die grundlegenden
Anonymisierungstechniken geben.
-> Wie ist der aktuelle Stand des Netzwerks?
Momentan befindet sich I2P in der Version 0.6.1.7 kurz vor dem Versionssprung zu 0.6.2.
Die I2P Knoten kommunizieren auf Basis eines UDP gestützten Protokolls namens SSU
(Semireliable Secure UDP) miteinander. Seit der Version 0.6 wird dieses Verfahren standardmässig
genutzt, und ist damit die Grundlage für eine Skalierbarkeit des Netzes. Aktuell nehmen am Netz
ca. 500-700 Knoten teil. Die Tendenz ist stabil wachsend. Eine offizielle Veröffentlichung und
Bekanntmachung ist mit der Version 1.0 geplant. Folgende Dienste wurden/werden erfolgreich
im I2P Netzwerk betrieben:
-> Anonym gehostete Webseiten ( sogenannte eepsites )
(inkl. Supportforum)
-> Anonymes IRC
-> Anoynme E-Mail ( inklusive Mail vom/zum Internet )
-> Anonymes Bittorrent
-> Anonymer NNTP Dienst
-> jabber/IM Dienste
-> gnutella Dienst ( i2phex)
-> Wie stellt denn I2P eigentlich Anonymität her?
(Die Definition des Begriffes Anonymität wird hier grosszügigerweise übergangen

)
Diese Frage ist für jeden interessant, der sich die (berechtigte) Frage stellt, wie ein
System jemanden schützen kann, obwohl am Ende trotzdem Rechner mit Hilfe von IP Paketen Daten austauschen.
Ich werde versuchen, es vertändlich zu machen...
Als erstes möchte ich sagen:
IP ADRESSEN SIND KEIN GEHEIMNIS IN I2PIch habe so manch einen erlebt, der diese Erkenntnis schockierend fand
Aber es geht nicht anders,denn die I2P-Router müssen sich ja trotzdem
miteinander auf Basis von Internettechnologien unterhalten. Und das
verlangt IP
Es ist aber ein Geheimnis, welches DEINE IP istI2P erlaubt dir Dienste im I2P Netzwerk zu nutzen, ohne dass eine der beteiligten Parteien
(auch die eingebundenen Router selbst) wissen, dass du Dienste nutzt oder welche du nutzt. Gleichzeitig erlaubt es dir,
Services im I2P Netzwerk anzubieten, ohne dass deine Nutzer wissen WO ( also auf welchem Router ) der Dienst
läuft und ohne dass du weisst, von WO aus deine Nutzer zugreifen. Server und Client geniessen den gleichen Schutz.
Ein wichtiger Aspekt in Bezug auf die Anonymität im I2P Netzwerk ist daher die Gesamtanzahl aktiver Router.
Je grösser sie ist, desto besser. ( Anonymity likes Company). Im aktuellen Moment
(500-700 Knoten) ist diese noch nicht sonderlich hoch
(aushol)
Normale Internetrechner kommunizieren über TCP / IP. IP sorgt dafür, dass ein Paket im
Netzwerk seinen Weg findet und TCP ( manchmal auch UDP ) adressiert einen Dienst auf dem Rechner ( Port )
und sorgt für Flusskontrolle / Vollständigkeit / Datenintegrität. Das System klappt, ist recht schnell, aber leider
direkt und ganz und gar nicht verschleiernd.
Manche Leute benutzen deshalb Proxies für bestimmte Dienste und verschleiern damit gegenüber dem Leistungsanbieter
die tatsächliche Absenderidentität. Diese ist DANN aber beim Proxybetreiber immer noch zu finden. Der Proxy
schützt in dem Moment auch nur den Client, da dieser sich vor dem Dienstanbieter verschleiert, nicht aber den Anbieter,
da dessen IP / Name natürlich öffentlich bekannt ist. Dazu kommt das der Proxybetreiber meine Clientidentität kennt
und unter Umständen nicht als vertrauenswürdig zu bewerten ist.
Normale Internetkommunikation ist dazu nicht verschlüsselt, also mit bestimmtem Aufwand mit zu schnüffeln.
Zuerst sollte man sagen: Alles, was I2P Router kommunizieren, ist verschlüsselt.
(Ich gehe daruf jetzt nicht näher ein)
Dazu kommt..
Wenn dein I2P Knoten hochfährt, baut er mehrere sogenannte Tunnel auf. Zum Tunnelaufbau werden dabei neben
deinem eigenen Knoten IMMER auch andere I2P Knoten benötigt, die dir dabei helfen. Ein Tunnel ist dabei
ein "Kommunikationskanal" über den dein Router Daten in das Netzwerk schickt, oder über den dein Router Daten aus dem
Netzwerk erhält. Für beide Richtungen werden unterschiedliche Tunnel aufgebaut. Dein Router sendet also Daten über andere
Tunnel, als er Daten empfängt. Meist baut dein Router nach dem Hochfahren zwischen 3-10 ausgehende Tunnel und einige
eingehende Tunnel auf.
+---------+ ausgehende Tunnel
|dein | -------------->
|Router | -------------->
| | -------------->
| |
| | Eingehende Tunnel
| | <--------------
| | <--------------
| | <--------------
+---------+
Ausgehender Tunnel in Nahaufnahme
+--------+ +---------+ +---------+ +--------+
|Dein | |HOP 1 | |HOP 2 | |Endpoint|
|Router |------->|Router |------>|Router |---->|Router |--------->
| | |der macht| |der macht| |der mit |Daten VON mir treten hier
| | |mit | |mit | |macht |in das Netzwerk und
+--------+ +---------+ +---------+ +--------+in das Gateway eines
eingehenden Tunnels
Kurz gesagt:
Ein Tunnel ist ein virtuelles Konstrukt. Er kommt zustande,
wenn dein Router andere Router bittet, ihm zur Datendurchleitung
zur Verfügung zu stehen. Im obigen Beispiel ist es ein ausgehender Tunnel,
der dargestellt wird
Alle, die im I2P Netzwerk Daten von mir empfangen, sehen nicht,
von welchem Router die Daten ursprünglich stammten. Statt dessen
erscheint der Endpoint Router als derjenige der die Daten versandt hat.
Das gleiche Schema kann man aber auch umkehren:
+--------+ +---------+ +---------+ +--------+
|Dein | |HOP 1 | |HOP 2 | |Gateway |
|Router |<-------|Router |<------|Router |<----|Router |<---------
| | |der mit | |der macht| |der mit |Daten FÜR mich treten hier
| | |macht | |mit | |macht |aus dem Netzwerk
+--------+ +---------+ +---------+ +--------+in das Gateway meines
eingehenden Tunnels
Daten, die meinen Router als Ziel haben, werden ebenfalls über einen
Tunnel an mich gesandt, die Daten treten am inbound Gateway ein hüpfen über die
anderen mitmachenden Router und werden dann von mir weiterverarbeitet.
Dein eigener Router macht übrigens auch mit. Abhängig von der Geschwindigkeit
deiner Anbindung und weiterer Konfigurationen ist dein Router nicht nur Anfangspunkt und Endpunkt deiner
eigenen Tunnel, sondern partizipiert an den ein/ausgehenden Tunnel anderer Router. Somit ergibt sich
eine Vermaschung, die eine Rückverfolgung bzw Datenanalyse erschwert. Damit transportierst du auch
den Verkehr anderer über deinen Router, welches es leichter macht, bestreiten zu können, dass dieser Verkehr
für dich selbst bestimmt war. ( Plausible Deniability )
Dein Router ist dabei ständig am Tunnel aufbauen, abbauen und umbauen und wird von anderen Routern
auch immer wieder gebeten an neuen Tunneln zu partizipieren. Es handelt sich um ein hochdynamisches System.
Das alles ist der Grundstein für ein leistungsfähiges gemixtes / verschlüsseltes Netzwerk.
Es ermöglicht aber noch keine Dienste und kein Routing im Netzwerk.
Wie das funktioniert, erkläre ich im zweiten Teil
postman