The Free Haven Project: Difference between revisions
No edit summary |
No edit summary |
||
Line 31: | Line 31: | ||
Die Kommunikation erfolgt indirekt über den Cypherpunk Server. Der Benutzer kodiert die an den SN gerichteten Daten mit dem SN eigenen Schlüssel, damit auch der Remailer keinen Einblick in die übermittelten Daten hat und so dem Benutzer bestimmte Daten zuordnen könnte. Damit der Remailer weiß an wen er die Daten weiterzuleiten hat, gibt der Benutzer den Reply Block des Servers an, der zusammen mit seinem Pseudonym veröffentlicht wurde. |
Die Kommunikation erfolgt indirekt über den Cypherpunk Server. Der Benutzer kodiert die an den SN gerichteten Daten mit dem SN eigenen Schlüssel, damit auch der Remailer keinen Einblick in die übermittelten Daten hat und so dem Benutzer bestimmte Daten zuordnen könnte. Damit der Remailer weiß an wen er die Daten weiterzuleiten hat, gibt der Benutzer den Reply Block des Servers an, der zusammen mit seinem Pseudonym veröffentlicht wurde. |
||
Der Reply Block enthält dann die IP des zu erreichenden Servers, allerdings so verschlüsselt, dass nur der Remailer diese ermitteln kann. Der Remailer sendet dann die Daten an den Server. |
Der Reply Block enthält dann die IP des zu erreichenden Servers, allerdings so verschlüsselt, dass nur der Remailer diese ermitteln kann. Der Remailer sendet dann die Daten an den Server. |
||
Auf diese Weise erhält der unter dem |
Auf diese Weise erhält der unter dem Pseudonym bekannt SN die Daten des Benutzers ohne dass er die Identität des Benutzers erfahren hat. |
||
Gleichzeitig kann der Remailer die Daten dem Benutzer nicht zuordnen, da sie mit dem öffentlichen Schlüssel des Servers verschlüsselt wurden. |
Gleichzeitig kann der Remailer die Daten dem Benutzer nicht zuordnen, da sie mit dem öffentlichen Schlüssel des Servers verschlüsselt wurden. |
||
Line 42: | Line 42: | ||
Der Veröffentlichungsvorgang verläuft kann in zwei Arten erfolgen: Entweder der Veröffentlicher selbst sorgt für die notwendige Verarbeitung der zu veröffentlichen Datei oder ein Publisher übernimmt diese Rolle. |
Der Veröffentlichungsvorgang verläuft kann in zwei Arten erfolgen: Entweder der Veröffentlicher selbst sorgt für die notwendige Verarbeitung der zu veröffentlichen Datei oder ein Publisher übernimmt diese Rolle. |
||
Grundsätzlich müssen folgende Dinge beim Veröffentlichen geschehen: |
Grundsätzlich müssen folgende Dinge beim Veröffentlichen geschehen: |
||
* Die Datei wird mit einem asymmetrischen Schlüsselpaar verschlüsselt, |
* Die Datei wird mit einem asymmetrischen Schlüsselpaar verschlüsselt, welches nur der Autor kennt. |
||
* Die verschlüsselten Daten werden dann mittels des Information Dispersal Algorithmus in mehrere Teile geteilt. |
* Die verschlüsselten Daten werden dann mittels des Information Dispersal Algorithmus in mehrere Teile geteilt. |
||
* Jedes dieser Teile wird mit einer Signatur und den notwendigen Informationen zum späteren Zusammenbauen bestückt. Die Gesamtheit dieser Informationen und einem Teil wird als "Share" bezeichnet. |
* Jedes dieser Teile wird mit einer Signatur und den notwendigen Informationen zum späteren Zusammenbauen bestückt. Desweiteren bestimmt der Autor ein Gültigkeitsdatum, welches definiert wie lange dieses Dokument bzw die einzelnen Shares von den Servnet Nodes gespeichert werden soll. Die Gesamtheit dieser Informationen und einem Teil wird als "Share" bezeichnet. |
||
* Diese Teile werden entweder direkt an verschiedene Servnet Nodes getauscht oder auf dem eigenen Speicher (im Falle, dass der Publisher selbst Servnet Node ist) gespeichert. |
* Diese Teile werden entweder direkt an verschiedene Servnet Nodes getauscht oder auf dem eigenen Speicher (im Falle, dass der Publisher selbst Servnet Node ist) gespeichert. |
||
Line 53: | Line 53: | ||
==== Retrieval ==== |
==== Retrieval ==== |
||
Bei einer Anfrage eines Readers werden folgende Dinge gesendet: |
|||
TODO |
|||
* Reply Block des Readers, um dem Server die Möglichkeit zu geben, dem Reader über einen anonymen Kommunikationskanal zu erreichen. |
|||
* Öffentlicher Schlüssel des Readers. |
|||
* Der Hashwert des öffentlichen Schlüssels, welches der Reader sucht. |
|||
Diese Anfrage sendet der Reader über einen Reply Block an ein Servnet Node. Die Anfrage wird dabei mit dem öffentlichen Schlüssel des Servnet Nodes verschlüsselt, so dass der Remailer nicht nachvollziehen kann was der Reader gesucht hat. Der Servnet Node wiederum kann nicht feststellen, wer die Anfrage gestellt hat. |
|||
Ein Servnet Node empfängt eine solche Anfrage und durchsucht daraufhin die Liste seiner Shares. Besitzt er ein entsprechendes Share verschlüsselt er dieses mit dem öffentlichen Schlüssel des Readers und sendet dieses an den Reply Block des Readers. Der Remailer ist wiederum nicht in der Lage das Share zu lesen, da nur der Reader den zugehörigen privaten Schlüssel besitzt. |
|||
⚫ | |||
Danach sendet der Servnet Node die Anfrage per Broadcast an alle ihn weiter bekannten Servnet Nodes. Außerdem merkt sich der Servnet Node diese Anfrage, damit er sie nicht doppelt berarbeitet. |
|||
TODO |
|||
==== |
==== Expiration ==== |
||
Läuft die Gültigkeit einzelner Shares ab, so kann der Server diese kommentarlos löschen. |
|||
TODO |
|||
==== Trading ==== |
==== Trading ==== |
||
TODO |
TODO |
||
⚫ | |||
Es gibt die Möglichkeit Dokumente zurückzurufen. Dafür muss bei der Veröffentlichung ein neues Feld in die Shares eingebaut werden. Dieses enthält den Hashwert eines Geheimnisses des Autors. Möchte der Autor ein Dokument zurückrufen authentifiziert er sich durch dieses Geheimnis. Die Servnet Nodes dürfen daraufhin die dazugehörigen Shares löschen. |
|||
Die Veröffentlichung des Geheimnisses passiert wieder per Sendung an ein Servnet Node, der wiederum einen Broadcast dieses Zurückrufs sendet. |
|||
== Angriffe == |
== Angriffe == |
||
Line 71: | Line 80: | ||
TODO |
TODO |
||
== |
== Problem == |
||
Bei zu geringer Teilnehmeranzahl kann nicht garantiert werden, dass die Dokumente dauerhaft im Servnet gespeichert werden, da Angreifer leicht gezielt Dokumente zerstören können. |
|||
TODO |
|||
Bei zu hoher Teilnehmeranzahl ist die Performanz des System niedrig (das System ist nicht skalierbar). Dies liegt vor allem an den Broadcasts innerhalb des Servnets. |
|||
Diese gegensätzlichen Ziele führten zum Abbruch des Projekts. |
|||
== Quellen == |
== Quellen == |
Revision as of 20:31, 12 July 2007
Einführung
Das Ziel des Free Haven Projektes war es, ein Design für ein verteiltes anonymes Speichersystem zu erstellen. Dieses soll robust gegen Angriffe auf Anonymität und Verfügbarkeit von Dokumenten sein. Das Free Haven Projekt ist fehlgeschlagen. Sicherzustellende Anonymitäten und Robustheit gegen Angreifer konnten nicht verwirklicht werden, weil sie gegensetzliche Forderungen hatten: Robust gegen Angreifer nur durch viele Benutzer, System allerdings bei vielen Servern und Benutzern nicht skalierbar.
Akteure, System, Begriffe
Die Akteure in diesem System sind:
- Autor - Der Autor will Daten für andere verfügbar machen ohne seine Identität zu veröffentlichen.
- Veröffentlicher - Der Veröffentlicher ist ein System welches Daten im Servnet verfügbar macht ohne die zu veröffentlichten Daten oder den Autor zu kennen.
- Leser - Der Leser kennt Daten unter einem bestimmten Pseudonym und will diese vom System erhalten.
- Server - Der Server gibt eigenen Speicher frei und stellt dort Dokumentanteile bereit.
Dabei befinden sich die Akteure Server und Veröffentlicher befinden sich in der Regeln innerhalb des sogennanten Servnets. Free Haven fordert, dass dies ein dynamisches Netz ist, dies bedeutet, dass ein Server in des Servnet ein- und austreten kann.
Kommunikationskanäle
Wie in der Abbildung gezeigt kommunizieren alle Teilnehmer über sichere Kommunikationskanäle. Das bedeutet, dass die Kommunikation nur indirekt über ein sogenannten Remailer erfolgen kann.
Free Haven benutzt dabei den sogenannten Cypherpunk Remailer Dienst.
Die Kommunikation erfolgt indirekt über den Cypherpunk Server. Der Benutzer kodiert die an den SN gerichteten Daten mit dem SN eigenen Schlüssel, damit auch der Remailer keinen Einblick in die übermittelten Daten hat und so dem Benutzer bestimmte Daten zuordnen könnte. Damit der Remailer weiß an wen er die Daten weiterzuleiten hat, gibt der Benutzer den Reply Block des Servers an, der zusammen mit seinem Pseudonym veröffentlicht wurde. Der Reply Block enthält dann die IP des zu erreichenden Servers, allerdings so verschlüsselt, dass nur der Remailer diese ermitteln kann. Der Remailer sendet dann die Daten an den Server. Auf diese Weise erhält der unter dem Pseudonym bekannt SN die Daten des Benutzers ohne dass er die Identität des Benutzers erfahren hat. Gleichzeitig kann der Remailer die Daten dem Benutzer nicht zuordnen, da sie mit dem öffentlichen Schlüssel des Servers verschlüsselt wurden.
Dieser Kommunikationskanal ermöglicht also eine anonyme Kommunikation.
Anwendungsfälle
Publication
Der Veröffentlichungsvorgang verläuft kann in zwei Arten erfolgen: Entweder der Veröffentlicher selbst sorgt für die notwendige Verarbeitung der zu veröffentlichen Datei oder ein Publisher übernimmt diese Rolle. Grundsätzlich müssen folgende Dinge beim Veröffentlichen geschehen:
- Die Datei wird mit einem asymmetrischen Schlüsselpaar verschlüsselt, welches nur der Autor kennt.
- Die verschlüsselten Daten werden dann mittels des Information Dispersal Algorithmus in mehrere Teile geteilt.
- Jedes dieser Teile wird mit einer Signatur und den notwendigen Informationen zum späteren Zusammenbauen bestückt. Desweiteren bestimmt der Autor ein Gültigkeitsdatum, welches definiert wie lange dieses Dokument bzw die einzelnen Shares von den Servnet Nodes gespeichert werden soll. Die Gesamtheit dieser Informationen und einem Teil wird als "Share" bezeichnet.
- Diese Teile werden entweder direkt an verschiedene Servnet Nodes getauscht oder auf dem eigenen Speicher (im Falle, dass der Publisher selbst Servnet Node ist) gespeichert.
Zur Identifikation des Shares wird der öffentliche Schlüssel verwendet. Das bedeutet, dass der Server bei einer Anfrage eines öffentlichen Schlüssels seine Shares durchsucht. Die Suchanfrage ist dabei der Hashwert des gesuchten Schlüssels um Query Anonymity zu garantieren.
Bemerkung: Es ist möglich, dass die Shares nicht anhand des öffentlichen Schlüssels identifiziert werden, sondern anhand des Hashwertes des öffentlichen Schlüssels. Dies würde eine erhöhte Server Anonymity bieten. Der Server wäre sonst in der Lage selbst eine Anfrage in das Servnet zu stellen und kann so das Dokument herstellen, für das sein Share steht! Dies hätte aber auch zur Folge, dass es keine Möglichkeit mehr gibt "illegale" Daten zu veröffentlichen, aus diesem Grund wird in der Regel nicht nur der Hashwert gespeichert.
Retrieval
Bei einer Anfrage eines Readers werden folgende Dinge gesendet:
- Reply Block des Readers, um dem Server die Möglichkeit zu geben, dem Reader über einen anonymen Kommunikationskanal zu erreichen.
- Öffentlicher Schlüssel des Readers.
- Der Hashwert des öffentlichen Schlüssels, welches der Reader sucht.
Diese Anfrage sendet der Reader über einen Reply Block an ein Servnet Node. Die Anfrage wird dabei mit dem öffentlichen Schlüssel des Servnet Nodes verschlüsselt, so dass der Remailer nicht nachvollziehen kann was der Reader gesucht hat. Der Servnet Node wiederum kann nicht feststellen, wer die Anfrage gestellt hat.
Ein Servnet Node empfängt eine solche Anfrage und durchsucht daraufhin die Liste seiner Shares. Besitzt er ein entsprechendes Share verschlüsselt er dieses mit dem öffentlichen Schlüssel des Readers und sendet dieses an den Reply Block des Readers. Der Remailer ist wiederum nicht in der Lage das Share zu lesen, da nur der Reader den zugehörigen privaten Schlüssel besitzt.
Danach sendet der Servnet Node die Anfrage per Broadcast an alle ihn weiter bekannten Servnet Nodes. Außerdem merkt sich der Servnet Node diese Anfrage, damit er sie nicht doppelt berarbeitet.
Expiration
Läuft die Gültigkeit einzelner Shares ab, so kann der Server diese kommentarlos löschen.
Trading
TODO
Revocation
Es gibt die Möglichkeit Dokumente zurückzurufen. Dafür muss bei der Veröffentlichung ein neues Feld in die Shares eingebaut werden. Dieses enthält den Hashwert eines Geheimnisses des Autors. Möchte der Autor ein Dokument zurückrufen authentifiziert er sich durch dieses Geheimnis. Die Servnet Nodes dürfen daraufhin die dazugehörigen Shares löschen. Die Veröffentlichung des Geheimnisses passiert wieder per Sendung an ein Servnet Node, der wiederum einen Broadcast dieses Zurückrufs sendet.
Angriffe
TODO
Problem
Bei zu geringer Teilnehmeranzahl kann nicht garantiert werden, dass die Dokumente dauerhaft im Servnet gespeichert werden, da Angreifer leicht gezielt Dokumente zerstören können. Bei zu hoher Teilnehmeranzahl ist die Performanz des System niedrig (das System ist nicht skalierbar). Dies liegt vor allem an den Broadcasts innerhalb des Servnets. Diese gegensätzlichen Ziele führten zum Abbruch des Projekts.
Quellen
- D. M. Roger Dingledine, Michael J. Freedman. The Free Haven project: Distributed anonymous storage service. In Proceedings of the Workshop on Design Issues in Anonymity and Unobservability, July 2000. http://citeseer.ist.psu.edu/article/dingledine00free.html
- R.R. Dingledine, "The Free Haven Project: Design and Deployment of an Anonymous Secure Data Haven," M.Eng. thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (2000). Available at http://www.freehaven.net/ (2000). http://citeseer.ist.psu.edu/dingledine00free.html
- Michael O. Rabin, "Efficient dispersal of information for security, load balancing, and fault tolerance, April 1989.