I den här artikeln beskrivs säker start och hur det utökas till Linux, specifikt RHEL7. Den innehåller även information om Linux ”betrodda kärnstart” och följder för användarutrymmesprogram.
Säker start är utformat för att förhindra spökprogram. Spökprogram installeras i minnet vid start genom att funktioner som tillvals-ROM och MBR laddas i operativsystemet och kapar systemkontrollen samtidigt som programmet är dolt för skydd mot skadlig kod. Problemet har ökat över tid och har stor betydelse vid förlust/skador av data och stöld. Skadliga program kan ta sig in mellan BIOS och OS-inläsning. Det kan även ta sig innan mellan OS-inläsning och OS.
UEFI är den nya standarden för maskin-/programvarugränssnitt för moderna serverplattformar. UEFI har en rik uppsättning användargränssnitt, modulfunktioner och standardgränssnitt så att fristående hårdvaruleverantörer kan utveckla drivrutiner i UEFI som fungerar sömlöst i en förstartsmiljö som är mer flexibel än en äldre BIOS-miljö. Användningen av UEFI i operativsystem och plattformar fortsätter att växa och många av de större klient- och serverversionerna för operativsystem har stöd för UEFI.
Standardiseringsorganisationen för UEFI, som leds av Microsoft, har hittat ett sätt att förhindra att skadliga spökprogram installeras vid start genom en funktion för att ladda och exekvera binärfiler som är omodifierade och kända för plattformen. Funktionen kallas säker start. Gå till Microsofts metod för säker start för att läsa Microsofts information och olika OS-leverantörers införlivade metoder för att uppnå säker start.
Skyddade UEFI-plattformar laddar endast binära programvarufiler, t.ex. drivrutinen för tillvals-ROM, startinläsare och OS-inläsare, som är oförändrade och betrodda av plattformen. I UEFI-specifikation beskrivs funktionen för säker start i detalj.
I UEFI-specifikationen definieras infrastrukturen som krävs för säker start. Vi ger en kort förklaring av terminologin inom säker start för de som vill ha en bättre förståelse av UEFI.
Säker start skyddar inte systemet medan det körs eller dess data. Säker start slutar att starta till operativsystemet om någon komponent inte autentiseras i startprocessen, vilket förhindrar system från att köra dold skadlig programvara.
Det här är nyckelorden för säker start. UEFI-specifikationen innehåller mer information om nyckelorden. Specifikationer anger detaljerat för hur binärfiler signeras, särskilt i avsnitt 28.
Autentiserade variabler: UEFI tillhandahåller en tjänst som kallas autentiserade variabler, vilket innebär att endast en certifierad modul eller licensierad kodmodul kan skriva. Det vill säga att endast en kodmodul med nyckelcertifikat kan skriva. Men alla parter kan läsa variablerna.
Plattformsnyckel (PK): Plattformsnyckeln upprättar en förtroenderelation mellan plattformsägaren och fast programvara som är installerad i NVM av plattformstillverkaren.
KEK (Key Exchange Key): KEK upprättar förtroende mellan operativsystem och plattformens fasta programvara. KEK:er är installerade på plattformen av operativsystemet och/eller komponenter från tredje part som vill kommunicera med plattformens fasta programvara.
DB: Behörig databas som innehåller de offentliga nycklarna och certifikaten för kodmodulen som är behörig att interagera med plattformens fasta programvara.
DBX: Svartlistad databas. Kodmoduler som stämmer överens med dessa certifikat tillåts inte att läsas in.
Signatur: En signatur genereras av den privata nyckeln och hashen för binärfilen som ska signeras.
Certifikat: Autentiseringskodscertifikatet som innehåller den offentliga nyckeln som motsvarar den privata nyckeln som används för att signera bilden.
Plattformens fasta UEFI-programvaran laddar drivrutiner, tillvals-ROM och OS-inläsare som är signerade av certifikatutfärdaren, i det här fallet Microsoft. Alla maskinvaruleverantörer kan skriva drivrutiner i UEFI BIOS och få det signerat av Microsoft för att köras på UEFI-plattformen. OEM installerar den offentliga delen av nyckeln i plattformens databas och tjänsten UEFI-inläsningsprotokoll validerar signaturen för binärfilen mot den auktoriserade databasen innan den tillåts att köras på plattformen. Den här autentiseringskedjan fortsätter från UEFI till OS-inläsaren och operativsystemet.
Sammanfattningsvis tillåter UEFI körning av OS-inläsare som är signerade och vars nyckel finns i databasen. Nyckelfunktionen säkerställer att OS-inläsare eller tillvals-ROM endast tillåts att köras om de är auktoriserade och inte modifierade av någon part.
Bild 1: UEFI-plattformens fasta programvara