Steganographie

Teil 1: Was zum Geier ist Steganographie?
Steganographie ist die Möglichkeit Nachrichten in Bildern, Videos oder Texten zu verstecken.
Dazu werden z.B. bei einem Bild gewisse Pixel ein wenig verändert. Aus der Veränderung ist dann mit dem richtigen Passwort und dem richtigen Programm die ursprüngliche Nachricht wieder auslesbar.

Steganographie ist keine Verschlüsselung, wobei es natürlich auch möglich ist zum Beispiel eine GnuPG-verschlüsselte Nachricht in ein Dokument einzubetten.
Diese wäre dann (fast) unsichtbar und auch nur mit großem Aufwand ohne richtigen Schlüssel entschlüsselbar (mehrere Jahre Rechenarbeit).
Gute Informationen über Steganographie findet man hier:
Raven (Sehr gute Homepage zu Verschlüsselung)
Burkhard Schröder (Umfangreiche Seite zu Verschlüsselung)
Datenroulette (Kleine Seite zur Verschlüsselung)
Übersicht von Steganographiesoftware (c`t 2001)
Stegoarchive (Übersicht über Steganographiesoftware)
PngStego (Nachrichtenverstecken in PngBildern (Windows, Linux))

Teil 2: Steganographie am Beispiel von PngStego:

Zuerst lädt man sich PngStego herunter, entweder über Sourceforge oder hier.
Die „neueste Version ist 0.3.2, hat allerdings auch schon ein paar Jahre auf dem Buckel.
Unter Linux entpackt man darauf die Datei, zum Beispiel mit Ark.
Dann wechselt man in das neue Verzeichnis und gibt auf der Konsole den Befehl make ein.
Allerdings sollten der gcc sowie die png-developmentfiles installiert sein.

Unter Ubuntu kann man diese einfach nachinstallieren:

sudo apt-get install build-essentials
sudo apt-get install libpng12-dev

Nach dem Ausführen von make erhält man im Programmordner drei neue Dateien:
pngstego
imgdiff
imgthr

Mit den Programmen imgdiff und imgthr kann man Bilder vergleichen, mit pngstego Nachrichten in die PNG-Datei schreiben oder sie auslesen.

Die Bedienung des Programmes ist recht simpel:
Auf der Konsole gibt man folgendes ein:
./pngstego [-s] -i img_in -m msgfile [-S seed] img_out
um eine Datei zu Steganographieren. img_in ost das eigentliche Bild, msgfile Die Textdatei (.txt oder ohne Erweiterung) img_out der Name der Steganographierten Datei.

Ein kleines Beispiel:
./pngstego -i /home/floyd/Desktop/baum.png -m /home/floyd/Desktop/bla /home/floyd/Desktop/baum2.png
Image size 400 x 250 pixels, 8 bit per pixels
random seed: 1519292820

Seed ist ein Faktor für die Verteilung der Information. Ohne diesen ist eine „Entstaganographierung“ schwierig oder gar unmöglich.
mit dem Parameter -S kann man eine bestimmte Verteilung erzwingen.
Damit hätten wir unser erstes Bild steganographiert.

Auf der linken Seite das Originalbild, auf der rechten Seite das Steganographierte Bild:
[inspic=60,left,fullscreen,thumb][inspic=61,rightclear,fullscreen,thumb]

Natürlich geht das ganze auch wieder rückwärts:
./pngstego -x -i img_in -m msgfile -S seed

In unserem Beispiel sähe das folgendermaßen aus:
./pngstego -x -i /home/floyd/Desktop/baum2.png -m neueTextdatei -S 1519292820
Wobei die neueTextdatei die Datei ist, in die der entsteganographierte Text kopiert wird. und die Zahl hinter S der vorher angegebene Seed ist.

Ihr könnte das ja auch mit dem Bild des zweiten Baumes probieren.
Natürlich funktioniert das ganze auch mit farbigen PNGs.

Wenn ihr absolut sicher gehen wollt, steganographiert ihr am besten eine verschlüsselte Textdatei in euer Bild.
Viel Erfolg 😉

Kommentar verfassen