Zabezpečené spouštění
Zabezpečené spouštění je funkce rozhraní UEFI (Unified Extensible Firmware Interface), která před načtením vyžaduje ověření veškerého firmwaru a softwarových komponent nízké úrovně. Během spouštění kontroluje zabezpečené spouštění rozhraní UEFI podpis každého spouštěcího softwaru, včetně ovladačů firmwaru UEFI (označovaných také jako možnosti ROM), aplikací EFI (Extensible Firmware Interface) a ovladačů operačního systému a binárních souborů. Pokud jsou podpisy platné nebo důvěryhodné výrobcem OEM (Original Equipment Manufacturer), počítač se spustí a firmware řídí operační systém.
Komponenty a proces
Zabezpečené spouštění závisí na těchto důležitých komponentách:
- Klíč platformy (PK) – Vytvoří vztah důvěryhodnosti mezi vlastníkem platformy (Microsoft) a firmwarem. Veřejná polovina je PKpub a soukromá polovina je PKpriv.
- Databáze klíčů pro registraci klíčů (KEK) – Vytvoří vztah důvěryhodnosti mezi operačním systémem a firmwarem platformy. Veřejná polovina je KEKpub a soukromá polovina je KEKpriv.
- Podpisová databáze (db) – uchovává hodnoty hash pro důvěryhodné podepisující osoby (veřejné klíče a certifikáty) modulů firmwaru a softwarového kódu, které mají oprávnění k interakci s firmwarem platformy.
- Odvolaná databáze podpisů (dbx) – obsahuje odvolané moduly kódu, které jsou identifikované jako škodlivé, zranitelné, ohrožené nebo nedůvěryhodné. Pokud je hodnota hash v databázi podpisů a odvolaná databáze podpisů, převezme odvolaná databáze podpisů předchůdci.
Následující obrázek a proces vysvětlují, jak se tyto komponenty aktualizují:
Výrobce OEM ukládá hodnoty hash zabezpečeného spouštění na nevolatilní paměti RAM (NV-RAM) počítače v době výroby.
- Databáze podpisů se naplní podepisujícími faktory nebo hodnotami hash obrázků aplikací UEFI, zavaděči operačního systému (jako je zavaděč operačního systému nebo Správce spouštění) a ovladači rozhraní UEFI, které jsou důvěryhodné.
- Odvolané podpisy dbx se naplní hodnotou hash modulů, které už nejsou důvěryhodné.
- Databáze klíče pro registraci klíčů (KEK) se naplní podpisovými klíči, které je možné použít k aktualizaci databáze podpisů a odvolávané databáze podpisů. Databáze je možné upravovat prostřednictvím aktualizací podepsaných pomocí správného klíče nebo prostřednictvím aktualizací fyzicky přítomným autorizovaným uživatelem pomocí nabídek firmwaru.
- Po přidání databáze, dbx a KEK a dokončení konečného ověření a testování firmwaru zamkne OEM firmware před úpravami a vygeneruje klíč platformy (PK). Pk lze použít k podepisování aktualizací KEK nebo k vypnutí zabezpečeného spouštění.
Během každé fáze procesu spouštění se počítají hodnoty hash firmwaru, bootloaderu, operačního systému, ovladačů jádra a dalších artefaktů spouštěcího řetězce a porovnávají se s přijatelnými hodnotami. Firmware a software, které jsou zjištěny jako nedůvěryhodné, se nesmí načíst. Injektáž malwaru na nízké úrovni nebo útoky před restartováním malwaru je proto možné zablokovat.
Zabezpečené spouštění ve flotile Azure
V současnosti každý počítač, který je nasazený a nasazený do výpočetního parku Azure, aby hostoval úlohy zákazníků, pochází z výrobní podlahy s povoleným zabezpečeným spouštěním. Cílené nástroje a procesy jsou zavedeny v každé fázi v kanálu sestavení hardwaru a integrace, aby se zajistilo, že povolení zabezpečeného spouštění se nevrátí omylem nebo škodlivým záměrem.
Ověření správnosti db a dbx digests zajišťuje:
- Spouštěcí zavaděč je k dispozici v jedné z položek databáze.
- Podpis zavaděče bootloaderu je platný.
- Spouštění hostitelů s důvěryhodným softwarem
Ověřením podpisů KEKpub a PKpub můžeme potvrdit, že pouze důvěryhodné strany mají oprávnění upravovat definice softwaru, který je považován za důvěryhodný. A konečně tím, že zajistíme, že je zabezpečené spouštění aktivní, můžeme ověřit, že se tyto definice vynucují.
Další kroky
Další informace o tom, co děláme pro zajištění integrity a zabezpečení platformy, najdete tady: