164 lines
12 KiB
HTML
164 lines
12 KiB
HTML
{% extends "_layout_de.html" %}
|
|
{% block title %}Einführung in die Arbeitsweise von I2P{% endblock %}
|
|
{% block content %}
|
|
<p>Die Webseite wird gerade überholt und dieses Dokument kann alte Informationen enthalten</p>
|
|
|
|
<p>I2P ist ein Projekt, welches ein Netzwerk zum sicheren und anonymen Kommunizieren planen, aufbauen
|
|
und betreuen wird. Nutzer von I2P haben die Kontrolle über die Verteilung zwischen Anonymität,
|
|
Verlässlichkeit, genutzter Bandbreite und Verzögerung. Es gibt keinen zentralen Punkt im Netzwerk,
|
|
welcher übernommen werden kann um die Integrität, Sicherheit oder Anonymität des Systems zu
|
|
komprimieren. Das Netzwerk kann sich in einer Reaktion auf Angriffe selber rekonfiguriern und
|
|
wurde so geplant, das es zusätzliche Ressourcen bei deren Verfügbarkeit nutzen wird.
|
|
Selbstverständlich sind alle Aspekte des Netzwerkes offen und frei verfügbar.</p>
|
|
|
|
<p>Im Gegensatz zu vielen anderen anonymen Netzwerken versucht I2P nicht die Anonymität durch
|
|
verstecken eines Teils einer Kommunikation, der Sender oder der Empfänger, herzustellen. I2P
|
|
wurde so geplant, das Nutzer von I2P untereinander anonym kommunizieren können - Sender und
|
|
Empfänger sind für den jeweils anderen anonym als auch für nicht beteiligte dritte. Zum Beispiel
|
|
gibt es zur Zeit I2P interne Webseiten (die anonymes Publizieren/hosten erlauben) und einen
|
|
HTTP Proxy in das normale Internet (der anonymes Browsing bietet). Server im I2P Netz betreiben
|
|
zu können ist eine essentielle Angelegenheit, da angenommen werden kann, das die Proxis ins
|
|
normale Internet überwacht werden, abgeschaltet werden oder gar zu schlimmeren Angriffen genutzt
|
|
werden.</p>
|
|
|
|
<p>Das Netzwerk selber ist Nachrichten basiert - es ist essentiell eine sichere und anonyme IP Schicht,
|
|
in der Nachrichten an kryptographische Schlüssel (Ziele) geschickt werden;die Nachrichten selber
|
|
können signifikant grösser als IP Pakete werden. Beispiele für die Nutzung des Netzwerkes sind
|
|
unter anderem "Eepsites" (Webserver mit normalen Webapplikationen innerhalb von I2P), ein
|
|
<a href="http://bitconjurer.org/BitTorrent/">BitTorrent</a> Klient ("I2Psnark") oder ein verteilter
|
|
Datencontainer. Mit der Hilfe von mihis <a href="i2ptunnel">I2PTunnel</a>
|
|
Applikation können wir die üblichen TCP/IP Anwendungen über I2P tunneln, z.B. SSH, IRC, ein squid
|
|
Proxy oder gar Audio. Viele Leute werden I2P nicht direkt nutzen oder nicht bemerken, das sie I2P
|
|
nutzen. Stattdessen sehen sie nur eine der I2P fähigen Anwendungen oder nur eine Einstellung für
|
|
verschiedene Proxies, die ihnen Anonyme Verbindungen anbieten.</p>
|
|
|
|
<p>Ein wichtiger Teil des Planens, Entwickelns und Testens eines anonymen Netzwerkes ist das
|
|
Definieren des <a href="how_threatmodel">Angriffsszenarios</a>, da es "echte" Anonymität nicht gibt,
|
|
nur steigende Kosten und
|
|
Aufwand jemanden zu identifizieren. Kurz gesagt: I2P Absicht ist es, Personen in willkürlichen
|
|
feindseligen Umgebungen einen militärischen Grad der Anonymität zu bieten, versteckt in dem
|
|
hinreichendem Datenstrom aus der Aktivität anderer Leute, die weniger Anonymität benötigen.
|
|
Dieses beinhaltet den Chat von Joe Sixpack mit seinen Freuden, den niemanden mitlesen kann,
|
|
Jane Filesharer, die weiß das die grossen Konzerne sie beim Tauschen von Dateien nicht
|
|
identifizieren können, als auch Will Geheimnisverräter, der geheime Dokumente veröffentlicht -
|
|
<i>alles in dem selben Netzwerk</i>, in dem eine Nachricht nicht von einer anderen unterschieden werden
|
|
kann.</p>
|
|
|
|
<h2>Warum?</h2>
|
|
<p>Es existieren eine unglaubliche Anzahl an fantastischen Gründen, weswegen wir ein System zum
|
|
anonymen Kommunizieren benötigen und jeder hat seine eigenen persönlichen rationalen Gründe.
|
|
Es gibt viele <a href="how_networkcomparisons">andere Bestrebungen</a>, die auf dem einem oder anderen Weg
|
|
unterschiedliche
|
|
Arten der Anonymität im Internet zu erreichen versuchen, aber wir fanden keine, die unsere
|
|
Anforderungen oder unser Angriffszenario abdeckten.</p>
|
|
|
|
<h2>Wie?</h2>
|
|
|
|
<p>In einer übersicht existiert das Netzwerk aus einer Gruppe von Knoten ("Router") mit einer
|
|
Anzahl an unidirektionalen virtueller Eingangs und Ausgangs Wege ("Tunnel", wie in der
|
|
<a href="how_tunnelrouting">Tunnel Routing</a> Seite beschrieben). Jeder Router wird duch eine kryptographische RouterIdentity
|
|
eindeutig indentifiziert, diese ist für gewöhnlich dauerhaft gültig. Diese Router kommunizieren
|
|
über vorhandene Transportmechanosmen (TCP, UDP, etc.) und tauschen verschiedene Nachrichten aus.
|
|
Klientprogramme haben ihre eigenen kryptographischen Ident ("Destination"), durch den sie
|
|
zum Senden und Empfangen von Nachrichten befähigt sind. Diese Klienten können zu irgendwelchen
|
|
Routern Verbindung aufnehmen und authorisieren ihre derzeitige Belegung ("lease") von ein paar
|
|
Tunneln, die zum Senden und Empfangen von Nachrichten durch das Netzwerk benutzt werden. I2P
|
|
hat eine eigene <a href="how_networkdatabase">Netzwerk Datenbank</a> ("Floodfill") zum skalierbaren sicherem Verteilen von Routing
|
|
und Kontaktinformationen.</p>
|
|
|
|
<div class="box" style="text-align:center;"><img src="_static/images/net.png" alt="Network topology example" title="Network topology example" /></div>
|
|
|
|
<p>Im oberen Bild betreiben Alice, Bob, Charlie und Dave je einen Router mit einer einzigen
|
|
Destination auf ihren lokalen Router. Sie haben alle ein paar 2-Hop Eingangstunnel je
|
|
Destination (mit 1,2,3,4,5 und 6 bezeichnet) und ein paar haben 2-Hop Ausgangstunnel.
|
|
Zur Vereinfachung sind Charlies Eingangstunnel und Daves Ausgangstunnel nicht eingezeichnet,
|
|
ebenso wie weitere Ausgangstunnel der Router (normalerweise so 5-10 Tunnel gleichzeitig).
|
|
Sobald Alice und Bob miteiander reden, sendet Alice eine Nachricht über ihren (pinken)
|
|
Ausgangstunnel in Richtung eines vons Bobs Eingangstunneln (grün, Tunnel 3 oder 4). Sie lernt
|
|
den Eingangstunnel durch eine Abfrage der Netzwerk Datenbank kennen, diese Datenbank wird
|
|
dauerhaft aktualisiert sobald neue Leases authorisiert sind und ältere auslaufen.</p>
|
|
|
|
<p>Antwortet Bob nun Alice, geschieht dieses auf der selben Art und Weise - er sendet eine Nachricht
|
|
über einen seiner Ausgangstunnel in Richtung eines von Alice Eingangstunnels (Tunnel 1 oder 2).
|
|
Um vieles einfacher zu machen, sind viele Nachrichten zwischen Bob und Alice in sogenannte
|
|
"<a href="how_garlicrouting">Garlics</a>" eingepackt, in denen die Lease Information vom Sender enthalten ist, so das der
|
|
Empfänger sofort antworten kann ohne in der Netzwerk Datenbank nach den benötigten Informationen
|
|
suchen zu müssen.</p>
|
|
|
|
<p>Um einigen Attacken aus dem Wege zu gehen ist I2P dezentral aufgebaut, ohne eine zentrale Instanz -
|
|
und wie schon richtig geraten existiert kein zentraler Verzeichnisdienst, der Informationen
|
|
zur Performance und Kontinuität der Router im Netzwerk verwaltet. Daraus folgt, daßjeder Router
|
|
eigene Profile verschiedener Router halten und pflegen muss. Ebenso ist jeder Router selber
|
|
verantwortlich für die Auswahl der korrekten Knoten um die Anforderungen an die Anonymität,
|
|
Performance und Konitnuität des Benutzers zu erfüllen, so wie es in der "
|
|
<a href="how_peerselection">Knoten Auswahl</a>" Seite beschrieben ist.</p>
|
|
|
|
<p>Das Netzwerk selber nutzt eine signifikante Anzahl von Kryptographischen Techniken und Algorhytmen -
|
|
die Liste umfässt 2048bit ElGamal Verschlüsselung, 256bit AES im CBC Modus mit PKCS#5 Padding,
|
|
1024bit DSA Signaturen, SHA256 Hashes, 2048bit Diffie-Hellmann vermittelte Verbindungen mit
|
|
Station-zu-Station Authentifizierung und <a href="how_elgamalaes">ElGamal / AES+SessionTag</a>.</p>
|
|
|
|
<p>Daten die über I2P gesendet werden, durchlaufen 3 Verschlüsselungen: garlic Verschlüsselung (zur
|
|
überprüfung ob die Nachrichten beim Empfänger angekommen ist), Tunnel Verschlüsselung (alle
|
|
Nachrichten, die durch einen Tunnel gehen, sind vom Tunnel Gateway bis zum Tunnel Endpunkt
|
|
verschlüsselt) und Zwischen-den-Routern-Transport-Schicht Verschlüsselung (z.B. benutzt der TCP
|
|
Transport AES256 mit Ephemeral Schlüssel).</p>
|
|
<p>Ende-zu-Ende (I2CP) Verschlüsselung (von Programm zu Programm) wurde in der I2P Version 0.6 deaktiviert;
|
|
Ende-zu-Ende (garlic) Verschlüsselung von Alice Router "a" zu Bobs Router "h" existiert weiterhin.
|
|
Bitte beachte im foglendem Bild den anderen Gebrauch der Wörter! a und h sind die I2P Router mit
|
|
der Ende-zu-Ende Verschlüsselung von Router zu Router, Alice und Bob hingegen sind die Programme
|
|
die mittels(unverschlüsseltem) I2CP mit den I2P Routern kommunizieren! Sprich: bis zum I2P Router
|
|
sind die Daten unverschlüsselt, ab dem I2P Router ist alles Ende-zu-Ende verschlüsselt.</p>
|
|
|
|
<div class="box" style="text-align:center;"><img src="_static/images/endToEndEncryption.png" alt="End to end layered encryption" title="End to end layered encryption." /></div>
|
|
|
|
<p>Die genaue Anwendung dieser Algorhytmen sind <a href="how_cryptography">woanders</a> beschrieben.</p>
|
|
|
|
<p>Die zwei Hauptbestandteile für den militärischen Grad der Anonymität sind explizite, verzögerte
|
|
garlic geroutete Nachrichten und mehr umfassende Tunnel mit Unterstützung von Pooling und Mixen
|
|
von Nachrichten. Diese Funktionen sind zur Zeit für Version 3.0 geplant, aber garlic geroutete
|
|
Nachrichten mit keiner Verzögerung und FIFO Tunnels sind schon implementiert. Zusätzlich wird
|
|
die Version 2.0 den Leuten erlauben, I2P hinter beschränkten Routen (möglicherweise mit vertrauten
|
|
Knoten) aufzusetzen und zu betreiben; ebenso werden die flexiblere und anonymere Transports
|
|
eingebaut werden.</p>
|
|
|
|
<p>Es kamen ein paar berechtigte Fragen bezüglich der Skalierbarkeit von I2P auf. Mit der Zeit werden
|
|
sicher detailiertere Analysen kommen, aber Knoten suchen und Integration sollte mit O(log(N))
|
|
Komplexität eingehen, während Ende-zu-Ende Nachrichten mit O(1) (frei skalierend) eingehen, da
|
|
Nachrichten durch K Hops im Ausgangstunnel und durch weitere K Hops im Eingangstunnel gehen -
|
|
die Grösse des Netzwerkes (N) hat hier keinen Einfluss.</p>
|
|
|
|
<h2>Wann?</h2>
|
|
<p>I2P startete im Februar 2003 als eine vorgeschlagene Modifizierung zu <a href="http://freenetproject.org">Freenet</a>, damit dieses
|
|
alternative Transports, wie z.B. <a href="http://java.sun.com/products/jms/index.jsp">JMS</a>, nutzen könne. Dann wuchs es in ein eigenes
|
|
'anonCommFramework' im April 2003, worauf es im July zu I2P wurde. Ersten Quelltext gab es im
|
|
August 2003, Version 0.2 folgte im September, 0.3 in März 2004, 0.4 im September 2004, 0.5
|
|
wurde Anfang 2005 veröffentlicht, gefolgt von Version 0.6 Mitte 2005. I2P folgt in der
|
|
Entwicklung der derzeitigen <a href="roadmap">Roadmap</a>.</p>
|
|
|
|
<p>Das Netzwerk selber ist noch nicht fertig zum allgemeinem Nutzen und sollte nicht von Leuten
|
|
mit Bedarf an Anonymität genutzt werden bevor es nicht ausführlichen überprüfungen stand
|
|
gehalten halt.</p>
|
|
|
|
<h2>Wer?</h2>
|
|
<p>Wir sind ein kleines <a href="team">Team</a> aus merhren Ländern aus verschiedenen Kontinenten, das an der
|
|
Weiterentwicklung von einzelnen Aspekten des Projektes arbeitet. Wir sind offen für weitere
|
|
Entwickler, die sich einbringen wollen und auch gegenüber jedem anderen, der etwas zum
|
|
Projekt beibringen kann, sei es Kritiken, Peer Review, Testen, schreiben neuer I2P
|
|
kompatibler Anwendungen oder aber auch Dokumentationen. Das gesamte System ist Open Source -
|
|
Der Router und ein Großeil des SDK sind zur Gänze Public Domain mit ein wenig BSD und
|
|
Cryptix Lizensiertem Code, wohingegen einige Anwendungen wie I2PTunnel und I2PSnark
|
|
GPL lizensiert sind.
|
|
Fast alles ist in Java (1.3+/1.5+) geschrieben, einige externe Anwendungen sind jedoch in
|
|
Python geschrieben. Der Code arbeitet im aktuellen Kaffee und wir hoffen ihn möglichst bald
|
|
auf <a href="http://gcc.gnu.org/java/">GCJ</a> lauffähig zu bekommen.</p>
|
|
|
|
<h2>Wo?</h2>
|
|
<p>Jeder mit Interesse an I2P sollte uns im #I2P IRC Raum (gehostet auf irc.freenode.net,
|
|
irc.postman.i2p und irc.freshcoffee.i2p) besuchen. Es gibt zur Zeit keine fest geplanten
|
|
Entwicklertreffen, dennoch existiert ein <a href="meetings">Archiv</a> von abgehaltenen Entwickler Treffen.</p>
|
|
|
|
<p>Der aktuelle Quelltext ist in <a href="monotone.html">Monotone</a> verfügbar.</p>
|
|
|
|
{% endblock %}
|