Oppstartsprosess for Macer med Apple-chip
Når en Mac med Apple-chip slås på, utfører den en oppstartsprosess som er svært lik oppstartsprosessen på iPhone og iPad.
Brikken kjører kode fra oppstart-ROM i det første trinnet i godkjenningskjeden. Sikker macOS-oppstart på Macer med Apple-chip verifiserer ikke bare selve operativsystemkoden, men også sikkerhetsregelsettene og til og med kjerneutvidelser (støttet, men ikke anbefalt) konfigurert av autoriserte brukere.
Når LLB (Low Level Bootloader) startes, verifiserer den signaturene og laster systemparet firmware for intra-SoC-kjerner som lagrings-, skjerm- og systemadministreringskontrollerne samt Thunderbolt-kontrollere. LLB er også ansvarlig for å laste LocalPolicy, som er en fil signert av Secure Enclave-prosessoren. LocalPolicy-filen beskriver konfigurasjonen som brukeren har valgt for sikkerhetsregelsettene for systemoppstart og kjøring. LocalPolicy har samme datastrukturformat som alle andre oppstartsobjekter, men det signeres lokalt av en privat nøkkel som kun er tilgjengelig i en bestemt datamaskins Secure Enclave, i stedet for å bli signert av en sentral Apple-tjener (som programvareoppdateringer).
For å bidra til å hindre repetisjon av tidligere LocalPolicy må LLB slå opp en anti-repetisjonsverdi fra den Secure Enclave-tilknyttede komponenten for sikker lagring. For å gjøre dette bruker den oppstart-ROM for Secure Enclave og sørger for at anti-repetisjonsverdien i LocalPolicy samsvarer med anti-repetisjonsverdien i komponenten for sikker lagring. Dette bidrar til å forhindre at en gammel LocalPolicy, som kan ha vært konfigurert for lavere sikkerhet, brukes på nytt i systemet etter at sikkerheten er oppgradert. Resultatet er at sikker oppstart på Macer med Apple-chip hjelper til med å beskytte mot ikke bare tilbakerulling av operativsystemversjoner, men også mot nedgraderinger av sikkerhetsregelsett.
LocalPolicy fanger opp om operativsystemet er konfigurert for Full, Redusert eller Middels sikkerhet.
Full sikkerhet: Systemet oppfører seg som iOS og iPadOS og tillater kun oppstartsprogramvare som var kjent for å være den nyeste som var tilgjengelig på installasjonstidspunktet.
Redusert sikkerhet: LLB instrueres om å godkjenne «globale» signaturer som er pakket med operativsystemet. Dette tillater systemet å kjøre eldre versjoner av macOS. Siden eldre versjoner av macOS naturlig nok har ikke-oppdaterte sårbarheter, beskrives denne sikkerhetsmodusen som Redusert. Dette er også regelsettnivået som kreves for å støtte oppstart av kjerneutvidelser.
Middels sikkerhet: Systemet oppfører seg som Redusert sikkerhet siden det bruker global signaturverifisering for iBoot og videre, men det forteller også iBoot at det skal akseptere noen oppstartsobjekter som signeres av Secure Enclave, med samme nøkkel som brukes til å signere LocalPolicy. Dette regelsettnivået støtter brukere som bygger, signerer og starter sine egne, tilpassede XNU-kjerner.
Hvis LocalPolicy indikerer til LLB at det valgte operativsystemet kjører i Full sikkerhet, evaluerer LLB den tilpassede signaturen for iBoot. Hvis det kjører i Redusert sikkerhet eller Middels sikkerhet, evaluerer det den globale signaturen. Eventuelle signaturverifiseringsfeil fører til at systemet starter til recoveryOS for å tilby reparasjonsvalg.
Etter at LLB overleverer til iBoot, laster den macOS-paret firmware som de for Secure Neural Engine, Alltid på-prosessor og annen firmware. iBoot ser også på informasjon om LocalPolicy overlevert fra LLB. Hvis LocalPolicy indikerer at det skal finnes en AuxKC (Auxiliary Kernel Collection), ser iBoot etter den på filsystemet, verifiserer at den er signert av Secure Enclave med samme nøkkel som LocalPolicy, og verifiserer at hashen samsvarer med en hash lagret i LocalPolicy. Hvis AuxKC verifiseres, plasserer iBoot den i minnet med Boot Kernel Collection, før den låser hele minneområdet og dekker Boot Kernel Collection og AuxKC med SCIP (System Coprocessor Integrity Protection). Hvis regelsettet indikerer at det skal finnes en AuxKC, men den ikke blir funnet, fortsetter systemet å starte opp i macOS uten den. iBoot er også ansvarlig for å verifisere rothashen av det signerte systemvolumet (SSV) for å sikre at filsystemet som kjernen skal aktivere, er fullstendig integritetsverifisert.