Hat man besonders wichtige Daten, so gibt es zwei relativ wirkungsvolle Methoden diese unbefugten Personen unzugänglich zu machen.

  1. Kryptographie (Verschlüsselung der Daten)
  2. Steganographie (Verstecken von Daten)
In diesem Beitrag zeige ich nun wie man seine Daten sicher verschlüsseln kann und wie man Dokumente in anderen Dateien versteckt.

Starten wir mit dem verstecken von Archiven in Bilddateien.
Hierzu gibt es eine große Auswahl an Programmen, die einem Helfen Daten in Audio- oder Bilddateien zu verstecken. Dies geht aber auch mit Bordmitteln. Alles was ihr hierfür braucht ist ein JPG Bild und ein ZIP- oder RAR-Archiv.

Je nachdem wie unauffällig das Versteck sein soll, ist es ratsam die Dimensionen der Dateigrößen zu beachten. Will man eine Textdatei mit Passwörtern in einem Bild verstecken, so kann man ein ein beliebiges JPG Bild nehmen.

Beispiel:

Textdatei:  10KB verpackt in RAR:  1KB JPG Datei: 420KB

Integriere ich nun das RAR-Archiv in das Bild, so ist anhand des einen KB mehr nicht ersichtlich das sich etwas in diesem Bild versteckt. Verstecke ich aber nun ein 5MB große Datei in diesem Bild, so ist dies schon sehr auffällig.

Habe ich nun also eine passende Bilddatei gefunden, muss ich zunächst aus meinem Geheimdokument ein Archiv machen und dies evtl. noch mit einem Passwort schützen (je nachdem ob es nur versteckt oder auch sicher sein soll). Nun geht man wie folgt vor:
  • Windows
    • Eingabeaufforderung öffnen (Start -> Ausführen -> cmd)
    • Folgenden Befehl eingeben
    • ``` copy /b bild.jpg + archiv.rar supergeheimesbild.jpg ```
  • Linux / Mac
    • Terminal öffnen
    • Folgenden Befehl eingeben:
    • ``` cat bild.jpg archiv.rar >> supergeheimesbild.jpg ```
Klickt man nun das Bild an, so öffnet sich ganz normal der Bildbetrachter und keiner merkt das in diesem Bild ein Archiv versteckt ist. Öffnet man die gleiche Datei mit dem Archivprogramm, so kommt der versteckte Inhalt zum Vorschein!

Technisch gesehen funktioniert das wie folgt:
File Header

Jede Datei besitzt einen Dateiheader, indem alle Informationen über die Datei enthalten sind.
Einen Bereich indem der Inhalt der Datei ist und ein EOF der signalisiert, dass das Ende der Datei erreicht ist. Mit dem copy /b Befehl werden Byteweise alle teile des Archivs an die Teile des Bildes angehängt.

Klickt man nun auf die Datei schaut das Betriebssystem auf die Dateiendung(.jpg) und öffnet das hiermit verknüpfte Programm. Dieses ließt den Bild-Header, gibt die Bildinformationen wieder und endet beim JPG-EOF.

Öffnet man dieses Programm nun aber mit einem Archivprogramm, sucht dieses nach dem Archivheader und ignoriert alle vorherigen Informationen.

Verstecken eines Truecrypt Containers in einem MP4 Video
Der Nachteil an der vorigen Methode ist, dass wenn man die Datei untersucht, man eindeutig sagen kann, dass sich in diesem Bild eine andere Datei versteckt, da man beide Header eindeutig identifizieren kann. Hier kommt nun die Kryptographie ins Spiel.
Mittels Truecrypt lassen sich Dateien soweit verschlüsseln, dass nur noch ein wilder Haufen Einsen und Nullen auf der Festplatte liegen und niemand mit Sicherheit sagen kann, ob es sich hierbei um Datenmüll oder eine echte Datei handelt.
Diesen "Datenmüll" können wir nun in einen MP4 oder MOV Videocontainer einbinden. Das heißt, der Film wird ganz normal abspielen und selbst wenn man die Datei intensiv untersucht, kann man nicht anhand irgendwelcher Header feststellen, ob sich in diesem Container weitere Dateien befinden als die Audio- und Videospur und ein bisschen Datenmüll.

Diese Technik wurde von Martin Fiedler entwickelt, der das Programm geschrieben hat mit dem man einen Hidden-Truecryptcontainer in einem MP4 oder MOV File verstecken kann.
Dazu geht man wie folgt vor:

  • Als erstes braucht man einen Film im MP4 oder MOV Format
  • Erstellen eines Truecryptcontainer mit Hidden-Volume
  • <li>Der Container sollte so groß angelegt werden, wie die Filmdatei um Speicherplatz am Ende erweitert werden soll (max 4GB)
    
  • Beispiel: Originalfilm: 500MB Benötigter Speicherplatz: 100MB -> Truecryptcontainer >= 100MBEndgröße: 600MB
  • <li>das Passwort für den Äußeren Container kann vernachlässigt werden, da dieser eh zerstört wird.</li>
    <li>Die Größe des inneren Containers sollte so groß wie möglich gewählt werden</li>
    <li>Das Passwort des inneren Containers sollte so sicher wie möglich sein.</li>
    <li>Die Container dürfen vor der Zusammenführung <strong>NICHT</strong> mittels Truecrypt geöffnet werden.</li>
    <li>Die Truecryptdatei sollte so benannt werden, wie der Film am Ende heißen soll, z.B: Kinotrailer.mp4</li>
    <li>Download des <a href="http://keyj.s2000.at/files/tcsteg.py">Pythonscripts von Martin Fiedler</a></li>
    <li>Nun packt man alle 3 Dateien in einen Ordner und ruft von der Konsole aus das Pythonscript mit den Parametern Filmname und Truecryptcontainer auf</li>
    </ul>
    

    Beispiel:

    c:/python27/python.exe tcsteg.py film.mp4 container.mp4
    

    Je nach Größe der Dateien dauert dieser Prozess einige Zeit. Hier wird nun das MP4 File über den Truecryptcontainer gelegt, die technischen Details könnt ihr im Blog des Entwicklers nachlesen.

    Nun könnt ihr die Datei wie gewohnt öffnen und den Film startet.
    Öffnet ihr die Datei mit Truecrypt, werdet ihr nach einem Passwort gefragt und könnt somit auf euer Hidden Volume zugreifen.