I2P

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
I2P – Das Anonyme Netzwerk
I2P logo.svg
I2P 0.9.8.1.png
Basisdaten
Aktuelle Version 0.9.13
(22. Mai 2014)
Betriebssystem Plattformunabhängig
Programmier­sprache Java
Kategorie Overlay-Netzwerk, Sicherheitssoftware
Lizenz mehrere:[1] Gemeinfreiheit, BSD-Lizenz, GNU GPL, MIT-Lizenz, Artistic License
Deutschsprachig Ja
geti2p.net

I2P (Abk. für: Invisible Internet Project; deutsch: Unsichtbares-Internet-Projekt) ist ein Freie-Software-Projekt mit dem Ziel, ein anonymes und pseudonymes Netzwerk zu schaffen, welches eine einfache Übertragungsschicht mit dem Nutzen der Anonymität und Sicherheit für Anwendungssoftware zur Verfügung stellt. Das Netzwerk selbst ist nachrichtenbasiert (wie IP), bietet aber auch eine Bibliothek an, die Datenübertragung sowie Streaming von Daten erlaubt und TCP ähnelt. Die Kommunikation ist an beiden Enden mehrfach verschlüsselt, dafür werden insgesamt drei Schichten zur Verschlüsselung je Datenpaket verwendet. Auch die Empfangspunkte der Datenpakete sind wiederum durch Verschlüsselungsverfahren geschützt. Größtenteils bestehen diese aus einem Paar öffentlicher Schlüssel.

Obwohl die meisten der Software-Entwickler vorher Teil der „Invisible IRC Project“- und Freenet-Gemeinschaft waren, sind schon auf den ersten Blick deutliche Unterschiede zwischen deren Konzept und dem Design von I2P erkennbar. Invisible IRC ist ein anonymer, zentralisierter IRC-Server und Freenet ist ein zensurresistenter, über mehrere Clients verteilter Datenspeicher. I2P jedoch ist eine anonyme, über Peer-to-Peer verteilte Kommunikationsschicht, die dafür entworfen wurde, jedes herkömmliche Protokoll wie Usenet, E-Mail, IRC, HTTP, HTTPS, Telnet, XMPP, IPv4 und IPv6, genauso wie die traditionellen verteilten Anwendungen (z. B. Squid oder auch DNS) zu unterstützen. Es befinden sich verschiedene I2P-Dienste in Entwicklung wie z.B. Syndie (authentifizierbarer und anonymer Blog), I2PSnark (anonymer und integrierter BitTorrent-Client), eepsites (anonyme Webseiten), ein anonymes E-Mail-Programm sowie ein anonymer IRC.

Realisierung[Bearbeiten]

Der Kern der I2P-Anwendung ist in Java geschrieben. Eine Java-Laufzeitumgebung muss deshalb installiert sein. Zurzeit wird außerdem an einer Implementierung in C++ gearbeitet.[2]

Ein Teil der Dienste ist in Form von Webanwendungen integriert und über den Browser erreichbar. Die zentrale Rolle spielt hierbei die „Routerkonsole“ als Einstiegsseite.

Andere Dienste werden teilweise dadurch realisiert, dass der I2P-Dienst als Proxy (z. B. für HTTP, IRC, Mail, CVS) arbeitet, wobei er sich teilweise gegenüber dem jeweiligen Client wie ein normaler Server verhält. Auf diese Weise können dann die normalen Client-Programme, wie Firefox, eingesetzt werden, die lediglich auf den eigenen I2P-Server/Proxy umkonfiguriert werden müssen. Hierbei kommen meist abweichende 4-stellige Port-Nummern zum Einsatz.

Daneben gibt es noch speziell angepasste Zusatzprogramme: I2PSnark für BitTorrent im I2P-Netz und I2Phex, ein I2P-Gnutella-Servent. Die Netze I2P-Bittorrent und I2P-Gnutella sind ohne Verbindung zu ihren nicht-anonymen Vaternetzen, so dass hier Inhalte separat bereitgestellt werden müssen.

Versionsplanung[Bearbeiten]

I2P ist nach Einstufung der Entwickler eine Beta-Version und bietet noch nicht den angestrebten Grad an Anonymität. Dieser soll in einer Version 1.0 erreicht werden.

Schnittstellen[Bearbeiten]

I2PTunnel[Bearbeiten]

I2PTunnel ist eine in I2P eingebettete Anwendung, die es erlaubt, beliebige TCP/IP-Dienste über I2P zur Verfügung zu stellen.

SAM[Bearbeiten]

SAM ist ein Protokoll, welches es erlaubt, I2P-basierte Programme in einer größeren Auswahl von Programmiersprachen zu entwickeln.

BOB[Bearbeiten]

