Windige Festplattenverschlüsselung

Seite 3: Windige Festplattenverschlüsselung

Inhaltsverzeichnis

Vielleicht könnte man allein durch den Vergleich dieser beiden Sektoren hinter das Verfahren kommen. Aber das erscheint mir zu mühsam, ich brauche einfachere Testdaten. Zu diesem Zweck fülle ich einmal den nächsten Sektor von Hand mit dem Diskeditor.

Um herauszufinden, mit welcher Blockgröße die Verschlüsselung arbeitet, ob sie also byteweise, wortweise oder noch anders vorgeht, schreibe ich immer 32 gleiche Bytes hintereinander. Und zwar erst einmal die Bytes, die nur ein Bit gesetzt haben, also 1, 2, 4, 8 usw.:

0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0020 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01 ................
0030 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01 ................
0040 02 02 02 02 02 02 02 02-02 02 02 02 02 02 02 02 ................
0050 02 02 02 02 02 02 02 02-02 02 02 02 02 02 02 02 ................
0060 04 04 04 04 04 04 04 04-04 04 04 04 04 04 04 04 ................
0070 04 04 04 04 04 04 04 04-04 04 04 04 04 04 04 04 ................
0080 08 08 08 08 08 08 08 08-08 08 08 08 08 08 08 08 ................
0090 08 08 08 08 08 08 08 08-08 08 08 08 08 08 08 08 ................
00A0 10 10 10 10 10 10 10 10-10 10 10 10 10 10 10 10 ................
00B0 10 10 10 10 10 10 10 10-10 10 10 10 10 10 10 10 ................
00C0 20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
00D0 20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
00E0 40 40 40 40 40 40 40 40-40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
00F0 40 40 40 40 40 40 40 40-40 40 40 40 40 40 40 40 @@@@@@@@@@@@@@@@
0100 80 80 80 80 80 80 80 80-80 80 80 80 80 80 80 80 ................
0110 80 80 80 80 80 80 80 80-80 80 80 80 80 80 80 80 ................

Dann noch 0xFF (alle Bits gesetzt), 0x55 und 0xAA (jeweils jedes zweite Bit gesetzt):

0120 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................
0130 FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF ................
0140 55 55 55 55 55 55 55 55-55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
0150 55 55 55 55 55 55 55 55-55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
0160 AA AA AA AA AA AA AA AA-AA AA AA AA AA AA AA AA ................
0170 AA AA AA AA AA AA AA AA-AA AA AA AA AA AA AA AA ................

Jetzt fix ein Linux gebootet und den verschlüsselten Sektor in den Diskeditor geladen. Die Nullen bleiben erwartungsgemäß Nullen:

0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

Die Zeilen aus Einsen, Zweien und Vieren verwandeln sich in Zeilen mit derselben Anzahl gesetzter Bits:

0020 80 01 80 01 80 01 80 80-80 01 80 01 80 01 80 80   ................
0030 80 01 80 01 80 01 80 80-80 01 80 01 80 01 80 80 ................
0040 00 60 00 60 00 60 20 20-00 60 00 60 00 60 20 20 .`.`.` .`.`.`
0050 00 60 00 60 00 60 20 20-00 60 00 60 00 60 20 20 .`.`.` .`.`.`
0060 02 02 02 02 02 02 08 08-02 02 02 02 02 02 08 08 ................
0070 02 02 02 02 02 02 08 08-02 02 02 02 02 02 08 08 ................

Dann plötzlich eine Abweichung von diesem Muster:

0080 5F 93 A7 CA 79 00 02 02-5F 93 A7 CA 79 00 02 02 _...y..._...y...
0090 5F 93 A7 CA 79 00 02 02-5F 93 A7 CA 79 00 02 02 _...y..._...y...

Es ist also doch nicht nur eine einfache Vertauschung von Bits. Aber jetzt wird klar, was Excelstor mit einer "proprietären 64-Bit-Verschlüsselung" meint: Aus 32 identischen Bytes wurden hier vier gleiche Bytefolgen á 8 Byte, die Platte verschlüsselt also anscheinend jeweils 64-Bit-Wörter. Da hat wohl jemand bei Excelstor nicht verstanden, dass es einen Unterschied zwischen 64-Bit-Schlüsseln und einer Block-Chiffre mit 64-Bit-Blöcken gibt.

In den nächsten drei Abschnitten sind wieder nur einfach die Bits ein bisschen vertauscht:

00A0 10 80 10 80 10 80 04 04-10 80 10 80 10 80 04 04 ................
00B0 10 80 10 80 10 80 04 04-10 80 10 80 10 80 04 04 ................
00C0 0C 00 0C 00 0C 00 10 10-0C 00 0C 00 0C 00 10 10 ................
00D0 0C 00 0C 00 0C 00 10 10-0C 00 0C 00 0C 00 10 10 ................
00E0 40 10 40 10 40 10 40 40-40 10 40 10 40 10 40 40 @.@.@.@@@.@.@.@@
00F0 40 10 40 10 40 10 40 40-40 10 40 10 40 10 40 40 @.@.@.@@@.@.@.@@

Aus der Folge von 0x80-Bytes wird schließlich wieder ein etwas komplizierteres Muster, das sich aber wie alle anderen nach jeweils 8 Byte wiederholt:

0100 00 0C 00 0C 00 0C 57 71-00 0C 00 0C 00 0C 57 71 ......Wq......Wq
0110 00 0C 00 0C 00 0C 57 71-00 0C 00 0C 00 0C 57 71 ......Wq......Wq