Hallo,
ich hätte mal eine Frage zur Datenwiderherstellung von Datenträgern.
Ich meine, die Bits und Bytes sind doch generell vorhanden und müssen
eigentlich nur in einer definierten Reihenfolge ausgelesen werden...
D.h. es müsste doch möglich sein, z.B. nach beliebigen JPEG Files zu
suchen, indem man einen kleinen Bildausschnitt von z.B. 100x100 Pixeln
als JPEG-Datei annimmt und eben die nachfolgenden Bytes die Man auf der
Platte liest in einem entsprechenden Fenster anordnet. So einen Rahmen
schiebt man dann über die gesamte Festplatte und irgendwann erkennt man
ein Klarbild, welches nicht verwaschen ist.
Davon ausgehend könnte man doch dann mehr als nur einen kleinen
Schnipsel aufdecken und die wahre Größe des Bildes ermitteln. Sobald
dies erfolgreich war und eben eine einzige Datei erkannt ist, müsste
doch die Wahrscheinlichkeit relativ hoch sein, die benachbarten Dateien
auf der Festplatte ebenfalls zu erkennen, da wohl zum einen Dateien
gleichen Typs (Bilder, Musik, Videos,...) vermutlich im gleichen
Verzeichnis liegen und mit hoher Wahrscheinlichkeit auch in benachbarten
Speicherzellen auf der Festplatte.
mehrere mögliche Auflösungen / Höhen und Breiten ausprobiert und dann
versucht aus den nachfolgenden Bytes ein Klarbild zu erhalten. Sobald
man einen kleinen Schnipsel richtig zugeordnet hat, ergibt sich die
richtige Auflösung des Bildes doch von alleine.
Eifnacher als ein Bild ist es wohl, nach Textdateien zu suchen, da
eigentlich nur reguläre Wörter in der zu erwartenden Sprache gefunden
werden müssen.
Ich meine, mir ist klar, dass ich mir das alles etwas einfach vorstelle,
aber mich würde mal interessieren, ob dies ein prinzipieller Weg ist,
Dateien auf Datenträgern wiederzuerkennen.
Datus schrieb:> Ich meine, die Bits und Bytes sind doch generell vorhanden und müssen> eigentlich nur in einer definierten Reihenfolge ausgelesen werden...
wer sagt das?
Jeder Magnet, jeder Kratzer, jedes Feuer kann eine Datenträger so
veändern, das die bits nicht mehr erkennbar sind.
Deine Methode funktioniert vielleicht bei .bmp Files,
.jpg sind IMHO komprimiert da geht das nicht so einfach.
Wenn die Datei dann auch noch fragmentiert ist wird es
auch nicht klappen.
Aber im Prinzip(wenn auch ein wenig komplizierter)
wir es ja auch so gemacht.
EDIT: AchJa, falsches Forum...
Hei,
und dann ist da noch die böse Fragmentierung, die dafür sorgt, dass eine
Datei in viele, viele kleine Häppchen zerlegt wird und über die ganze
Platte verstreut ist. Die FAT (File allocation table) beschreibt dann,
wo diese einzelnen Happen liegen.
Soweit zu meinem Halbwissen... ;-)
Grüße,
Tom
> und mit hoher Wahrscheinlichkeit auch in benachbarten Speicherzellen auf der
Festplatte.
Das kommt drauf an, wie lange die Platte in Betrieb war. Nach relativ
kurzer Zeit ist es nämlich nichts mehr mit "mit hoher Wahrscheinlichkeit
sind die benachbart". Dann heißt es nämlmich "mit hoher
Wahrscheinlichkeit sind die irgendwo auf der Platte, aber sicher nicht
nebeneinander".
Darin liegt der der Clou bei Wiederherstellungsprogrammen für die
üblichen Fotos. Mit genug Intelligenz und Zeit sollten die sich recht
gut rekonstruieren lasst, selbst wenn fragmentiert (wobei mir nicht klar
ist, weshalb Fotos in sich stark fragmentieren sollten). Das Zeug muss
konsistent dekomprimierbar sein, Kanten müssen zusammenpassen usw.
Wenn dann noch Infodaten der Kamera im Bild drin sind, also von wann und
heute nicht selten auch von wo, dann ist auch die ursprüngliche
Zuordnung und Zeitachse leicht wiederherstellbar.
A. K. schrieb:> (wobei mir nicht klar ist, weshalb Fotos in sich stark fragmentieren sollten).
Ganz einfach, weil ein Cluster (ein Block an Daten, der nicht weiter
zerkleinert wird) bei z.B. NTFS irgendwas zwischen 512Byte und 64KByte
hat.
Ein normales Digitalfoto hat wohl heutzutage mehr als 3MB.
Damit kann dieses Foto z.B. auf 96 Cluster der Größe 32kB aufgeteilt
werden und diese können wild verstreut auf der Festplatte sein.
Das wäre dann doch eine "starke Fragmentierung"...
Grüße,
Tom
Hm,
da lag ich ja mit meinem Halbwissen schonmal nicht so schlecht.
Was ich mir nun aber in Anlehnung an die ursprüngliche Fragestellung
ebenfalls Kopfschmerzen bereitet, ist die Frage, inwieweit man einer
derartigen Datenwiederherstellung durch eine Verschlüsselung begegnen
kann?
Arbeitet ein Verschlüsselungsprogramm derart, dass wirklich jedes Bit
quasi-zufällig nach einem Algorithmus gekippt wird, oder sind nicht am
Ende doch wieder alle benachbarten Speicherzellen in ähnlicher weise
gekippt, bzw. nur bestimmte N-Bytes einer Datei verändert?
Wenn nämlich jedes Bit gekippt würde, dann würde eine Verschlüsselung
nicht nur sehr sehr lange dauern, sondern abhängig von der Art des
Schlüssels müsste entweder genauso lang sein, wie die zu
verschlüsselnden Daten, oder aber es würden Redundanzen auftreten.
Redundanzen treten immer dann auf, wenn man denselben Schlüssel mehrmals
auf unterschiedliche Daten anwendet. In einem solchen Fall kann, soweit
ich weiß, aus der Häufigkeitsverteilung mit hoher Wahrscheinlichkeit auf
die ursprünglichen Daten zurückgeschlossen werden...
>NTFS irgendwas zwischen 512Byte und 64KByte
...aber gerade bei Fotos ergibt sich doch aus Blöcken, die eine Größe
von 64kByte haben eine so große Menge an Daten, dass es speziell bei
Fotos Randbereiche geben muss, die mit > 99,9% Wahrscheinlichkeit genau
benachbart zu einem anderen Fotopuzzle-Stück liegen und demnach einfach
gefunden werden können...
Hei,
woran erkennst Du eigentlich, ob ein Block komplett Daten enthält oder
evtl. nur die Hälfte davon sinnvoll ist? Naja, bestimmt gibts da ein
Steuerzeichen dafür...
Andere Frage: Was bringen Dir diese theoretischen Überlegungen für einen
Nutzen?
Grüße,
Tom
Datus schrieb:> aber gerade bei Fotos ergibt sich doch aus Blöcken, die eine Größe> von 64kByte haben eine so große Menge an Daten, dass es speziell bei> Fotos Randbereiche geben muss, die mit > 99,9% Wahrscheinlichkeit genau> benachbart zu einem anderen Fotopuzzle-Stück liegen und demnach einfach> gefunden werden können...
so einfach ist das nicht. Es gibt ja noch viel mehr Infos in den
Imagedaten. Wenn das Image fragmentiert ist, woher willst du wissen
welche Header-Infos( EXIF ) zu welchen bild gehören?
Auch sind die Blöcke im Image (wenn es überhaupt welche gibt) nicht die
gleichen Blöcke mit den ein Dateisystem arbeitet, sie sind nicht gleich
ausgerichtet.
Das ein Image überhaupt Fragmentiert ist, kommt recht selten vor. JPEGS
haben einen Dateiaufbau, damit finden man auch ohne Bildanalyse die
Bilder.
Peter II schrieb:> so einfach ist das nicht. Es gibt ja noch viel mehr Infos in den> Imagedaten. Wenn das Image fragmentiert ist, woher willst du wissen> welche Header-Infos( EXIF ) zu welchen bild gehören?
Erst einmal sortiert man mögliche Fragmente der Bilder über Konsistenz
des Formats und über inhaltliche Kriterien zusammen. Wie beschrieben
hatte ich das für prinzipell möglich, wenn auch vielleicht nicht in
jedem Fall. Die EXIF Daten sind dann aufgrund ihres geringen Anteils an
der Grösse automatisch ein Teil davon.
> Auch sind die Blöcke im Image (wenn es überhaupt welche gibt) nicht die> gleichen Blöcke mit den ein Dateisystem arbeitet, sie sind nicht gleich> ausgerichtet.
Richtig. Deshalb die Konsistenzbedingung.
Tom P. schrieb:> Andere Frage: Was bringen Dir diese theoretischen Überlegungen für einen> Nutzen?
Manche Leute haben sie ihre Fotomedien zerlegt. Beispielsweise durch
defektes NAS.
A. K. schrieb:> Manche Leute haben sie ihre Fotomedien zerlegt. Beispielsweise durch> defektes NAS.
ja über dafür gibt es schon ausreichend Programme die die Images wieder
finden. Ist ja nicht so das das Thema neu ist.
Datus schrieb:> Arbeitet ein Verschlüsselungsprogramm derart, dass wirklich jedes Bit> quasi-zufällig nach einem Algorithmus gekippt wird, oder sind nicht am> Ende doch wieder alle benachbarten Speicherzellen in ähnlicher weise> gekippt, bzw. nur bestimmte N-Bytes einer Datei verändert?
heutige verschlüsselungen kippen bei jedem aufruf rund 50% der Bits
undabhängig derer position.
Datus schrieb:> Wenn nämlich jedes Bit gekippt würde, dann würde eine Verschlüsselung> nicht nur sehr sehr lange dauern, sondern abhängig von der Art des> Schlüssels müsste entweder genauso lang sein, wie die zu> verschlüsselnden Daten, oder aber es würden Redundanzen auftreten.
Jedes bit zu kippen ist die einfachste Verschlüsselung. Rate mal wieso.
Ich rate dir die Wikipediaartikel zu AES und RSA zu lesen.
Die Länge der Schlüssel ist bei den meisten verfahren Fix.
Wenn du also ein Passwort eingibst wird ein passender Hash dazu
berechnet.
deshalb ist die Lände eines Passworts in sofern nur interessant, als
dass der Raum der gültigen Hashes für jede Buchstabenkombination
berechnet und beim knacken ausprobiert werden kann. Nennt sich
RainbowTable.
Redundanz vermeidet man heute weitgehents indem man den Strom betrachtet
und nicht jedes Byte, vergleiche ECB und CBC.
Datus schrieb:> Arbeitet ein Verschlüsselungsprogramm derart, dass wirklich jedes Bit> quasi-zufällig nach einem Algorithmus gekippt wird,
hast du dir mal überlegt wie man ein quasi zufällig gekipts Bit
zurückrechnen soll?
Datus schrieb:> oder sind nicht am> Ende doch wieder alle benachbarten Speicherzellen in ähnlicher weise> gekippt
Alle real angewandten Verschlüsselungsprogramme führen eine Anzahl von
Vertauschungsoperationen durch, um das zu verhindern und um jeden Rest
von statistischen Zusammenhängen zu beseitigen. D.h. es werden nicht
Bytes, sondern Blöcke bearbeitet.
Gruss Reinhard
kopfkratz
Welches Filesystem und wie sind die Daten "verloren" worden ?
Un*x und rm = inode weg = absolut gelöscht
Un*x Journaling FS und Stromausfall = fsck und es werden nur die Daten
die geöffnet waren überprüft
Un*x ohne Journaling FS = fsck und vieeeeel Kaffee ...
Wenn es dagegen darum geht gezielt bestimmte Daten wieder aufzuspüren
macht man normalerweise eine 1:1 Kopie auf einer identischen Platte und
läßt nachdem man das Filesystem wieder hergestellt hat Software darüber
laufen die auf FS Ebene versuchen die gesamte Datei zu erkennen.
Die Idee mit Deinen Bildfragmenten oder Textbaustein funktioniert so
nicht wirklich.
Kannst ja mal im Windows Suchindex das Wort "Kin" eingeben, wenn dann
jemand mal im Netz nach "kin" gesucht hat wird's im Browsercache fündig,
wenn jemand eine e-mail für Oma Friede verfaßt hat und da "Kinners"
drinsteht wird das auch gefunden usw. usf.
Du mußt also unterscheiden zwischen Datenwiederherstellung und
Datensuche.
Und wenn dann jemand so gemein war TrueCrypt zu installieren oder die
Verschlüsselung im Un*x Kernel, tja dann kommst Du auch mit einer 1:1
Kopie ohne das Paßwort nicht weiter.
Es reicht sogar meistens ein PW geschütztes ZIP um die Schweizer
Kontodaten der Steuer vorzuenthalten :-P
Die besseren Festplattenverschlüssler klinken sich zwischen dem
Dateisystem und dem sektorweisen Schreiben auf a) Treiberebene
=Softwarebasiert und b) Interfaceebene =Hardwarebasiert ein.
Sie nehmen praktisch den zu schreibenden Block vom Betriebssystem
entgegen, verschlüsseln ihn komplett und schreiben diesen dann statt des
Klartextes auf die Festplatte. Beim Lesen läuft es genau umgekehrt: der
zu lesende Bock wird von der Festplatte angefordert, entschlüsselt und
an das Betriebssystem weitergreicht.
Dazu braucht der Festplattenverschlüssler folgende Parameter:
Algorithmus +Modus (AES/DES + CBC/XTS.. Wird bei der Herstellung /
Programmierung des Verschlüsslers Fix vorgegeben), Schlüssel, IV und
Nebenbeisachen wie Hashes.
Die Verschlüssler, die einfach nur Dateien verschlüsseln, sind nur
sicher, solange niemand auf die Festplatte schaut. Denn die Daten liegen
dort in der Regel auch im Klartext und sind mit den
"Datentettungsmaßnahmen" des TO recht zuverlässig wiederherstellbar.
Andy P. schrieb:> Die Verschlüssler, die einfach nur Dateien verschlüsseln, sind nur> sicher, solange niemand auf die Festplatte schaut. Denn die Daten liegen> dort in der Regel auch im Klartext und sind mit den> "Datentettungsmaßnahmen" des TO recht zuverlässig wiederherstellbar.
Ist irgendwie nicht ganz logisch oder.
Wenn ich dem BS DatenBlöcke zum schreiben auf Festplatte gebe kann es
ihm herzlkich egal sein was das für daten sind. Das BS kann nicht
entscheiden ob er verschlusselt ist. Wäre ja noch schöner.
Es ist eine Frage des Anwendungsfalls wann die Daten verschlüsselt
werden.
Bei einer Full disk entcryption ist es so wie wie du vorher gesagt hast.
Der Vorteil dabei ist, dass ich mir keine gedanken machen muss wenn ich
den pc ausmache. Wenn er gestohlen wird kann keiner die daten lesen.
Werden nur Anwenderdateien verschlüsselt geht das zum einen auch wie du
gesagt hast mit gleichem vorteil oder ich nehm ein Programm. Beim
Programm habe ich nur den Nachteil dass ich mich selber darum kümmern
muss dass keine Klartextversion noch vorhanden ist beim ausmachen.
Verschlüsselt ist verschlüsselt egal auf welcher ebene.
dsd schrieb:> Ist irgendwie nicht ganz logisch oder.
Folgende Sequenz:
(1) File wird entschlüsselt.
(2) File wird bearbeitet.
(3) File wird wieder verschlüsselt.
Ein sauber arbeitendes Verschlüsselungsprogramm sollte klug genug sein,
die entschlüsselte Version zu plätten, bevor es sie löscht. Andernfalls
liegt deren Inhalt im Klartext noch auf Disk und kann gefunden werden.
Dieses Problem kann aber auch durch das Programm in (2) entstehen, wenn
dabei temporäre Versionen, implizite Backups usw. erzeugt werden, die
nach Beendigung wieder weggeräumt werden.
Um solche Probleme zu vermeiden muss man systematisch dafür sorgen, dass
alle gelöschten Files überschrieben werden und erst dann deren Platz
vom Filesystem freigegeben wird. Es gibt Tools, die mindestens auf
Anfrage den kompletten Freiraum des Filesystems plätten. Evtl. gibts das
auch automatisch, als Teil der Löschoperation.
A. K. schrieb:> Evtl. gibts das> auch automatisch, als Teil der Löschoperation.
Das wäre entweder ein Eingriff ins Betriebssystem - nicht so gut - oder
die Software selbst sollte immer zuerst Nullen schreiben und dann den
Bereich löschen (und möglichst dafür sorgen, dass die Nullen vom BS auch
tatsächlich geschrieben werden, sonst wird das möglicherweise
wegoptimiert). Schneller wird der Rechner dadurch nicht gerade.
Gruss Reinhard