ZeroBin: Revival des toten Briefkasten

Vor einigen Jahren hatte ich auf meinem Server eine ZeroBin Installation vorgenommen, das Projekt allerdings aus den Augen verloren. Doch nach einem Hinweis habe ich nun hier noch einmal nachgelegt und die aktuellste Version aufgespielt und auch noch ein paar zusätzliche Features mit realisiert.

ZeroBin ist ein webbasiertes Tool, bei dem Texte (z.B. Code zur Diskussion aus Programmierprojekten) verschlüsselt auf einem Server für eine begrenzte Zeit hinterlegt werden können und stellt damit eine Alternative zum bekannten Pastebin dar. Die zur Entschlüsselung erforderlichen Kennwörter und auch die Adresse unter der die Nachricht gefunden werden kann, sind dabei nur dem Autoren der Nachricht bekannt.

Technisch ruft der Verfasser einer Nachricht die Webseite mit der ZeroBin Installation, z.B. httsp://jaegers.net/apps/zerobin auf und erhält dort eine Eingabemaske, in der er seinen Text hinterlegen kann. Der Zugriff auf das Formular ist in diesem Fall bereits per SSL verschlüsselt, so das Lauscher von der weiteren Kommunikation ausgeschlossen sind.

ZeroBin

Der Autor eines Textes hat nun vor dem Hinterlegen seiner Nachricht noch diverse Optionen zur Auswahl:

  • Ablaufzeit: Wahlweise kann der Verfasser der Nachricht festlegen, wie lange seine Nachricht auf dem Server verfügbar sein soll. Die verfügbaren Optionen reichen dabei von 5 Minuten bis hin zu einem Jahr. Alternativ kann die Zeitspanne auch unbefristet gewählt werden.
  • Einmal-Text: Wird die Option Einmal-Text (Burn after reading) gewählt, so wird die Nachricht nach dem ersten Abruf vom Server wieder gelöscht.
  • Diskussion eröffnen: Wird diese Einstellung gewählt, so besteht für den Autor und Empfänger der Nachricht einem Diskussionsbeitrag im Forum gleich Antworten an den ursprünglichen Beitrag anzuhängen. Der verwendete Schlüssel und die URL ändern sich dabei nicht. Im Falle einer Diskussion sollte allerdings die Ablaufzeit entsprechend gewählt werden, denn eine Benachrichtigung über einen neuen Kommentar in der Diskussion erhält man nicht.
  • Passwort: ZeroBin erzeugt selber einen Code, der zur Entschlüsselung der Nachricht erforderlich ist. Durch Angabe eines zusätzlichen Passworts kann dabei die Sicherheit der Nachricht noch einmal deutlich erhöht werden. Das Passwort wird nämlich anders als mit dem Verschlüsselungscode nicht in die resultierende URL mit eingebaut, sondern muss vom Empfänger der Nachricht von Hand eingegeben werden.
  • Format: Da das Tool von Hause aus nur für reinen Text gedacht ist, ist die Möglichkeit der ansprechenderen Gestaltung des Textes sehr eingeschränkt. Aus diesem Grund hat man hier noch die Möglichkeit die Formatierung des Textes festzulegen. Mit dem Optionen “Quellcode” und “Markdown” kann dann ein Syntaxhighlighting (farbliche Hervorhebung) für den Leser der Nachricht aktiviert werden, bzw. eine Formatierung mit Spezialkommandos aus dem Markdown Kontext umgesetzt werden.

Hinweis: Ablaufzeit und Einmal-Text sind nicht garantiert. Der Server unterliegt einer regelmäßigen Datensicherung wodurch auch die verschlüsselten Texte mit gesichert und in begrenztem Zeitrahmen auch wiederhergestellt werden können. Da allerdings weder der Entschlüsselungscode noch das Passwort auf dem Server gespeichert werden, ist hier nur ein überschaubares Risiko vorhanden.

Die Möglichkeit Dateien hochzuladen und ebenso verschlüsselt auf dem Server abzulegen wurde auf dieser Installation bewusst nicht aktiviert um einen Missbrauch einzugrenzen.

Nach Absenden des Formulars erhält der Autor nun einen Link, der zum Beispiel wie folgt aussehen kann: https://jaegers.net/apps/zerobin/?45f6050e3f50e221#1Hl71czEE5Ym2QpZjb9oRRo5xysv9fUnEbXAZJueY2g=

Der Aufbau des Links ist dabei wie folgt:

  • URL des ZeroBin Servers: https://jaegers.net/apps/zerobin/
  • Adresse der Nachricht auf dem Server: 45f6050e3f50e221
  • Code zur Entschlüsselung auf dem Client: 1Hl71czEE5Ym2QpZjb9oRRo5xysv9fUnEbXAZJueY2g=

Das Fragezeichen “?” und die Raute “#” trennen dabei die drei Komponenten voneinander.

Der Kniff hierbei ist der, dass korrekt implementierte Browser von dieser URL nur die ersten beiden Elemente durch das Internet senden. Ein potenzieller Angreifer kann also nur die Adresse der Nachricht und anschließend die verschlüsselt übertragene Nachricht empfangen, jedoch nicht lesen. Zur Entschlüsselung ist der dritte Teil des Links und ggf. noch das Passwort erforderlich. Alles nach einer Raute behält der Browser und damit der Client in der Regel für sich. Auf dem Client selber wiederum kann dann die Nachricht per JavaScript decodiert und für den Empfänger lesbar gemacht werden.

