Buffere til godkendelse
Et af de objekter, der er indeholdt i den sikre startkæde, er den statiske buffer til godkendelse, som er en godkendt fortegnelse over alle de binære Mach-O-arkiver, der er inkorporeret i den signerede systemenhed. Hvert Mach-O-arkiv repræsenteres af en hash-værdi i kodebiblioteket. Disse hash-værdier sorteres, inden de indsættes i bufferen til godkendelse, for at gøre søgning mere effektiv. Kodebiblioteket er resultatet af den signeringsproces, der foretages af codesign(1)
. Håndhævelse af bufferen til godkendelse kræver, at SIP er slået til. Hvis håndhævelse af bufferen til godkendelse skal slås fra på en Mac med Apple Silicon, skal sikker start indstilles til Tolerant sikkerhed.
Når et binært arkiv afvikles (enten som led i oprettelsen af en ny proces eller i overførslen af app-kode til en eksisterende proces), uddrages og hash-behandles dets kodebibliotek. Hvis den hash-værdi, der er et resultat af behandlingen, findes i bufferen til godkendelse, tildeles de afviklingsoverførsler, der er oprettet til det binære arkiv, platformrettigheder. Det betyder, at de kan have enhver rettighed og afvikles uden yderligere kontrol med hensyn til signaturens ægthed. Det er anderledes end på en Intel-baseret Mac, hvor platformrettigheder overdrages til indhold i operativsystemet af det Apple-certifikat, som signerer de binære arkiver. (Certifikatet begrænser ikke de rettigheder, det binære arkiv kan have).
Binære arkiver, som ikke er platformarkiver (f.eks. notarielt bekræftet tredjepartskode), skal have gyldige certifikatkæder for at blive afviklet, og deres rettigheder begrænses af den signeringsprofil, som er udstedt til udvikleren af Apple Developer Program.
Alle de binære arkiver, der leveres med macOS, er signeret med et platform-id. På en Mac med Apple Silicon bruges dette id til at anføre, at selvom det binære arkiv er signeret af Apple, skal dets hash-værdi i kodebiblioteket være til stede i bufferen til godkendelse, før arkivet kan afvikles. På en Intel-baseret Mac-computer bruges platform-id'et til at foretage målrettet tilbagekaldelse af binære arkiver fra en ældre version af macOS. Denne målrettede tilbagekaldelse er med til at forhindre, at de binære arkiver afvikles på nyere versioner.
Den statiske buffer til godkendelse knytter et sæt binære arkiver til en givet version af macOS. Denne virkemåde er med til at forhindre, at binære arkiver signeret af Apple fra ældre operativsystemer indføres i nyere operativsystemer for at give en hacker en fordel.
Platformkode leveret uden for operativsystemet
Apple leverer visse binære arkiver, f.eks. Xcode og stakken med udviklingsværktøjer, der ikke er signeret med et platform-id. De har dog stadig tilladelse til at blive afviklet med platformrettigheder på en Mac med Apple Silicon og en Mac med en T2-chip. Da denne platformsoftware leveres uafhængigt af macOS, er den ikke underlagt de tilbagekaldelsesmekanismer, der håndhæves af den statiske buffer til godkendelse.
Buffere til godkendelse, der kan indlæses
Apple leverer visse softwarepakker med buffere til godkendelse, som kan indlæses. Disse buffere har samme datastruktur som den statiske buffer til godkendelse. Der er kun en enkelt statisk buffer til godkendelse, hvis indhold altid er låst i skrivebeskyttede områder, efter at kernen er blevet initialiseret på et tidligt tidspunkt, men under app-afvikling føjes buffere til godkendelse, som kan indlæses, til systemet.
Disse buffere til godkendelse bliver enten godkendt ved hjælp af den samme mekanisme, som godkender startfirmware (personliggjort med Apples godkendte signeringstjeneste), eller som globalt signerede objekter (hvis signaturer ikke binder dem til en bestemt enhed).
Der følger for eksempel en personliggjort buffer til godkendelse med det diskbillede, der bruges til at foretage feltdiagnosticering på en Mac med Apple Silicon. Bufferen til godkendelse personliggøres sammen med diskbilledet og indlæses i den pågældende Mac-computers kerne, mens den startes i et diagnosticeringsmiljø. Bufferen til godkendelse gør det muligt at afvikle softwaren i diskbilledet med platformrettighed.
Der følger for eksempel en globalt signeret buffer til godkendelse med softwareopdateringer til macOS. Denne buffer til godkendelse gør det muligt at afvikle et kodestykke i softwareopdateringen – opdateringshjernen – med platformrettighed. Opdateringshjernen foretager det arbejde, der planlægger softwareopdateringen tidsmæssig, og som værtssystemet ikke har mulighed for at udføre på ensartet vis mellem versioner.