Freenet: Difference between revisions
(ergänzungen..) |
(weitere Ergänzungen) |
||
Line 42: | Line 42: | ||
===Security=== |
===Security=== |
||
====Anonymiät==== |
====Anonymiät==== |
||
Die gewährleistete Anonymität ist grundsätzlich schwächer als bei z.B. Onion Routing (siehe [[ |
Die gewährleistete Anonymität ist grundsätzlich schwächer als bei z.B. Onion Routing (siehe [[http://sarwiki.informatik.hu-berlin.de/Mixmaster_Remailer Mixmaster]]), wenn ein Angreifer hinreichend viele Nachbarknoten des Ziels kontrolliert. |
||
Um zweifelsfrei zu ''beweisen'', dass ein bestimmter Knoten eine bestimmte Datei angefordert oder eingefügt hat, muss der Angreifer jedoch '''alle''' empfangenen und Nachrichten kennen, denn da das Quellfeld eine Anfrage gelegentlich auf die Adresse eines routenden gesetzt Knotens wird, ist sonst nicht zweifelsfrei klar, ob der Zielknoten wirklich der Ursprung einer Anfrage ist. |
Um zweifelsfrei zu ''beweisen'', dass ein bestimmter Knoten eine bestimmte Datei angefordert oder eingefügt hat, muss der Angreifer jedoch '''alle''' empfangenen und Nachrichten kennen, denn da das Quellfeld eine Anfrage gelegentlich auf die Adresse eines routenden gesetzt Knotens wird, ist sonst nicht zweifelsfrei klar, ob der Zielknoten wirklich der Ursprung einer Anfrage ist. |
||
Line 54: | Line 54: | ||
Die Verfügbarkeit von Dateien ist nur einschränkbar, wenn der Angreifer über Resourcen etwa in der Größenordnung (Bandbreite, Anzahl Knoten) des gesamten Netzes verfügt. |
Die Verfügbarkeit von Dateien ist nur einschränkbar, wenn der Angreifer über Resourcen etwa in der Größenordnung (Bandbreite, Anzahl Knoten) des gesamten Netzes verfügt. |
||
Das gezielte Entfernen einer unerwünschten Datei ist nicht möglich, denkbar wäre es aber, das Netzwerk mit sehr viel "Müll", d.h. unsinnigen Dateien zu fluten und selbige durch enorm viele Requests zu verteilen und damit andere Dateien aus den Knoten zu verdrängen (Cache Replacement). Das könnte man jedoch durch Mittel wie [[http://de.wikipedia.org/wiki/HashCash |
Das gezielte Entfernen einer unerwünschten Datei ist nicht möglich, denkbar wäre es aber, das Netzwerk mit sehr viel "Müll", d.h. unsinnigen Dateien zu fluten und selbige durch enorm viele Requests zu verteilen und damit andere Dateien aus den Knoten zu verdrängen (Cache Replacement). Das könnte man jedoch durch Mittel wie [[http://de.wikipedia.org/wiki/HashCash HashCash]] erschweren. |
||
Da individuelle Knotenbetreiber natürlich Kontrolle darüber haben, welche Dateien (Keys) ihre Knoten anbieten, wäre Zensur auf Basis eines allgemeinen Konsens (Key-Blacklists) dennoch möglich. |
Da individuelle Knotenbetreiber natürlich Kontrolle darüber haben, welche Dateien (Keys) ihre Knoten anbieten, wäre Zensur auf Basis eines allgemeinen Konsens (Key-Blacklists) dennoch möglich. |
||
Line 62: | Line 62: | ||
[[Image:Freenet-pathlength_vs_node_failure_rate.png|frame|none|Request-Pfadlänge über den Anteil der ausgefallenden Knoten. |
[[Image:Freenet-pathlength_vs_node_failure_rate.png|frame|none|Request-Pfadlänge über den Anteil der ausgefallenden Knoten. |
||
Das Small World Model ermöglicht eine hohe Ausfalltoleranz, weil zufällig verteilte Ausfälle mit sehr großer Wahrscheinlichkeit Konten aus der relativ schwach verbundenen Mehrheit treffen.]] |
Das Small World Model ermöglicht eine hohe Ausfalltoleranz, weil zufällig verteilte Ausfälle mit sehr großer Wahrscheinlichkeit Konten aus der relativ schwach verbundenen Mehrheit treffen.]] |
||
[[Image:Freenet-largest_component_vs_removed_nodes.png|frame|none|Die Größe der größten Zusammenhangskomponente bei zufälligem Ausfall und bei gezieltem Ausschalten der am stärksten verbundenen Knoten.]] |
|||
Selbst wenn ein Drittel der Knoten plötzlich ausfällt, ist der Großteil der Dateien immernoch verfügbar. |
|||
=== Probleme === |
=== Probleme === |
||
Freenet befindet sich, obwohl es durchaus benutzbar ist und benutzt wird, immernoch in einer frühen Entwicklunsphase. Deshalb sollte man sich auch einiger bisher offener Probleme bewusst sein: |
|||
* es gibt bisher keine "Suchmaschine" und wird sie auch in absehbarer Zeit nicht geben. Als Behelf dienen regelmäßig aktualisierte Verzeichnisse (Index-Freesites) oder die Weitergabe von Keys auf einem externen Weg (z.B. persönlich). |
|||
* Dateien können ''nicht'' gelöscht werden, auch nicht vom "Eigentümer" (ist aber auch eine gewollte Eigenschaft) |
|||
* von Gegnern wird oft angeführt, dass Freenet ein "Hort" für ungewollten Content wie bspw. Kinderpornografie, Bombenbauanleitungen u.ä. ist |
|||
* Updates von Dateien sind nur über etwas unschöne Umwege möglich (Date Based Redirects) |
|||
Zudem gibt es in der praktischen Benutzung noch einige kleinere, aber umgehbare Schwierigkeiten, die jedoch neuen Benutzern den Einstieg erschweren |
|||
* eine vertrauenswürdige initiale Knotenliste ist überaus wichtig, damit neue Nutzer nicht in ein separates, kontrolliertes Netz 'entführt' werden. Bisher wird die Liste aber von der Projekthomepage [[http://freenetproject.org]] zentral abgeholt. Besser wäre es, die Liste von einer vertrauenswürdigen Person zu beziehen. |
|||
* die langen Ladezeiten (Minutenbereich) erschweren die Benutzung des Webinterfaces FProxy, da die meisten Browser in der Werkseinstellung nur recht wenige gleichzeitige Verbindungen öffnen (<20) |
|||
* Freenet ist gerade am Anfang oft sehr langsam, wenn der neue Knoten nur wenige Bekanntschaften hat. Dies kann durch eine große initiale Knotenliste abgefedert werden (die Knoten in der zentralen Knotenliste auf der Projektseite sind jedoch oft überlastet). |
|||
=== momentaner Status === |
=== momentaner Status === |
||
Im Moment (März 2006) wird in naher Zukunft Version 0.7 erwartet, die einige größere Neuerungen mitbringt: |
|||
* es wird möglich sein ein skalierbares sog. Darknet aufzubauen, bei dem der eigene Knoten nur mit auserwählten, vertrauenswürdigen Knoten kommuniziert |
|||
* es soll ein schneller Broadcast implementiert werden für anonyme Chats / RSS Feeds |
|||
* die Datei/Block-größen werden festgelegt auf 1kByte oder 32kBytes. Größere Dateien werden auf mehrere Keys aufgeteilt (wei bisher schon) |
|||
* Die Schlüssellänge wird von 128bit auf 256bit erhöht |
|||
weitere Features sind geplant, aber noch nicht in Sichtweite: |
|||
* Pre-Mix-Routing: Anfragen werden nach dem Onion-Routing-Prinzip zuerst über einige Knoten weiter geleitet, bevor sie als offizielle Freenet-Anfrage starten. Damit kennt der erste Nachbar zwar den Sender aber nicht den Inhalt, der letzte in der Kette zwar den Inhalt aber nicht die Quelle. |
|||
* Steganographie zum Verstecken des Freenet-Protokolls |
|||
== ergänzende Links == |
== ergänzende Links == |
||
Auf dem 22C3 haben Oskar Sandberg und Ian Clake einen [http://events.ccc.de/congress/2005/fahrplan/events/492.en.html Vortrag] über die Neuerungen in Version 0.7 gehalten. Dazu gibt es |
Auf dem 22C3 haben Oskar Sandberg und Ian Clake einen [http://events.ccc.de/congress/2005/fahrplan/events/492.en.html Vortrag] über die Neuerungen in Version 0.7 gehalten. Dazu gibt es |
Revision as of 18:56, 4 March 2006
Gliederung
Einleitung
Geschichte
Kurze Zusammenfassung der wichtigsten Daten
- 1999 Erstes Paper: "Freenet: A Distributed Anonymous Information Storage and Retrieval System" von Ian Clarke, Oskar Sandberg, Brandon Wiley, Theodore W. Hong
- 2000 Version 0.1 der Implementatierung in Java (GPL)
- 2002 gemeinnützige "The Freenet Project Inc." beschäftigt einen Vollzeitprogrammierer -- finanziert durch Spenden
- 2006 Version 0.7: komplette Neuimplementierung
- bisher mehr als 2 Mio Downloads, aber wahrscheinlich deutlich weniger aktive Teilnehmer
- sehr aktive Weiterentwicklung
Philosophie und Ziele
Die Allgemeine Erklärung der Menschenrechte, Artikel 19
Jeder hat das Recht auf Meinungsfreiheit und freie Meinungsäußerung; dieses Recht schließt die Freiheit ein, Meinungen ungehindert anzuhängen sowie über Medien jeder Art und ohne Rücksicht auf Grenzen Informationen und Gedankengut zu suchen, zu empfangen und zu verbreiten.
Negativbeispiele hierbei sind autoritäre Staaten wie China, Indonesien,... Anonyme Kommunikation ist dort Voraussetzung für freie Meinungsäußerung und freien Informationszugriff, weil nur so ein Schutz vor Verfolgung sicher gestellt werden kann.
Aber auch in der EU gibt es bedenkliche Bestrebungen: Die Richtlinie zur Vorratsdatenspeicherung von Telekommunikatiosverbindungsdaten wird, sobald umgesetzt, unter dem Vorwand der Terrorismusbekämpfung das Fernmeldegeheimnis quasi aushebeln und die Unschuldsvermutung umkehren, da die Daten aller Bürger vorsorglich für 6 Monate gespeichert werden.
Motivation des Projektes
Ziele:
- Anonymität: Schutz von Erzeuger, Konsumenten und beteiligten Dritten (Zwischenstationen) vor Verfolgung durch Verschlüsselung und Routing
- Pseudonymität durch digitale Signaturen
- Resistenz gegen Zensur (Löschung von Dokumenten soll unmöglich sein), Verfügbarkeit und Zuverlässigkeit durch Dezentralisierung und Redundanz (Robustheit bei bösartigen / ausfallenden Knoten)
- effizient und skalierbar bei Speicherung und Routing -- Performance zweitrangig, aber soll gut skalieren und sich an Nachfrage nach best. Daten anpassen
Freenet will und kann aber keine Konkurrenz zu "traditionellen" Filesharing-Netzen sein.
Architektur
Schlüssel
Routing
Netztopologie
Diskussion
Performance
Als wichtigstes Maß für die Performance dient die Anzahl der Hops, die eine Anfrage bis zum Ziel (und die gefundene Datei zurück zum Suchenden) benötigt.
Auf Grund des (gewollten) Aufbaus des Netzwerkes ist es relativ schwierig, diese zuverlässig zu bestimmen: Einerseits sind formale Komplexitäts-Beweise auf Grund der komplizierten Struktur schwierig, andererseits entzieht sich das existierende Netzwerk im Internet sehr erfolgreich dem Blick seiner Schöpfer. Aus diesen Gründen ist die Simulation das vielversprechendste Mittel, um einen globalen Einblick zu erhalten.
Die Simulation ergab eine Komplexität von etwa . Danach sollte Freenet für eine Million Knoten eine mittlere Pfadlänge von 30 Hops erreichen. Praktisch kann dieser Wert in beide Richtungen variieren, da einerseits von Dateien möglicherweise mehr Replikate vorkommen als in der Simulation (das würde die Länge verkürzen), andererseis könnten zu volle Routing-Tabellen die Pfadlängen erhöhen.
Security
Anonymiät
Die gewährleistete Anonymität ist grundsätzlich schwächer als bei z.B. Onion Routing (siehe [Mixmaster]), wenn ein Angreifer hinreichend viele Nachbarknoten des Ziels kontrolliert.
Um zweifelsfrei zu beweisen, dass ein bestimmter Knoten eine bestimmte Datei angefordert oder eingefügt hat, muss der Angreifer jedoch alle empfangenen und Nachrichten kennen, denn da das Quellfeld eine Anfrage gelegentlich auf die Adresse eines routenden gesetzt Knotens wird, ist sonst nicht zweifelsfrei klar, ob der Zielknoten wirklich der Ursprung einer Anfrage ist.
Wegen der Transportverschlüsselung müsste er alle Nachbarknoten kontrollieren, bloßes Mitlesen des Traffics genügt nicht. Die Verschleierung der Nachrichtengröße durch Padding verhindert Schlüsse aus der Nachrichtenlönge. Da zudem der Inhalt der Dateien verschlüsselt ist, kann der Angreifer selbst bei Überwindung der Transportverschlüsselung keine Analyse des Inhaltes o.ä. vornehmen, sondern muss vorneweg die Keys der von ihm gesuchten Dateien kennen.
Die reine Teilnahme am Netz kann jedoch (noch) nicht (durch Steganographie o.ä.) verschleiert werden, was z.B. in China ein Problem darstellt.
Für zukünftige Versionen ist es geplant, Onion Routing als Feature zur Überwindung der ersten Nachbarknoten hinzuzufügen.
Verfügbarkeit und Integrität
Die Verfügbarkeit von Dateien ist nur einschränkbar, wenn der Angreifer über Resourcen etwa in der Größenordnung (Bandbreite, Anzahl Knoten) des gesamten Netzes verfügt.
Das gezielte Entfernen einer unerwünschten Datei ist nicht möglich, denkbar wäre es aber, das Netzwerk mit sehr viel "Müll", d.h. unsinnigen Dateien zu fluten und selbige durch enorm viele Requests zu verteilen und damit andere Dateien aus den Knoten zu verdrängen (Cache Replacement). Das könnte man jedoch durch Mittel wie [HashCash] erschweren.
Da individuelle Knotenbetreiber natürlich Kontrolle darüber haben, welche Dateien (Keys) ihre Knoten anbieten, wäre Zensur auf Basis eines allgemeinen Konsens (Key-Blacklists) dennoch möglich.
Anzumerken wäre noch, dass die Robustheit des Netzes im Gegensatz zu z.B. proprietären Filesharing-Netzen nicht auf dem Prinzip "Security by Obscurity", d.h. geheimen Protokollen, basiert, sondern bewusst pessimistischen Annahmen (was natürlich nicht ausschließt, dass in Zukunft Verwundbarkeiten bekannt werden).
Selbst wenn ein Drittel der Knoten plötzlich ausfällt, ist der Großteil der Dateien immernoch verfügbar.
Probleme
Freenet befindet sich, obwohl es durchaus benutzbar ist und benutzt wird, immernoch in einer frühen Entwicklunsphase. Deshalb sollte man sich auch einiger bisher offener Probleme bewusst sein:
- es gibt bisher keine "Suchmaschine" und wird sie auch in absehbarer Zeit nicht geben. Als Behelf dienen regelmäßig aktualisierte Verzeichnisse (Index-Freesites) oder die Weitergabe von Keys auf einem externen Weg (z.B. persönlich).
- Dateien können nicht gelöscht werden, auch nicht vom "Eigentümer" (ist aber auch eine gewollte Eigenschaft)
- von Gegnern wird oft angeführt, dass Freenet ein "Hort" für ungewollten Content wie bspw. Kinderpornografie, Bombenbauanleitungen u.ä. ist
- Updates von Dateien sind nur über etwas unschöne Umwege möglich (Date Based Redirects)
Zudem gibt es in der praktischen Benutzung noch einige kleinere, aber umgehbare Schwierigkeiten, die jedoch neuen Benutzern den Einstieg erschweren
- eine vertrauenswürdige initiale Knotenliste ist überaus wichtig, damit neue Nutzer nicht in ein separates, kontrolliertes Netz 'entführt' werden. Bisher wird die Liste aber von der Projekthomepage [[1]] zentral abgeholt. Besser wäre es, die Liste von einer vertrauenswürdigen Person zu beziehen.
- die langen Ladezeiten (Minutenbereich) erschweren die Benutzung des Webinterfaces FProxy, da die meisten Browser in der Werkseinstellung nur recht wenige gleichzeitige Verbindungen öffnen (<20)
- Freenet ist gerade am Anfang oft sehr langsam, wenn der neue Knoten nur wenige Bekanntschaften hat. Dies kann durch eine große initiale Knotenliste abgefedert werden (die Knoten in der zentralen Knotenliste auf der Projektseite sind jedoch oft überlastet).
momentaner Status
Im Moment (März 2006) wird in naher Zukunft Version 0.7 erwartet, die einige größere Neuerungen mitbringt:
- es wird möglich sein ein skalierbares sog. Darknet aufzubauen, bei dem der eigene Knoten nur mit auserwählten, vertrauenswürdigen Knoten kommuniziert
- es soll ein schneller Broadcast implementiert werden für anonyme Chats / RSS Feeds
- die Datei/Block-größen werden festgelegt auf 1kByte oder 32kBytes. Größere Dateien werden auf mehrere Keys aufgeteilt (wei bisher schon)
- Die Schlüssellänge wird von 128bit auf 256bit erhöht
weitere Features sind geplant, aber noch nicht in Sichtweite:
- Pre-Mix-Routing: Anfragen werden nach dem Onion-Routing-Prinzip zuerst über einige Knoten weiter geleitet, bevor sie als offizielle Freenet-Anfrage starten. Damit kennt der erste Nachbar zwar den Sender aber nicht den Inhalt, der letzte in der Kette zwar den Inhalt aber nicht die Quelle.
- Steganographie zum Verstecken des Freenet-Protokolls
ergänzende Links
Auf dem 22C3 haben Oskar Sandberg und Ian Clake einen Vortrag über die Neuerungen in Version 0.7 gehalten. Dazu gibt es
- Slides (pdf.bz2)
- eine Java-Demo des Prinzips des neuen Routing Algorithmus.
- In der deutschen Wikipedia gibt es einen sehr ausführlichen Eintrag zu Freenet.