Sikker støvle

Secure Boot (fra  engelsk  -  "secure boot") er en protokol, der er en del af UEFI -specifikationen [1] . Den består i at verificere den elektroniske digitale signatur af kørende EFI-applikationer ved hjælp af asymmetrisk kryptografi med hensyn til nøgler gemt i systemets nøglelager.

Historie

I 2011 inkluderede Microsoft i kravene til certificering af computere, der kører Windows 8 , leveringsbetingelserne for sådanne systemer med Secure Boot aktiveret ved hjælp af en Microsoft-nøgle. Desuden krævede ARM-systemer (smartphones og nogle bærbare computere) manglende evne til at deaktivere Secure Boot. Dette forårsagede et stort offentligt ramaskrig og kritik over for Microsoft, da sådanne krav gjorde det meget vanskeligere, og i tilfælde af ARM-systemer, at installere andre operativsystemer end Microsoft Windows [2] [3] [4] .

Beskrivelse

Godkendte variabler

Autentificeret variabel - Variabler, der kræver godkendelse for at ændre sig. Sikker opstart involverer lagring af offentlige nøgler, signaturer og applikations-hash i autentificerede variabler gemt i ikke-flygtig hukommelse. Sådanne variabler kan overskrives på to måder [5] [6] [7] :

Anvendte variabler
  • Platformnøgle (PK) - platformejerens offentlige nøgle. Der kræves signaturer med den tilsvarende private nøgle for at ændre PK eller ændre KEK, db og dbx (beskrevet nedenfor). PK-lageret skal beskyttes mod manipulation og sletning [8] .
  • Key Exchange Key (KEK) - offentlige nøgler til operativsystemer. Signaturer med de tilsvarende private nøgler er nødvendige for at ændre signaturdatabaserne (db, dbx, beskrevet nedenfor). KEK-butikken skal beskyttes mod manipulation [8] .
  • Signaturdatabaser (db, dbx) - Databaser med signaturer og hash for betroede applikationer (db) og ikke-pålidelige applikationer (dbx).
  • Machine Owner Key (MOK) - Implementering af Secure Boot-nøglen, der er specifik for Linux OS-familien. Mange varianter af Linux understøtter Secure Boot, men det skaber problemer, når du bruger ikke-standard OS-kerner og -moduler. For at omgå dette problem blev IOC-konceptet udviklet. IOC kan bruges med en signeret Shim-bootloader til at give bruger-/systemadministratorniveau nøglestyring.

Driftsmåder

Opsætningstilstand

Overgangen til denne tilstand er mulig fra brugertilstanden ved at rydde PK.

Denne tilstand kræver ikke godkendelse for at skrive PK, KEK, db, dbx.

PK-indgangen sætter systemet i brugertilstand. Ved at skrive en enhed til den specielle variabel AuditMode (kun skrivbar i konfigurationstilstand og brugertilstand) sættes systemet i revisionstilstand.

Revisionstilstand (revisionstilstand)

Skift til denne tilstand er muligt fra opsætningstilstand eller brugertilstand ved at skrive en enhed til AuditMode-variablen. Når du ændrer tilstanden til revisionstilstand, ryddes PK.

Denne tilstand kræver ikke godkendelse for at skrive PK, KEK, db, dbx. I revisionstilstand kan uverificerede billeder startes, og information om alle stadier af billedvalidering vil blive optaget i en speciel tabel tilgængelig fra operativsystemet, som giver dig mulighed for at teste kombinationer af gemte nøgler og signaturer uden frygt for at miste systemet [9 ] .

PK-indgangen sætter systemet i udrullet tilstand.

Brugertilstand (brugertilstand)

Det er muligt at skifte til denne tilstand fra opsætningstilstanden ved PK-indtastning eller fra den implementerede tilstand ved hjælp af en platformafhængig metode (ikke specificeret i specifikationen).

Denne tilstand kræver godkendelse for at ændre nøglelagre og validerer startbilleder.

Fjernelse af PK'en sætter systemet i opsætningstilstand. Hvis du skriver 1 til AuditMode-variablen, sættes systemet i revisionstilstand. Hvis du skriver en til DeployedMode-variablen (kan kun skrives i brugertilstand), sættes systemet i udrullet tilstand.

Deployeret tilstand

Det er muligt at skifte til denne tilstand fra revisionstilstand ved at skrive PK, eller fra brugertilstand ved at skrive en til variablen DeployedMode.

Den sikreste tilstand [9] . Adskiller sig fra brugertilstand ved at indstille alle tilstandsvariabler (AuditMode, DeployedMode, SetupMode) til skrivebeskyttet tilstand.

