Steganographie

Steganographie

Modellansatz 057
1 Stunde 40 Minuten
Podcast
Podcaster

Beschreibung

vor 8 Jahren

Seit 2002 veranstaltet der Entropia e.V. in Karlsruhe jährlich
die Gulaschprogrammiernacht, das ist ein mehrtägiger Kongress, wo
Nerds, Häcksen und Maker ihre Projekte vorstellen, Erfahrungen
austauschen und Vorträgen lauschen. Die GPN15 fand Anfang Juni
2015 im ZKM und der HfG Karlsruhe statt. Hier hat Marius Musch in
einem Vortrag eine Einführung in die Steganographie gegeben, und
spricht nun mit Sebastian Ritterbusch im Podcast.


Bei der Steganographie geht es darum, eine geheime Nachricht so
zu versenden, dass niemand außer dem gewünschten Empfänger die
Existenz dieser Nachricht überhaupt vermutet. Der Begriff kommt
aus dem griechischen und bedeutet in etwa "geheimes Schreiben".
So wurden schon in der Antike erste simple Formen der
Steganographie verwendet. Statt wie üblich die Nachricht in der
Wachs auf einer Wachstafel zu kratzen, wurde die geheime
Nachricht in das Holz darunter geritzt und wieder Wachs darüber
gegossen. Anschließend konnte eine harmlose Nachricht in das
Wachs geschrieben werden und die geheime Nachricht war verdeckt
darunter.


Mit der Zeit wurden die Verfahren dann raffinierter, so wurde im
Zweiten Weltkrieg aus einem japanischen Kriegsgefangenenlager
eine scheinbar harmlose Postkarte verschickt. Liest man aber nur
die ersten beiden Wörter jeder Zeile ergibt sich ein völlig neues
Bild und es werden die Truppenverluste der Amerikaner
kommuniziert. In in einem anderen Fall vereitelte amerikanische
Kriegsgefangene Jeremiah Denton die Propagandaversuche in Vietnam
während des Kalten Krieges. Während eines TV-Interviews blinzelte
er wiederholt das Wort T-O-R-T-U-R-E in Morsecode.


In der heutigen Zeit ist es natürlich naheliegend die
Steganographie in der digitalen statt der analogen Welt
einzusetzen. So kann man zum Beispiel schon in (Plain-)Text eine
geheime Nachricht verstecken. Viele Texteditoren zeigen
standardmäßig Leerzeichen und Tabs am Zeilenende (trailing
whitespace) nicht an. Dies macht sich das Tool SNOW
(steganographic nature of whitespace) zu nutze, um geheime
Nachrichten zu verstecken, oder man schreibt gleich komplette
Programme in der etwas verrückten Programmiersprache Whitespace.


Deutlich verbreiteter und effektiver ist es aber als Tarn-Medium
(das so genannter Cover) ein Bild zu nehmen. Bilder haben viele
nützliche Eigenschaften, insbesondere dass geringe Änderungen für
das menschliche Auge unsichtbar bleiben. Aber auch ihre Größe ist
vorteilhaft da ein Bild leicht um den Faktor 1000 größer ist, als
die darin zu versteckende Nachricht.


Bei einem Grauwertbild wird typischerweise ein Byte pro Pixel
verwendet, also die Helligkeit jedes Bildpunktes wird durch einen
Wert zwischen 0 für Schwarz und 255 für Weiß repräsentiert.
Dieses Byte besteht wiederum aus 8 Bits, zum Beispiel der Folge
11110000 für den Wert 120. In der Steganographie kann man sich zu
Nutze machen, dass das hinterste Bit (least significant bit) nur
sehr wenig zum eigentlichen Farbwert beträgt. Es entscheidet nur
ob die Zahl gerade oder ungerade ist und wenn der Wert geändert
wird, fällt einem Menschen dieser geringe Helligkeitsunterschied
gar nicht auf. Somit kann man nun seine geheime Nachricht von den
ASCII-Werten in Binärzahlen konvertieren und anschließend in den
least significant Bits (LSBs) einbetten. Man braucht also 8 Pixel
pro Buchstabe. Weitere Verfahren gibt es auf Basis spezieller
Eigenschaften von Datenformaten wie GIF, PNG oder JPEG.


