FullDisk Encryption inkl. /boot

Alles rund um sicherheitsrelevante Fragen und Probleme.
ralle77
Beiträge: 11
Registriert: 11.01.2018 21:52:44

Re: FullDisk Encryption inkl. /boot

Beitrag von ralle77 » 12.01.2018 22:57:38

NAB hat geschrieben: ↑ zum Beitrag ↑
12.01.2018 22:30:18
Also wenn du jetzt eine Fertiglösung erwartest - ich hab keine. Ich hab sowas auch noch nie gemacht.

Wenn die Updates eh im verschlüsselten Bereich der Festplatte landen, dann braucht der USB-Stick auch nicht permanent eingesteckt zu sein. Man könnte prüfen ob er vorhanden ist und ihn nach /bootbackup mounten.
Die Hauptarbeit, das Kopieren, lässt mich mit einem einfach "cp" erledigen. Danach wird's fummelig.
/bootbackup müsste geunmounted werden und dann als /boot gemounted werden. Danach sollte ein update-grub und ein grub-install /dev/sdX deinen USB-Stick eigentlich bootfähig machen. Danach muss /boot wieder geunmounted werden.

Die nächste spannende Frage ist, wann man das Script ausführt. Eine Methode, sich direkt in die Updates einzuklinken kenne ich nicht. Man könnte das /boot-Verzeichnis mit inotify überwachen. Oder das Script einfach bei jedem Herunterfahren ausführen, dabei wäre Systemd hilfreich:
https://unix.stackexchange.com/question ... e-shutdown

Aber weiter oben hast du einen USB-Stick noch ausgeschlossen. Ich sehe da auch keinen Vorteil ... vorallem wenn er permanent eingesteckt ist. Du kannst /boot auch auf dem USB-Stick verschlüsseln, um eine kleinere Angriffsfläche zu bieten ... hast aber immer noch einen unverschlüsselten und manipulierbaren Grub auf dem USB-Stick. Das gleiche Ergebnis erzielst du mit einem verschlüsselten /boot auf der Festplatte.

Alternative: du speicherst nur den Grub auf dem USB-Stick. Der entschlüsselt und startet dann /boot von der Festplatte. Das müsste sich mit dem Debian-Installer im manuellen Modus sogar gleich bei der Installation so einrichten lassen (bis auf das verschlüsselte /boot).
Erwartungen stell ich gar keine. Ich wollte nur auf einen Ansatz hinaus,
wie man das angehen könnte, da du dich scheinbar ganz gut auskennst.
Habe gehofft die Updates lassen sich direkt abgreifen.

Klar ein Boot Stick, der permanent steckt, macht sicherheitstechnisch wenig Sinn.
Hätte den Stick dann halt abgezogen, wenn ich nicht am Rechner bin.

Ich probiere es mal mit Grub auf dem Stick und Boot auf der verschlüsselten Platte.
Das klingt vernünftig und ist mit wenig Aufwand verbunden.

Danke für die ausführliche Aufklärung!

NAB
Beiträge: 5502
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: FullDisk Encryption inkl. /boot

Beitrag von NAB » 13.01.2018 00:49:05

Ja ... ich grübele, wie man das beste Ergebnis am leichtesten hinbekommt. Das umherkopieren von /boot finde ich weder leicht noch sinnvoll. Schick wäre es hingegen, wenn deine gesamte Festplatte nur noch aus einer riesigen verschlüsselten Partition besteht, die nicht mal mehr Platz für einen manipulierten Bootmanager lassen würde. Noch schicker wäre es, wenn man das gleich mit dem Debian-Installer hinkriegen würde ... darauf wollte ich schon in meinem ersten Posting hinaus. Sonst steht viel nervige Handarbeit mit chroot und debootstrap an.

Meine grobe Idee sieht inzwischen so aus:
Du legst auf dem USB-Stick zwei Partitonen an - eine winzige für Grub ("grub_bios" für BIOS oder "esp" für UEFI) und eine etwas größere für ein unverschlüsseltes /boot. Auf die Festplatte kommt eine einzige verschlüsselte Partition für den Rest ... LVM würde ich mir sparen.

Das kannst du so mit dem Debian Installer per "manueller Partitionierung" einrichten und der Debian Installer müsste dir dann ein bootfähiges Debian auf USB-Stick und Festplatte legen. Du musst ihm noch sagen, dass er das grub-install auf dem USB-Stick durchführen soll - das geht aber auch nachher manuell.

Danach machst du weiter wie hier angedeutet:
viewtopic.php?f=37&t=168249#p1160370

Die unverschlüsselte Boot-Partition auf dem USB-Stick kannst du nachher überschreiben und einstampfen.

Ergebnis:
Der Rechner bootet nur vom USB-Stick. Auf dem USB-Stick ist Grub inklusive Grub-Partition.
Auf der Festplatte ist nur eine riesige verschlüsselte Partition.

Selbst wenn dein kleiner Bruder den Rechner heimlich auf Booten von Festplatte umstellt, wird er keinen manipulierten standard Grub installieren können, weil dafür kein Platz ist. Die NSA würde natürlich trotzdem maßgeschneiderte Wege finden.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: FullDisk Encryption inkl. /boot

Beitrag von breakthewall » 13.01.2018 03:54:08

tobo hat geschrieben: ↑ zum Beitrag ↑
12.01.2018 12:29:39
Ja, unter diese 2 Passwörter hab ich das auch nicht geschafft. Bei mir war kein LVM und /boot hat nicht in einer separaten Partition gelegen!? Diesen letzten Punkt wollte ich mal noch irgendwann geändert testen.
Ich habe hier eine 2TB HDD. Die ersten 2GB werden als primäre Partition genutzt, und damit für das Boot-Volume. Dann kommt eine weitere logische Partition von 200GB mit LVM-Volumes, die das restliche System in mehrere Segmente aufteilen. Der Rest wird für diverse Daten-Volumes genutzt. Und das Boot-Volume ist gemäß des Debian-Wikis nachträglich verschlüsselt worden.

Was mir nicht wirklich einleuchtet ist, warum es nicht funktioniert, dass Root-Volume mittels einer Schlüsseldatei auf dem zuvor gemounteten Boot-Volume zu entschlüsseln. Zumal sich das Cryptsetup dann so verhält, als würde das Boot-Volume garnicht existieren und somit auch keine Schlüsseldatei. Normalerweise müsste die Schlüsseldatei doch über denen Mountpoint /boot erreichbar sein, was hier aber offenbar nicht der Fall ist. Möglicherweise wird aber auch zu früh nach der Schlüsseldatei gesucht, bevor das Boot-Volume bereit ist. Nur wie könnte der Linux-Kernel geladen werden, wenn dem nicht so wäre? Das Problem ist einfach, dass es in dem frühen Stadium beim Systemstart keine Logs gibt.
tobo hat geschrieben: ↑ zum Beitrag ↑
12.01.2018 12:29:39
Was das Keyboard angeht, das kann ich so nur schwer glauben!? Zunächst mal steht es in der doc von grub selbst, dass es auf US-Tastatur beschränkt ist und zusätzlich kann ich mir auch nicht vostellen, dass man über /etc/default/grub stage 1 konfigurieren kann!?
Stimmt, dass geht doch erst ab Stage 2, gerade wenn das Boot-Volume verschlüsselt ist. Diesbezüglich müsste ich bezüglich meiner Passwörter einen ziemlichen Dusel gehabt haben, wenn es bei dem englischen Keyboard-Layout noch kein Problem gab.

NAB
Beiträge: 5502
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: FullDisk Encryption inkl. /boot

Beitrag von NAB » 13.01.2018 04:37:15

breakthewall hat geschrieben: ↑ zum Beitrag ↑
13.01.2018 03:54:08
Was mir nicht wirklich einleuchtet ist, warum es nicht funktioniert, dass Root-Volume mittels einer Schlüsseldatei auf dem zuvor gemounteten Boot-Volume zu entschlüsseln.
Warum sollte /boot überhaupt gemounted sein? Und von wem? Grub braucht den Inhalt von /boot ... aber Grub mounted nichts. Es startet den Kernel und der mounted die Initrd. Und die sucht erst mal das richtige root-Dateisystem ...
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: FullDisk Encryption inkl. /boot

Beitrag von breakthewall » 13.01.2018 06:58:32

NAB hat geschrieben: ↑ zum Beitrag ↑
13.01.2018 04:37:15
Warum sollte /boot überhaupt gemounted sein? Und von wem? Grub braucht den Inhalt von /boot ... aber Grub mounted nichts.
Als erstes muss Grub das Volume entschlüsseln. Doch zugegriffen kann auf dessen Daten erst, nachdem das Volume gemountet wurde. Ich sehe aber gerade das ich mich ohnehin vertan habe, da das Cryptsetup nicht das Fehlen der Schlüsseldatei bemängelte, sondern in dieser Konfiguration kein Root-Volume finden kann, wenn es via Schlüsseldatei entschlüsselt werden soll. Und ich denke nun zu wissen warum. Es wird nichts gefunden weil der ganze Vorgang zu schnell abläuft, sprich die LVM-Volumes wurden noch garnicht erkannt, weshalb Grub auch nichts finden kann. Das lässt sich mit "rootdelay=X" in der Kernelzeile ändern, um der LVM-Erkennung mehr Zeit zu verschaffen. Muss das mal austesten, da das mitunter etwas dauern kann.

Benutzeravatar
jph
Beiträge: 311
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: FullDisk Encryption inkl. /boot

Beitrag von jph » 13.01.2018 08:14:16

ralle77 hat geschrieben: ↑ zum Beitrag ↑
11.01.2018 22:24:28
Ich möchte gerne ein Debian 9 System verschlüsseln und das möglichst mit der Boot-Partition. Wäre jemand so lieb mir das möglichst anfängerfreundlich zu erklären?
Anfängerfreundlich? Fang mit dem an, was dir der Installer einrichtet: verschlüsseltes LVM, das von unverschlüsselten /boot startet.

Wenn du das ausreichend verstanden hast (und kein Anfänger mehr bist :wink: ), dann weißt du, weshalb verschlüsseltes /boot eine ziemlich unpraktische Sache ist, die ziemlich wenig bringt. Oder aber du weißt, wie du dieses System zu verschlüsseltem /boot weiterentwickeltst.

Antworten