BOB ist eine weitere Schnittstelle, die es erlaubt, I2P-basierte Programme in einer größeren Auswahl von Programmiersprachen zu entwickeln.

Applikationen[Bearbeiten]

I2PSnark[Bearbeiten]

I2PSnark ist ein anonymer, in I2P als Web-Applikation integrierter BitTorrent-Client. Damit lassen sich spezielle I2P-BitTorrents unter Nutzung des I2P-Layers herunterladen oder auch erzeugen.

I2PSnark unterstützt außerdem Magnet-Links. Somit ist es möglich Dateien nur durch Austausch von Magnet-Links im Torrent-Netzwerk zu veröffentlichen.

I2PRufus[Bearbeiten]

I2PRufus ist ein anonymer, auf Rufus basierender BitTorrent-Client. Damit lassen sich spezielle I2P-Bittorrents unter Nutzung des I2P-Layers herunterladen oder auch erzeugen, es muss zusätzlich installiert werden.

Robert[Bearbeiten]

Robert ist eine Weiterentwicklung von I2PRufus. Statt SAM benutzt er BOB. Robert muss zusätzlich installiert werden.

i2p-bt[Bearbeiten]

i2p-bt ist ein Kommandozeilen-Bittorrent-Client für I2P.

Transmission for I2P[Bearbeiten]

Transmission for I2P ist eine Portierung des Bittorrent-Klienten Transmission auf das I2P-Netz.

I2Phex[Bearbeiten]

I2Phex ist ein auf dem Open-Source-Programm Phex basierendes P2P-Programm. Dieses bildet ein anonymes Gnutella-Netz innerhalb des I2P-Netzes. Es muss zusätzlich installiert werden. Die Diskussion und Koordination zu I2Phex findet in den Foren des Projekts statt.

iMule[Bearbeiten]

iMule ist ein auf aMule basierendes Programm für anonymes Filesharing über I2P.

Vuze[Bearbeiten]

Das Open-Source-Programm Vuze hat ebenfalls eine I2P-Funktion; allerdings konnte die Tauglichkeit bisher nicht reproduzierbar nachvollzogen werden, die Entwickler raten deshalb von der Verwendung ab.

Susimail[Bearbeiten]

I2P besitzt einen kostenlosen, pseudonymen E-Mail-Dienst, der von „Postman“ gehostet wird. Susimail wurde entwickelt, um Sicherheitslücken traditioneller E-Mail-Clients zu vermeiden. Diese Clients geben beispielsweise Auskunft über die tatsächliche Identität des Benutzers und gefährden somit die Anonymität.

I2P-Bote[Bearbeiten]

I2P-Bote ist ein Ende-zu-Ende verschlüsseltes, netzwerkinternes und völlig dezentrales, serverloses E-Mail-System. Es unterstützt das Erstellen und Verwenden verschiedener Identitäten und filtert die Mail-Header so, dass nur die wirklich notwendigen, nicht-identifizierenden Headerbestandteile verwendet werden (diese sind dann aber ebenfalls verschlüsselt). Diese Anwendung ist noch im Alpha-Stadium, befindet sich aber in aktiver Entwicklung. Derzeit kann man sie über das Webinterface benutzen, aber für die Zukunft ist POP3-Unterstützung geplant, sodass es mit jedem gängigen E-Mail-Programm verwendet werden kann. I2P-Bote bietet zusätzlich noch einen high-latency transport ähnlich wie mixmaster oder mixminion an, der eine noch stärkere Anonymität bieten soll. I2P-Bote ist somit auch als Remailer zu bezeichnen. Der ursprüngliche Autor bzw. Absender der Bote-Mail kann schon längst wieder offline sein, wenn die Bote-Mail bei den sie speichernden Knoten ankommt. Aber für all jene, die ein schnelles Versenden ihrer Bote-Mails bevorzugen, wird die zügige, nicht über viele andere Rechner weitergeleitete (außer natürlich über I2P) und verzögerte Methode des Versendens weiterhin bestehen bleiben. Jeder Benutzer kann selbst entscheiden, wie viel Anonymität und wie viel Geschwindigkeit er haben will.

Da alle Bote-Mails automatisch Ende-zu-Ende verschlüsselt werden, ist der Inhalt der Mail an keiner Stelle als Klartext lesbar, außer bei Absender und Empfänger selbst. Damit entfällt die Notwendigkeit, die bei normalen E-Mail-Systemen (und somit auch bei Susimail) noch besteht, sich selbst separat um die Verschlüsselung und Authentifizierung der E-Mails kümmern zu müssen, wenn man nicht will, dass beispielsweise der Betreiber des E-Mail-Servers den Inhalt der E-Mails lesen kann.

