Verschlüsselte Dateien erwecken bei Neugierigen stets Interesse. Auf die Idee, dass die nett anzuschauenden Bilder versteckte Informationen enthalten könnten, kommt dagegen kaum jemand.
Nicht erst seit den Enthüllungen von Edward Snowden machen sich viele Anwender Gedanken darüber, ihre lokal oder in der Cloud abgelegten privaten Datenbestände vor neugierigen Blicken effektiv zu schützen. Seit sogar in der bekannten Verschlüsselungssoftware Truecrypt bei einem groß angelegten Audit kleinere Schwächen bekannt wurden [1], sucht so mancher nach Alternativen. Eine weitgehend unbekannte Technologie, die Daten nicht nur sicher vor neugierigen Blicken schützt, sondern obendrein ihre Existenz per se verschleiert, heißt Steganografie.
Grundlagen
Die Technik der Steganografie beruht darauf, Datenbestände in einem Trägermedium zu verstecken. Dazu kommt meist ein Bild oder ein Audio-File zum Einsatz, in das die Nachricht in Gestalt einer Textdatei eingebettet wird. Im Gegensatz zu verschlüsselten Dateien oder kryptografisch behandelten Dateicontainern können bei einem steganografisch modifizierten Trägermedium Außenstehende meist nicht erkennen, dass es eine Nachricht enthält, was bereits die Gefahr eines möglichen Angriffs deutlich reduziert.
Für besonders vorsichtige Zeitgenossen bieten einige steganografische Werkzeuge zusätzlich die Möglichkeit, die zu versteckenden Daten vor dem Einbetten zu verschlüsseln und mit einem Passwort abzusichern. Dann bleibt selbst nach einem erfolgreichen Angriff auf den Träger der eingebettete Inhalt für den Angreifer unlesbar und erfordert einen weiteren, diesmal kryptografischen Angriff.
Eine weitere Anwendungsmöglichkeit von Steganografiesoftware besteht darin, einen Träger mit einem unsichtbaren digitalen Wasserzeichen zu versehen, um so beispielsweise urheberrechtlich geschützte Werke zu kennzeichnen. Damit lässt sich im Streitfall die Herkunft eines Werks zweifelsfrei nachweisen. Allerdings gehen die steganografischen Wasserzeichen verloren, sobald man die Zieldatei nach dem Einbetten des Wasserzeichens nachbearbeitet, also beispielsweise in ein anderes Format überführt.
Technik
Meist kommen Bilddateien mit hoher Farbtiefe als steganografisches Trägermedium zum Einsatz, da sich hier besonders gut Nachrichten einbetten lassen, ohne dass eine Veränderung des Bilds zu erkennen wäre. Dabei spielt es keine Rolle, ob es sich beim Träger um ein verlustfrei oder verlustbehaftet komprimiertes Medium handelt. Fotos, die mit einer Digitalkamera angefertigt wurden, eignen sich genauso für steganografische Zwecke wie Bilder, die Sie mit einem Scanner digitalisiert haben.
Gängige steganografische Programme betten die Nachricht im niederwertigsten Bit des Farbwerts eines Bildpunkts ein, dem sogenannten Least Significant Bit, da hier Modifikationen am wenigsten auffallen. Die Software ermittelt dabei automatisch geeignete Pixel, um auffallende Veränderungen bei gleichfarbigen Flächen zu vermeiden. Obendrein verstreut der Algorithmus die eingebetteten Nachrichten über die gesamte Bildfläche, um einer Entdeckung durch Angriffe mit statistischen Methoden vorzubeugen.
Den größten Nachteil der steganografischen Verschlüsselung stellt die begrenzte Kapazität des Trägermediums dar: Informationen von mehreren MByte Größe lassen sich nur in sehr großen Bilddateien mit hoher Farbtiefe verbergen. Bei kleineren Bildern werden ansonsten mit dem bloßen Auge sichtbare Bildverfälschungen erkennbar.
Einstieg mit Steg
Unter Linux stehen eine ganze Reihe steganografischer Anwendungen zur Auswahl, darunter als bekannteste Outguess [2] und Steghide [3]. Bei beiden handelt es sich um Kommandozeilenprogramme, was Einsteiger eher abschreckt. Das Programm Steg [4] dagegen richtet sich an Nutzer, die einerseits nicht in ein Terminal wechseln wollen, um dort umständlich Parameter einzugeben, andererseits jedoch trotz grafischer Oberfläche die Software manuell konfigurieren möchten.
Steg steht für 32- und 64-Bit-Systeme in Form von TGZ-komprimierter Binaries bereit. Sie laden das passende, knapp 8 MByte große Archiv herunter, entpacken es und wechseln danach in das neu angelegte Verzeichnis. Hier finden Sie neben verschiedenen Qt-Bibliotheken auch ein Shellskript und eine Binärdatei. Sofern Sie mit einer Qt-basierten grafischen Oberfläche arbeiten, wie etwa KDE oder TDE, starten Sie Steg anschließend über den Aufruf ./steg im Terminal.
Bei Systemen ohne Qt-Umgebung rufen Sie dagegen das beiliegende Shellskript auf, um die entsprechenden Variablen zu setzen und anschließend das Tool zu aktivieren. Im Startbildschirm zeigt Steg die verwendete Version der Qt-Bibliotheken an (siehe auch Kasten “Versionsprobleme”).
Anstatt die Software im Terminal zu starten, können Sie auch manuell einen entsprechenden Menüpunkt anlegen. Beim ersten Start bestätigen Sie zunächst die Lizenz, denn Steg ist keine freie Software, sondern “Freeware”. Anschließend öffnet sich ein unscheinbares Programmfenster (Abbildung 1) mit einer Menü- und einer Schalterleiste, wobei inaktive Schalter zur besseren Orientierung ausgegraut erscheinen.
Versionsprobleme
Vorsicht ist bei Linux-Distributionen geboten, die von Haus aus Qt-Bibliotheken in der Version 4.8.6 verwenden: Sie beißen sich mit der von Steg benutzten Version 4.8.4 und machen die Software unbrauchbar, die dann steganografisch modifizierte Containerdateien nicht abspeichert. Die einzig mögliche Abhilfe besteht in der Deinstallation der Libqt4-Bibliotheken via Paketverwaltung. Diesen Eingriff ins System sollten Sie jedoch nur vollziehen, wenn keine weiteren Programme zwingend Qt 4.8.6 verwenden.
Bedienung
Vor dem Öffnen einer Trägerdatei gilt es, bestimmte Voraussetzungen zu beachten: Steg akzeptiert dafür nur Bilder in den Formaten BMP, JPEG, PNG, PPM und TIFF. Mit dem von manchen anderen Steganografieprogrammen ebenfalls unterstützten GIF kann Steg nichts anfangen.
Sie öffnen die Trägerdatei, indem Sie im Programmfenster auf einen der beiden ganz links angeordneten Schalter mit dem Paket-Symbol klicken. Steg unterscheidet hier zwischen komprimierten und unkomprimierten Dateiformaten: Während Sie ein Foto im verlustbehaftet komprimierten JPEG-Format grundsätzlich durch einen Klick auf den zweiten Schalter von links öffnen, nehmen Sie sich anderer Bildformate durch einen Klick auf die ganz links angeordnete Schaltfläche an.
In beiden Fällen erscheint ein Dateidialog, in dem Sie die gewünschte Datei anwählen. Anschließend zeigt die Software das geladene Bild nach einer genauen Analyse zweifach nebeneinander im Programmfenster an: Links im Bereich Original Media sehen Sie das Ursprungsbild, rechts unter Modified Media das zunächst noch exakt gleiche, später jedoch das modifizierte Bild (Abbildung 2).

Abbildung 2: Links zeigt das Fenster das Originalbild, rechts dasjenige mit den versteckten Informationen. Eventuelle Unterschiede fallen sofort auf.
In den direkt unter den beiden Bilddarstellungen befindlichen grauen Boxen finden Sie einige Informationen zu den Bildern. Rechts unten im Programmfenster steht die Zeile Available Space. Sie gibt an, wie viele Nachrichten sich bis zu welcher Größe im aktiven Bild ohne auffällige Unstimmigkeiten in der Farbdarstellung verbergen lassen.
Konfigurationsdialog
Nach dem Import des Trägermediums aktiviert das Tool in der oberen Schalterleiste den vierten Knopf von links. Er fungiert als Konfigurationsdialog für den einzubettenden Text und heißt daher auch Configuration.
Der zugehörige Dialog besteht aus zwei am oberen Rand angeordneten horizontalen Reitern, von denen der linke namens Common Options aktiv ist. Im großen Eingabefeld geben Sie einen beschreibenden Zusatztext ein, der maximal 256 Zeichen umfassen darf. Diese Beschreibung zeigt die Applikation beim Entpacken der Nachrichtendatei nicht gesondert an. Die Software übernimmt den Zusatztext in das Steganogramm, wenn Sie über dem Eingabefeld ein Häkchen vor der Option Embed a text message: setzen (Abbildung 3).

