I2p Projekt: Unterschied zwischen den Versionen
(→Tunnel, Router, Hops) |
(Update) |
||
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
|Beschreibung= i2p Project | |Beschreibung= i2p Project | ||
|Entwickler= I2P developers | |Entwickler= I2P developers | ||
− | |AktuelleVersion= 0.7. | + | |AktuelleVersion= 0.7.10 |
− | |AktuelleVersionFreigabeDatum= | + | |AktuelleVersionFreigabeDatum= 22. Januar 2010 |
|Architekturen= Plattformunabhängig, Cross-platform | |Architekturen= Plattformunabhängig, Cross-platform | ||
|Kategorie= Overlay-Netzwerk | |Kategorie= Overlay-Netzwerk | ||
Zeile 159: | Zeile 159: | ||
Hier kann angegeben werden wie viele Tunnel man als Ersatz bereithalten möchte falls einer mal abbricht. In der Regel sind die Links recht stabiel und es ist nicht nötig mehr als 1 Ersatztunnel anzugeben. | Hier kann angegeben werden wie viele Tunnel man als Ersatz bereithalten möchte falls einer mal abbricht. In der Regel sind die Links recht stabiel und es ist nicht nötig mehr als 1 Ersatztunnel anzugeben. | ||
+ | |||
+ | == Dienste, IP, DNS == | ||
+ | |||
+ | In i2p kann jeder einen eigenen Dienst anbieten wie auch im normalen Internet. Damit ein Dienst im i2p Netz erreichbar ist, benötigt man so etwas wie eine IP Adresse und ein DNS System. Ich möchte nur ganz kurz und grob darauf eingehen wie dies in i2p umgesetzt wird um anonymität zu bieten. | ||
+ | |||
+ | Zuerst wird für einen Dienst ein Schlüsselpaar erstellt wie man es auch aus dem PGP Bereich kennt. Generiert wird ein Privater Schlüssel welchen nur wir selbst behalten und dieser geheim ist, auch spricht man hier von dem geheimen Schlüssel. Zu diesem Privaten Schlüssel wird ein öffentlicher erstellt welcher dann im i2p Netz verteilt bzw. bekannt gemacht wird. | ||
+ | |||
+ | In der Fachsprache wird in bezug auf i2p dieser öffentliche Schlüssel auch als Destination Key oder nur Destination bezeichnet. | ||
+ | Der öffentliche Schlüssel ist also ein Name unter welchem der eigene Dienst zu erreichen ist bzw. unter dessen er den anderen zugänglich gemacht wird wie im normalen Internet die Domain z.B. www.linux-club.de eine ist. | ||
+ | |||
+ | Wer PGP kennt, kennt vielleicht auch deren Schlüssel und hat schon einmal einen solchen gesehen. Es ist ein sehr großer Ziffern und Zahlenblock welchen man sich unmöglich selbst merken kann. Diese vielen Buchstaben und Zahlen sind also unser Destination Key welchen man mit großer Sicherheit nur sehr ungern in seiner vollen Länge in die Browseradresszeile ein gibt. | ||
+ | |||
+ | Ein Destination Key hat im gesamten 516 Bit, diese Zeichenketten von vielen angebotenen Diensten im i2p Netz werden im i2p Verzeichnis in einer Datei namens host.txt gespeichert, jedenfalls die welche deinem Router bekannt geworden sind. Auch der eigene Private Schlüssel wird automatisch im Installationsverzeichniss von i2p abgelegt. | ||
+ | |||
+ | Beispiel eines öffentlichen Schlüssel: | ||
+ | <pre> | ||
+ | alice.i2p=L9jHUH7T0zvlR3V8Xx6QvuaskldfklsdjfkljfZzUwR1a1tuPsdfgsdfgsdEvumrmwoFoGum2Um0OPgh | ||
+ | -7GQqlwejkljsdasj~i97VliASvTnuXRctKx7RZbZrXs5k6NKyWqnjcF~ucSJuYAMXT-jwf0-94VaCmI6fGqIrCZOh | ||
+ | lhyXiWM08A8i5m-YDR2BKwb95r-C-8hhPUY-1oWBjmDzubopIPksjdhetwrsY~HKGbN4vfegQBOabcVCUSMHVS7LkN | ||
+ | Y1O~WEW06vSMVJKu1861q3773Ic~H~5Cm49P8jEenDhL0I5D0F9NuWKnp8fpzk3l20oWR82mZo2fhwks~QVEnJCYVU | ||
+ | iU6pfBdXSxszJ5gFAozLgd0JIyZkdjfhgurVyCNxsair~P~wjem7itTUTePTJ9heMVhQ4ZUTP6fgX1Oc1FeYqusJzg | ||
+ | TFScQyt5GRzPLGybqs9DvwI8jICGvB37K6kUqLVfkOjnjM8Ts5UUE-OfftAAAA | ||
+ | </pre> | ||
+ | |||
+ | Ab der i2p Version 0.7 werden auch grössere Zeichenvollgen wie 516 Bit unterstützt. | ||
+ | |||
+ | Damit das ganze etwas einfacher wird, werden die Destination Keys geHasht. Im genauen wird bei einer Hashfunktion oder Streuwertfunktion eine grosse Menge an Daten eingespielt, den Hashcode erzeugt welche dann als eine kleine Zielmenge ausgegeben wird. Letztenendes haben wir dann einen 32 Byte Hash. | ||
+ | <pre> | ||
+ | http://kajshdtgetd47rhagstehdtlh3fhcjzk7kdjfh8gw9s3yiwuez7er.b32.i2p | ||
+ | </pre> | ||
+ | |||
+ | Damit nun andere Leute an den eigenen öffentlichen Key kommen, kann dieser so wie er ist als 32 Byte Form weitergegeben werden oder man schreibt ihn in Foren oder IRCs etc, sowie den offenen und öffentlichen Adressbüchern. Aber nicht nur die User sollen mit diesem Key wissen wen sie damit erreichen können, auch deren Router. Immerhin müssen ja die Router die Tunnel zum angebotenen anonymen Dienst bauen. In den bereits genannten Bereichen kann man als Person ganz anonym im i2p Netz seine ID, Key, öffentlicher Schlüssel, etc. verbreiten, doch wie kömmt der Router nun zum angebotenen Dienst? | ||
+ | |||
+ | Eigentlich ganz einfach und gar nicht mal so schwer zu verstehen. | ||
+ | |||
+ | Alice hat eine eepSeite und möchte das andere diese erreichen können, dazu hat sie bereits ihre ID in einem Forum veröffentlicht. Wenn Alice bei sich eine eepSeite eingerichtet hat, werden dort eigens für diese Seiten entsprechende Tunnel bereit gestellt. Der Router von Alice, öffnet also ihre In-Tunnel für andere. Die Tunneltiefe sowie zusätzliche Hops oder auch Backup Tunnel und Anzahl können in der Router Software über das Webinterface für jeden Dienst der angeboten wird wie z.B. die eepSeite entsprechend eingestellt werden. Alleine das öffnen von In-Tunnels für andere, reicht jedoch noch nicht aus. Die geöffneten Out-Tunnel für diesen angebotenen Dienst, haben am Ende einen entsprechenden GateWay Router. Damit dies einfacher zu verstehen ist, habe ich mal eine Grafik dazu eingestellt. | ||
+ | |||
+ | |||
+ | [[Bild:I2p netdb.jpg|center|thumb|574px|Tunnel, Router, Hops, GateWay, NetDB]] | ||
+ | |||
+ | |||
+ | Alice hat in ihrem Router unter den Erkundungstunnel eingestellt das diese eine Tiefe von 3 haben sollen, sie erhält somit Erkundungstunnel mit zwei Zwischenroutern und einem weiteren Router bei diesem ihr eigener Tunnel aufhört. Dieser letzte Router der den Übergang zwischen ihrem Tunnel und dem nächsten herstellt wird als GateWay bezeichnet. Der Router von Alice macht also einen Hop (a) zum Router (B), dieser macht einen weiteren Hop (b) zum Router (C) welcher dann den letzten Hop (c) zum GateWay Router macht. | ||
+ | |||
+ | Genau diesen Weg welcher eben beschrieben wurde macht eure öffentliche ID, bzw. die von Alice in unserem Beispiel. Sie sendet ihre ID durch zwei Router bishin zum GateWay. Dieser GateWay Router (D) im Beispielbild sagt dann das er für 10 Minuten der entgegennehmende Router für die ID xxx ist. | ||
+ | 10 Minten nur deshalb, da in i2p alle 10 Minuten neue Tunnel aufgebaut werden. Damit aber jetzt auch andere Router wissen, welcher momentan der GateWay Router für Alice ist, muss der GateWay Router von Alice in einer sogenannten NetDB hinterlegen, das er für die 10 Minuten der GateWay Router von ID xxx ist. Der GateWay Router von Alice, verbindet sich also mit dem NetDB Router und Teil ihm mit das er derzeit der gültige GateWay für die ID xxx ist. Dies wird im NetDB Router dann in einer FloodFill Datenbank gespeichert welche nur eine Lookup-Table ist. Man spricht hier auch von FloodFill Routern. | ||
+ | |||
+ | Das tolle an der ganzen Sache ist also das in der NetDB eure ID gespeichert ist die direkt nicht zu euch sondern nur zu einem weiteren GateWay Router führt, jedoch von eurem Eingangstunnel, die ebenfalls wie die Ausgangstunnel aufgebaut werden. | ||
+ | |||
+ | Ihr als eigentliche Dienstanbieter seid somit anonym. Alle Tunnel und Verbindungen die nach 10 Minuten neu aufgebaut werden macht die Software automatisch im Hintergrund und unterbrechungsfrei. | ||
+ | |||
+ | Bobs Router würde bei einem Verbindungsaufbau zu Alice eine Anfrage beim FloodFill Router machen welcher GateWay Router den Service von Alice anbietet. | ||
+ | Da auch Bobs Router zu erreichen sein muss hat dieser zwar auch eine ID, jedoch wird eine reine Client ID nicht in der NetDB gespeichert. Der Client von Bob sagt bei der Anfrage der NetDB über welchen in-Tunnel Gateway er für eine Antwort zu erreichen ist. | ||
= ISP/Provider = | = ISP/Provider = | ||
Zeile 175: | Zeile 227: | ||
ein anonymer, in I2P als Web-Applikation integrierter Bittorrent-Client. | ein anonymer, in I2P als Web-Applikation integrierter Bittorrent-Client. | ||
+ | |||
+ | <center> | ||
+ | <gallery> | ||
+ | Image:I2psnark.jpg|i2pSnark | ||
+ | </gallery> | ||
+ | </center> | ||
== Syndiemedia == | == Syndiemedia == | ||
Zeile 183: | Zeile 241: | ||
Das aMule für i2p, basieren auf dem aMule Code, für i2p angepasst. | Das aMule für i2p, basieren auf dem aMule Code, für i2p angepasst. | ||
+ | |||
+ | == i2p Bote == | ||
+ | |||
+ | Bote ist ein Nachrichtensystem mit welches es möglich ist Nachrichten wie eMails an bestimmte Adressen zu senden. Hier bei kann dies ganz anonym geschehen ohne Absender oder mit Absenderadresse welche eine sehr lange eMail Destination ist. | ||
+ | |||
+ | <center> | ||
+ | <gallery> | ||
+ | Image:I2p_bote.jpg|i2p Bote | ||
+ | </gallery> | ||
+ | </center> | ||
== I2Phex == | == I2Phex == | ||
Phex basierendes P2P-Programm. | Phex basierendes P2P-Programm. | ||
+ | |||
+ | <center> | ||
+ | <gallery> | ||
+ | Image:I2phex.jpg|i2phex | ||
+ | </gallery> | ||
+ | </center> | ||
== Susimail == | == Susimail == | ||
für den Pseudonymen E-Mail-Dienst ''Postman'' im i2p. | für den Pseudonymen E-Mail-Dienst ''Postman'' im i2p. | ||
+ | |||
+ | <center> | ||
+ | <gallery> | ||
+ | Image:i2psusi.jpg|Webinterface SusiMail. | ||
+ | </gallery> | ||
+ | </center> | ||
== I2PTunnel == | == I2PTunnel == | ||
Zeile 215: | Zeile 295: | ||
* [http://forum.i2p2.de/index.php i2p Forum] {{englisch}} {{deutsch}} | * [http://forum.i2p2.de/index.php i2p Forum] {{englisch}} {{deutsch}} | ||
* [https://www.awxcnx.de/tor-i2p-proxy2.htm i2p Web Proxy GateWay] {{deutsch}} | * [https://www.awxcnx.de/tor-i2p-proxy2.htm i2p Web Proxy GateWay] {{deutsch}} | ||
+ | * [http://hydra.geht.net/tino/p2p/i2p/inproxy/ Web Proxy Tinos GateWay] {{deutsch}} | ||
* [http://www.planetpeer.de/wiki/index.php/Das_deutsche_I2P-Handbuch Handbuch] {{deutsch}} | * [http://www.planetpeer.de/wiki/index.php/Das_deutsche_I2P-Handbuch Handbuch] {{deutsch}} | ||
* [http://www.planetpeer.de/wiki/index.php/I2P Faq] {{deutsch}} | * [http://www.planetpeer.de/wiki/index.php/I2P Faq] {{deutsch}} |
Aktuelle Version vom 6. Februar 2010, 21:32 Uhr
Diese Beschreibung wurde mit folgenden Distributionen getestet: |
Invisible Internet Project | |
---|---|
i2p Project | |
Basisdaten | |
Entwickler: | I2P developers |
Aktuelle Version: | 0.7.10 |
letzte Veröffentlichung: | 22. Januar 2010 |
Stammbaum: | {{{Stammbaum}}} |
Architekturen: | Plattformunabhängig, Cross-platform |
Kategorie: | Overlay-Netzwerk |
Lizenz: | Free/Open Source - Multiple licenses Public domain, BSD, GPL, MIT, Artistic license |
Deutschsprachig: | ja |
Webseite: | i2p Webseite |
Inhaltsverzeichnis
Allgemein
i2p ist die Abkürzung für Invisible Internet Project und heisst ins deutsche übersetzt unsichtbares Internet Projekt. Es ist ein Overlay Netzwerk welches auf ein schon bestehendes Netzwerk auch Underlay genannt aufbaut. Das Underlay ist im Falle von i2p das herkömmlich Internet so wie wir es kennen. Zu Anfangszeiten war das Internet auch ein Overlay Netzwerk, über dem bestehenden Telefonnetz. Begonnen wurde mit dem i2p Projekt soweit mir bekannt ist im Jahr 2005, die meisten Leute kamen damals aus der Freenet-Gemeinschaft einem weiteren Overlay Netzwerk welches jedoch andere Ziele verfolgt.
i2p ist eine anonyme, über Peer-to-Peer verteilte Kommunikationsschicht die auch unsere herkömmlichen Protokolle unterstützt. Zu den herkömmlichen gehören zum Beispiel: Usenet, E-Mail, IRC, HTTP, Telnet, Jabber, Squid oder auch DNS. Es bietet auch eine Bibliothek an, die Streaming von Daten erlaubt und TCP ähnelt. Da bei den Verbindungen die Datenpakete mit vier Schichten verschlüsselt werden und die Empfangspunkte ebenfalls verschlüsselt arbeiten sind die Verbindungen wohl recht sicher einzustufen. Hierbei möchte ich jedoch erwähnen das es keine wirkliche 100% tige Sicherheit gibt, egal in welchem Netz, dies betrifft genauso Tor oder Freenet. Es wird versucht identitätskritischen Anwendungen eine einfache Schicht zum sicheren Kommunizieren zu geben. Wenn man i2p in eine bestimmte Netzwerkart einordnet, so gehört es zu den Mixnetzwerken.
Cryptography
i2p arbeitet mit verschiedene Methoden gleichzeitig.
- 2048bit ElGamal
- 256bit AES im CBC Modus mit PKCS#5 Padding
- 1024bit DSA Signaturen
- SHA256 Hashes
- 2048bit Diffie-Hellmann
Wer hierrüber genaueres erfahren möchte sollte vollgenden Link besuchen.
http://www.i2p2.de/how_cryptography
i2p
i2p ist nicht wie Tor zum anonymen Surfen im Internet gedacht, auch wenn es entsprechende Proxy Server gibt die es einem ermöglichen. Wer sich in das i2p Netzwerk begibt, muss sich dieses wie ein eigenes weiteres Netzwerk vorstellen welches mit dem grossen Internet Underlay nichts mehr zu tun hat. In i2p werden wie auch im normalem Internet verschiedene Dienste angeboten, diese sind jedoch untereinander nur im i2p Netzwerk miteinander verbunden. Es wird so zum Beispiel ein Maildienst angeboten mit eigenem eMail Postfach. Hier registriert man sich seine i2p eMail Adresse und erhält ein ca. 50MB großes POP3/IMAP Postfach. Zu erwähnen wäre hier, das dieser Maildienst es sogar ermöglicht eMails ins normale Internet zu schicken und auch aus diesem Mails zu empfangen. Dieser Service wird jedoch von einzelnen Usern im i2p Netzwerk angeboten und gehört nicht offiziell zum i2p Netz. Genauso findet man weitere Dienste wie IRC, P2P, IM, usw. auch Wikis, Blogs, Foren und eigene Webseiten im i2p Netz eepSites genannt sind dort anzutreffen. Durch einen i2p Proxy Dienst der ebenfalls innerhalb von i2p angeboten wird ist es auch möglich Webseiten im normalen Internet anzusurfen. Aber auch hier muss erwähnt werden das diese Dienste von Privaten Personen betrieben werden und nicht zum i2p Netz gehören.
Konfigurationen
Die Konfiguration von i2p wird über ein Webinterface recht einfach gemacht. Die Konfiguration bei i2p ist ähnlich wie die bei Tor. Der Browser muss auf HTTP Proxy: 127.0.0.1 sowie Port: 4444 stehen. Im Anschluss ist die Router Konsole unter http://127.0.0.1:7657/index.jsp zu erreichen. Man hat eine ganze Fülle an diversen Einstellmöglichkeiten im Webinterface welches zudem in diversen Sprachen zu Verfügung steht. So ist es beispielsweisse möglich diverse Einstellungen zu den einzelnen Tunnel zu machen. Es kann so eingestellt werden das man für einen Tunnel bis oder mehr als 6 Hops macht, was jedoch sehr langsam dafür sehr sicher wäre. Hat die Gegenstelle ebenfalls derart Hohe Werte da diese vielleicht ebenfalls so paranoid ist wird die Verbindung nur tröpfeln, dafür sehr hohe Sicherheit bieten. Zudem kann nicht nur die Länge der Tunnel, sondern auch die Anzahl sowie die BackupTunnels und weiteres eingestellt werden. Auch die Bandbreite kann entsprechend frei gegeben werden so das man ein Limit setzen kann.
Java
i2p ist auf allen gängigen Platformen verfügbar da es in JAVA geschrieben ist. Wer i2p auf seinem Rechner installieren will, sollte unbedingt das originale SUN-JRE Java von http://www.java.com/ installieren und verwenden. Bei anderen tritt heufig das Problem auf das extrem hohe CPU Last entsteht und das gesamte System an seine Grenzen stösst bezüglich der Auslastung welche sich durch extrem hohe Load Werte bemerkbar macht.
Installation
Grafisch
Die Installation gestaltet sich sehr einfach, hierzu ladet man sich das derzeit neuste i2p von der Originalseite http://www.i2p2.de/download.html herunter. Auch für die Linux Distributionen kann der Graphical Installer als exe Datei verwendet werden.
java -jar i2pinstall_xx.xx.xx.exe
Nach der Installation kann i2p mit runplain.sh gestartet werden. Ist dies geschehen, so muss zu Beginn einige Zeit gewartet werden bis sich der Router mit ein paar weiteren Peers verbunden hat, erst dann kann man langsam auf Erkundungsreise gehen. Man sollte mindestens mit 10 weiteren verbunden sein was spätestens nach ca. 10 Minuten der Fall sein sollte. Für ein gut funktionierendes Peer-Verzeichnis kann es auch bis zu 30 Minuten dauern. Auf der Routerkonsole im Browser sind zudem die ersten Anlaufstellen zu den wichtigsten Diensten und Seiten verlinkt.
Nicht grafisch
Eine nicht grafische Installation kann mit
./postinstall.sh
gestartet werden. Nach dem starten werden ein paar Dinge konfiguriert und der i2p Dienst wird gestartet, was ein bisschen dauern kann. Wenn ich mich nicht irre, wurde sogar ein Eintrag unter /etc/init.d hinzugefügt welches den i2p Dienst automatisch starten lässt, jedenfalls war dies bei einer früheren Installation auf einem meiner Rechner mal so. Da ich jedoch nicht sicher bin und es genau sagen kann, weiße ich einfach mal darauf hin hier eventuell nachzusehen.
Update
Die i2p Software kann über die Routerkonsole so konfiguriert werden das sie sich selbst automatisch updatet. Es wird die neuste Version aus dem i2p Netz geladen und kann durch einen Restart aus dem Routermenü automatisch ohne Zutun installiert werden.
Surfen
Nach erfolgreicher Installation und Konfiguration des Browser, sollte einem i2p nach ein paar Minuten mit genügend Peers zum surfen bereit sein. Im i2p Netzwerk werden die dortigen Seiten als eepSites bezeichnet, sie tragen die Endung .i2p und werden auch so in die Browserzeile eigegeben. Wird eine Domain einer normalen Webseite des Internets eingegeben, so wird diese Verbindung ebenfalls ueber das i2p Netz und dessen GateWay Proxy aufgebaut. Man sollte bei den Tunneleinstellungen diese zu anfangs auf default lassen und sich erst später an deren Konfiguration machen. Die Latenz Zeiten liegen bei ca. 4 bis 15 Sekunden wenn man surft.
Bilder
Anonymität
Für Anonymität muss man Performance Einbussen hinnehmen. Entweder man verwendet wenig Tunnel mit wenig Hops, und hat eine gute Performance, oder man setzt auf mehrere Tunnel mit mehreren Hops, ist langsamer dafür jedoch anonymer. Setzt man bei sich selbst eine hohe Tunneltiefe von zum Beispiel 4, dazu noch ein +/- 0-1 kann ein weiterer Hop dazu kommen und hat die gegenstelle nur die default werte von 2 Tunnel eingestellt, wird ein Tunnel mit einer Tiefe von 6 oder +/- 1 = 7 Tunnel aufgebaut. Da die Einstellungen recht hoch eingestellt werden können, sind Tunnellängen von 10 Hops möglich.
Ich behaupte einfach mal das man bei dieser Länge und oben genannten Verschlüsselungen sehr Anonym unterwegs ist. Ich wurde sogar sagen das einem hier eine grössere Sicherheit wie bei Tor geboten wird, wobei Tor ganz klar andere Ziele verfolgt dei das reine Surfen im Web betreffen.
Lässt man einen i2p Router bei sich auf dem Rechner oder einem Server laufen, nimmt man am i2p Netz Teil, zur selben Zeit, wird über den eigenen Router der Traffic von anderen die ebenfalls im i2p Netz teilnehmenden geleitet. Hierbei ist es jedoch nicht wie bei Tor mit seinen Exit Nodes, diese gibt es im i2p Netz defaul nicht! Es wird rein nur Traffic durchgeleitet, eben als Node. Dieser Treffic wird für die Anonymität verwendet, indem in diesem einzelne Datenpakete verschlüsselt und versteckt mitgeleitet werden. Aus diesem Grunde ist es für das i2p Netz gut, wenn z.B. P2P Anwendungen laufen welche ebenfalls Traffic bieten um weitere Pakete darin verstecken zu können.
Man sollte jedoch bedenken das man mit der Anzahl der Tunneltiefe, diese nicht nur sicherer macht, sondern auch mehr eigener Traffic entsteht, der wiederum längere Zeit durch das viele weiterleiten benötigt. Ich würde nicht mehr als 3 für die Tunneltiefe verwenden. Zudem eine Zufallskomponente von + 0-1, was heisst das eventuell 0 oder +1 dazu kommt, von meiner Seite aus. Was die Gegenstellen konfiguriert haben, weiß man selbst nicht und muß ebenfalls noch dazu gerechnet. Je mehr Tunnel man hat, desto mehr kann man zur selben zeit versenden und empfangen, hier ist ebenfalls eine 3 ein guter Wert. Sollte einer der Tunnel abbrechen, so springt ein Ersatztunnel ein, von dessen man nicht mehr als 1 benötigt. Alles darüber benötigt nur mehr Leistung und Bandbreite.
Tunnel
Die Tunnel in i2p sind nur für 10 Minuten gültig, danach werden neue aufgebaut.
Erkundungstunnel
Die Erkundungstunnel dienen dazu reine Informationen zu übertragen die der eigene Router benötigt. Diese Informationen sind Anfragen zu anderen Routern, deren Zeiten, Tunnellängen usw. worüber entschieden wird welche Tunnelverbindungen der eigene Router zu welchen anderen Routern aufbaut etc. Geschwindichkeitsmessungen, wie viel Treffic durchgeht, ob die Router frei oder voll, langsam oder schnell sind etc. Somit sind die Erkundungstunnel auch für die eigene Integration im i2p Netz zuständig.
Kliententunnel
Die Kliententunnel sind die eigentlichen Datentunnel, hier geht der Traffic der eepSites durch die man eben besucht oder der Treffic von dessen was man eben downloadet. Zusatztools wie P2P Programme oder Torrents, fallen nicht unter diese Tunnel. Entsprechende Einstellungen für diese Tools werden in den einzelnen Programmen vorgenommen.
Tunnel, Router, Hops
Im obigen Bild versuche ich das ganze in grafischer Form darzustellen. Es ist ein Blauer Tunnel zu sehen und ein roter Tunnel. Der Blaue Tunnel wurde von Alice aufgebaut und hält sich an ihre gewünschte Konfiguration. Der Rote Tunnel von Bob hält ist an die von Bob vorgenommenen Einstellungen. Alice möchte Bob ein Paket schicken, dieses Paket wandert über den out Tunnel blau von Alic ihrem Router (A) zu Router (B). Der Sprung von Router (A) zu Router (B) wird als Hop bezeichnet. Ist das Paket bei Router (B) angekommen, so wird es weiter durch den blauen out Tunnel von Alice zum nächsten Router (C) gesendet. Der Sprung von Router (B) zu Router (C) wird wieder als Hop bezeichnet. Alice hat somit ihr Paket welches für Bob bestimmt ist durch ihren out Tunnel gesendet. Hierbei hat das Paket zwei weitere Router in ihrem blauen Tunnel passiert und hat somit zwei Hops gemacht. Alice hat in ihrem i2p Router eingestellt, das ihr out Tunnel, eine Tunneltiefe von 2 Hops machen soll. Je höher der Wert für die Tunneltiefe eingestellt ist, desto mehr Hops werden gemacht, desto mehr andere Router werden zum weiterleiten verwendet, desto länger benötigt das Paket bis es ankommt, desto anonymer ist das Paket von Alice. Da Alice in ihrer Konfiguration 2 bei der Tunneltiefe eingestellt hat und das Paket nun seine zwei Hops gemacht hat und bei Router (C) liegt, endet der out Tunnel von Alice auf welchen sie mit ihren Einstellungen Einfluss nehmen kann. Da Alice ihren Router beauftragt hat das Paket an Bob zu schicken, sorg Bobs Router (F) dafür, das ein input Tunnel für Bon aufgebaut wird dessen Eigenschaften von Bobs Einstellungen für einen input Tunnel abhängig sind. Bon hat für seinen input Tunnel die selben Einstellungen wie Alice für ihren output Tunnel. Alle Pakete sollen über zwei Hops laufen. Da das Paket von Allice derzeit bei Router (C) liegt und dieser es erst über einen weiteren Hop (c) senden muss welcher wiederum genau zwischen den Tunnel out/in liegt wird dieser nicht in den Router Einstellungen als Hop oder Tunneltiefe mitgerechnet. Wir haben somit zwar drei Hops gemacht um unser Paket in den input Tunnel von Bob zu schicken, aber nur zwei in unseren Einstellungen bei Alice angegeben. Wurde der dritte Hop (c) gemacht und befindet sich das Paket bei Router (D) im input Tunnel von Bob, wird es mit Bobs Konfiguration bis zu seinem Router (F) gesendet. Seine Einstellungen ist die selbe wie sie von Alice verwendet wird. Bob hat also eine Tunneltiefe von 2 eingestellt und möchte somit zwei Hops in seinem input Tunnel haben. Den ersten Hop (d) macht das Paket indem es von Router (D) zu Router (E) springt. Den zweiten von Bob vorgegebenem Hop macht das Paket beim Sprung von Router (E) zu Bobs Router (F).
Sowohl Alice wie auch Bob haben in ihren Einstellungen eine Tunneltiefe von 2 angegeben was im Tunnel für mind. 2 Hops sorgt. Dies sowohl im Tunnel von Alice welches sie Konfiguriert hat wie auch im Tunnel von Bob der für seinen entsprechende Einstellungen vorgenommen hat. zu diesen 2+2 Hops, kommt noch der Hop (c) zwischen in/out Tunnels der beiden dazu. Am Ende haben wir also unser Paket mit 5 Hops zu Bob geschickt und in unserer Konfiguration nur 2 angegeben.
Die Standart Einstellungen in i2p sind diese 2 Hops wie auch im Beispiel zu sehen. Man kann davon ausgehen das die i2p User i.d.R. die Werte eher anheben anstelle senken. Der eine kann 2, der andere 4 Hops bei sich einstellen, somit ist die Anonymität höher wie wenn beide nur 2 Hops eingestellt hätten. Selbes kann aber auch unsicherer sein indem die Gegenstelle vielleicht nur 1 Hop eingestellt hat. Man sollte sich nicht auf andere verlassen und seine eigenen Einstellungen entsprechend wählen. Gerne verwendet User beim P2P Betrieb über i2p etwas geringere Werte damit sie einen schnelleren Download erreichen was jedoch auf die Sicherheit geht!
Alles in allem kann ich selbst eine Tunneltiefe von 3 empfehlen.
Zufallskomponente
In den Routereinstellungen gibt es zudem noch einen Zufallskomponente. Hier sind Einstellungen wie + 0-1 Zwischenstationen, + 0-2 Zwischenstationen oder +/- 0-1 Zwischenstationen möglich. Wird hier + 0-1 Zwischenstationen gewählt, kann es sein muss aber nicht das der Eigene Router für eine Router einen weiteren Hop möchte. Meist wird dieses kann gemacht wenn generell recht schnell reagierende, antwortende oder schnelle Router verwendet werden könnnen. Bei der Einstellung +/- 0-1 Zwischenstationen kann sogar ein Hop wegfallen und die Sicherheit wird geringer dafür die Verbindung schneller.
Eine Verbindung zu einem anderen Router kann jetzt gerade gut und schnell gehen, sowie bei gleichen Einstellungen eine halbe Stunde später grotten langsam. Da die Tunnel nur 10 Minuten leben, werden nach diesen 10 Minuten wieder neue Aufgebaut mit anderen Routern die eventuell auch andere Geschwindigkeiten bieten.
Tunneltiefe
Gibt an wie viele Hops in den eigenen in/out Tunneln mind. gemacht werden müssen.
Anzahl
Hier kann eingestellt werden wie viele Tunnel selbst max. aufgebaut werden können. Diese einstellungen können für den input wie auch für den output Tunnel vorgenommen werden.
Ersatztunnel
Hier kann angegeben werden wie viele Tunnel man als Ersatz bereithalten möchte falls einer mal abbricht. In der Regel sind die Links recht stabiel und es ist nicht nötig mehr als 1 Ersatztunnel anzugeben.
Dienste, IP, DNS
In i2p kann jeder einen eigenen Dienst anbieten wie auch im normalen Internet. Damit ein Dienst im i2p Netz erreichbar ist, benötigt man so etwas wie eine IP Adresse und ein DNS System. Ich möchte nur ganz kurz und grob darauf eingehen wie dies in i2p umgesetzt wird um anonymität zu bieten.
Zuerst wird für einen Dienst ein Schlüsselpaar erstellt wie man es auch aus dem PGP Bereich kennt. Generiert wird ein Privater Schlüssel welchen nur wir selbst behalten und dieser geheim ist, auch spricht man hier von dem geheimen Schlüssel. Zu diesem Privaten Schlüssel wird ein öffentlicher erstellt welcher dann im i2p Netz verteilt bzw. bekannt gemacht wird.
In der Fachsprache wird in bezug auf i2p dieser öffentliche Schlüssel auch als Destination Key oder nur Destination bezeichnet. Der öffentliche Schlüssel ist also ein Name unter welchem der eigene Dienst zu erreichen ist bzw. unter dessen er den anderen zugänglich gemacht wird wie im normalen Internet die Domain z.B. www.linux-club.de eine ist.
Wer PGP kennt, kennt vielleicht auch deren Schlüssel und hat schon einmal einen solchen gesehen. Es ist ein sehr großer Ziffern und Zahlenblock welchen man sich unmöglich selbst merken kann. Diese vielen Buchstaben und Zahlen sind also unser Destination Key welchen man mit großer Sicherheit nur sehr ungern in seiner vollen Länge in die Browseradresszeile ein gibt.
Ein Destination Key hat im gesamten 516 Bit, diese Zeichenketten von vielen angebotenen Diensten im i2p Netz werden im i2p Verzeichnis in einer Datei namens host.txt gespeichert, jedenfalls die welche deinem Router bekannt geworden sind. Auch der eigene Private Schlüssel wird automatisch im Installationsverzeichniss von i2p abgelegt.
Beispiel eines öffentlichen Schlüssel:
alice.i2p=L9jHUH7T0zvlR3V8Xx6QvuaskldfklsdjfkljfZzUwR1a1tuPsdfgsdfgsdEvumrmwoFoGum2Um0OPgh -7GQqlwejkljsdasj~i97VliASvTnuXRctKx7RZbZrXs5k6NKyWqnjcF~ucSJuYAMXT-jwf0-94VaCmI6fGqIrCZOh lhyXiWM08A8i5m-YDR2BKwb95r-C-8hhPUY-1oWBjmDzubopIPksjdhetwrsY~HKGbN4vfegQBOabcVCUSMHVS7LkN Y1O~WEW06vSMVJKu1861q3773Ic~H~5Cm49P8jEenDhL0I5D0F9NuWKnp8fpzk3l20oWR82mZo2fhwks~QVEnJCYVU iU6pfBdXSxszJ5gFAozLgd0JIyZkdjfhgurVyCNxsair~P~wjem7itTUTePTJ9heMVhQ4ZUTP6fgX1Oc1FeYqusJzg TFScQyt5GRzPLGybqs9DvwI8jICGvB37K6kUqLVfkOjnjM8Ts5UUE-OfftAAAA
Ab der i2p Version 0.7 werden auch grössere Zeichenvollgen wie 516 Bit unterstützt.
Damit das ganze etwas einfacher wird, werden die Destination Keys geHasht. Im genauen wird bei einer Hashfunktion oder Streuwertfunktion eine grosse Menge an Daten eingespielt, den Hashcode erzeugt welche dann als eine kleine Zielmenge ausgegeben wird. Letztenendes haben wir dann einen 32 Byte Hash.
http://kajshdtgetd47rhagstehdtlh3fhcjzk7kdjfh8gw9s3yiwuez7er.b32.i2p
Damit nun andere Leute an den eigenen öffentlichen Key kommen, kann dieser so wie er ist als 32 Byte Form weitergegeben werden oder man schreibt ihn in Foren oder IRCs etc, sowie den offenen und öffentlichen Adressbüchern. Aber nicht nur die User sollen mit diesem Key wissen wen sie damit erreichen können, auch deren Router. Immerhin müssen ja die Router die Tunnel zum angebotenen anonymen Dienst bauen. In den bereits genannten Bereichen kann man als Person ganz anonym im i2p Netz seine ID, Key, öffentlicher Schlüssel, etc. verbreiten, doch wie kömmt der Router nun zum angebotenen Dienst?
Eigentlich ganz einfach und gar nicht mal so schwer zu verstehen.
Alice hat eine eepSeite und möchte das andere diese erreichen können, dazu hat sie bereits ihre ID in einem Forum veröffentlicht. Wenn Alice bei sich eine eepSeite eingerichtet hat, werden dort eigens für diese Seiten entsprechende Tunnel bereit gestellt. Der Router von Alice, öffnet also ihre In-Tunnel für andere. Die Tunneltiefe sowie zusätzliche Hops oder auch Backup Tunnel und Anzahl können in der Router Software über das Webinterface für jeden Dienst der angeboten wird wie z.B. die eepSeite entsprechend eingestellt werden. Alleine das öffnen von In-Tunnels für andere, reicht jedoch noch nicht aus. Die geöffneten Out-Tunnel für diesen angebotenen Dienst, haben am Ende einen entsprechenden GateWay Router. Damit dies einfacher zu verstehen ist, habe ich mal eine Grafik dazu eingestellt.
Alice hat in ihrem Router unter den Erkundungstunnel eingestellt das diese eine Tiefe von 3 haben sollen, sie erhält somit Erkundungstunnel mit zwei Zwischenroutern und einem weiteren Router bei diesem ihr eigener Tunnel aufhört. Dieser letzte Router der den Übergang zwischen ihrem Tunnel und dem nächsten herstellt wird als GateWay bezeichnet. Der Router von Alice macht also einen Hop (a) zum Router (B), dieser macht einen weiteren Hop (b) zum Router (C) welcher dann den letzten Hop (c) zum GateWay Router macht.
Genau diesen Weg welcher eben beschrieben wurde macht eure öffentliche ID, bzw. die von Alice in unserem Beispiel. Sie sendet ihre ID durch zwei Router bishin zum GateWay. Dieser GateWay Router (D) im Beispielbild sagt dann das er für 10 Minuten der entgegennehmende Router für die ID xxx ist. 10 Minten nur deshalb, da in i2p alle 10 Minuten neue Tunnel aufgebaut werden. Damit aber jetzt auch andere Router wissen, welcher momentan der GateWay Router für Alice ist, muss der GateWay Router von Alice in einer sogenannten NetDB hinterlegen, das er für die 10 Minuten der GateWay Router von ID xxx ist. Der GateWay Router von Alice, verbindet sich also mit dem NetDB Router und Teil ihm mit das er derzeit der gültige GateWay für die ID xxx ist. Dies wird im NetDB Router dann in einer FloodFill Datenbank gespeichert welche nur eine Lookup-Table ist. Man spricht hier auch von FloodFill Routern.
Das tolle an der ganzen Sache ist also das in der NetDB eure ID gespeichert ist die direkt nicht zu euch sondern nur zu einem weiteren GateWay Router führt, jedoch von eurem Eingangstunnel, die ebenfalls wie die Ausgangstunnel aufgebaut werden.
Ihr als eigentliche Dienstanbieter seid somit anonym. Alle Tunnel und Verbindungen die nach 10 Minuten neu aufgebaut werden macht die Software automatisch im Hintergrund und unterbrechungsfrei.
Bobs Router würde bei einem Verbindungsaufbau zu Alice eine Anfrage beim FloodFill Router machen welcher GateWay Router den Service von Alice anbietet. Da auch Bobs Router zu erreichen sein muss hat dieser zwar auch eine ID, jedoch wird eine reine Client ID nicht in der NetDB gespeichert. Der Client von Bob sagt bei der Anfrage der NetDB über welchen in-Tunnel Gateway er für eine Antwort zu erreichen ist.
ISP/Provider
Das einzigste was ein ISP, sprich der Provider zu sehen bekommt, ist das man am i2p Netz Teil nimmt, jedoch nicht was man überträgt und was von einem selbst oder von anderen ist. Es wird ständig Traffic durchgeschleift mit dem eigenen darin versteckt in Stückchen und verteilt sowie mehrfach verschlüsselt.
Tools
Zusatz Tools wie P2P Programme, oder Torrent Client wie auch iMule usw. müssen speziell für i2p angepasst werden. Standard Tools die nicht für das i2p Netz angepasst wurde, können nicht verwendet werden! Die Tools für i2p, können im i2p Netz selbst bezogen werden.
I2PRufus
Ein anonymer Bittorrent-Client.
I2PSnark
ein anonymer, in I2P als Web-Applikation integrierter Bittorrent-Client.
Syndiemedia
Ein Versuch eines Blogging-Tools welches noch am Anfang steht.
iMule
Das aMule für i2p, basieren auf dem aMule Code, für i2p angepasst.
i2p Bote
Bote ist ein Nachrichtensystem mit welches es möglich ist Nachrichten wie eMails an bestimmte Adressen zu senden. Hier bei kann dies ganz anonym geschehen ohne Absender oder mit Absenderadresse welche eine sehr lange eMail Destination ist.
I2Phex
Phex basierendes P2P-Programm.
Susimail
für den Pseudonymen E-Mail-Dienst Postman im i2p.
I2PTunnel
Mit dessen Hilfe können Anwendung über TCP/IP-Dienste in i2p zur Verfügung gestellt werden.
SAM
Protokoll welches einem in vielen Programmiersprachen erlaubt Anwendungen für i2p zu erstellen.
I2P-Messenger
Ein auf QT basierender I2P-Messenger.