Versteckt eure Daten: Steganographie in Texten

3. Februar 2011 von Bastian Greshake in Informatik

In unserem hochdigitalisierten Zeitalter wird Kryptographie nicht nur für das Militär immer wichtiger. Sondern auch für jeden Einzelnen von uns. Gerade wenn man potentiell sensible Daten wie seine Bankdaten, Passwörter etc. auf seinem Laptop, auf USB-Sticks oder seinem Smartphone mit sich herumträgt sollte man darauf achten, dass im Falle des Verlusts oder des Diebstahls nicht jeder direkt Zugriff darauf hat. In Großbritannien zum Beispiel hat man mittlerweile mehrfach schlechte Erfahrungen mit verlorenen Daten-CDs gemacht.

Kryptographie verschlüsselt Daten dabei meist auf eine sichtbare Art und Weise. Allerdings sind die Daten ohne den passenden Schlüssel eben nicht lesbar. Und heutige Verschlüsslungen lassen sich in der Regel nicht in endlicher Zeit aufbrechen. Das klingt ja so weit ganz gut. Aber was, wenn die Instanz vor der man die Daten schützen wollte, fortgeschrittene Maßnahmen wie Rubber-hose cryptanalysis anwendet?? Was der Begriff eigentlich sagen will: „Wir prügeln die Scheisse aus dir raus. Genau so lange, bis du uns den Schlüssel zu den Daten oder gleich alle Geheimnisse gibst.” Und das ist nicht nur ein Problem von Diktaturen. In Großbritannien ist es mittlerweile ein Verbrechen, wenn man den Behörden seine Passwörter nicht geben will. Man geht also einfach ins Gefängnis, bis man seine Passwörter verraten hat.

xkcd

Um diesem Problem zu begegnen gibt es Kryptographie-Verfahren die „Plausible deniability”, also die Möglichkeit, die Existenz von verschlüsselten Daten zu leugnen, erzeugen. In der Regel funktioniert das so, dass innerhalb des Verschlüsselten Datenblocks mehrere, unterteilte Container liegen, die jeweils mit einem eigenen Schlüssel entschlüsselt werden. Und je nachdem welchen Schlüssel man dem Datenblock übergibt, wird ein anderer Container entschlüsselt.

Im einfachsten Fall erzeugt man also 2 Container: Einen mit den echten Daten, die man geheim halten will. Und einen zweiten Container mit weniger sensiblen Daten (Nacktfotos von sich, Zeugnisse, oder was auch immer), die man bereit ist zu opfern, wenn es nötig wird. Wenn man nun zur Herausgabe des Schlüssels gezwungen wird, dann haben die Angreifer zwar die Nacktfotos, nicht aber die letzten Entwürfe für das nächste Paper was man gerade schreibt.

Ein anderer Ansatz um dieses Problem zu lösen ist die Steganographie. Dabei wird die Nachricht selbst nicht unbedingt verschlüsselt, sondern einfach in einem anderen Medium versteckt, so dass sie nicht auffällt. Z.B. in Bildern, in Audio-Dateien oder in Videos. Den möglichen Angreifern, die an die Daten wollen, fällt also gar nicht auf, dass dort sensible Daten liegen könnten. Allerdings ist es unpraktisch mit seinen Mitverschwörern immer relativ große Datenmengen wie Audio/Video zu tauschen, ganz unabhängig davon, dass auch das seinerseits schon wieder Aufmerksamkeit erzeugen könnte.

Bei Sciencebase bin ich über den aktuellen Ansatz gestolpert der versucht Text-Nachrichten steganographisch in anderen Texten zu verstecken. Dabei werden in einem unverdächtigen Cover-Text bestimmte Worte durch Synonyme ersetzt. Und diese Ersetzungen codieren dann ihrerseits für den eigentliche Nachricht. Aber solche Ersetzungen sind nicht gerade trivial, vor allem nicht, wenn man sie mit einem Computer vornehmen will. Denn die Ersetzungen müssen ja nicht nur für die versteckte Nachricht codieren, sondern müssen auch so vorgenommen werden, dass es einem unbedarften Leser nicht auffällt, dass hier eine versteckte Nachricht sein könnte. Und das ist eine nicht einfach automatisierbare Aufgabe.

Als Datensatz aus dem die Ersetzungen kommen können wurde in dem Test der Brown University Standard Corpus of Present-Day American English benutzt. Die Forscher, die sich damit beschäftigen haben, haben dann verschiedene Ersetzungsmethoden ausprobiert. Entweder wurde dabei Part-Of-Speech-Tagging (Die Zuordnung von Wörtern zu Wortarten, in Abhängigkeit vom Kontext) oder eine simplere Methode, die auf Wort-Frequenzen und Wortpaaren basiert, benutzt.

Und da zeigen sich auch schon die ersten Probleme: Das Part-Of-Speech-Tagging erzeugt solche Ersetzungen, die von Menschen nicht als verdächtig wahrgenommen werden und den Sinn des Cover-Texts nicht auffällig verändern. Allerdings lässt sich die so versteckte Nachricht auch nur zu 30% wiederherstellen. Die simplere Methode erzeugt durch die Ersetzungen häufiger verdächtigen Unsinn, dafür lässt sich die versteckte Nachricht auch zu 100% wiederherstellen.

Gleichzeitig ist es problematisch, dass der Cover-Text, in dem die eigentliche Nachricht versteckt werden soll, um ein vielfaches länger sein muss, als die zu versteckende Nachricht. Genauso ist es noch ein Problem, dass die Cover-Texte im Idealfall von den Benutzern selbst ausgewählt oder selbst geschrieben werden sollten. Ebenfalls funktionieren die Methoden nur mit einem ausreichend großen Text-Corpus in der passenden Sprache für die Ersetzungen.

Bis zu einer praktischen Anwendung von Text-in-Text-Steganographie dürfte also noch ein bisschen Zeit vergehen. Und bis dahin sollte man sich dann mit dem Plausible Deniability-Konzept vertraut machen.

Comic: xkcd

Weir, G., & Morran, M. (2010). Hiding the hidden message: approaches to textual steganography International Journal of Electronic Security and Digital Forensics, 3 (3) DOI: 10.1504/IJESDF.2010.038284

Flattr this


2 Kommentare zu “Versteckt eure Daten: Steganographie in Texten”

  1. Arnd Antworten | Permalink

    TrueCrypt

    Mit TrueCrypt lässt sich so ein versteckter Datencontainer wunderbar anlegen. Ohne das richtige password gibt's keine Chance überhaupt festzustellen, dass da versteckte Daten sind.

  2. Bastian Antworten | Permalink

    Truecrypt

    Du hast recht, Truecrypt ist prädestiniert dafür. Den Link im Artikel hab ich vergessen. Aber hier für alle Interessierten: http://www.truecrypt.org/

Einen Kommentar schreiben


5 − drei =