Abbildung 3: Im Konfigurationsdialog legen Sie unter anderem die Art der Verschlüsselung und ein zugehöriges Passwort fest.
Im darunter befindlichen Bereich Crypto Options stellen Sie den Verschlüsselungsmodus ein. Steg verschlüsselt grundsätzlich sämtliche einzubettenden Daten und bietet dafür unterschiedliche Methoden an. Die für Sie passende Methodik bestimmten Sie im Auswahlfeld Crypto Mode:. Die Option Auto verschlüsselt die Nachrichtendatei sowie den eingegebenen Zusatztext automatisch, ohne Angabe eines Passworts oder eines Schlüsselpaars.
Bei Auswahl der Option Symmetric PassPhrase dagegen benötigen Sie zum Ver- und Entschlüsseln des Steganogramms ein Passwort, das Sie im darunter befindlichen Eingabefeld PassPhrase: eintragen. Das Feld erscheint zunächst mit rotem Hintergrund. Nach Eingabe eines adäquaten Passwortes wechselt die Hintergrundfarbe zu Grün. Das soll das Verwenden zu schwacher Passwörter verhindern, denn erst nach dem Farbwechsel akzeptiert Steg das Passwort.
Für die Option Asymmetric Unsigned, die Ver- und Entschlüsselung trennt, benötigen Sie zum Einbetten von Daten den öffentlichen Schlüssel des Empfängers, während Sie beim Empfang von Daten Ihren privaten Schlüssel brauchen.
Die sicherste Form der Verschlüsselung bietet die Option Asymmetric Signed, bei der Sie zum Einbetten von Daten den öffentlichen Schlüssel des Empfängers und zusätzlich Ihren privaten Schlüssel verwenden. Beim Empfang eines Steganogramms gelingt dagegen das Entschlüsseln der eingebetteten Nachricht mit Ihrem privaten Schlüssel.
Um die Daten nach der erfolgreichen Rekonstruktion der eingebetteten Daten zu verifizieren, erwartet die Software die Angabe des öffentlichen Schlüssels des Senders. Fehlt er, so informiert Steg über die fehlende Verifikation der Absenderidentität. Zum Generieren der Schlüssel liefert die Software ein entsprechendes Werkzeug mit, das Sie im Menü unter Tools | RSA key-pair generator… erreichen.
Im Reiter Special Options des Konfigurationsfensters finden Sie einige Optionen für das Einbetten der Daten. Je nach verwendetem Format der Trägerdatei erscheinen hier unterschiedliche Konfigurationsmöglichkeiten.
Verwenden Sie ein komprimiertes JPEG, stellen Sie hier zunächst unter Smart distribution ein, ob Steg die Nachrichtendatei möglichst über den gesamten Träger verstreut einbetten soll – das erschwert statistischen Verfahren die Lokalisierung steganografischer Modifikationen. Dazu geht die Routine beim Einbetten der Daten höchst konservativ vor, sodass sich dabei weniger Daten verstecken lassen.
Für unkomprimierte Bildformate legen Sie stattdessen nach einzelnen Farbanteilen getrennt fest, in welcher Intensität Steg die einzelnen Bildpunkte modifizieren soll. Dabei arbeitet die Software stets mit dem niederwertigsten Bit. Je höher Sie die Werte in diesem Dialog einstellen, desto größer kann die einzubettende Nachricht ausfallen. Um auffällige und damit statistisch auswertbare Veränderungen der Containerdatei zu vermeiden, empfiehlt es sich aber, möglichst kleine Werte zu wählen.
Ein Klick auf Ok unten links im Dialogfenster übernimmt die Einstellungen ins rechte Bild. Fallen Ihnen dabei sichtbare Veränderungen zum links angezeigten Original auf, modifizieren Sie die Einstellungen. Direkt unterhalb der beiden Abbildungsfenster befindet sich eine kleine Schalterleiste, mit der Sie im jeweiligen Bild zoomen.
Der sechste Schalter von links im Hauptfenster namens Hide Noise füllt nach einem Klick darauf anhand der aktuellen Konfiguration alle Bildpunkte mit Zufallsdaten, sodass Sie auf einen Blick sehen, wie die modifizierte Abbildung unter Ausnutzen des kompletten Einbettungspotenzials aussieht.
Das erlaubt es Ihnen, vor dem Einbetten echter Texte die momentanen Einstellungen zu überprüfen. Entsprechen die Ergebnisse nicht Ihren Erwartungen, etwa weil die Bildmodifikationen auffallen (Abbildung 4), machen Sie den letzten Arbeitsschritt rückgängig, indem Sie in der Menüzeile am oberen Rand des Programmfensters die Option Revert aus dem Menü Edit anklicken.

