
Sikkerhed på den signerede systemenhed
Apple lancerede i macOS 10.15 den skrivebeskyttede systemenhed, som er en dedikeret, isoleret enhed til systemindhold. macOS 11 og nyere versioner føjer stærk kryptografisk beskyttelse til systemindhold med en signeret systemenhed (SSV). SSV omfatter en mekanisme i kernen, som bekræfter systemindholdets integritet under afviklingen og afviser alle data – kode og ikke-kode – uden en gyldig kryptografisk signatur fra Apple. Fra iOS 15 og iPadOS 15 blev systemenheden på en iPhone eller iPad signeret og opnåede dermed også den kryptografiske beskyttelse.
SSV er med til at forhindre manipulation af den Apple-software, som er en del af operativsystemet, og gør macOS-softwareopdateringer mere pålidelige og langt mere sikre. SSV bruger snapshots af APFS (Apple File System), så hvis en opdatering ikke kan gennemføres, er det muligt at gendanne den tidligere systemversion uden geninstallering.
Siden APFS blev lanceret, har det givet arkivsystemets metadata integritet vha. ikke-kryptografiske kontrolsummer på den interne lagringsenhed. SSV styrker integritetsmekanismen ved at tilføje kryptografiske hash-værdier, og udvider den dermed til at omfatte hver eneste byte i arkivdata. Data fra den interne lagringsenhed (inklusive arkivsystemets metadata) bliver kryptografisk hash-behandlet i læsestien, og hash-værdien sammenlignes derefter med en forventet værdi i arkivsystemets metadata. I tilfælde af, at de ikke stemmer overens, formoder systemet, at der er manipuleret med dataene, og det vil så ikke returnere dem til den software, der anmoder om dem.
Hver SSV SHA256 hash-værdi opbevares i hovedarkivsystemets metadatastruktur, som i sig selv er hash-behandlet. Da hver node i strukturen rekursivt bekræfter integriteten af sine underordnede elementers hash-værdi på samme måde som i en binær hash-værdistruktur (Merkle), omfatter rodnodens hash-værdi – som kaldes en forsegling – derfor hver eneste byte data i SSV. Det betyder, at den kryptografiske signatur dækker hele systemenheden.
Under installering og opdatering af macOS genberegnes forseglingen fra arkivsystemet på enheden, og denne måling sammenlignes med den måling, som Apple signerede. På en Mac med Apple Silicon kontrollerer bootloaderen forseglingen, inden kontrollen overføres til kernen. På en Intel-baseret Mac med en Apple T2-sikkerhedschip sender bootloaderen målingen og signaturen videre til kernen, som derefter godkender forseglingen direkte, inden rodarkivsystemet aktiveres. I begge tilfælde stopper startprocessen, hvis godkendelsen ikke lykkes, og brugeren får besked om at installere macOS igen. Denne procedure gentages ved hver start, medmindre brugeren har valgt en indstilling med lavere sikkerhed og separat har valgt at slå den signerede systemenhed fra.
Under opdatering af iOS- og iPadOS-software bliver systemenheden klargjort og genberegnet på lignende vis. Bootloaderne til iOS og iPadOS kontrollerer, at forseglingen er intakt, og at værdien er signeret af Apple, før enheden får tilladelse til at starte kernen. Hvis der er uoverensstemmelser under starten, får brugeren besked på at opdatere enhedens systemsoftware. Brugerne har ikke tilladelse til at slå beskyttelsen af en signeret systemenhed fra i iOS og iPadOS.
SSV og kodesignering
Kodesignering findes stadig og håndhæves af kernen. Den signerede systemenhed yder beskyttelse, hver eneste gang der læses bytes fra den interne lagringsenhed. Derimod giver kodesignering beskyttelse, når Mach-objekter knyttes til hukommelsen på en måde, så de kan afvikles. Både SSV og kodesignering beskytter app-kode på alle stier til læsning og afvikling.
SSV og FileVault
I macOS 11 og nyere versioner giver SSV lignende beskyttelse af inaktivt systemindhold, og systemenheden behøver derfor ikke længere blive krypteret. Alle ændringer foretaget i arkivsystemet, når det er inaktivt, registreres af arkivsystemet, når de læses. Hvis brugeren har slået FileVault til, bliver brugerens indhold i dataenheden stadig krypteret med en brugerangivet hemmelighed.
Hvis brugeren vælger at slå SSV fra, bliver systemet sårbart over for manipulation, når det er inaktivt, og denne manipulation kan sætte en hacker i stand til at udtrække krypterede brugerdata, næste gang systemet starter. Systemet vil derfor ikke give brugeren tilladelse til at slå SSV fra, hvis FileVault er slået til. Beskyttelse af det inaktive system skal slås til for begge enheder på en ensartet måde.
I macOS 10.15 og tidligere versioner beskytter FileVault operativsystemets software, når det er inaktivt, ved at kryptere bruger- og systemindholdet med en nøgle, der er beskyttet med en brugerangivet hemmelighed. Det yder beskyttelse mod, at en person med ondsindede hensigter, der har fysisk adgang til enheden, kan få adgang til eller ændre det arkivsystem, der indeholder systemsoftware.
SSV og en Mac med en Apple T2-sikkerhedschip
På en Mac med en Apple T2-sikkerhedschip er det kun selve macOS, der beskyttes af SSV. Den software, der afvikles på T2-chippen og godkender macOS, beskyttes af sikker start.