Using digital signatures in GRUB
9.2 Använda digitala signaturer i GRUB
GRUB:s core.img kan valfritt tillhandahålla kontroll att alla filer som därefter läses från disk täcks av en giltig digital signatur. Detta dokument täcker inte hur man säkerställer att din plattforms firmware (t.ex. Coreboot) validerar core.img.
Om miljövariabeln check_signatures (se check_signatures) är satt till enforce, kommer varje försök av GRUB:s core.img att ladda en annan fil foo implicit att anropa verify_detached foo foo.sig (se verify_detached). foo.sig måste innehålla en giltig digital signatur över innehållet i foo, som kan verifieras med en offentlig nyckel som för närvarande är betrodd av GRUB (se list_trusted, se trust och se distrust). Om valideringen misslyckas kan filen foo inte öppnas. Detta fel kan stoppa eller på annat sätt påverka uppstartsprocessen.
En initial betrodd offentlig nyckel kan bäddas in i GRUB:s core.img med alternativet --pubkey till grub-install (se Använda grub-install).
GRUB använder GPG-stil separata signaturer (vilket innebär att en fil foo.sig kommer att skapas när filen foo signeras), och stödjer för närvarande DSA- och RSA-signeringsalgoritmerna. En signeringsnyckel kan genereras på följande sätt:
gpg --gen-key
En enskild fil kan signeras så här:
gpg --detach-sign /path/to/file
För att lyckas validera alla GRUB:s delkomponenter och den laddade OS-kärnan måste de alla vara signerade. Ett sätt att uppnå detta är följande (efter att redan ha skapat den önskade filen grub.cfg, t.ex. genom att köra grub-mkconfig (se Använda grub-mkconfig):
# Redigera /dev/shm/passphrase.txt för att innehålla din signeringsnyckels lösenfras for i in `find /boot -name "*.cfg" -or -name "*.lst" -or \ -name "*.mod" -or -name "vmlinuz*" -or -name "initrd*" -or \ -name "grubenv"`; do gpg --batch --detach-sign --passphrase-fd 0 $i < \ /dev/shm/passphrase.txt done shred /dev/shm/passphrase.txt
Se även: check_signatures, verify_detached, trust, list_trusted, distrust, load_env, save_env.
Observera att signaturkontroll styrs internt genom att sätta miljövariabeln check_signatures till enforce. Om en eller flera --pubkey-alternativ skickas till grub-mkimage definieras implicit check_signatures till enforce i core.img innan några konfigurationsfiler bearbetas.
Observera att signaturkontroll inte förhindrar en angripare med (seriell, fysisk, ...) konsolåtkomst från att manuellt hoppa till GRUB-konsolen och köra:
set check_signatures=no
För att förhindra detta är lösenordsskydd (se Autentisering och auktorisation) nödvändigt. Observera att även med lösenordsskydd i GRUB kan GRUB självt inte hindra någon med fysisk åtkomst till maskinen från att ändra maskinens firmware (t.ex. Coreboot eller BIOS) konfiguration för att få maskinen att starta från en annan (angriparkontrollerad) enhet. GRUB är i bästa fall bara en länk i en säker uppstartskedja.
Sidslut
Orginalhemsidan på Engelska :https://www.gnu.org/software/grub/manual/grub/html_node/Using-digital-signatures.html#Using-digital-signatures
Det här är en maskinöversättning av GNU-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webserver.