Secure Boot

Beveiligd opstarten is een functie van de Unified Extensible Firmware Interface (UEFI) waarvoor alle firmware- en softwareonderdelen op laag niveau moeten worden geverifieerd voordat ze worden geladen. Tijdens het opstarten controleert UEFI Secure Boot de handtekening van elk onderdeel van de opstartsoftware, inclusief UEFI-firmwarestuurprogramma's (ook wel bekend als optie-ROM's), EFI-toepassingen (Extensible Firmware Interface) en de stuurprogramma's en binaire bestanden van het besturingssysteem. Als de handtekeningen geldig zijn of worden vertrouwd door de OEM (Original Equipment Manufacturer), start de machine op en geeft de firmware controle over het besturingssysteem.

Onderdelen en proces

Beveiligd opstarten is afhankelijk van deze essentiële onderdelen:

  • Platformsleutel (PK): hiermee wordt een vertrouwensrelatie tot stand gebracht tussen de eigenaar van het platform (Microsoft) en de firmware. De openbare helft is PKpub en de privé helft is PKpriv.
  • Key Enrollment Key Database (KEK): hiermee wordt een vertrouwensrelatie tot stand gebracht tussen het besturingssysteem en de platformfirmware. De openbare helft is KEKpub en de privé helft is KEKpriv.
  • Handtekeningdatabase (db): bevat de digests voor vertrouwde ondertekenaars (openbare sleutels en certificaten) van de firmware- en softwarecodemodules die zijn gemachtigd om te communiceren met platformfirmware.
  • Database met ingetrokken handtekeningen (dbx): bevat ingetrokken samenvattingen van codemodules die zijn geïdentificeerd als schadelijk, kwetsbaar, aangetast of niet-vertrouwd. Als een hash zich in de handtekeningdatabase en de ingetrokken handtekeningendatabase bevindt, krijgt de database met ingetrokken handtekeningen een precedent.

In de volgende afbeelding en het volgende proces wordt uitgelegd hoe deze onderdelen worden bijgewerkt:

Diagram met secure boot-onderdelen.

De OEM slaat de Secure Boot-digests op in het niet-volatile RAM -geheugen (NV-RAM) van de machine op het moment van productie.

  1. De handtekeningdatabase (db) wordt gevuld met de ondertekenaars of installatiekopie-hashes van UEFI-toepassingen, besturingssysteemladers (zoals het Microsoft Operating System Loader of Boot Manager) en UEFI-stuurprogramma's die worden vertrouwd.
  2. De database met ingetrokken handtekeningen (dbx) wordt gevuld met samenvattingen van modules die niet meer worden vertrouwd.
  3. De KEK-database (Key Enrollment Key) is gevuld met ondertekeningssleutels die kunnen worden gebruikt om de handtekeningdatabase en de database met ingetrokken handtekeningen bij te werken. De databases kunnen worden bewerkt via updates die zijn ondertekend met de juiste sleutel of via updates door een fysiek aanwezige geautoriseerde gebruiker met behulp van firmwaremenu's.
  4. Nadat de databases db, dbx en KEK zijn toegevoegd en de definitieve firmwarevalidatie en -tests zijn voltooid, vergrendelt de OEM de firmware voor bewerking en genereert een platformsleutel (PK). De PK kan worden gebruikt om updates voor de KEK te ondertekenen of om Beveiligd opstarten uit te schakelen.

Tijdens elke fase in het opstartproces worden de digests van firmware, bootloader, besturingssysteem, kernelstuurprogramma's en andere artefacten van de opstartketen berekend en vergeleken met acceptabele waarden. Firmware en software die niet-vertrouwd zijn, mogen niet worden geladen. Hierdoor kunnen malware-injecties op laag niveau of pre-boot malwareaanvallen worden geblokkeerd.

Beveiligd opstarten op de Azure-vloot

Tegenwoordig is elke machine die wordt ge onboardd en geïmplementeerd in de Azure-rekenvloot om workloads van klanten te hosten, afkomstig van de fabrieksvloeren waarop Beveiligd opstarten is ingeschakeld. Gerichte hulpprogramma's en processen zijn aanwezig in elke fase van de hardware-buildout en integratiepijplijn om ervoor te zorgen dat de activering van Beveiligd opstarten niet per ongeluk of door kwaadwillende bedoelingen wordt teruggedraaid.

Als u valideert dat de db- en dbx-digests juist zijn, zorgt u voor het volgende:

  • Bootloader is aanwezig in een van de db-vermeldingen
  • De handtekening van bootloader is geldig
  • Host start op met vertrouwde software

Door de handtekeningen van KEKpub en PKpub te valideren, kunnen we bevestigen dat alleen vertrouwde partijen toestemming hebben om de definities te wijzigen van welke software als vertrouwd wordt beschouwd. Ten slotte kunnen we valideren dat deze definities worden afgedwongen door ervoor te zorgen dat beveiligd opstarten actief is.

Volgende stappen

Zie voor meer informatie over wat we doen om platformintegriteit en -beveiliging te stimuleren: