Freenet

Anfänglich sind die Standorte im Darknet zufällig verteilt. Das bedeutet, dass die Weiterleitung von Anfragen im Wesentlichen zufällig ist. Im Opennet werden Verbindungen durch eine Join-Anfrage hergestellt, die eine optimierte Netzstruktur bietet, wenn das bestehende Netz bereits optimiert ist. Die Daten in einem neu gestarteten Freenet werden also eher zufällig verteilt.

Mit dem Fortschreiten von Location Swapping (im Darknet) und Path Folding (im Opennet) werden Knoten, die nahe beieinander liegen, zunehmend nahe Standorte haben, und Knoten, die weit entfernt sind, entfernte Standorte. Daten mit ähnlichen Schlüsseln werden auf demselben Knoten gespeichert.

Das Ergebnis ist, dass sich das Netzwerk selbst zu einer verteilten, geclusterten Struktur organisiert, in der Knoten dazu neigen, Datenelemente zu halten, die im Schlüsselraum nahe beieinander liegen. Wahrscheinlich wird es im gesamten Netz mehrere solcher Cluster geben, wobei ein bestimmtes Dokument, je nachdem, wie oft es verwendet wird, mehrfach repliziert wird. Dies ist eine Art „spontaner Symmetriebrechung“, bei der ein ursprünglich symmetrischer Zustand (alle Knoten sind gleich, mit zufälligen Anfangsschlüsseln füreinander) zu einer hochgradig asymmetrischen Situation führt, bei der sich die Knoten auf Daten mit eng verwandten Schlüsseln spezialisieren.

Es gibt Kräfte, die tendenziell eine Clusterbildung bewirken (Daten mit gemeinsamer Nähe verbreiten sich im gesamten Netz), und Kräfte, die tendenziell Cluster aufbrechen (lokales Zwischenspeichern von häufig verwendeten Daten). Diese Kräfte sind je nach Häufigkeit der Datennutzung unterschiedlich stark ausgeprägt, so dass sich selten genutzte Daten eher auf einigen wenigen Knoten befinden, die sich auf die Bereitstellung dieser Daten spezialisiert haben, während häufig genutzte Elemente weit über das Netz verteilt sind. Diese automatische Spiegelung wirkt den Zeiten entgegen, in denen der Webverkehr überlastet ist, und aufgrund des intelligenten Routings eines ausgereiften Netzes sollte ein Netz der Größe n im Durchschnitt nur log(n) Zeit benötigen, um ein Dokument abzurufen.

KeysEdit

Schlüssel sind Hashes: Es gibt keine Vorstellung von semantischer Nähe, wenn man von Schlüssel-Nähe spricht. Daher gibt es keine Korrelation zwischen Schlüsselnähe und ähnlicher Popularität von Daten, wie es der Fall sein könnte, wenn Schlüssel eine semantische Bedeutung hätten, wodurch Engpässe durch populäre Themen vermieden werden.

Es gibt zwei Hauptarten von Schlüsseln, die im Freenet verwendet werden, den Content Hash Key (CHK) und den Signed Subspace Key (SSK). Eine Unterart der SSKs ist der Updatable Subspace Key (USK), der eine Versionierung hinzufügt, um eine sichere Aktualisierung des Inhalts zu ermöglichen.

Ein CHK ist ein SHA-256-Hash eines Dokuments (nach der Verschlüsselung, die ihrerseits vom Hash des Klartextes abhängt), und so kann ein Knoten überprüfen, ob das zurückgegebene Dokument korrekt ist, indem er es hasht und den Digest mit dem Schlüssel vergleicht. Dieser Schlüssel enthält den Kern der Daten im Freenet. Er enthält alle binären Datenbausteine für den Inhalt, der an den Client zur Wiederzusammensetzung und Entschlüsselung geliefert wird. Der CHK ist von Natur aus einzigartig und bietet fälschungssichere Inhalte. Ein feindlicher Knoten, der die Daten unter einem CHK verändert, wird vom nächsten Knoten oder dem Client sofort erkannt. CHKs reduzieren auch die Redundanz von Daten, da dieselben Daten denselben CHK haben und wenn mehrere Seiten auf dieselben großen Dateien verweisen, können sie auf denselben CHK verweisen.

SSKs basieren auf Public-Key-Kryptographie. Derzeit verwendet Freenet den DSA-Algorithmus. Dokumente, die unter SSKs eingefügt werden, werden vom Einfüger signiert, und diese Signatur kann von jedem Knoten überprüft werden, um sicherzustellen, dass die Daten nicht verfälscht wurden. SSKs können verwendet werden, um eine überprüfbare pseudonyme Identität im Freenet einzurichten, und ermöglichen es, dass mehrere Dokumente sicher von einer einzigen Person eingefügt werden können. Dateien, die mit einer SSK eingefügt werden, sind praktisch unveränderlich, da das Einfügen einer zweiten Datei mit demselben Namen zu Kollisionen führen kann. USKs lösen dieses Problem, indem sie den Schlüsseln eine Versionsnummer hinzufügen, die auch für die Bereitstellung von Aktualisierungsbenachrichtigungen für Schlüssel verwendet wird, die als Lesezeichen in der Webschnittstelle registriert sind. Eine weitere Unterart der SSK ist der Keyword Signed Key (KSK), bei dem das Schlüsselpaar standardmäßig aus einer einfachen, von Menschen lesbaren Zeichenkette erzeugt wird. Das Einfügen eines Dokuments unter Verwendung eines KSK ermöglicht es, das Dokument abzurufen und zu entschlüsseln, wenn der Anfragende die menschenlesbare Zeichenfolge kennt; dies ermöglicht bequemere (aber weniger sichere) URIs, auf die sich die Benutzer beziehen können.

Leave a Reply