Aufgrund dessen, dass I2P-Bote völlig dezentral ist, gibt es natürlich auch keinen solchen Mailserver der verschiedene anonyme Identitäten miteinander in Verbindung bringen könnte (Stichwort: Profiling): Selbst die weiterleitenden und speichernden Rechner kennen weder den realen Absender noch dessen pseudonyme E-Mail-Adresse, und ausschließlich der letzte Knoten der 'high-latency' Mailrouten und die speichernden Rechner kennen überhaupt die anonyme Empfängeradresse. Und selbst für sie bleiben Betreff, Datum etc. uneinsehbar.

I2P-Messenger[Bearbeiten]

Seit Anfang 2008 gibt es ein Programm für Instant Messaging. Es basierte zunächst auf der .NET-Technik, wurde dann jedoch völlig umgeschrieben und ist nun als ein auf Qt basierender I2P-Messenger erhältlich. Der I2P-Messenger verbindet sich direkt (also ohne Zuhilfenahme eines zentralen Servers) über den lokalen I2P-Router mit dem Gesprächspartner. Beide Kommunikationspartner können also völlig anonym füreinander sein. Man kann den I2P-Messenger jedoch auch zum Umgehen der Vorratsdatenspeicherung und zur abhörsicheren, untraceable Kommunikation mit Freunden, Bekannten, Kollegen oder Geschäftspartnern nutzen. Da sämtliche Kommunikation über I2P geht, kann selbst der Internet Service Provider nicht feststellen, mit wem man eigentlich kommuniziert hat. Die Inhalte sind von Ende zu Ende verschlüsselt, und es gibt auch, wie oben erwähnt, keinen Server, über den sämtliche Kommunikation abgewickelt würde, der dann statistische Daten sammeln könnte. Die Entwicklung befindet sich derzeit noch in der Beta-Phase, aber er ist durchaus schon alltagstauglich, jedoch gibt es keine offline messages. Ab der kommenden Version unterstützt I2P-Messenger auch die Suche nach Benutzernamen oder Interessen.

Syndiemedia[Bearbeiten]

Syndiemedia, kurz Syndie, ist der Versuch, ein benutzerfreundliches und sicheres Blogging-Tool zu schaffen, welches die Techniken von anonymen und sicheren Systemen wie I2P, Tor, Freenet, MNet und anderen verwendet. Die Inhalts-Distributionsseite wird dabei vom verwendeten System losgelöst; Syndie lässt sich über das Web mit allen gängigen Anonymisierern nutzen. Syndie erlaubt Benutzern die Bildung netzwerkübergreifender Communitys, anstatt sich auf ein bestimmtes Netzwerk zu konzentrieren, und ist dadurch weniger von Trends abhängig.

Syndies Ansatz ist es, die Sicherheits-, Anonymitäts- und Kryptografiewelten mit der Einfachheit und dem Benutzerfokus der Bloggingwelt zu verschmelzen. Vom Benutzerstandpunkt her kann man Syndie als sicheres verteiltes LiveJournal sehen, während es technisch viel simpler aufgebaut ist. Im März 2007 wurde Syndie als eigenständiges Projekt unter dem Dach von I2P mit der Versionsnummer 1.005a herausgegeben. Aktuell ist derzeit (Juni 2013) die Version 1.103b.

IRC[Bearbeiten]

Es gibt in I2P auch mehrere IRC-Server. Diese können unter der Adresse localhost:6668 (bzw. bei einigen IRC-Programmen localhost/6668) erreicht werden, sofern I2P auf demselben Rechner läuft. Ansonsten ist die IP des Rechners zu verwenden, auf dem der I2P-Router läuft. Kanäle sind #i2p-de, #i2p-help, #i2p-chat und #i2p. Wenn man nicht anonym und über I2P diesen Räumen beitreten will oder kann, besteht noch die Möglichkeit des Zugangs via Freenode. Die Raumnamen sind dort dieselben und es gibt Changates.

Outproxy[Bearbeiten]

Die I2P-Community betreibt einen Outproxy. Ein solcher Outproxy erlaubt es den Nutzern, freigegebene Webseiten außerhalb des I2P-Netzwerkes aufzurufen.

Unterschied zu Tor[Bearbeiten]

Während Tor hauptsächlich anonyme Proxyserver für diverse Internet-Dienste wie IRC, E-Mail oder HTTP bietet, geschieht bei I2P primär alles innerhalb des Netzwerks. Der Vorteil dessen ist, dass dabei die Nutzdaten Ende-zu-Ende-verschlüsselt sind. Dies ist zwar auch bei Tor hidden services der Fall, nicht aber wenn man Tor einsetzt, um normale, öffentlich erreichbare Webservices zu benutzen.

