Wo liegt GELI-key, nach Installation mit Full-Disk-Encryption?

SolarCatcher

Well-Known Member
Hallo,

habe seit einigen Wochen ein FreeBSD 11 installiert - standardmäßig über den Installer, mit Full-Disk-Encryption (sollte in 10.3 genauso sein). Dazu werden ja insgesamt 3 Partitionen angelegt, und der Boot-Loader kann bereits entschlüsseln. Aber: Wo liegt eigentlich der Schlüssel für die 3. Partition, die das OS (inkl. /usr/home) enthält.

Ich würde den aus offensichtlichen Gründen gerne extern sichern.
 
Lies mal die geli Manual Page. Geli hat eine Backup Funktion für Schlüssel.
 
Kamikaze: Vorsichtig mit solchen Hinweisen. Die Manpage verrät zwar die GELI-Optionen, aber sie erklärt nicht was bsdinstall zfsboot unter der Haube einrichtet. Also GELI hat pro Provider (in deinem Fall die letzte Partition) einen Masterblock. In dem existieren zwei Keyslots um den Masterkey zu entschlüsseln (der Installer nutzt nur den ersten). Mit geli backup erstellst man eine Kopie dieses Masterblocks. Um einen Keyslot zu verwenden brauchst du alle Keyfiles (der Installer legt den Keyfile auf dem unverschlüsselten bootpool ab) und falls verwendet das Passwort (der Installer fragt bei der Installation zweimal nach einem Passwort).

SolarCatcher: Für dich bedeutet es, wenn du wirklich alles sichern willst was du brauchst um deinen GELI Provider zu entschlüsseln, dass du den Keyfile aus /boot und dein Passwort. Das kannst du zwar so machen, aber es ist nicht die optimale Lösung. Meines Erachtens ist es besser den zweiten Keyslot des Providers zu verwenden. Den zweiten Slot würde ich dann nur mit einem Keyfile sichern und diesen z.B. mit GnuPG verschlüsseln. Natürlich darfst du nicht die Privatekeys aller Empfänger verlieren, aber dann hast du eh ein größeres Problem.

Eine weitere Eigenheit an ist das sich ein Masterblock mit geli restore aus einem Backup wiederherstellen lässt d.h. alte Keyslots können damit reaktiviert werden und Zugriff auf den Masterkey des Providers ermöglichen. Dieses Design wurde gewählt, weil sonst beim Schlüsselwechsel alle Daten mit dem alten Key entschlüsselt und dem neuen Key verschlüsselt werden müssten.
 
Hallo @Crest

das ist ja sehr interessant. Dass es da die Option für zwei User Keys gibt, hatte ich nich nie gesehen. Es müsste dann also eigentlich so klappen...

Code:
geli setkey -n 1 -P -K /pfad/zum/neuen/keyfile /dev/ada0p3

Mal sehen, wann ich die Zeit habe, das auszoprobieren (immer einplanend, dass es katastrophal schief gehen könnte).

Den Original-Key, den der Installer angelegt hat, konnte ich übrigens nicht in /boot finden! Könnte der nicht in einer der anderen beiden Partitionen liegen, die beim Installieren angelegt wurden?
 
Den Original-Key, den der Installer angelegt hat, konnte ich übrigens nicht in /boot finden! Könnte der nicht in einer der anderen beiden Partitionen liegen, die beim Installieren angelegt wurden?
Der sollte aber in der /boot/loader.conf eingetragen sein. Anbei ein Ausschnitt aus meiner /boot/loader.conf

Code:
geli_vtbd0p4_keyfile0_load="YES"
geli_vtbd0p4_keyfile0_type="vtbd0p4:geli_keyfile0"
geli_vtbd0p4_keyfile0_name="/boot/encryption.key"
 
@crotchmaster

Hatte ich ja auch zuerst gedacht. Aber was geli betrifft, steht dort nur dies - kein Hinweis auf den Schlüssel...
Code:
geom_eli_load="YES"
kern.geom.label.disk_ident.enable="0"
kern.geom.label.gptid.enable="0"
Ich denke ja weiterhin, dass der in einer der anderen Partitionen liegen muss, die ja nur zum Starten der verschlüsselten Partition benötigt werden.
 
Das scheint sich mit FreeBSD 11 was geändert zu haben. Auf meinem 10.3-Host habe ich die keyfile-Einträge noch, in einer 11.0-VM nicht mehr. Wende dich doch vielleicht mal an Allan Jude, der hat dem Bootloader für 11 GELI-Entschlüsselung beigebracht, der sollte das wissen. Nicht vergessen die Antwort hier zu posten ;)
Spontan würde ich aber vermuten, das der Schlüssel jetzt in der "freebsd-boot"-Partition (nicht zu verwechseln mit einer bis 10.x noch benötigten "/boot"-Partition!) liegt, da er ja zum entschlüsseln der anderen Partitionen gebraucht wird.
 
Also, hier die interessante Antwort von Allan Jude: Bei der neuen Fulldisk Encryption gibt es keinen Keyfile mehr. Der Schlüssel wird aus der Passphrase berechnet; dadurch kann auf eine nicht-verschlüsselte Boot-Partition verzichtet werden.

Hier die komplette Antwort, die ich hier so weiter geben darf:
In 11.0, if you install GPT+BIOS, it does not use a keyfile, only the
passphrase. This allows for you to boot directly from the encrypted root
partition, without needing an unencrypted /boot partition.

The .key files you had before we not actually the key file. Rather, GELI
encrypts the actual key file with your passphrase (which is key
stretched using 100,000s of rounds of pkcsv5) and optionally random data
from a file.

After my improvements to allow booting with 0 unencrypted partitions,
there was no place to put the key file (it wasn't very advantageous to
have the .key file sitting on an unencrypted partition on the encrypted
drive anyway)

Future work will allow you to load a key file from external storage,
like a USB stick, but that work is not done yet.

If you wish to go back to having a key file, currently the 100%
encrypted setup does not work with UEFI (work is underway to solve
that), and it is impossible if you partition with MBR (no space for the
GELI enabled boot code).

So: there is no .key file anymore, but if you really want it back for
some reason, tell the ZFS installer to use MBR.

Außerdem schickte er noch diesen weiterführenden Link zu seiner Präsentation dazu auf der BSDCan Konferenz - dort kann man die Folien, das Video und ein 8-seitiges "akademisches" Paper zum Thema finden.
 
Zurück
Oben