
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 luksAddKey
Ich füge die gleiche Schlüsseldatei gerne mehrmals hinzu, sodass ich nicht einfach luksAddKey
bei 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:
- CPU-intensiv
- 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 ...