I2P
Jump to navigation
Jump to search
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