Gleiches gilt für E-Mails, die über einen I2P-internen Server gehen (Susimail): Diese sind nur vom Sender bis zum Server und vom Server zum Empfänger verschlüsselt – I2P-Bote ist davon nicht betroffen, da es serverlos ist.

I2P kommt im Gegensatz zu Tor ohne zentrale Knotendatenbank (directory server) aus und ist somit vollkommen dezentral. Die Knotenliste wird bei I2P stattdessen durch die leistungsfähigsten Knoten (sogenannte floodfill peers) mit Hilfe des Kademlia-Algorithmus als verteilte Datenbank vorgehalten.[3] Da es keine Zentralinstanz mit der Knotenliste gibt, muss deshalb beim Start von I2P mindestens die Adresse eines anderen I2P-Teilnehmers bekannt sein, um am I2P-Netzwerk teilnehmen zu können. Von diesem Teilnehmer kann man dann die Informationen zu weiteren I2P-Knoten erhalten. Um dieses Startproblem zu umgehen, publizieren einige I2P-Teilnehmer regelmäßig die Knotenliste auf verschiedenen Websites. Der I2P-Client versucht diese Websites beim Start automatisch abzurufen, um darüber an Adressen von I2P-Knoten zu kommen.

Auch benutzt I2P ausschließlich unidirektionale Tunnel, was bei der Abwehr von Timing-Angriffen hilfreich ist, denn eine Anfrage und die Antwort darauf nehmen nicht denselben Weg. Allerdings verdoppelt dies auch die Anzahl aufgebauter Tunnel, was wiederum die Wahrscheinlichkeit erhöht, einen Tunnel mit Knoten aufzubauen, die unter der Kontrolle eines Angreifers liegen. Damit könnte für diesen Angreifer u. U. eine Deanonymisierung der Verkehrsbeziehung zwischen Sender und Empfänger möglich werden.

Ferner kommen bei I2P zusätzlich zum onion routing auch garlic messages zum Einsatz.[4] Diese realisieren die Ende-zu-Ende-Verschlüsselung innerhalb des I2P-Netzes und bündeln eine oder mehrere Nachrichten, die beim Empfänger gemeinsam entschlüsselt werden. Die einzelnen Nachrichten müssen dabei nicht alle unbedingt für den Empfänger selbst bestimmt sein, sondern können teilweise auch Weiterleitungs- und Verzögerungsanweisungen enthalten. Dies wäre insbesondere für nichtzeitkritische Dienste interessant, da die durch die Verzögerung realisierte zeitliche Entkopplung der Nachrichtenweiterleitung die Anonymität stärken kann. Allerdings ist diese Verzögerungsfunktion momentan nur angedacht und nicht implementiert.[5] Prinzipiell wäre I2P so auch ganz ohne Tunnelaufbau, d. h. allein durch Nutzung der Weiterleitungsfunktion innerhalb der garlic messages anonym verwendbar, indem die weiterzuleitende Nachricht selbst wieder eine garlic message für den nächsten Knoten in der Route ist usw. Standardmäßig wird diese Form der Nachrichtenweiterleitung aber nicht verwendet.

Im Jahr 2011 wurde ein Angriffsverfahren auf das I2P-Netzwerk dokumentiert und gezeigt, dass ein Angreifer mit moderaten Ressourcen die Identität eines HTTP-Dienstes (einer „Eepsite“) herausfinden kann.[6] Dieser Angriff ist laut den I2P-Entwicklern durch weitere Optimierungen an der Sicherheit (u. a. werden die Tunnel mittlerweile über 3 Router geleitet) nicht mehr möglich, zumal in der Zwischenzeit das I2P-Netzwerk an Benutzern stark gewachsen ist.

Quellenangaben[Bearbeiten]

  1. I2P Software Licenses, www.i2p2.de. Abgerufen: 9. Juni 2010.
  2. Partnership with Monero on C++ router, geti2p.net. Abgerufen: 23. Juni 2014.
  3. I2P Technical Introduction: Network Database. Abgerufen am 24. Februar 2012.
  4. I2P Technical Introduction: Garlic messages. Abgerufen am 29. August 2011.
  5. I2P Technical Introduction: Variable latency. Abgerufen am 29. August 2011.
  6. Herrmann, Michael (2011): „Auswirkung auf die Anonymit ̈at von performanzbasierter Peer-Auswahl bei Onion-Routern: Eine Fallstudie mit I2P“, Masterarbeit in Informatik, durchgeführt am Lehrstuhl für Netzarchitekturen und Netzdienste Fakultät für Informatik Technische Universität München, https://gnunet.org/sites/default/files/herrmann2011mt.pdf

Verwandte Projekte[Bearbeiten]

Weblinks[Bearbeiten]

Für die folgenden Links muss I2P installiert sein: