17.11.2013 Aufrufe

Ausarbeitung

Ausarbeitung

Ausarbeitung

MEHR ANZEIGEN
WENIGER ANZEIGEN

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)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!