Open Source im professionellen Einsatz

© 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.

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.

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.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook