Geli: Verständnisfrage

mod3

Well-Known Member
Guten Morgen zusammen,

habe spaßeshalber mal eine ältere Festplatte mit geli verschlüsselt (Passwort + Keyfile).
Da man ja nun beides (korrekt?) zum Einbinden/Entschlüsseln der Platte benötigt, dürfte Geli doch - mal rein unter diesem Gesichtspunkt - sicherer sein als z.B. cryptsetup unter Linux? Denn wenn ich mich recht entsinne kann man dort zwar mehrere Keys für ein Volume nutzen, aber diese sind dann eben parallel gültig. Ich kann also zwar mit z.B. 3 verschiedenen Passwörtern auf meine Daten zugreifen, benötige aber immer nur EINES von ihnen gleichzeitig.

Verstehe ich das richtig?
Man müsste bei geli also gleichzeitig das Keyfile und das Passwort brute-forcen?
 
So einfach ist das leider nicht. Alle gängigen Festplattenverschlüsselungen arbeiten mit einem externen Key (das ist der, den du eingibst) und einem internen Key, mit dem die eigentlichen Daten verschlüsselt werden. Wenn du "geli init" sagst, passiert grob:
  • Das Kommando fragt nach deinem Passwort und liest ein eventuelles Key-File ein. Beides wird mit einander verbunden und durch eine Key Derivation Funktion geleitet, um spätere Bruteforce-Angriffe auf das Passwort zu erschweren. Das Ergebnis ist der externe Key.
  • Es wird der interne Key erstellt. Das ist nur eine Reihe Zufallsdaten, die noch etwas aufbereitet werden.
  • Nun wo alles vorhanden ist, wird der interne Key mit dem externen Key verschlüsselt und in die Metadaten geschrieben.
Beim Öffnen des Providers mit "geli attach" passiert genau das Gleiche:
  • Du gibst dein Passwort ein und das optionale Keyfile mit. Beides wird verbunden und durch die Key Derivation Funktion geleitet. Nun liegt der externe Key vor.
  • Mit dem externen Key wird der interne Key entschlüsselt.
  • Der entschlüsselte interne Key wird verwendet, um die eigentlichen Daten zu ver- und entschlüsseln.
Indem der interne Key zwischengeschaltet wird, wir es möglich mehrere Passwort und Keyfiles für einen Provider zu nutzen. Und es kann später das Kennwort oder das Keyfile geändert werden, ohne alle Daten neu zu verschlüsseln. Es heißt aber auch, dass ein eventueller Angreifer theoretisch gleich den internen Key bruteforcen kann und sich für den externen Key gar nicht zu interessieren braucht. Aber natürlich sind die Aussichten ein Passwort mittels eines Wörterbuchs erfolgreich zu bruteforcen wesentlich höher, als eine Kette aus ein paar hundert Byte Zufallsdaten. Das Keyfile trägt also durchaus zu Sicherheit bei, das Passwort ist damit nicht mehr der offensichtliche Angriffspunkt.

Aber diese Sicherheitsdiskussionen um GELI, LUKS, Veracrypt und sogar Bitlocker sind grundsätzlich eher theoretischer Natur. Es gab da vor Jahren mal einen sehr passenden xkcd zu: https://www.xkcd.com/538/ Es gibt eigentlich nur zwei Fälle. Deine Hardware wird gestohlen. In dem Fall will der Dieb die Hardware zu Geld machen, die Verschlüsselung muss also gar keinen harten Angriffen standhalten. Sie muss nur sicher genug sein, um sich nicht schnell und ohne großen Aufwand überwinden zu lassen. Oder du bekommst Ärger mit einem Angreifer, der an deine Daten will. Polizei, Geheimdienst, professionelle Datenjäger... Was man sich halt so vorstellen kann. Die sind abgebrüht genug um gar nicht erst zu versuchen den Schlüssel zu bruteforcen. Sie werden nach Fehlern in der Cryptokette oder im Key-Management suchen - unverschlüsseltes Backup, Passwort doch irgendwo aufgeschrieben - und wenn sie da nicht fündig werden sich dir zuwenden. Drogen, den 5$ Schraubenschlüssel, vielleicht die Drohung "wir könnten auch einfach Kinderpornografie auf der Platte finden und Sie gehen dafür 20 Jahre in den Bau". Was es halt so gibt.

Daher: Für normale Personen sind alle Festplattenverschlüsselungen erstmal sicher genug, solange man vernünftige Kennwörter wählt. Wenn man es mit Gegnern zu tun hat, wo das nicht mehr gilt, hat man gleich ganz andere Probleme. :)
 
Du kannst auch bei cryptsetup LUKS in einem Keyslot Passphrase+Keyfile verwenden. Du kannst das Keyfile verschlüsseln (gpg) und dann reinpipen. Die Installer bieten das in der regel nicht an, wenn man sowas für Boot haben will, geht das leider nur mit Handarbeit. Mit verschlüsseltem /boot und unlock via Grub leider auch nicht möglich. Letzteres dürfte aber auch bei FBSD nicht gehen.
 
Dass man das ganze /boot nun auch verschlüsseln kann wusste ich, dass es auch mit Keyfile klappt war mir in der Tat neu. Liest der Bootloader direkt von einem USB Stick? Hab auf die schnelle noch nichts dazu gefunden.
 
Achso, mit Keyfile meinst du. Das hatte ich missverstanden. Ob das nun geht, weiß ich nicht.
 
Ja das wusste ich schon.. erinnert mich aber daran, dass ich das endlich mal umsetzten sollte auf unsren Servern :)
 
Doch, das ist ab 11.0 für den BIOS-Boot und ab 12.0 für alle Bootmethoden möglich. :)
Wirklich? Ich habe es nur fuer BIOS-Boot hinbekommen. Bei UEFI-Boot kann ich entweder den Kernel nicht direkt starten (crash, mit BIOS funtionierts), oder den loader.efi nicht von der verschluesselten Bootpartition, oder der von der unverschluesselten EFI/ partition gestartete loader kann die verschluesselte Boot Partition nicht finden (trotzdem die mit -g Flag erzeugt wurde). Aber genau habe ich es jetzt nicht im Kopf. Vll mache ich dafuer demnaechst mal einen eigenen Thread auf.
 
Zurück
Oben