Open Source im professionellen Einsatz
Linux-Magazin 05/2008
© claudiarndt, photocase.com

© claudiarndt, photocase.com

Frei kommunizieren in unfreien Umgebungen

Grenzenlose Freiheit

Vom dezentralen Speichermedium hat sich das Free Network Project zu einer verteilten Basis von Medien mit hohen Ansprüchen an Vertraulichkeit entwickelt. Es hofft der Zensur zu trotzen und richtet dazu seine Aufmerksamkeit auf Sicherheitsaspekte.

949

Man stelle sich eine Demokratie vor, in der ein Landtagsabgeordneter ohne Angst um Leben und Gesundheit in seinem Blog begründen kann, warum er seine Ministerpräsidentin vom Thron kippte, indem er sie nicht gewählt hat. Anderes Beispiel: Der Mitarbeiter eines multinationalen Konzerns veröffentlicht Dokumente, die seinem Arbeitgeber Marktmissbrauch nachweisen. Er muss keine Angst um seine wirtschaftliche Zukunft haben und braucht nicht um die Loyalität desjenigen zu bangen, dem er die Dokumente an Halloween zuspielte. Freenet [1] tritt an, aus dieser Utopie Wirklichkeit werden zu lassen.

Freenet ist ein Netz von Rechnerknoten, die miteinander verschlüsselt kommunizieren und dem Netz Speicherplatz zur Verfügung stellen. Jeder interessierte Teilnehmer kann dem Netz beitreten, indem er selbst einen Knoten betreibt. Er installiert dazu eine Java-Applikation, die den Knoten implementiert, und lässt sie mit den Knoten von Freunden und Bekannten kommunizieren oder sich selbst Verbindung zu anderen Freenet-Knoten suchen. Zum Einstieg stellt der Freenet-Installer dazu eine Adressenliste von öffentlichen Knoten bereit.

Verteilte Anonymität

Nutzer können Dateien ins Netzwerk stellen und dort unter einem Schlüssel speichern. Andere Nutzer rufen mit Hilfe des Schlüssels die gespeicherten Daten aus dem Netz ab. Das Besondere dabei ist, dass kein Teilnehmer den genauen Speicherort der Datei kennt. Jeder kann die Datei von jedem beteiligten Knoten abrufen. Wenn der befragte Knoten die Datei nicht besitzt, fragt er seine Nachbarn, die nötigenfalls wiederum ihre Nachbarn fragen. Für den Benutzer geschieht dies völlig transparent.

Freenet selbst stellt damit zunächst nur eine Infrastruktur bereit, die den sicheren anonymen Austausch von Daten erlaubt. Eine Reihe von Clientanwendungen sorgt dafür, dass der eigentliche Knoten und seine Arbeitsweise für den Benutzer verborgen bleiben. Beispielsweise dient ein HTTP-Gateway dazu, mit einem Browser im Freenet wie im normalen Web zu surfen (Abbildung 1).

Abbildung 1: Freenet ist ein Netz lose verbundener Rechnerknoten, die verschlüsselt per UDP Daten austauschen. Der Knoten implementiert Basisfunktionen zum Up- und Download von Daten in Freenet. Clients nutzen diese über unterschiedliche Schnittstellen.

