Denne artikkelen forklarer om sikker oppstart og hvordan den forlenges til Linux, spesifikt RHEL7. Den vil også gi noen innblikk i Linux 'Trusted kernel Boot' og implikasjoner for brukerområdeapplikasjoner.
Sikker oppstart er utviklet for å forhindre at det blir installert rotsett i minnet under oppstart ved hjelp av mekanismer som Option ROM og MBR-er, for å bli lastet inn i operativsystemet, kapre systemkontrollen og skjule seg for antiskadevare. Dette problemet har blitt større med tiden og spiller en betydelig rolle for datatap/dataskade og datatyveri. Skadelig programvare kan komme seg mellom BIOS og operativsystemlasteren. Den kan også komme mellom operativsystemlaster og operativsystem.
UEFI er den nye standarden for maskinvare-/programvaregrensesnitt for moderne serverplattformer med et stort utvalg av grensesnitt, modularitet og standard grensesnitt for IHV-er for å utvikle enhetsdrivere i UEFI som fungerer sømløst i miljøet før oppstart som er mer fleksibelt enn et eldre BIOS-miljø. UEFI-implementering på tvers av operativsystemer og plattformer fortsetter å vokse og støttes av mange av de viktigste operativsystemversjonene for klienter og servere.
UEFI-standardene er ledet av Microsoft og har identifisert en metode for å forhindre at rotsett for skadelig programvare blir installert ved hjelp av en mekanisme for innlasting og utføring av binærfiler som er uendret og kjent for plattformen. Denne mekanismen kalles sikker oppstart – se Microsoft-metoden for sikker oppstart for informasjon fra Microsoft – og på lignende måter har ulike operativsystemleverandører integrert ulike måter å oppnå sikker oppstart på.
Sikre UEFI-plattformer laster bare programvarebinærfiler, som alternativet ROM-drivere, oppstartslastere og operativsystemlastere, som er uendret og klarert av plattformen. UEFI-spesifikasjonen gir her en detaljert beskrivelse av en sikker oppstartsmekanisme.
UEFI-spesifikasjonen definerer infrastrukturen som kreves for sikker oppstart. Vi vil gi en kort innføring i terminologien som brukes i sikker oppstart, noe som er nyttig for dem som ønsker å en mer inngående forståelse av dette.
Sikker oppstart beskytter ikke systemet og dataene under oppstart. Sikker oppstart slutter å starte opp operativsystemet hvis en komponent ikke er godkjent i oppstartsprosessen, noe som forhindrer at systemer kjører skjult skadelig programvare.
Disse nøkkelordene er grunnlaget for sikker oppstart. UEFI-spesifikasjonen forteller mer om disse nøkkelordene. Disse spesifikasjonene forteller i detalj hvordan du signerer binærfilene. Se spesielt del 28.
Godkjente variabler: UEFI leverer en tjeneste som kalles godkjente variabler, noe som betyr at bare en sertifisert modul eller en autentisk kodemodul kan skrive – det vil si at bare en kodemodul som har et nøkkelsertifikat, kan skrive. Men alle kan lese disse variablene.
Platform key (PK): Platform Key etablerer et tillitsforhold mellom plattformeier og fastvare som er installert i NVM av plattformprodusenten.
KEK: Key Exchange Key etablerer tillit mellom operativsystemer og plattformens fastvare. KEK er installert på plattformen av operativsystemet og/eller tredjepartskomponenter som ønsker å kommunisere med plattformens fastvare.
DB: autorisert database med fellesnøkler og sertifikater i kodemodulen som er autorisert til å kommunisere med plattformens fastvare.
DBX: svartelistet DB. Kodemoduler som samsvarer med disse sertifikatene, vil ikke kunne starte innlastingen.
Signatur: Signaturen genereres av den private nøkkelen og hash-verdien til binærfilen som skal signeres.
Sertifikat: Authenticode-sertifikat som inneholder fellesnøkkel som samsvarer med den private nøkkelen som brukes til å signere imaget
UEFI-plattformens fastvare vil laste inn tredjeparts drivere, optionROM-er og operativsystemlastere som er signert av sertifiseringsinstansen (CA), i dette tilfellet Microsoft. Alle maskinvareleverandører kan skrive sine drivere i UEFI BIOS og få den signert av Microsoft for å kjøre på UEFI-plattformen. OEM-er installerer den offentlige delen av nøkkelen i plattformens database, og tjenesten UEFI Loader Protocol validerer signaturen til binærfilen mot den autoriserte databasen før den kan kjøres på plattformen. Denne godkjenningskjeden fortsetter fra UEFI til operativsystemlasteren og operativsystemet.
For å oppsummere kan UEFI kjøre operativsystemlastere som er signert, og som har en nøkkel som finnes i databasen. Denne nøkkelmekanismen sørger for at operativsystemlasteren eller Option ROM-ene bare kan kjøres hvis de er autorisert og ikke endret av noen av partene.
Figur 1: UEFI-plattformens fastvare