Skift til andre tilstande (brugerdefineret eller konfigurationstilstand) er kun muligt gennem platformsspecifikke metoder eller godkendt PK-rydning [9] .

Autorisationsproces

Før du kører et ukendt UEFI-image, skal det gennemgå en godkendelsesproces.

  1. Nulstil. På dette stadium initialiseres platformen ved opstart.
  2. Initialisering af nøglelager.
  3. UEFI billedvalidering. For en vellykket godkendelse skal signaturen eller hashen af ​​billedet være indeholdt i db'en og må ikke være til stede i dbx'en.
  4. Hvis UEFI-billedet ikke har bestået validering, kan firmwaren bruge andre valideringsmetoder (spørg for eksempel en autoriseret bruger - ejeren af ​​den private nøgle, svarende til hvilken den offentlige nøgle er i KEK). Resultatet på dette trin kan være en løsning (trin 8), en afvisning (trin 6) eller en forsinkelse.
  5. I tilfælde af forsinkelse føjes signaturoplysningerne til en speciel tabel, der er tilgængelig fra operativsystemet.
  6. I tilfælde af fejl eller forsinkelse, forsøges næste opstartsmulighed (trin 3).
  7. Hvis det er løst, gemmes billedsignaturen i signaturdatabasen.
  8. Kører billedet.

Opdatering af databasen over betroede applikationer er også tilgængelig fra operativsystemet [10] .

Brugerdefinerede nøgler

Brugeren kan selvstændigt generere og installere deres egne nøgler. Generer dem selv, underskriv dem og installer dem på din computer. Den "fulde cyklus" af nøglegenerering er implementeret til både Linux- og Windows-operativsystemer.

Som regel bruges følgende kæde af transformationer i processen med nøglegenerering:

PEM => DER => ESL => AUTH

Til Windows er der specielle værktøjer fra Microsoft, og på Linux bruges OpenSSL og EfiTools-sættet af hjælpeprogrammer. Der er et problem relateret til manglen på en grænseflade til indstilling af brugerdefinerede nøgler i BIOS hos nogle producenter. Dette kræver også nogle gange et separat hjælpeprogram.

Yderligere kompleksitet skaber behov for at sikre kompatibilitet med udstyr fra Microsoft i nogle tilfælde. Kontrollen fungerer begge veje og uden Microsoft-nøgler, deres software og hardware (f.eks. GOP-drivere til eksterne videokort og PXE-drivere til eksterne netværkskort, og dermed selve kortene) vil ikke fungere. Det vil sige, at du på et vist niveau skal have tillid til MS under alle omstændigheder.

Brugeren bliver nødt til at tilføje nøglen fra Microsoft til db eller KEK, hvilket introducerer yderligere sikkerhedsrisici.

Der kan være flere KEK og db på én computer. På den måde kan der dannes flere tillidsgrene. Eller omvendt, en db kan underskrives af flere KEC'er (selvom dette ikke er påkrævet)

Udvikling af mekanismen

HP Sure Start - en løsning fra Hewlett-Packard, er faktisk en indbygget hardware og software SDZ. Implementerer funktionen Secure Boot-nøglebeskyttelse. Secure Boot i sin nuværende form tilbydes af Microsoft som en minimumssikkerhedsstandard til beskyttelse mod rootkits. Samtidig udvikler nogle producenter deres egne løsninger, der giver betroet boot i forbindelse med en løsning fra Microsoft, et eksempel på en sådan løsning er HP Sure Start [11] .

Fordele og ulemper

Fordele

  • Malwarebeskyttelse

Når rootkits forstyrrer kritiske komponenter i operativsystemet, bliver signaturerne for de tilsvarende komponenter ugyldige. Et sådant operativsystem vil simpelthen ikke blive indlæst [12] .

  • Lokale sikkerhedspolitikker

Begræns eventuelt listen over mulige operativsystemer til at køre, dette kan gøres ved at indtaste de relevante signaturer i signaturdatabasen [12] .

Ulemper

  • Valg af udstyr

Enhedsdrivere, der kræver support ved systemstartstadiet, skal have en signatur, der passerer korrekt verifikation på alle platforme, hvor sådanne enheder kan bruges. For at gøre dette skal alle producenter af sådant udstyr være enige med alle producenter af platforme om at tilføje deres nøgler til systembutikkerne. Eller sådanne drivere skal signeres med en nøgle, der allerede er inkluderet i de fleste platforme, men så bliver producenterne nødt til at stole helt på ejeren af ​​en sådan nøgle (f.eks. underskriver Microsoft shim-bootloaderen [13] [14] ) . Det er også muligt at oprette signaturer i en kæde, der ender med en nøgle indeholdt i de fleste platforme, men selv denne tilgang har en ulempe - når den tilsvarende nøgle fjernes fra nøglelageret (for eksempel for at forbyde indlæsning af et bestemt operativsystem) , bliver driversignaturer også ugyldige [12] .

  • Valg af operativsystem

Systemleverandører er ikke forpligtet til at implementere muligheden for at deaktivere Secure Boot. Proceduren for tilføjelse af tredjepartsnøgler til boksen skal være utilgængelig for ondsindet software, hvilket gør denne procedure vanskeligere for brugerne. Disse to faktorer tilsammen gør det meget vanskeligere at bruge usignerede operativsystemer, såvel som dem, der er signeret med en nøgle, der er ukendt for platformen [12] .

  • Implementeringssårbarheder

Specifikke firmwareimplementeringer af enheder fra forskellige producenter kan indeholde sårbarheder, hvis udnyttelse kan føre til omgåelse af Secure Boot-mekanismen eller dens udjævning [15] [16] .

  • Arbejder med SDZ

Secure Boot-mekanismen kan forhindre pålidelige opstartsværktøjer i at fungere. Da SDZ erstatter OS bootloader med sin egen bootloader, som generelt ikke har en signatur, kan Secure Boot blokere SDZ bootloader og derfor forstyrre driften af ​​SDZ som helhed.

Der er to løsninger på dette problem.

Den første  er at deaktivere Secure Boot på computere med SDZ installeret. Et eksempel på en sådan fremgangsmåde er SDZ SafeNode System Loader [17] .

Den anden  er leveringen af ​​et sæt af autentificerede variabler sammen med SDZ, der bekræfter gyldigheden af ​​loaderens signatur. Efter indstilling af variablerne vil SDZ fungere uden begrænsninger fra Secure Boot. Et eksempel på denne tilgang er Dallas Lock SDZ. I dette tilfælde leveres værktøjet keytool.efi [18] også med tasterne .

  • UEFI BIOS fra nogle producenter har en dårligt udviklet grænseflade til styring af Secure Boot

Se også

Noter

  1. UEFI-specifikation .
  2. Vil din computers "Secure Boot" vise sig at være "Restricted Boot"?  (engelsk) . Free Software Foundation . Dato for adgang: 23. december 2016. Arkiveret fra originalen 28. november 2013.
  3. ↑ Windows 8 Sikker Boot : Kontroversen fortsætter  . PC verden. Hentet 23. december 2016. Arkiveret fra originalen 31. marts 2017.
  4. Blokerer Microsoft Linux-opstart på ARM-hardware?  (engelsk) . computerverden UK. Dato for adgang: 23. december 2016. Arkiveret fra originalen 5. april 2016.
  5. UEFI-specifikation , s. 1817.
  6. UEFI-specifikation , s. 1818.
  7. UEFI-specifikation , s. 1828.
  8. 1 2 UEFI-specifikation , s. 1819.
  9. 1 2 3 UEFI-specifikation , s. 1816.
  10. UEFI-specifikation , s. 1803-1834.
  11. Teknisk hvidbog HP Sure  Start . Hentet 6. april 2022. Arkiveret fra originalen 19. november 2020.
  12. 1 2 3 4 Jeremy Kerr, Matthew Garrett, James Bottomley. UEFI Secure Boot Impact on Linux  (engelsk) (PDF). Hentet 23. december 2016. Arkiveret fra originalen 19. juli 2017.
  13. mjg59 | Secure Boot bootloader til distributioner tilgængelig nu . Hentet 25. oktober 2019. Arkiveret fra originalen 25. oktober 2019.
  14. Sikre Windows 10-startprocessen - Microsoft 365 Security | Microsoft docs . Hentet 25. oktober 2019. Arkiveret fra originalen 25. oktober 2019.
  15. Corey Kallenberg, Sam Cornwell, Xeno Kovah, John Butterworth. Opsætning for fejl: Besejre sikker opstart  (engelsk) (PDF). MITER Corporation. Hentet 23. december 2016. Arkiveret fra originalen 23. december 2016.
  16. Lucian Constantine. Forskere demoudnyttelser, der omgår Windows 8 Secure  Boot . IT verden. Dato for adgang: 23. december 2016. Arkiveret fra originalen 24. december 2016.
  17. Administrator's Guide to SDZ SafeNode System Loader . Hentet 6. april 2022. Arkiveret fra originalen 14. august 2020.
  18. Dallas Lock SDZ betjeningsvejledning . Hentet 6. april 2022. Arkiveret fra originalen 2. april 2022.

Litteratur