Verschlüsselung von Web-Seiten mittels JavaScript

Die Seiten liegen als selbstentschlüsselndes HTML auf dem Webserver. Der sichtbare Inhalt ist jedoch nur ein Hinweis auf die Verschlüsselung, während der eigentliche Inhalt in JavaScript-String-Definitionen untergebracht ist, verschlüsselt mit einem Shrinking-Generator-Algorithmus.

Das Entschlüsselungsscript wird mitgeliefert; der Schlüssel, eine 32stellige Hexadezimalzahl, muss jedoch zuvor auf vertraulichem Weg zum Nutzer gelangt sein. Dafür ist am besten eine HTML-Datei wie diese hier geeignet, in der ein speziell präparierter Link (s.u.) den richtigen Schlüssel mitgibt. Natürlich dürfte sie im Ernstfall nicht offen im Netz stehen. Wenn der Schlüssel einmal auf diese Weise mitgegeben (d.h. für JavaScript-Kenner: in top.name gespeichert) ist, dann können in diesem Browserfenster alle Seiten betrachtet werden, die mit dem gleichen Schlüssel kodiert sind.

Hier nun einige Möglichkeiten zur Demonstration. Der hier verwendete Schlüssel kann die Datei geheim1.html öffnen, nicht aber die Datei geheim2.html. Beide Dateien haben ca. 20 kB Umfang; bei meinen Versuchen brauchte ein PC mit 333 MHz Prozessor zur Entschlüsselung ca. 1s/kB.

Auch Folgendes ist natürlich möglich:
   
mit dem anschließenden Verwenden der gewöhnlichen Links geheim1.html bzw. geheim2.html.

Eine eigene Seite zeigt, wie Sie nach diesem Prinzip verschlüsselte Seiten erstellen können.

Noch eine abschließende Bemerkung: Dies hier wurde im Rahmen einer Diskussion in der Newsgroup de.comp.lang.javascript nur zum Beweis der prinzipiellen Möglichkeit einer Verschlüsselung mittels JavaScript erstellt. Falls es jemandem gelingen sollte, die Verschlüsselung der Datei geheim2.html zu brechen, bitte ich um Nachricht an hatto@salesianer.de! Für eine ernsthafte praktische Anwendung sollten Sie jedoch besser eine Verschlüsselung mittels SSL in Betracht ziehen; Fragen dazu sind in de.comm.infosystems.www.authoring.misc am Platz.
 
Home