bootloader

Secure Boot Linux

Secure Boot Linux

Linux: Vad är Secure Boot?

I början kör en dator ett specifikt program för att upptäcka och initialisera maskinvarukomponenterna. Traditionellt använder IBM-kompatibla datorer Basic Input Output System (BIOS). Däremot använder Mac-datorer OpenFirmware, Android har bara en startladdare, och en Raspberry Pi startar från en firmware som finns i systemet på ett chip (SoC). Detta första steg inkluderar hårdvarukontroller samt att söka efter tillgängliga operativsystem på lagringsmedia som ingår i datorn som en hårddisk, CDROM / DVD eller ett SD-kort, eller ansluten till det via nätverk (Network File System (NFS) , PXE Boot).

Den faktiska sökordningen beror på datorns BIOS-inställningar. Figur 2 visar en lista över tillgängliga enheter att starta från.

I slutet visas en lista över tillgängliga operativsystem med specifika parametrar (kallas "tillgängliga startalternativ") i en meny där du väljer önskat operativsystem att starta.

Sedan 2012 Secure Boot används. Denna artikel kommer att förklara vad det är, vad är avsikten bakom det och hur det fungerar. Vidare kommer vi att svara på frågan om Secure Boot behövs för Linux-baserade maskiner och hur Linux-distributioner hanterar detta fall.


Vad är Secure Boot?

Secure Boot handlar om förtroende. Den allmänna idén bakom det är att starta maskinen på ett säkert sätt för att förhindra att datorn körs med skadlig kod redan från början. I allmänhet är en ren start med ett tillförlitligt system ett tillvägagångssätt som får starkt stöd.

Secure Boot är en del av Unified Extensible Firmware Interface (UEFI) - ett centralt gränssnitt mellan firmware, datorns enskilda komponenter och operativsystem [3]. Under en period av cirka fem år utvecklades den av Intel och Microsoft som en ersättning för BIOS. År 2012, version 2.3.1 av UEFI introducerades med Microsoft Windows 8. Microsoft gjorde det obligatoriskt för datortillverkare att implementera UEFI om de skulle vilja få en Windows 8-certifiering för sina nybyggda maskiner [15].

Men varför heter Secure Boot Secure Boot? Vad gör det till ett säkert startalternativ? Secure Boot tillåter bara start från tidigare tilldelade startladdare och är därför avsedd att förhindra skadlig programvara eller andra oönskade program från att starta. En traditionell BIOS skulle starta vilken programvara som helst. Det skulle till och med tillåta skadlig kod, till exempel en rootkit, att ersätta din startladdare. Rootsatsen skulle då kunna ladda ditt operativsystem och förbli helt osynligt och omöjligt att upptäcka på ditt system. Med Secure Boot kontrollerar systemets firmware först om systemstartladdaren är signerad med en kryptografisk nyckel. Den kryptografiska nyckeln är en nyckel som har auktoriserats av en databas som finns i firmware. Endast om nyckeln känns igen låter systemet starta. En sådan giltig signatur måste följa en specifikation från Microsoft UEFI Certificate Authority (CA).


Olika perspektiv

Vid första anblicken låter detta ganska bra, men det finns alltid två sidor av ett mynt. Som vanligt förekommer fördelar och nackdelar. Pressrecensioner berömmer eller demoniserar Secure Boot beroende på vem som skriver recensionen.

Tänk först på att auktoriteten över de kryptografiska nycklarna ligger i händerna på en enda global spelare - Microsoft. Att ge miljontals maskiner ström till ett enda företag är aldrig en bra idé. På det sättet säkerställer Microsoft fullständig kontroll över din maskin. Med ett enda beslut kan Microsoft blockera hela marknaden med ett enda slag och hindra både sina konkurrenter och dig som kund. E.g. om du vill installera hårdvara från en annan tillverkare i ett senare skede, måste du se till att nyckeln till den nya komponenten har lagrats i databassystemet. Lämna dig med begränsad flexibilitet och val - speciellt om du är en utvecklare.

