Wie kann ich initrd und grub.cfg mit Secure Boot sichern?

8

Ich verwende den Standard-Ubuntu-Ansatz mit shim und grub2, kombiniert mit meinem eigenen Plattformschlüssel (selbstsignierendes Shim mit sbsign) und einer verschlüsselten Root-Partition, um den Start meiner Ubuntu-Installation zu sichern. Dadurch werden jedoch nur die Dateien grubx64.efi und der Kernel überprüft, die Dateien initrd.img und grub.cfg auf der unverschlüsselten Startpartition werden jedoch nicht vor böswilligen Änderungen geschützt.

Wie kann ich die initrd- und die grub-Konfiguration überprüfen, möglicherweise mithilfe eines sha256-Hash, bevor ich sie zum Booten verwende? Diese Überprüfung kann in Shim, in Grub oder in einem anderen Werkzeug erfolgen, das ich zusätzlich zu oder anstelle von Shim und / oder Grub verwenden kann.

Mit dieser Frage soll verhindert werden, dass der Kernel in einer geänderten Umgebung (Kernel-Befehlszeile und initrd) ausgeführt wird, um zu verhindern, dass das Verschlüsselungskennwort für die Root-Partition an eine beliebige Stelle verloren geht.

Ich habe keine Methoden gefunden, um die Startkonfiguration zu überprüfen , obwohl ich mehrere Tage lang Web-Tutorials / Blogs über sicheres Starten gelesen habe, einschließlich Ubuntu und PreLoader.efi der Linux Foundation, die alle erklären, wie die Überprüfung von ausführbaren Dateien einschließlich Kernelmodulen funktioniert, aber keine Hier werden die Dateien grub.cfg und (Shell-Skripte und Konfigurationsdateien in der) initrd erwähnt. Es sieht also so aus, als wäre ich der erste, der im Boot-Prozess nach einer Überprüfung von Nicht-Binärdateien fragt . Die besten Quellen, die ich je gefunden habe, sind die von Rod Smith .

Was ich noch nicht versucht habe, ist, den Quellcode von Shim oder Grub zu ändern, eine Gabel zu erstellen oder direkt dazu beizutragen. Wäre das der einzige Weg?

Jürgen
quelle
Ihr Crosspost war von gestern, ein bisschen mehr Geduld wäre angebracht und Crossposting sicherlich nicht (Übrigens, wenn Sie jedoch über dem Downarrow die Gründe für Downvotes sehen: kein Forschungsaufwand / unklar / nicht nützlich)
Anthon
@Anthon, wo ist Ihrer Meinung nach der geeignete Ort, um diese Frage zu stellen? Ich weiß es nicht, also dachte ich, hier ist ein besserer Ort als auf SuperUser. Und denkst du, ich sollte die vorherige und diese Frage löschen, bevor ich an der entsprechenden Stelle frage, um zu verhindern, dass ich wegen erneuter Cross-Postings erneut herabgestimmt werde?
Jürgen
Crossposting ist niemals in Ordnung, da Sie wissen würden, wenn Sie die Hilfe lesen. Auf dieser Website ist dies ein Grund für die Schließung (wie Sie bemerkt haben). Es ist auch etwas Geduld erforderlich. Dies ist eine Q & A-Website, keine persönliche oder sofortige Hilfeseite. Ein paar Tage Wartezeit, besonders am Wochenende, wären angebracht. Und eine weitere Beschreibung dessen, was Sie versucht haben und was nicht, wäre ebenfalls angemessen. Wenn Sie möchten, dass dies hier erneut geöffnet wird, löschen Sie das Q im Superuser, geben Sie es hier deutlich an (indem Sie Ihren Beitrag bearbeiten), und dann befindet es sich in der Warteschlange, die erneut geöffnet werden soll.
Anthon
@Anthon, danke für deine Kommentare. Die Frage in SuperUser wurde gelöscht und hier ausführlicher erläutert. Kann ich es besser machen
Jürgen
Sieht besser aus, ich stimme für die Wiedereröffnung, aber sei darauf hingewiesen, dass es mehr als nur meine Stimme braucht.
Anthon

Antworten:

0

Grub scheint die Signaturüberprüfung mit getrennten Signaturen zu unterstützen. Ich vermute, das ist deine Antwort.

Justin King-Lacroix
quelle
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. - Von der Überprüfung
Archemar
Eigentlich schon. Die ursprüngliche Frage lautete: "Wie kann ich die initrd- und die grub-Konfiguration überprüfen, möglicherweise mit einem sha256-Hash, bevor ich sie zum Booten verwende? Diese Überprüfung kann in shim, in grub oder in einem anderen Tool erfolgen, das ich möglicherweise zusätzlich verwende oder anstelle von Shim und / oder Grub. " Die Antwort lautet: "Grub scheint die Signaturüberprüfung mit getrennten Signaturen zu unterstützen." (Implizit: "... damit Sie die initrd signieren, eine getrennte Signatur generieren und von Grub überprüfen lassen können.")
Justin King-Lacroix
@ Justin King-Lacroix, danke für Ihre Antwort, aber ich kann keine getrennten Signaturen in gnu.org/software/grub/manual/grub.html finden - ist das ein Merkmal einer inoffiziellen Madengabel? Das Googeln von "Detached Signatures Grub Manual" hat nichts Bestimmtes zurückgegeben. Könnten Sie mich bitte auf diese Funktion hinweisen?
Jürgen
Leider habe ich keine manuelle Referenz; Ich fand das durch die Quelle schauen. Suchen Sie nach der Operation "Verifizieren".
Justin King-Lacroix