I2P: Difference between revisions
Jump to navigation
Jump to search
(Created page with " == Informationen zum I2P Projekt == == Netzwerk == === Tunnel-Konzept === === netDb === === Ablauf Tunnel-Aufbau === == Sicherheit und Anonymität == === Kryptografie === ===…") |
No edit summary |
||
Line 1: | Line 1: | ||
== Informationen zum I2P Projekt == |
== Informationen zum I2P Projekt == |
||
* I2P = 'Invisible Internet Project' |
|||
* 2003 gegründet |
|||
* Dezentrales, anonymisierendes Netzwerk für sichere Kommunikation |
|||
* "Community-Driver" |
|||
* Entwickler teilweise selbst anonym |
|||
* Finanziert durch Spenden |
|||
* Open Source |
|||
* Geschrieben in JAVA |
|||
* Aktuelle Version: 0.9.5 (2013-03-08) |
|||
== Netzwerk == |
== Netzwerk == |
||
==== Funktionsweise ==== |
|||
* Netzwerkschicht |
|||
* Nachrichtenbasiert (Payload + Management) |
|||
==== Transportprotokolle ==== |
|||
* SSU (Secure Semireliable UDP) |
|||
* NTCP (NIO-based TCP) |
|||
==== Router ==== |
|||
* Software |
|||
* Teil des Netzwerks |
|||
* Traffic-Routing |
|||
==== Destination ==== |
|||
* Anonyme Endpunkte |
|||
* Kryptografische Identifier |
|||
=== Tunnel-Konzept === |
=== Tunnel-Konzept === |
||
* Verbindungen zwischen zwei Routern (end-to-end) ohne Tunnel |
|||
** Sender kann Empfänger identifizieren (z.B. IP-Adresse |
|||
** Empfänger kann Sender identifizieren |
|||
** '''Anonymität nicht gegeben!''' |
|||
* Verbindungen zwischen zwei Routern (end-to-end) durch Tunnel |
|||
** Tunneln der Daten durch mehrere Router (mix network) |
|||
** Benötigt Peers (andere Router) zum Tunnelbau |
|||
=== netDb === |
=== netDb === |
||
* Lokale Datenbank |
|||
* von jedem Router selbst verwaltet |
|||
* enthalten '''RouterInfo''' und '''LeaseSets''' |
|||
* für Routing nötig |
|||
* verbreitet durch DHT (Distributed Hash Tables) |
|||
==== RouterInfo ==== |
|||
* Informationen zum Kontaktieren von Routern |
|||
* Von Router erstellt und verbreitet |
|||
* Nicht sensitiv, einfache Veröffentlichung möglich |
|||
* Enthaltene Daten |
|||
** Routeridentität (2048-Bit ElGamal PublicKey, X.509-Zertifikat, ...) |
|||
** Kontaktdaten (IP-Adresse/Domain Name, Port) |
|||
** Zeitpunkt der Veröffentlichung (Alter der Informationen) |
|||
** Daten zur Auslastung, Bandbreite, ... |
|||
** ... |
|||
** Signatur der Daten (mit 1024-Bit DSA-Key des Routers) |
|||
==== LeaseSets ==== |
|||
* Informationen zum Kontaktieren eines '''Endpunkts (Destination)''' |
|||
* Von Router erstellt und verbreitet |
|||
* Sensitiv, anonyme Verbreitung erforderlich |
|||
* Enthaltene Daten: |
|||
** Leases (Informationen zu Tunnelgateways zu einem Endpunkt) |
|||
** Endpunktidentität (ElGamal, Zertifikati, ...) |
|||
** ... |
|||
** Signatur der Daten |
|||
* Daten pro Lease |
|||
** RouterInfo des Tunnelgateways |
|||
** Tunnel-ID auf dem Router |
|||
** Ablaufdatum |
|||
==== Network Seeding ==== |
|||
Problem: |
|||
* '''Wie findet man erste Peers um die lokale netDB zu füllen?''' |
|||
* Einzige Lösung: von Nutzern auf Webseiten veröffentlicht RouterInfos müssen von dort importiert werden |
|||
=== Ablauf Tunnel-Aufbau === |
=== Ablauf Tunnel-Aufbau === |
||
Revision as of 09:34, 9 April 2013
Informationen zum I2P Projekt
- I2P = 'Invisible Internet Project'
- 2003 gegründet
- Dezentrales, anonymisierendes Netzwerk für sichere Kommunikation
- "Community-Driver"
- Entwickler teilweise selbst anonym
- Finanziert durch Spenden
- Open Source
- Geschrieben in JAVA
- Aktuelle Version: 0.9.5 (2013-03-08)
Netzwerk
Funktionsweise
- Netzwerkschicht
- Nachrichtenbasiert (Payload + Management)
Transportprotokolle
- SSU (Secure Semireliable UDP)
- NTCP (NIO-based TCP)
Router
- Software
- Teil des Netzwerks
- Traffic-Routing
Destination
- Anonyme Endpunkte
- Kryptografische Identifier
Tunnel-Konzept
- Verbindungen zwischen zwei Routern (end-to-end) ohne Tunnel
- Sender kann Empfänger identifizieren (z.B. IP-Adresse
- Empfänger kann Sender identifizieren
- Anonymität nicht gegeben!
- Verbindungen zwischen zwei Routern (end-to-end) durch Tunnel
- Tunneln der Daten durch mehrere Router (mix network)
- Benötigt Peers (andere Router) zum Tunnelbau
netDb
- Lokale Datenbank
- von jedem Router selbst verwaltet
- enthalten RouterInfo und LeaseSets
- für Routing nötig
- verbreitet durch DHT (Distributed Hash Tables)
RouterInfo
- Informationen zum Kontaktieren von Routern
- Von Router erstellt und verbreitet
- Nicht sensitiv, einfache Veröffentlichung möglich
- Enthaltene Daten
- Routeridentität (2048-Bit ElGamal PublicKey, X.509-Zertifikat, ...)
- Kontaktdaten (IP-Adresse/Domain Name, Port)
- Zeitpunkt der Veröffentlichung (Alter der Informationen)
- Daten zur Auslastung, Bandbreite, ...
- ...
- Signatur der Daten (mit 1024-Bit DSA-Key des Routers)
LeaseSets
- Informationen zum Kontaktieren eines Endpunkts (Destination)
- Von Router erstellt und verbreitet
- Sensitiv, anonyme Verbreitung erforderlich
- Enthaltene Daten:
- Leases (Informationen zu Tunnelgateways zu einem Endpunkt)
- Endpunktidentität (ElGamal, Zertifikati, ...)
- ...
- Signatur der Daten
- Daten pro Lease
- RouterInfo des Tunnelgateways
- Tunnel-ID auf dem Router
- Ablaufdatum
Network Seeding
Problem:
- Wie findet man erste Peers um die lokale netDB zu füllen?
- Einzige Lösung: von Nutzern auf Webseiten veröffentlicht RouterInfos müssen von dort importiert werden