HTTP-URLs wie [http://www.linux-ma- gazin.de] unterscheiden sich in einem wichtigen Punkt von Freenet-Schlüsseln: Die URL spezifiziert den Ort, an dem eine Datei gespeichert ist, während der Schlüssel den Inhalt der Datei identifiziert. Damit Anwendungen sinnvoll auf dieser Grundlage arbeiten können, verfeinert Freenet das Konzept noch. Dazu definiert es verschiedene Arten von Schlüsseln (siehe Kasten "Freenet-Schlüssel").

Außerdem unterscheidet Freenet zwischen dem eigentlichen Datei-Inhalt und Metainformationen. Eine Metainformation ist beispielsweise der Mime-Typ einer Datei. Darüber hinaus gibt es etwa Verweise (Redirect), Listen von Namen und Verweisen (Manifest), über die sich ganze Verzeichnisstrukturen unter einem Schlüssel abbilden lassen, sowie Splitfiles, die große Dateien fehlertolerant auf viele Dateiblöcke verteilen.

Freenet-Schlüssel

Die einzelnen Schlüssel im Freenet dienen unterschiedlichen Zwecken. Benutzer oder Clientprogramme rufen mit ihnen Dateien im Freenet auf, ähnlich wie ein Browser eine URL.

Content Hash Keys (CHK)

Diese Schlüssel bilden das Rückgrat von Freenet und referenzieren normale Dokumente. Ihr Aufbau folgt dem Schema »CHK@Hash,Dokument-Key,Optionen«. Der Hash ist ein Fingerabdruck des Datei-Inhalts. Wer ihn abrufen will, braucht den Dokument-Key und die Optionen zum Entschlüsseln. Es ist praktisch unmöglich, ihn unbemerkt zu modifizieren, denn der Fingerabdruck verknüpft den Schlüssel quasi-eindeutig mit dem Inhalt.

Signed Subspace Keys (SSK)

Wollen Freenet-Teilnehmer einen CHK zusätzlich signieren, kommen SSKs mit dem Aufbau »SSK@Public-Key,Document-Key,Optionen/Name-Versionsnummer« zum Einsatz. Auch hier dienen Dokument-Key und Optionen zum Entschlüsseln des Inhalts der Dateien durch den Abrufer. Er kann diese digitale Signatur mit dem Public-Key überprüfen.

Den Namen vergibt der Erzeuger des SSK-Schlüssels frei, um verschiedene Dokumente zu unterscheiden. Da nicht mal er die einmal ins Freenet eingestellten Datei-Inhalte ändern darf, hat Freenet außerdem eine Versionsnummer eingeführt. Indem der Schlüsselerzeuger die Versionsnummer erhöht, entstehen neue Schlüssel, die sich auf die veränderten (oder auch völlig neuen) Inhalte beziehen.

Keyword Signed Keys (KSK)

KSK-Schlüssel sind die einfachsten und am wenigsten sicheren Schlüssel in Freenet und haben die Form »KSK@Name«. Den Namen darf der Erzeuger mit kleinen Einschränkungen frei wählen. Er steht nicht in Beziehung zum Datei-Inhalt. Der Nachteil des KSK ist, dass mehrere Benutzer den gleichen Namen für verschiedene Datei-Inhalte verwenden könnten und es dann zu Kollisionen und Inkonsistenzen kommt.

Updateable Subspace Keys (USK)

USK-Schlüssel ähneln nicht ganz zufällig den Signed Subspace Keys und folgen dem Schema »USK@Public-Key,Document-Key,Optionen/Name/Versionsnummer/«. Ihre einzelnen Bestandteile haben tatsächlich bis auf die Versionsnummer die gleiche Bedeutung. Die Nummer dient auch dem gleichen Zweck wie beim SSK-Schlüssel, allerdings sucht der Freenet-Knoten automatisch die neueste Version des USK-Schlüssels. Das erleichtert den Abrufern von Daten erheblich das Verwalten von Listen mit interessanten Schlüsseln.

Wer weiß wo?

Die Gretchenfrage ist nur: Woher weiß das Netz, wo eine gesuchte Datei zu finden ist? Die Antwort besteht aus zwei Teilen. Den ersten bezeichnen Soziologen auch als das Kleine-Welt-Phänomen. Es besagt, dass es in einem ausreichend vermaschten Netz von jedem Ausgangspunkt zu jedem Zielpunkt einen Weg mit nur wenigen Zwischenstationen gibt. Die ursprüngliche Theorie bezieht sich auf die Weltbevölkerung und Bekanntschaftsverhältnisse: Zwischen zwei beliebigen Personen lässt sich eine Kette von maximal fünf Personen finden, von denen jeder den jeweils nächsten in der Kette persönlich kennt [2].

Der zweite Teil sorgt dafür, dass suchende Clients diesen kurzen Weg auch mit hoher Wahrscheinlichkeit finden. Dazu spezialisieren sich die Knoten. Da jedem Knoten nur begrenzter Speicherplatz zur Verfügung steht, muss er sich ohnehin entscheiden, welche Dateien er speichert und welche er verwirft. Er bevorzugt daher solche Dateien, die denen ähneln, die er bereits hat.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Bitparade

    Den Begriff P2P verbinden viele Nutzer unwillkürlich mit Bittorrent und dem (nicht immer legalen) Tausch von Dateien. Dabei lassen sich über Peer-to-Peer-Netzwerke auch Internetauftritte und andere Dienste anonym anbieten. Fünf darauf spezialisierte Netze treten in der Bitparade zu einem Vergleich an.

  • Bunte Bäume

    Was haben ein Eichhörnchen und der Linux-Kernel gemeinsam? Beide durchqueren Bäume, um Dinge zu hamstern und wiederzufinden. Im direkten Vergleich geht der Linux-Kernel intelligenter zu Werke - wenn er auch etwas unfair mit zweifarbig lackierten Bäumen hantiert.

  • Frosted

    Mit Python lassen sich rasch komplexe Aufgaben lösen. Einen Tipp- oder Syntaxfehler sieht der Entwickler allerdings erst, wenn ihm seine Eigenkreation zur Laufzeit um die Ohren fliegt. Abhilfe möchte Frosted schaffen, das Python-Skripte vor ihrer Ausführung auf Syntax- und andere häufige Mängel prüft.

  • Reservespieler

    Ein Hochverfügbarkeits-Cluster unter Linux ist auch mit einfachen Mitteln zu realisieren. Der Einstieg in die Oberliga für Server benötigt nur Standardkomponenten und die beiden freien Programme Heartbeat und DRBD - und schon steht beim Absturz des Mittelstürmers ein Reservespieler bereit.

  • Tanzen in der Formation

    Samba ist seit der Version 3.3 zusammen mit dem Lock-Manager CTDB erstmals vollumfänglich als Active-Active-Cluster konfigurierbar. Mit der neuen Registry-Konfiguration kann der Admin den Samba-Cluster mit einem lockeren Hüftschwung verwalten.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.