Für das oben angegebene Beispiel ist übrigens das von mir gewählte Passwort “Pa$$w0rd” einzugeben. Danach sollte die “geheime” Botschaft sichtbar werden.

Auf dem Server ist die verschlüsselte Nachricht dann wie folgt hinterlegt:

{"data":"{\"iv\":\"VdFPRX7fqDkg5izL+u7MYD==\",\"v\":1,\"iter\":1000,\"ks\":128,\"ts\":64,\"mode\":\"ccm\",\"adata\":\"\",\"cipher\":\"aes\",\"salt\":\"IFGP+i4SDqt=\",\"ct\":\"JDwenIFwDamBRgAcEFZCWx10KCetD8EoWDqnpTtyHpfrjt2b0WQ5Z2in8gT0hgPoCDsqYsBdoQYveq6CWvB058qPn7qk5NSvK0ArsKGPuircxvrkCqkjdgPLB9J3aUkrPJyjRsITFC+2266NviO2g4uChEYpZDprCNv7MQNiCoy4KZZ84XO7PRAn9YujR62ED3gIFDITOr9bgOorPQFHPhJTePgSkdxQf3jAp999UndO2NsuY8BRD9AiufyxZA78RZN2LMSnYQ09Rfu0VRcAMd0+ompELwGMCJGEtdc9yFP7P0+UrfVrWifU8t4WQ+tDUhhgWVWOfUOKH\/t56AIVxCk14Sf9UXWFEdzclAQ==\"}","meta":{"formatter":"markdown","postdate":1442704917}}

(Dies ist nicht wirklich die verschlüsselte Nachricht des oben gezeigten Beispiels, sonst könnte man ja ggf. Rückschlüsse auf den serverseitigen Code schließen…)

Es ergeben sich nun – je nach Grad der Paranoia – zwei Anwendungsmöglichkeiten:

  1. maximale Sicherheit, minimaler Komfort: Der Autor teilt dem Empfänger (ggf. auf öffentlichem Wege) die ersten beiden Elemente der URL (bis zur Raute) mit und auf separaten Wegen den dritten Teil der URL und das verwendete Passwort.
  2. gute Sicherheit, maximaler Komfort: Der Autor teilt dem Empfänger (ggf. auf öffentlichem Wege) die gesamte URL mit und auf separatem Wege das verwendete Passwort.

In der Praxis sieht das dann wie folgt aus:

Ein Entwickler oder Administrator hat einen kniffligen Fall und kommt mit seinem Programm oder einer Konfiguration nicht weiter. Nun sucht er Hilfe in einem Forum oder bei einem Hersteller, möchte seine Daten an die Supportkräfte weitergeben, allerdings sicherstellen, dass der Code nicht in die Öffentlichkeit gelangt. Im Forum oder im Support Ticket kann er nun den über ZeroBin generierten Link hinterlegen. In einer persönlichen Nachricht oder einem Telefonat teilt er dann denjenigen, die die Daten einsehen sollen das Passwort mit.

Im anderen Fall haben sich Empfänger und Sender bereits im Vorfeld auf ein sicheres Passwort geeinigt, so dass dieses nicht noch großartig kommuniziert werden muss. Der Aufwand für eine größtmögliche Sicherheit ist allerdings nicht geringer als der bei der Verwendung von PGP oder GPG verschlüsselten Texten. Der Nutzen ergibt sich in geschlossenen Support-Foren oder -Anwendungen. Hier kann der Link und das Passwort im nicht öffentlich einsehbaren Rahmen an eine Support-Einheit weitergegeben werden. Dritte sind dann nicht in der Lage die entsprechenden Daten abzugreifen, bzw. auf diese nach dem Support Fall noch zuzugreifen.

Aber auch dieses Tool kann nicht verhindern, dass der Empfänger den Text kopiert und dann publiziert. Eine solche Möglichkeit ist in der digitalen Welt grundsätzlich nicht auszuschließen.

Ein interessantes Konzept, wie der Heise Verlag es bereits vor drei Jahren betitelte, ist es allerdings allemal und funktionieren tut es auch.

Die ZeroBin Installation kann auch über die kürzere und leichter zu merkende URL http://zero.jaegers.net, bzw. http://0.jaegers.net erreicht werden und leitet dann automatisch auf die SSL-verschlüsselte Adresse um.

Schreibe einen Kommentar

Nutze dieses Kommentarfeld um deine Meinung oder Ergänzung zu diesem Beitrag kundzutun. Verhalte dich bitte respektvoll und höflich! Kommentare werden vor der Veröffentlichung in der Regel moderiert und bei Verstößen gegen geltendes Recht, die guten Sitten, fehlendem Bezug oder missbräuchlicher Verwendung nicht freigegeben oder gelöscht.
Über die Angabe deines Namens, deiner E-Mail Adresse und deiner Webseite freuen wir uns, doch diese Felder sind optional. Deine E-Mail Adresse wird dabei zu keinem Zeitpunkt veröffentlicht.

Um mit dem Betreiber dieser Seite nicht-öffentlich in Kontakt zu treten, nutze die Möglichkeiten im Impressum.