3 Stimmen

Wie lassen sich Daten am effektivsten entschlüsseln, wenn die Verschlüsselungsmethode unbekannt ist?

Ich habe eine große Menge an Daten, die von einem Drittanbieter-Tool verschlüsselt wurden, bevor sie gesichert wurden, jetzt haben wir keinen Zugriff mehr auf das Tool und ich NEED Was ist die effektivste Methode, um zu versuchen, herauszufinden, wie die Daten verschlüsselt wurden?

10voto

brianegge Punkte 28043

Die Hoffnung ist nicht verloren. Es besteht eine gute Chance, dass Sie herausfinden können, welche Verschlüsselung verwendet wurde, und sie möglicherweise entschlüsseln können. Geben Sie als Erstes in Cygwin oder Unix den Befehl file ein:

$ file mydata
mydata: SQLite 3.x database

Datei sieht sich die ersten paar Bytes an und versucht, den Inhalt zu ermitteln. Es gibt mehrere Möglichkeiten, wie die Daten verschlüsselt werden:

  • 100% verschlüsselte Daten und Struktur
  • Daten verschlüsselt, aber nicht die Struktur
  • ist ebenfalls nicht verschlüsselt, aber das Programm verfügt über eine Passwortkontrolle.

Wenn Sie Glück haben, kennt der Dateibefehl die Datei der Datei und die Struktur der Daten wird nicht verschlüsselt. Das ist üblich, denn wenn das Programm die Daten aktualisiert, will es normalerweise nicht die ganze Datei neu schreiben. Wenn es sich bei den Daten nicht um die eigentliche Datenbank, sondern um einen Export handelt, können sie außerdem komprimiert sein. Die Datei zeigt Ihnen an, ob sie ein gängiges Komprimierungsformat verwendet.

Als nächstes verwenden Sie den Befehl "strings".

$ strings mydata

Dadurch werden alle Klartextdaten ausgegeben. Wenn Sie Beweise für Ihre Daten sehen, ist möglicherweise keine Entschlüsselung erforderlich. Einige Programme führen lediglich eine Kennwortprüfung durch und verschlüsseln überhaupt nicht. Dies kann selbst dann der Fall sein, wenn der Anbieter angibt, dass er Ihre Daten "verschlüsselt".

Wenn Sie es immer noch mit einem zufälligen Haufen von Bytes zu tun haben und Strings und Datei Ihnen gerade gesagt haben, dass es binäre Daten sind, dann müssen Sie anfangen, in den Daten herumzustochern.

Die nächsten beiden wichtigen Punkte sind die Gesamtlänge der Datei. Der Modulus der Dateigröße kann Ihnen etwas über den Verschlüsselungsalgorithmus verraten. Als Zweites sollte man sich das Histogramm der Daten ansehen.

$ ruby -e 'ARGF.each_byte {|b| puts b >> 4; }' <  mydata | sort -n | uniq -c

Wenn die Bytes gleichmäßig über den Bereich 0-255 verteilt sind, handelt es sich um einen geeigneten Verschlüsselungsalgorithmus. Wenn Ihre Daten einseitig verteilt sind, kann die Verschlüsselung wahrscheinlich leicht erkannt und geknackt werden. Sehen Sie sich zum Beispiel diese Ausgabe an:

     15 0
     54 2
     93 3
    248 4
    165 5
    177 6
    135 7

Die Häufigkeitszählung befindet sich im ersten Eimer, die Daten im zweiten. Hier können Sie sehen, dass die Daten kein Zeichen über 127 enthalten. Das bedeutet, dass die Daten nahe am ASCII-Text sind. Führen Sie das Histogramm erneut aus, und legen Sie die Daten in Ein-Byte-Felder. Lassen Sie einfach den Rechtsschiebe-Operator weg.

$ ruby -e 'ARGF.each_byte {|b| puts b; }' <  mydata | sort -n | uniq -c

Es kann sein, dass Sie eine ASCII-Verteilung sehen, oder dass die Daten base64- oder base96-kodiert sind. Sie können den Stream durch einen Decoder laufen lassen und alle oben genannten Schritte erneut versuchen.

Wenn Sie feststellen, dass Sie es mit einem industrietauglichen Algorithmus zu tun haben, dann müssen Sie herausfinden, welcher das ist. Wenn Sie eine Kopie des Programms haben, wird der Code selbst den verwendeten Algorithmus in der Regel recht leicht verraten. Wenn nicht, müssen Sie sich Dinge wie die Länge ansehen. Wenn die Datenlänge immer Modulus 8 ist, dann ist sie wahrscheinlich mit einem symmetrischen Blockchiffrierer wie Blowfish verschlüsselt.

