Ausarbeitung
Ausarbeitung
Ausarbeitung
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Steganographie mit Rastergrafiken<br />
Lars Herrmann<br />
4. Mai 2008<br />
1 Einleitung<br />
Dieses Dokument soll einen Überblick über einige Steganographische Methoden,<br />
die in Rastergrafiken Anwendung finden liefern. Zunächst werden einige gängige<br />
Einbettungsverfahren vorgestellt. Im darauffolgenden Abschnitt werden einige<br />
Angriffsmöglichkeiten auf diese Verfahren erläutert.<br />
Das Ziel der Steganographie ist es, die Existenz einer Nachricht zu verschleiern.<br />
Ein Steganogramm gilt im Gegensatz zu einem Kryptogramm schon als<br />
gebrochen, sobald eine geheime Nachricht gefunden wurde. Das Auslesen des<br />
Inhalts einer Nachricht ist nicht erforderlich. Bei der Betrachtung und Analyse<br />
von Algorithmen ist also in erster Linie die Sicherheit gegen das Entdecken<br />
der Nachricht (Steganographische Sicherheit) wichtig. Eine zusätzliche Sicherheit<br />
gegen das Auslesen einer entdeckten Nachricht (Kryptographische Sicherheit)<br />
ist zwar wünschenswert aber nicht erforderlich, da die vor der Einbettung<br />
zusätzlich eine Verschlüsselung der Daten erfolgen kann.<br />
1.1 Rastergrafiken<br />
Zu den Rastergrafiken zählt man in der Steganographie all jene Grafiken, die<br />
durch ein Raster aus Pixeln beschrieben werden, bei dem jedem Pixel ein bestimmter<br />
Farbwert direkt zugewiesen wird. Durch diese Definition werden z.B.<br />
JPEG Bilder ausgenommen, da diese nicht durch eine Abbildung der Pixel auf<br />
einen Farbwert, sondern durch Frequenzkoeffizienten beschrieben werden. Ebenso<br />
fallen Palettengrafiken, wie z.B. GIF Bilder nicht unter diese Definition, da<br />
hierbei nicht jedem Pixel direkt ein Farbwert, sondern nur ein Index auf einen<br />
Eintrag in einer Farbpalette zugewiesen wird. Diese Einschränkung der Definition<br />
von Rastergrafiken wird gemacht, da das Verstecken von Daten in Palettenindizes<br />
eine andere Klasse von Algorithmen erfordert, als das Verstecken von<br />
Daten in Farbwerten.<br />
2 Einbettungsmethoden<br />
Im folgenden werden einige Methoden beschrieben, mit denen sich Daten mehr<br />
oder weniger unbemerkt in Rastergrafiken einbetten lassen. Bei den meisten Me-<br />
1
2 EINBETTUNGSMETHODEN 2<br />
thoden werden die Daten in dem oder den niederwertigsten Bits der Farbwerte<br />
eingebettet, da Änderungen dort am wenigsten auffällig sind und da diese am<br />
meisten durch Rauschen erzeugende Effekte wie die Quantisierung beeinflusst<br />
werden.<br />
2.1 LSB<br />
Das einfachste Einbettungsverfahren ist das lineare Einbetten von Geheimdaten<br />
in die niederwertigsten Bits der Pixel eines Bildes. Hierbei wird von links nach<br />
rechts und von oben nach unten durch die Pixel des Bildes iteriert und das<br />
niederwertigste Bit mit jeweils einem Bit der Geheimnachricht überschrieben,<br />
bis entweder das Ende der Geheimnachricht oder des Bildes erreicht ist. Im<br />
letzteren Fall ist die Einbettungskapazität des Bildes erschöpft und die Nachricht<br />
lässt sich nicht komplett im verwendeten Bild verstecken. Das Extrahieren der<br />
Nachricht geschieht, indem einfach die untersten Bits der Pixel konkateniert<br />
werden.<br />
Dieses Verfahren ist sowohl für den Empfänger, sowie leider auch für eventuelle<br />
Angreifer sehr einfach anzuwenden und ist sehr leicht nachzuweisen. Eine<br />
reine lineare Einbettung der Daten in ein Trägerbild ist somit nicht zu empfehlen.<br />
2.2 Verbesserungen von LSB<br />
Eine einfache Verbesserung des LSB Algorithmus’ ist es, die Daten nicht linear,<br />
sondern anhand einer Permutation der Pixelpositionen des Bildes zu verstecken.<br />
Um dies zu erreichen müssen Sender und Empfänger vorher einen Schlüssel austauschen,<br />
der z.B. benutzt werden kann, um einen Pseudozufallszahlengenerator<br />
zu initialisieren. Zusätzlich kann die Geheimnachricht mit zufälligen Daten aufgefüllt<br />
werden.<br />
Wenn ein Angreifer nun versucht, die Daten ohne den Schlüssel zu extrahieren,<br />
gibt es keine einfache Möglichkeit, diese wieder in die richtige Reihenfolge<br />
zu bringen.<br />
Eine Weitere Möglichkeit, den LSB Algorithmus zu verbessern ist es, bestimmte,<br />
für die Einbettung ungeeignete Bildbereiche auszuschließen, um das<br />
Entdecken des Steganogramms zu erschweren. Ungeeignete Bereiche sind zum<br />
Beispiel größere, einfarbige Flächen, in denen jede Änderung sofort auffallen<br />
würde. Das Auslassen von Bereichen ist im Gegensatz zum Verteilen der Nachricht<br />
eine Verbesserung, die das Entdecken des Steganogramms an sich erschwert.<br />
Dennoch hat eine Einbettung mit einem solchen Algorithmus starke Auswirkungen<br />
auf das Histogramm, also die Häufigkeitsverteilung der einzelnen Farben<br />
eines Bildes, was sich durch einen wie in Kapitel 3.2 dargestellten Angriff leicht<br />
ausnutzen lässt, um ein Steganogramm zu entdecken.<br />
Um einer solchen Verfremdung des Histogrammes entgegenzuwirken, wird<br />
das LSB nicht überschrieben, sondern der komplette Farbwert um 1 inkrementiert,<br />
bzw. dekrementiert.
2 EINBETTUNGSMETHODEN 3<br />
Ein solches Verfahren wird in [1] beschrieben. Durch Analyse des Histogramms<br />
vor der Einbettung und entsprechende Anpassung der Einbettungsregeln<br />
für jedes Pixel wird erreicht, dass sich die Häufigkeitsver-teilung der Farben<br />
des Steganogramms nicht von der des Trägermediums unterscheidet.<br />
Eine andere Möglichkeit, die Auswirkungen der Einbettung auf die statistischen<br />
Eigenschaften des Bildes zu minimieren wird in [2] beschrieben. Hier wird<br />
mittels eines pseudorandomisierten Rauschgenerators ein Gaussrauschen über<br />
das Bild gelegt und in diesem Rauschen mittels einer Paritätsfunktion die Daten<br />
eingebettet. Dies hat zum Ziel, dass die Bildstörungen, die durch die Einbettung<br />
entstehen möglichst den natürlichen Störungen der Bildquellen entsprechen.<br />
2.3 S/W Algorithmen<br />
Im Bereich der Schwarz/Weiß Bilder, welche nur ein Bit pro Pixel an Farbinformationen<br />
aufweisen, werden natürlich spezielle Algorithmen gebraucht, da jede<br />
Änderung an einem Pixel sofort auffällt und deshalb die Änderungen minimiert<br />
werden müssen.<br />
Beispiele für Schwarz/Weiß Bilder sind Faxe oder Fotokopien. Diese Bildquellen<br />
sind zumeist sehr gut als Trägermedien geeignet, da sie meistens ein<br />
gewisses Rauschen beinhalten, wodurch eine weitere Einbettung von Daten weniger<br />
auffällig wird.<br />
In den folgenden Abschnitten werden zwei Algorithmen für Schwarz/Weiß<br />
Bilder vorgestellt. Es sei erwähnt, dass sich diese Algorithmen auch für die<br />
Einbettung von Daten in das LSB eines Farbbildes eignen, da die LSB-Ebene<br />
ja auch genau ein Bit Farbtiefe besitzt.<br />
2.3.1 Algorithmus von Wu und Lee<br />
Im Jahre 1998 wurde von M.Y. Wu und J.H. Lee ein Forschungsbericht [3]<br />
veröffentlicht, in dem der im Folgenden vorgestellte Algorithmus (WL-Algorithmus)<br />
beschrieben wurde.<br />
Der WL-Algorithmus arbeitet mit einem Bild F und einer Schlüsselmatrix<br />
K m×n . Die Elemente von F und K haben jeweils den Wertebereich [0, 1]. Zunächst<br />
wird das Bild in Blöcke F n der Größe m × n aufgeteilt und dann die geheime<br />
Binärfolge B nach folgendem Schema eingebettet:
2 EINBETTUNGSMETHODEN 4<br />
i = 0, j = 0<br />
while i < n<br />
if 0 < SUM(F i ∧ K) < SUM (K) then<br />
(a) if SUM(F i ∧ K) mod 2 ≡ B j<br />
ändere F i nicht;<br />
(b) else if SUM(F i ∧ K) = 1 then<br />
Suche ein [F i] k, l = 0 so das<br />
[K] j, k = 1 und ändere [F i] j, k auf 1;<br />
(c) else if SUM(F i ∧ K) = SUM(K) − 1 then<br />
Suche ein [F i] k, l = 1 so das<br />
[K] j, k = 1 und ändere [F i] j, k auf 0;<br />
(d) else<br />
Suche ein Bit [F i] j, k so das [K] j, k = 1<br />
und komplementiere F i j, k;<br />
end if<br />
j=j+1;<br />
end if<br />
i=i+1<br />
repeat;<br />
Ein Beispiel für eine Einbettung mit diesem Algorithmus ist in Abbildung 1<br />
zu sehen. Die Operation SUM(M) liefert die Anzahl der 1-Bits in einer Matrix.<br />
Der ∧ Operator ist das elementweise logische Und. Es wird also jeder Block<br />
mit dem Schlüssel verknüpft und von diesem Ergebnis die Parität (die Anzahl<br />
der 1-Bits modulo 2) berechnet und entsprechend angepasst. Im Fall (a) ist<br />
die Parität des Blockes gleich dem einzubettenden Nachrichtenbit, es muss also<br />
keine Änderung erfolgen. In den Fällen (b) und (c) wird sichergestellt, das nach<br />
der Einbettung nicht alle Bits eines Blockes an denen der Schlüssel 1 ist, 1 oder 0<br />
sind, da solche Blöcke nicht für die Einbettung eines Datenbits zulässig sind und<br />
somit bei der Extraktion übersehen werden würden. Würde in solchen Blöcken<br />
Datenbits eingebettet werden, würde sich für einen Angreifer die Suche nach<br />
einem Schlüssel vereinfachen.<br />
Dieses Verfahren bettet maximal ein Bit in einem Block ein, wodurch sich eine<br />
Einbettungsrate von maximal xy<br />
mn<br />
, wobei x und y die Dimensionen des Bildes<br />
sind und mn die Dimensionen eines Blockes. In einem 1024x768 Bild könnten<br />
also bei einer Blockgröße von 8x8 maximal 1.5 KiB eingebettet werden. Durch<br />
eine Verkleinerung der Blockgröße erhöht sich zwar die maximale Kapazität,<br />
jedoch verkleinert sich der Schlüsselraum und die visuellen Auswirkungen auf<br />
das Bild vergrößern sich.<br />
2.3.2 Algorithmus von Chen, Pan und Tseng<br />
Ein weiterer Algorithmus zur Einbettung von Daten in Schwarz/Weiß Bitmaps<br />
wurde im Jahr 2001 von Y.Y.Chen, H.K. Pan und Y.C. Tseng vorge-
2 EINBETTUNGSMETHODEN 5<br />
Abbildung 1: Beispiel für eine Einbettung nach [3] von 3 Bits in einem 6 × 6<br />
Bitmap<br />
stellt. [4] Dieses Verfahren teilt ebenso wie das WL-Verfahren das Bild in gleich<br />
große Blöcke, die in der Größe einer verwendeten Schlüsselmatrix entsprechen.<br />
Zusätzlich verwendet dieser Algorithmus jedoch noch eine Gewichtsmatrix, die<br />
jedem Pixel innerhalb eines Blocks einen bestimmten Wert zuweist. Anhand<br />
des Schlüssels und der Gewichtsmatrix bekommt jeder Block ein bestimmtes<br />
Gesamtgewicht, welches durch wenige gezielte Änderungen der Pixel so angepasst<br />
wird, dass es einen bestimmten Abschnitt der einzubettenden Nachricht<br />
darstellt.<br />
In der folgenden Beschreibung des Verfahrens ist F das Trägerbild, K m,n<br />
die Schlüsselmatrix, W m,n die Gewichtsmatrix, r
3 STEGOANALYSE 6<br />
Abbildung 2: Beispiel für einen Schlüssel und eine Gewichtsmatrix<br />
Bild Algorithmus Blockgröße Einbettungmenge<br />
(a) - - 0<br />
(b) CPT 8 × 8 1351 bytes<br />
(c) WL 8 × 8 278 bytes<br />
(d) CPT 32 × 32 257 bytes<br />
(e) WL 16 × 16 99 bytes<br />
(f) CPT 28 × 28 274 bytes<br />
(g) WL 8 × 8 274 bytes<br />
Tabelle 1: Einbettungsinformationen zu dem Textausschnitt<br />
2.3.3 Vergleich der Algorithmen<br />
Bild 3 zeigt einige Beispiele für die Ergebnisse einer Einbettung mit den beiden<br />
vorgestellten Algorithmen. In den Tabellen 1 und 2 sind die Blockgrößen und<br />
die Einbettungsmengen der einzelnen Bilder aufgeführt.<br />
3 Stegoanalyse<br />
Die Stegoanalyse beschäftigt sich mit dem Auffinden von versteckten Daten in<br />
einem Trägermedium. Hierzu werden zumeist bestimmte statistische Eigenschaften<br />
ausgenutzt, die ein normales Bild von einem Steganogramm unterscheiden.
3 STEGOANALYSE 7<br />
Abbildung 3: Beispiele für die Einbettung von Daten in S/W Bilder mit dem<br />
WL und dem CPT Algorithmus [4]<br />
Bild Algorithmus Blockgröße Einbettungmenge<br />
(a) - - 0<br />
(b) CPT 8 × 8 338 bytes<br />
(c) WL 8 × 8 83 bytes<br />
(d) CPT 32 × 32 103 bytes<br />
(e) WL 16 × 16 34 bytes<br />
(f) CPT 20 × 20 180 bytes<br />
(g) WL 4 × 4 180 bytes<br />
Tabelle 2: Einbettungsinformationen zu dem Comicbild<br />
3.1 Visuelle Angriffe<br />
Die einfachste Form der Stegoanalyse ist die visuelle Analyse. Das Bild wird auf<br />
Auffälligkeiten, wie z.B. Farbrauschen in eigentlich einfarbigen Bereichen hin<br />
untersucht. Ein solcher Angriff ist jedoch nur bei sehr naiven Einbettungsmethoden<br />
erfolgreich.<br />
Möglich ist es auch, einen halbautomatisierten Visuellen Angriff durchzuführen.<br />
Hierbei wird das Bild so aufbereitet, dass bestimmte Muster oder Eigenschaften<br />
für das menschliche Auge besser hervortreten.<br />
Bild 4 zeigt einen solchen Angriff. Das linke Bild ist das Steganogramm. Im<br />
mittleren und linken Bild ist jeweils nur die LSB-Ebene des Bildes dargestellt. Im<br />
mittleren Bild, welches vom unveränderten Trägermedium entstammt, sind die<br />
Strukturen des Bildes noch gut zu erkennen. Im rechten Bild sind in der oberen<br />
Hälfte mit einem linearen LSB Algorithmus Daten eingebettet. Hier sind die<br />
Strukturen des Originalbildes nicht mehr zu erkennen und es ist offensichtlich,<br />
das eine Einbettung stattfand.
3 STEGOANALYSE 8<br />
Abbildung 4: Möglicher Visueller Angriff auf ein Steganogramm<br />
Abbildung 5: Verteilung der Farbwerte vor und nach der Einbettung mittels<br />
LSB Verfahren [5]<br />
Wie schon erwähnt ist ein solcher visueller Angriff jedoch leicht durch bessere<br />
Algorithmen oder eine bessere Wahl des Trägermediums zu überwinden.<br />
Es reicht hierbei schon, die Einbettung auf Bereiche mit starken lokalen<br />
Änderungen zu beschränken, oder ein Bild zu verwenden, das in der LSB Ebene<br />
keine für den Menschen erkennbaren Strukturen aufweist.<br />
3.2 χ 2 Angriff<br />
Der in [5] Vorgestellte χ 2 Angriff macht sich die Tatsache zunutze, dass bei<br />
der Einbettung einer Nachricht, bei denen 0-Bits und 1-Bits annähernd gleich<br />
verteilt sind, die Farbwertpaare, die sich jeweils nur im LSB unterscheiden nach<br />
der Einbettung gleichverteilt sind. (Siehe Abbildung 5)<br />
Gemessen wird bei dem Angriff der Unterschied zwischen der erwarteten<br />
Häufigkeitsverteilung nach der Einbettung einer gleichverteilten Nachricht und<br />
der tatsächlich gemessenen Verteilung. Die ”<br />
Gleichheit“ dieser beiden Werte<br />
bestimmt die Wahrscheinlichkeit einer Einbettung in einem gegebenen Bild und
4 FAZIT 9<br />
wird nach folgender Formel berechnet:<br />
p = 1 −<br />
1<br />
2 k−1<br />
2 Γ( k−1<br />
∫ χk−1 2<br />
2 ) 0<br />
e − x 2 x<br />
k−1<br />
2 −1 dx<br />
Das k ist hier die Anzahl der im Bild vorhandenen Farben. Die χ 2 Funktion<br />
sieht in diesem Fall definiert durch<br />
χ 2 k−1 =<br />
k∑<br />
i=1<br />
(n i − n ∗ i )2<br />
n ∗ i<br />
wobei n i die tatsächliche Häufigkeit und n ∗ i die erwartete Häufigkeit des jeweiligen<br />
Farbwerts darstellen.<br />
Mit dieser Methode lassen sich Steganogramme, in denen die Nachricht linear<br />
in das Trägermedium eingebettet ist sehr sicher als solche erkennen, jedoch sinkt<br />
die Effektivität bei einer Pseudozufälligen Verteilung der Nachricht und durch<br />
die Verringerung der Einbettungsrate erheblich. Schon ab einer Ausnutzung von<br />
nur 50% der maximalen Kapazität eines Trägermediums sinkt die berechnete<br />
Wahrscheinlichkeit einer Einbettung drastisch auf nahezu 0.<br />
3.3 Weitere Methoden<br />
In [?], [?] und [?] werden weitere Methoden zur Stegoanalyse vorgestellt.<br />
Diese neueren Methoden betrachten nicht mehr die Häufigkeitsverteilung,<br />
sondern konzentrieren sich auf die Korrelation benachbarter Pixel. Bei den meisten<br />
Bildern aus natürlichen Bildquellen wie Digitalkameras oder Scannern haben<br />
benachbarte Pixel meist eine hohe Korrelation, da drastische Farbwechsel so<br />
gut wie gar nicht vorkommen, sondern meistens ein sanfter Farbverlauf besteht.<br />
Diese Farbverläufe werden durch die Einbettung in LSBs stark verfremdet. Mittels<br />
dieser Methoden können Pseudozufällig verteilte LSB Einbettungen schon<br />
bei einer Einbettungsrate von nur 0.03 Bits pro Pixel nachgewiesen werden. Das<br />
entspricht einer Einbettung von nur 2949 Bytes in einem 1024x768 Graustufenbild.<br />
4 Fazit<br />
Die meisten gängigen Verfahren zur Einbettung von Daten in Rastergrafiken<br />
sind nicht sehr Widerstandsfähig gegen Stegoanalyse. So wird selbst heute oft<br />
noch eine lineare LSB Einbettung verwendet, die teilweise sogar nicht einmal<br />
visuellen Angriffen standhält. Da es bei Rastergrafiken nur die Pixeldaten gibt,<br />
steht einem zur Einbettung auch nicht viel mehr als das LSB zur Verfügung. Damit<br />
ein Einbettungsalgorithmus möglichst sicher ist, muss dieser die Änderungen<br />
am Bild im Verhältnis zu den einzubettenden Daten möglichst gering halten.<br />
Der in 2.3.2 vorgestellte Algorithmus ist diesbezüglich sicher ein Schritt in die<br />
richte Richtung. Zusätzlich sollte ein möglichst intelligenter Algorithmus das
LITERATUR 10<br />
Bild auf nicht für die Einbettung nutzbare Bereiche untersuchen, um sicherzustellen,<br />
dass Änderungen nur an unauffälligen Bereichen gemacht werden. Ein<br />
Algorithmus der diese beiden Eigenschaften aufweist, hätte vielleicht Chancen,<br />
den aktuellen Verfahren der Stegoanalyse Stand zu halten.<br />
Literatur<br />
[1] Franz, E.: Steganography Preserving Statistical Properties. In: Petitcolas,<br />
F. A. P, Ed.:Information Hiding (2002)<br />
[2] Fridrich, Jessica ; Goljan, Miroslav: Digital image steganography using<br />
stochastic modulation. (2003)<br />
[3] Wu, M-Y. ; Lee, J-H.: A Novel Data Embedding Method for Two-Color<br />
Facsimile Images. In: Proceedings of International Symposium on Multimedia<br />
Information Processing (1998)<br />
[4] Y-Y. Chen, H-K. P. ; Tseng, Y-C.: A Secure Data Hiding Scheme for<br />
Two-Color Images. In: IEEE Symposium on Computers and Communication<br />
(ISSC2000) (2001)<br />
[5] Westfeld, Andreas ; Pfitzmann, Andreas: Attacks on Steganographic<br />
Systems. In: Lecture Notes in Computer Science, vol.1768 (2000)