I2p Projekt

Aus Linupedia.org
Version vom 14. Dezember 2009, 21:34 Uhr von OnkelchenTobi (Diskussion | Beiträge) (Tunnel, Router, Hops)
Wechseln zu: Navigation, Suche
Diese Beschreibung wurde mit folgenden Distributionen getestet:


Invisible Internet Project
I2plogo.png
i2p Project
Basisdaten
Entwickler: I2P developers
Aktuelle Version: 0.7.8
letzte Veröffentlichung: 8. Dezember 2009
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

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 Englisch.png

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

Tunnel, Router und 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 2x2 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.

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.

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.


Video-Vortrag

Links