Abbildung 4: Enthält die Trägerdatei zu viele versteckte Daten, fällt das durch Farbverfälschungen unangenehm auf.
Datenaufnahme
Nach dem Anpassen aller Optionen betten Sie im nächsten Schritt die Nachricht in die Trägerdatei ein. Dafür klicken Sie entweder in der Schalterleiste auf den siebten Knopf von links oder wählen aus dem Menü Hide die Option Hide Data… an. Im anschließenden Dialog legen Sie im Dateimanager den einzubettenden Inhalt fest. Steg führt die beiden Dateien daraufhin sofort zusammen und zeigt bei Fertigstellung eine entsprechende Meldung an.
Die Software akzeptiert als einzubettende Datei auch Archive. Das vorherige Komprimieren spart nicht nur Speicherplatz, sondern gestattet zudem das Verbergen mehrerer Quelldateien in einem einzigen Träger. Überschreitet die Größe der Datendatei das maximale Speichervolumen des Trägers, so gibt Steg einen entsprechenden Hinweis aus. Dann empfiehlt es sich, die Daten zu splitten und in mehrere Trägerdateien einzubetten oder aber einen Träger zu verwenden, der ein größeres Speichervolumen bietet.
Abschließend müssen Sie die neu generierte Containerdatei noch speichern. Klicken Sie dazu in der Schalterleiste auf das Diskettensymbol und geben anschließend den Speicherpfad und den Dateinamen im Dateimanager an. Steg unterstützt für die Container die Formate TIFF und PNG (unkomprimiert) sowie JPG (komprimiert).
Extrahieren
Das Extrahieren von Inhalten aus einer steganografisch modifizierten Containerdatei bewerkstelligen Sie ähnlich einfach. Sie laden zunächst die Containerdatei ins Programm. Haben Sie die Datei zusätzlich symmetrisch oder asymmetrisch verschlüsselt, rufen Sie danach das Menü Configuration auf und geben hier die Authentifizierungsdaten an. Anschließend klicken Sie in der Menüzeile des Programmfensters auf den Eintrag Extract, gefolgt von Extract Data…. Dann geben Sie im gesondert geöffneten Dateimanager den Zielpfad an, in den Steg die Inhalte extrahieren soll. Im letzten Schritt entpackt die Applikation die Daten im Zielverzeichnis, wobei sie eventuell manuell eingegebene Zusatztexte in einer gesonderten Datei ablegt.
Fazit
Mit Steg erhalten Sie ein einfach zu bedienendes grafisches Steganografieprogramm, mit dessen Hilfe Ihre vertraulichen Daten bei korrekter Bedienung auch wirklich vertraulich bleiben. Dabei schöpft der Betrachter der steganografisch modifizierten Bilddateien noch nicht einmal Verdacht, dass die Bilder noch andere Informationen enthalten könnten. Für größere Datenbestände eignen sich steganografische Methoden aber grundsätzlich nicht, da die Kapazitäten der Trägerdateien im Vergleich zu anderen kryptografischen Methoden arg begrenzt sind.
Infos
[1] Sicherheitsprobleme in Truecrypt: http://www.golem.de/news/verschluesselung-truecrypt-audit-findet-kleinere-sicherheitsprobleme-1504-113310.html
[2] Outguess: Erik Bärwaldt, “Gut versteckt”, LU 11/2007, S. 94, https://www.linux-community.de/14367
[3] Steghide: Erik Bärwaldt, “Verstecken spielen”, LU 06/2007, S. 90, http://linux-community.de/13094
[4] Steg: http://steg.drupalgardens.com/






