Bei Verwendung der vollständigen Festplattenverschlüsselung mit Ubuntu (im Gegensatz zur Homedir-Verschlüsselung) wird dm-crypt mit LUKS zum Verschlüsseln des Volumes verwendet. Im Installationsprogramm (mindestens am 12.04. Alternative) können Sie wählen, ob Sie es mit einer Passphrase oder einer Schlüsseldatei einrichten möchten. Ich möchte eine Kombination aus beiden verwenden. nicht beides, sondern beides.
Warum? Weil dies die Sicherheit erhöht (Zwei-Faktor); Sie müssen etwas haben und Sie müssen etwas wissen , um es freizuschalten. Dann möchte ich die Schlüsseldatei auf einem kleinen Wechseldatenträger (USB-Flash-Laufwerk) ablegen und nur während des Startvorgangs anschließen. Das Ergebnis sollte sein, dass das richtige Flash-Laufwerk eingelegt und die richtige Passphrase zum Entsperren der Root-Partition angegeben werden muss.
Mit anderen Worten, ich möchte beim Booten nach der Passphrase gefragt werden, mit der die Schlüsseldatei auf einem externen Laufwerk verschlüsselt ist.
Ich sehe ein /usr/share/initramfs-tools/hooks/cryptgnupg
Hilfsskript, das dazu beitragen kann, aber ich habe keine Ahnung, wie ich es verwenden soll.
Nur um Verwirrung zu vermeiden: Ich frage nicht nach einer Möglichkeit , dem Volume einen zusätzlichen Schlüssel hinzuzufügen , um es zu entsperren.
quelle
/usr/share/doc/cryptsetup/README.gnupg
. Ich werde versuchen, etwas Zeit zum Ändern zu finden, damit eine Schlüsseldatei von externen Medien verwendet wird.Antworten:
Ich mache das Gleiche, aber ich fürchte, meine Antwort wird nicht zufriedenstellend sein, da ich mich aus verschiedenen Gründen für ein vollständig benutzerdefiniertes Initramfs entschieden habe .
Anstelle
GnuPG
einer zusätzlichen Binärdatei, die in den Initramfs enthalten sein muss (und im FalleGnuPG-2
einer ziemlich komplexen), habe ich einfach das verwendet, was bereits vorhanden ist. Und das ist offensichtlichdm-crypt/LUKS
.Angenommen, Sie haben eine
keyfile
. Vorzugsweise eine mit zufälligen Daten.Fügen Sie mit LUKS eine Verschlüsselung hinzu (fügen Sie die gewünschten Chiffriereinstellungen hinzu).
Jetzt haben Sie eine Schlüsseldatei (512 Byte) und eine Schlüsseldatei.luks (2 MB, die Cryptsetup aus irgendeinem Grund benötigt, um den 192k LUKS-Header zu schreiben). Da die Initramfs sowieso komprimiert werden, ist das nicht schlecht (immer noch kleiner als
GnuPG
).Jetzt können Sie die Schlüsseldatei entschlüsseln:
Und Sie haben 512 Byte zufällige Daten in
/dev/mapper/lukskey
. (Sie können darauf schreiben, wenn Sie es ändern möchten, sodass wir die Datei möglicherweise früher mit Nullen initialisiert haben.)In Initramfs können
init
Sie dann das echte LUKS-Volume damit öffnen (vorausgesetzt, Sie haben zuerst den Schlüssel hinzugefügt).Dieser Ansatz macht GnuPG völlig überflüssig und Sie erhalten alle LUKS-Vorteile, wie z. B. mehrere Passphrasen für den Schlüssel, eine Chiffre Ihrer Wahl usw. Ganz zu schweigen von einer netten (meist regulären) Passwortabfrage mit mehreren Wiederholungsversuchen.
quelle