Bei der Steganographie gibt es aber auch einiges zu beachten.
Besonders wichtig ist es die Nachricht vor dem Einbetten zu
verschlüsseln. Zum einen kann uns ein Angreifer, der das
Verfahren kennt und die Nachricht extrahiert, sie trotzdem nicht
lesen. Zum anderen lässt sich ein gut verschlüsselter Ciphertext
nicht von echtem Zufall unterscheiden, um Angriffe zu erschweren.
Hat man aber Zugriff auf das Orginalbild, so wird der Unterschied
und damit die Nachricht offensichtlich- hier sind besonders
umgekehrte Bildersuchen hilfreich.


Im realen Einsatz sind meist Wasserzeichen, die Verfahren der
Steganographie verwenden. Anders als bei der Steganographie, wo
das Cover völlig irrelevant für die geheime Nachricht war,
bezieht sich bei den Wasserzeichen die versteckte Nachricht auf
das Cover. So bestätigt das Wasserzeichen auf einem Geldschein
die Authentizität eben dieses Scheines. Es gibt aber auch
Wasserzeichen die lange unbekannt waren. Zum Beispiel gibt es
einige Drucker bekannter Hersteller, die in die ausgedruckten
Seiten ein kaum sichtbares gelbes Punktemuster einbauen. In
diesem Wasserzeichen steht sowohl das Datum des Druckes als auch
die Seriennummer des Druckers. Auf Geldscheinen gibt es gelben
Punkte in der EURion-Konstellation, die von Kopierern, Scannern
und Software erkannt werden. Aber auch Spieler von
Onlinerollenspielen wie World of Warcraft sind vor Wasserzeichen
nicht sicher. So wurde 2012 in einem Forum bemerkt, dass die
Screenshots aus dem Spiel per Wasserzeichen den Accountname und
die Server-IP des Spielers beinhalten.


Allerdings hinterlässt die Steganographie auch immer zwangsweise
ihre Spuren, da das Bild manipuliert werden muss. Um die oben
beschriebene LSB-Methode durch eine Steganalyse zu erkennen,
reicht es sich das Histogramm des Bildes anzuschauen, denn durch
das Verfahren ergeben sich treppenartige Abstufungen. Dies
wiederum versucht das Tool Outguess zu vermeiden, indem es die
LSB Änderungen geschickt über die Datei verteilt und das
Histogramm unauffällig bleibt. Beliebte Angriffsmethoden sind
auch die Autokorrelation und die FFT über das
Wiener-Chintschin-Theorem, womit eine sehr effiziente Berechnung
möglich wird.


Das aktuelle Folgenbild des Podcasts zeigt ein Bild mit
steganographisch versteckter Nachricht, das Marius für einen
Capture the Flag-Wettbewerb auf der GPN14 im letzten Jahr
erstellt hatte und jetzt erklärt.


Auch auf der GPN15 gab es dieses Jahr wieder einen Capture the
Flag Wettbewerb, veranstaltet von den Squareroots aus Mannheim
und KITCTF aus Karlsruhe. Auch dieses Jahr lag der Fokus auf
IT-Sicherheit: Die teilnehmenden Teams erhalten eine virtuelle
Maschine (Vulnbox) mit mehreren verwundbaren Diensten, die sie
analysizeren, die Ausnutzbarkeit prüfen und letztlich absichern
sollen. Ein zentraler Gameserver verteilt sogenannte Flaggen an
alle Teams, das sind lange zufällige Zeichenketten. Diese Flaggen
gilt es zu verteidigen und durch Finden und Ausnutzen von
Sicherheitslücken in den Diensten der anderen Teams zu stehlen
und für Punkte beim Veranstalter einzureichen.


Beim CTF auf der GPN15 gab es 11 teilnehmende Teams, die sich
über einen Zeitraum von 5 1/2 Stunden insgesamt 7600 Flaggen
gestohlen haben. Wer mehr über CTFs erfahren möchte, sollte
insbesondere den CTF Field Guide lesen. Eine Übersicht über
anstehende Veranstaltungen und die verschiedenen Teams findet man
unter CTF Time.
Literatur und Zusatzinformationen

N. F. Johnson, J. Sushil: Exploring steganography, Computer
31.2,: 26-34, 1998.

I. Cox, M. Miller, J. Bloom, J. Fridrich, T. Kalker: Digital
watermarking and steganography, Morgan Kaufmann, 2007.

M. Musch: Seeing the unseen, Vortrag auf der GPN15, 2015.

Weitere Episoden

Wahlmodelle
16 Minuten
vor 2 Monaten
Podcast Lehre
1 Stunde 42 Minuten
vor 6 Monaten
Instandhaltung
50 Minuten
vor 1 Jahr
CSE
42 Minuten
vor 1 Jahr
Mentoring
35 Minuten
vor 1 Jahr
15
15
:
: