Artikkelissa on tietoja suojatusta käynnistyksestä ja sen sovelluksista Linuxissa sekä erityisesti RHEL 7 -käyttöjärjestelmässä. Lisäksi artikkelissa on tietoja Linuxin niin kutsutusta luotetun ytimen käynnistyksestä ja sen merkityksestä käyttäjätilan sovelluksille.
Suojatun käynnistyksen tarkoituksena on estää tilanne, jossa käynnistyksen aikana asentuu esimerkiksi valinnaisten ROMien tai pääkäynnistystietueiden kautta piilohallintaohjelmia, jotka kaappaavat järjestelmän hallinnan ja pysyvät piilossa haittaohjelmien torjuntaohjelmistoilta. Tämä ongelma on yleistynyt, ja se on merkittävä tietojen menetyksen/vioittumisen sekä tietovarkauksien aiheuttaja. Haittaohjelma voi latautua BIOSin ja käyttöjärjestelmän käynnistysohjelman välissä. Se voi latautua myös käynnistysohjelman ja käyttöjärjestelmän välissä.
UEFI on modernien palvelinympäristöjen uusi laitteisto-/ohjelmistokäyttöliittymästandardi. Se tarjoaa monipuolisia modulaarisia ja tavallisia käyttöliittymiä, joihin riippumattomat laitteistotoimittajat voivat kehittää laiteohjaimia. Ohjaimet toimivat saumattomasti UEFIn esikäynnistysympäristössä, joka on perinteistä BIOS-ympäristöä joustavampi. UEFIn käyttö yleistyy jatkuvasti eri käyttöjärjestelmissä ja ympäristöissä, ja useat työasemien ja palvelimien merkittävimmät käyttöjärjestelmäversiot tukevat sitä.
Microsoft kehitti UEFI-standardissa tavan estää piilohallintaohjelmia asentumasta käynnistyksen aikana käyttämällä ainoastaan muokkaamattomia ja ympäristön tunnistamia binaaritiedostoja. Mekanismia kutsutaan suojatuksi käynnistykseksi. Katso lisätietoja Microsoftin suojatusta käynnistyksestä. Muut käyttöjärjestelmien valmistajat ovat kehittäneet omat tapansa soveltaa suojattua käynnistystä.
Suojatut UEFI-ympäristöt lataavat ainoastaan muokkaamattomia ja luotettuja ohjelmistojen binaaritiedostoja, kuten valinnaisia ROM-ohjaimia, käynnistysohjelmia ja käyttöjärjestelmän käynnistysohjelmia. Lisätietoja suojatun käynnistyksen mekanismista on UEFI-standardissa.
Suojatun käynnistyksen edellyttämä infrastruktuuri on määritelty UEFI-standardissa. Seuraavassa on lyhyt esittely suojatun käynnistyksen sanastosta niille, jotka haluavat ymmärtää toimintoa paremmin.
Suojattu käynnistys ei suojaa järjestelmää tai sen tietoja, kun se on käynnissä. Suojattu käynnistys keskeyttää käyttöjärjestelmän käynnistymisen, jos jotain käynnistysprosessin osaa ei pystytä todentamaan. Näin estetään piilotettujen haittaohjelmien käynnistyminen.
Seuraavassa on joitakin suojatun käynnistyksen avaintermejä. Lisätietoja termeistä on UEFI-standardissa. Standardissa kuvataan yksityiskohtaisesti, miten binaaritiedostot allekirjoitetaan. Katso erityisesti osiota 28.
Authenticated Variables: UEFIssa on Authenticated Variables- eli todennettujen muuttujien palvelu, mikä tarkoittaa, että ainoastaan varmennettu moduuli tai todennettu koodin moduuli (eli moduuli, jolla on avainvarmenne) voi kirjoittaa järjestelmään. Muuttujia voi kuitenkin lukea vapaasti.
Platform Key (PK): Platform Key -avain luo luottamussuhteen ympäristön omistajan ja valmistajan siihen asentaman laiteohjelmiston välille.
KEK: Key Exchange Key -avain luo luottamussuhteen käyttöjärjestelmän ja ympäristön laiteohjelmiston välille. KEK-avaimia asennetaan ympäristöön käyttöjärjestelmän ja/tai sellaisten kolmannen osapuolen osien toimesta, jotka haluavat viestiä ympäristön laiteohjelmiston kanssa.
DB: vahvistettu tietokanta, jossa säilytetään sellaisten koodin moduulien julkisia avaimia ja varmenteita, jotka on hyväksytty viestimään ympäristön laiteohjelmiston kanssa.
DBX: kiellettyjen varmenteiden tietokanta. Järjestelmä estää näitä varmenteita vastaavia koodin moduuleita latautumasta.
Signature: allekirjoitus, joka muodostuu yksityisestä avaimesta sekä allekirjoitettavan binaaritiedoston hajautusarvosta.
Certificate: Authenticode-varmenne, joka sisältää allekirjoitukseen käytettävää yksityistä avainta vastaavan julkisen avaimen.
UEFI-ympäristön laiteohjelmisto lataa ainoastaan sellaiset kolmannen osapuolen ohjaimet, valinnaiset ROMit ja käyttöjärjestelmän käynnistysohjelmat, jotka varmenteen tarjoaja eli Microsoft on allekirjoittanut. Mikä tahansa laitevalmistaja voi valmistaa UEFI BIOS -ohjaimia ja hankkia niille Microsoftin allekirjoituksen, jotta ne voidaan suorittaa UEFI-ympäristössä. Alkuperäiset laitevalmistajat asentavat ympäristön tietokantaan julkisen avaimen, ja UEFIn käynnistysprotokollapalvelu tarkistaa allekirjoituksen vahvistetusta tietokannasta ennen binaaritiedoston suorittamista. Tämä todennusketju jatkuu UEFIsta käyttöjärjestelmän käynnistysohjelmaan ja lopulta käyttöjärjestelmään.
Yhteenvetona voidaan todeta, että UEFIssa voi suorittaa ainoastaan sellaisia käyttöjärjestelmän käynnistysohjelmia, jotka on allekirjoitettu ja joiden avain löytyy vahvistetusta tietokannasta. Avainmekanismi auttaa varmistamaan, että käyttöjärjestelmän käynnistysohjelmat ja valinnaiset ROMit saavat käynnistyä ainoastaan, jos ne ovat todennettuja ja muokkaamattomia.
Kuva 1: UEFI-ympäristön laiteohjelmisto