I2P: Difference between revisions

From
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

Ablauf Tunnel-Aufbau

Sicherheit und Anonymität

Kryptografie

Angriffsvektoren

Vergleich zu TOR

Fazit