Ermitteln Sie, ob der LUKS/dmcrypt-Schlüssel vorhanden ist

Ermitteln Sie, ob der LUKS/dmcrypt-Schlüssel vorhanden ist

Ich schreibe ein Chef-LWRP, um einem LUKS-Container einen Schlüssel hinzuzufügen, und mir fällt nicht so recht ein, wie ich damit ermitteln kann, ob mein Schlüssel bereits vorhanden ist oder nicht. cryptsetup luksAddKeyIch füge die gleiche Schlüsseldatei gerne mehrmals hinzu, sodass ich nicht einfach luksAddKeybei jedem Chef-Lauf weiter aufrufen kann.

Das Beste, was mir bisher eingefallen ist, ist

cryptsetup luksDump /dev/xvdf1 --dump-master-key --key-file <thenewkey> > /dev/null

Das scheint:

  1. CPU-intensiv
  2. nicht sehr sicher

Hat jemand eine bessere Idee?

Danke!

Antwort1

Ich sehe keine Möglichkeit, einen Schlüssel zu testen, ohne das Volume zu entsperren (zumindest was die CPU-Last betrifft). Aber wer hat diese paar CPU-Sekunden nicht? Hast du viele LUKS-Volumes pro System?

Alternativ können Sie Folgendes tun:

Jedes Mal, wenn Sie einen Schlüssel hinzufügen, speichern Sie einen Digest der Datei (das muss nicht einmal ein sicherer Digest sein; sogar MD5 würde genügen). Sie erstellen ein Verzeichnis /etc/my_luks_keyfiles. Für jedes LUKS-Volume im System erstellen Sie ein Unterverzeichnis mit der UUID ( cryptsetup luksUUID /dev/bla). Wenn Sie einen Schlüssel hinzufügen, erstellen Sie eine Datei mit z. B. dem Zeitstempel als Namen und dem Digest als Inhalt. Wenn Sie einen Schlüssel entfernen, entfernen Sie die Datei. Wenn Sie wissen möchten, ob ein Schlüssel aktiv ist, vergleichen Sie alle Dateien im Verzeichnis mit dem Digest (d. h. Sie müssen die Schlüsseldatei nicht übertragen).

Und wenn mehr oder weniger Dateien als aktive Slots vorhanden sind, dann wissen Sie, dass Sie einen Fehler gemacht haben ...

verwandte Informationen