LUKS-Header - 30 kB fehlen auf mysteriöse Weise

LUKS-Header - 30 kB fehlen auf mysteriöse Weise

Ich habe eine Festplatte, die (nur) ein mit LUKS verschlüsseltes Volume enthält. Dieses wurde auf einem leeren Laufwerk ohne Partitionstabelle mit Cryptsetup v.1.6.1 erstellt. Wenn es entsperrt ist, kann ich die Größe des entschlüsselten Volumes prüfen, es mit der gesamten Festplatte vergleichen und feststellen, dass der Unterschied genau 2 MB beträgt. Wenn ich hingegen den Header sichere, verwende ich:

cryptsetup luksHeaderBackup /dev/sda --header-backup-file <filename>

Ich erhalte eine Datei, die 30 kB kleiner als 2 MB ist. Wenn ich dd verwende, um die ersten 2 MB der Festplatte zu sichern und sie mit dem gesicherten Header vergleiche, sehe ich, dass die 30 KB am Ende fehlen und nur Nullen enthalten. Seltsamerweise habe ich Backups verschiedener (anderer) LUKS-Header mit Cryptsetup 1.4.1 und 1.4.3, und sie sind alle genau 2 MB groß. Dies stimmt mit übereinAbschnitt 6.2 der Cryptsetup-FAQ, die besagt, dass die Header-Größe 2 MB betragen sollte.

Kann mir jemand erklären, was diese 30 KB sind? (Ich möchte den Header mit zufälligen Daten überschreiben, da ich ihn auf einem separaten Gerät abgelegt habe, und möchte sicherstellen, dass ich weiß, was ich tue.)

Und noch eine allgemeinere Frage: Gibt es eine einfachere/automatisiertere Möglichkeit, beispielsweise mithilfe der Ausgabe von luksDump, festzustellen, wo genau sich der Header auf einer Festplatte befindet? (Sowohl Offset als auch Größe.) Ich habe die Cryptsetup-FAQ gelesen, aber das Ergebnis fällt ganz sicher nicht einfach aus.

Und gibt es eine bessere Möglichkeit, den Header zu überschreiben, als dd zu verwenden?

cryptsetup luksHeaderRestore <file_with_random_data>

funktioniert nicht, weil Cryptsetup einige Idiotenprüfungen durchführt, um zu sehen, ob ein bereits vorhandener Header hinsichtlich Größe und Offset des Hauptschlüssels übereinstimmt.

Antwort1

Es stellt sich heraus, dass die 30 KB ungenutzter Speicherplatz sind, aber die Header-Daten wurden auf 1 MB ausgerichtet. Die gesamten 2 MB wurden beim Sichern mit früheren Versionen von Cryptsetup eingeschlossen, aber spätere Versionen lassen sie weg.

Mithilfe der Ausgabe von payloadOffset cryptsetup luksDump(einer Anzahl von 512-B-Sektoren) ist es möglich, den Offset zu sehen, an dem das verschlüsselte Volume beginnt. Sie können also bis dorthin manuell löschen. Oder Sie können seit Cryptsetup 1.6.4 cryptsetup luksErasealle aktiven Schlüsselslots überschreiben. Der verbleibende sichtbare Header mit Metadaten ist der erste 4-KB-Datenträger, der also manuell gelöscht werden müsste.

[Danke an Milan, einen der Cryptsetup-Entwickler bei Cryptlab!]

verwandte Informationen