zurück zum Artikel

Interessantes Konzept für verschlüsselte Pastes

Mit ZeroBin kann man – wie man es von Diensten wie Pastebin kennt – Daten für den Austausch mit anderen auf einem Server im Internet zwischenlagern. Allerdings speichert der Server die Daten nur verschlüsselt – die Ver- und Entschlüsselung erfolgt lokal im Browser via JavaScript. Paste-Server werden etwa von Entwicklern gern genutzt, um Code-Fragmente zur Illustration eines Sachverhalts auszutauschen beziehungsweise zu veröffentlichen.

Die Betreiber von Servern wie Pastebin[1] kämpfen allerdings vermehrt mit dem Problem, dass ihre Dienste auch genutzt werden, um rechtlich fragwürdige oder sogar eindeutig illegale Inhalte dort abzulegen. Sie sehen sich jedoch nicht im Stande, den kompletten Inhalt ihrer Server systematisch auf mögliche Gesetzes- oder gar Urheberrechtsverstöße zu scannen – auch wenn manche Anwälte die Gesetzeslage so interpretieren, dass sie dazu verpflichtet seien. Als Ausweg bietet Zerobin jetzt Software für einen Dienst an, bei dem die Daten nur verschlüsselt auf dem Server gelagert werden und der Schlüssel auch nie an den Server geschickt wird. Denn die Ver- und Entschlüsselung erfolgt immer lokal im Browser. Das soll die Betreiber eines Zerobin-Servers aus der Schusslinie der Juristen bringen, denn sie können die Daten gar nicht mehr auf mögliche Gesetzesverstöße kontrollieren.

Ob das Abmahnanwälte und Strafverfolger tatsächlich beeindruckt, muss sich zeigen – das technische Konzept ist jedenfalls durchaus interessant. Die eigentliche Arbeit erledigt JavaScript-Code, der mit der Seite geladen und im Browser des Anwenders ausgeführt wird. Der erzeugt für jedes neue Pastie einen neuen 256-Bit-Schlüssel. Den benutzt das Skript, um den vom Anwender eingegebenen Text mit AES zu verschlüsseln, bevor es ihn an den Server schickt. Außerdem erzeugt es auch eine passende URL, unter der der Text wieder abrufbar ist. Diese URL enthält nicht nur die ID des Datenhäppchens, sondern als Anker auch den Schlüssel:

http://zerobin.irgend.wo/paste/?<ID>#<Key>

Gibt man diese URL jemand anders, kann der sich damit die Daten wieder in Klartext anzeigen lassen. Der Clou dabei ist, dass der Browser den Anker hinter dem #, der eigentlich eine Position innerhalb einer Seite festlegen soll, nie an den Server schickt, sondern immer nur lokal interpretiert.

Wer die komplette URL kennt, kann sich den Klartext anzeigen lassen. Über die Leitung geht nur Ciphertext und die Basis-URL ohne Schlüssel. (Bild:  Zerobin[2] )

Das Projekt stellt die erforderliche Software als Open Source[3] bereit, damit jeder selbst Server mit ZeroBin aufsetzen kann. Darüber hinaus betreiben sie auch einen Zerobin-Test-Server[4], mit dem man die Funktionsweise ausprobieren kann. Kurze Tests von heise Security haben die zentralen Aussagen der Entwickler bestätigt: Der gespeicherte Code geht immer nur als als verschlüsselter Ciphertext über die Leitung – eingerahmt von <div id="cipherdata">...</div>. Außerdem haben Firefox und Chrome die URL auch tatsächlich nur ohne Schlüssel übertragen, obwohl die gesamte URL inklusive Anker in der Adressleiste stand. Problematisch könnten allerdings nachlässig programmierte Crawler von Suchmaschinen sein, die etwa in Foren veröffentlichten Zerobin-Links folgen und dabei die komplette URL – inklusive Anker/Schlüssel – vom Server abrufen. Damit würde dieser wieder in dessen Log-Dateien auftauchen. (ju[5])


URL dieses Artikels:
http://www.heise.de/-1541988

Links in diesem Artikel:
[1] http://pastebin.com/
[2] http://sebsauvage.net/wiki/doku.php?id=php%3Azerobin
[3] http://sebsauvage.net/wiki/doku.php?id=php%3Azerobin
[4] http://sebsauvage.net/paste
[5] mailto:ju@ct.de