För det andra är inte bara dina hårdvaruval begränsade utan också valet i ditt operativsystem är tänkt att vara begränsat på grund av UEFI-teknik som introducerats av Windows. Det betyder att det gör livet svårt för Linux-samhället. Innan den används på UEFI-baserad hårdvara måste Linux-startladdare som GRUB först certifieras och därför saktar det ner ganska snabb utveckling eftersom Open Source-communityn är känd för. Ingen vet vad som händer om den centrala valideraren gör ett misstag under valideringen eller blockerar utgivningen av en uppdaterad programvara.

För det tredje, vad betyder termen skadlig kod idag och imorgon? Inkluderar det operativsystem från konkurrenter [5] eller är de uteslutna? Valideringsprocessen går bakom gardinerna och ingen kan bevisa det.

För det fjärde finns det reservationer angående säkerhet. Enligt den aktuella utvecklingen är kryptografiska nycklarnas längd relativt kort. Secure Boot tillåter endast X509-certifikat och RSA-nycklar med en fast längd på 2048 bitar [16]. I en nära framtid, med användning av massparallellisering och ytterligare datorkraft baserad på virtualisering, förväntas denna säkerhetsnivå brytas. Idag rekommenderas kryptografiska nycklar med en längd på 4096 bitar.

För det femte ser det ut som om programvara som både erbjuds av en stor leverantör och certifierad är säker och utan fel. Som historien visar vet vi alla att detta inte är sant, programvara innehåller alltid buggar. En certifiering dämpar dig bara till falsk känsla av säkerhet.


Lösningar för öppen källkod

Men där det finns ett problem finns det också en lösning. Microsoft erbjuder generöst möjligheten för Linux-distributörer att komma åt sin Microsoft Sysdev-portal för att få sina startladdare signerade [17]. Denna tjänst kommer ändå med en prislapp.

Linux-distributioner har endast en "shim" [11] signerad på Microsoft-portalen. Shim är en liten startladdare som startar Linux-distributionens huvud GRUB-startladdare. Microsoft kontrollerar bara den signerade shim och därefter startar din Linux-distribution normalt. Detta hjälper till att underhålla Linux-systemet som vanligt.

Som rapporterats från olika källor fungerar (U) EFI bra med Fedora / RedHat, Ubuntu, Arch Linux och Linux Mint. För Debian GNU / Linux finns inget officiellt stöd för Secure Boot [9]. Hur som helst, det finns ett intressant blogginlägg om hur man ställer in detta [18], samt en beskrivning i Debian Wiki [14].

Alternativ till UEFI

UEFI är inte den enda efterföljaren till PC BIOS - det finns alternativ. Du kan titta närmare på OpenBIOS [4], libreboot [7], Open Firmware [8,9] och coreboot [10]. För den här artikeln testade vi inte dem, men det är bra att veta att alternativa implementeringar finns och fungerar smidigt.


Slutsats

Som nämnts tidigare är nyckelfrågan förtroende. När det gäller datorer fråga dig själv vilka delar av ditt system du litar på - hårdvarukomponenterna (firmware, chips, TPM) och / eller mjukvarukomponenterna (startladdare, operativsystem, programvara som används). Du kan inte felsöka hela systemet. Det kan hjälpa till att veta att ditt operativsystem inte strider mot dina intressen och att du får de saker som du har köpt systemet till - på ett säkert sätt utan att styras av en monopolist.


Länkar och referenser

Bekräftelser

Frank Hofmann och Mandy Neumeyer är medförfattare till artikeln.  Författarna vill tacka Justin Kelly för hans hjälp och kritiska kommentarer när han skrev den här artikeln.

SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...
0 A.D. Handledning
Av de många strategispelen där ute, 0 A.D. lyckas framstå som en omfattande titel och ett mycket djupt, taktiskt spel trots att det är öppen källkod. ...