Wenn Sie die verwendete Chiffre bestimmen können, müssen Sie den Schlüssel herausfinden. Wenn das Programm ein Passwort verlangte, dann basiert der Schlüssel wahrscheinlich auf dem Passwort, oder ist das Passwort selbst. Wenn Sie Glück haben, fragt das Programm nicht nach einem Schlüssel, und nur das Programm selbst kennt den Schlüssel. In diesem Fall könnten Sie, wenn Sie das Programm in die Hände bekommen, den Schlüssel aus dem Programm extrahieren, da es den Schlüssel enthalten muss, um ver- und entschlüsseln zu können.

Meiner Erfahrung nach verwenden die meisten Softwareanbieter keine echte Verschlüsselung, und die Programmierer versuchen, die Daten vor dem Schreiben mit XOR zu verknüpfen. Wenn eine echte Verschlüsselung verwendet wird, wird die Software normalerweise mit einem Hinweis auf Exportbeschränkungen geliefert.

9voto

LukeH Punkte 251752

Sie NEED um an das Drittanbieter-Tool zu gelangen, das ursprünglich zur Verschlüsselung der Daten verwendet wurde.

Wenn Sie das Werkzeug nicht bekommen können, müssen Sie NEED Informationen über die verwendeten Algorithmen, Schlüssel usw., vorzugsweise vom Anbieter.

8voto

paxdiablo Punkte 809679

Sie müssen beides tun:

  • die Methode der Verschlüsselung herauszufinden; und
  • den zur Verschlüsselung verwendeten Schlüssel herausfinden.

Am einfachsten ist es (wenn möglich), zu der Person oder dem Unternehmen zu gehen, die bzw. das den Auftrag erteilt hat, und sie zu fragen.

Ich beneide Sie nicht um diese Aufgabe, denn wenn es sich nicht um eine nutzlose Verschlüsselung wie XOR handelt, haben Sie eine schwere Aufgabe vor sich.

Als Erstes sollten Sie uns den Namen des Tools mitteilen. Das Vorenthalten von Informationen in der Frage macht es für Sie nur noch schwieriger, und das können Sie nicht gebrauchen :-)

7voto

Jonathan Rupp Punkte 15162

Ich denke, alle üblichen Ideen wurden bereits behandelt, aber hier sind ein paar weitreichende Vorschläge.

Versuchen Sie, einen Blick auf die Rohdaten zu werfen, insbesondere auf die ersten vier Bytes. Führen Sie eine Suche nach den ersten vier Hex-Bytes durch und schauen Sie, ob Sie einen Treffer erzielen (d. h. ob der Hersteller ein magisches Byte im Header verwendet hat).

Sie können auch versuchen, die Rohdatei durch ein Dienstprogramm wie "Strings" laufen zu lassen (oder die Datei einfach zu durchsuchen, wenn sie relativ klein ist). Schauen Sie, ob das Programm vielleicht einen Copyright-Hinweis oder ähnliches in die resultierende Datei eingebettet hat - es ist zumindest einen Versuch wert.

Sie könnten natürlich auch versuchen, die Datei ins Internet zu stellen und zu sehen, was andere Leute sich einfallen lassen, aber ich vermute, das würde Ihren Zweck vereiteln (d. h. es handelt sich um vertrauliche Daten - warum hätte man sie sonst überhaupt verschlüsseln sollen).

4voto

toholio Punkte 2860

Wenn das Tool eines Drittanbieters etwas taugt, müssen Sie sich vielleicht von den Daten verabschieden. Wie viel sind die Daten wert? Wie viel wird die Wiederherstellung kosten? Wären die Kosten für die Neuanschaffung des Tools geringer als der Wert der Daten? Wenn ja, kaufen Sie es einfach wieder!

Achten Sie auf professionelle Audits der Wirksamkeit und Sicherheit des Drittanbieter-Tools. Diese könnten Aufschluss über die verwendeten Methoden geben.

Ehrlich gesagt, wenn Sie keinen erneuten Zugriff auf das Tool erhalten können, ist es am besten, wenn Sie sich an ein professionelles Datenrettungsunternehmen wenden. Wenn das Produkt, das Sie verwendet haben, relativ weit verbreitet ist, haben Sie es vielleicht schon einmal gesehen. Wenn es etwas taugt, können sie natürlich nicht helfen, es sei denn, Sie haben die verwendeten Schlüssel noch zur Hand.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X