Ist es möglich, einem offenen Volume einen Schlüssel hinzuzufügen, ohne einen aktuellen Schlüssel bereitzustellen?

436
Gilles

Wie der Titel besagt, muss ich wissen, ob es eine Methode zum Hinzufügen eines Schlüssels gibt, bei der der Benutzer das Kennwort nicht erneut eingeben oder eine Schlüsseldatei für ein bereits geöffnetes luks-Volume angeben muss. Ich müsste es tatsächlich implementieren, also wäre ein Beispiel dankbar.

2

2 Antworten auf die Frage

0
Gilles

Nein, nicht vernünftig - aber ein Gegner könnte es.

Das cryptsetupTool arbeitet auf dem verschlüsselten Volume selbst, unabhängig davon, ob es derzeit geöffnet ist oder nicht. Es muss die Volume-Taste aus dem Volume abgerufen werden. Dazu muss eine der vorhandenen Schlüsselslots (Passphrase oder Schlüsseldatei) entschlüsselt werden. Andernfalls müssen Sie die bloße Datenträger-Taste übergeben (die Sie nicht annähernd herumliegen würden).

Wenn das Volume gemountet ist, hat der Kernel den Volume-Key im Speicher. Es ist jedoch nicht überraschend, dass es keine Schnittstelle für den Abruf bietet.

Sie können ein Kernel-Modul schreiben und laden, das den Volume-Schlüssel abruft (ich denke, Sie müssen durch die Grenzen springen, aber aus sicherheitspolitischer Sicht ist das unbedeutend), es sei denn, das Laden von Modulen ist deaktiviert oder authentifiziert. Sie können den Schlüssel über einen Speicherabzug über abrufen /dev/kmem, sofern dies nicht deaktiviert ist (ich gehe davon aus, dass es forensische Tools von der Stange gibt, obwohl dies nicht möglich ist). Ich denke das ist es.

msgstr "Es gibt keine Schnittstelle, um es abzurufen" Ja, es tut es. `dmsetup table --showkey` verwendet es. Joseph Sible vor 6 Jahren 0
0
Joseph Sible

Ja genau so:

cryptsetup luksAddKey <DEVICE> --master-key-file <(dmsetup table --showkey /dev/mapper/<MAP> | awk '' | xxd -r -p) 

Ersetzen Sie <DEVICE>das Blockgerät, das die LUKS-Partition enthält (z. B. /dev/sda1) und <MAP>den Namen des Mappings (z. B. sda1_crypt).

Quelle: https://access.redhat.com/solutions/1543373