Dataskydd i Apple-enheter
På Apple-enheter med dataskydd skyddas varje fil med en unik filnyckel (eller filextentnyckel). Nyckeln – paketerad med nyckelpaketeringsalgoritmen NIST AED – paketeras ytterligare en gång med någon av klassnycklarna, beroende på hur filen ska vara tillgänglig. Den paketerade filnyckeln sparas i filens metadata.
Enheter med APFS-format kan stöda filkloning (enkla kopior med copy-on-write-teknik). Om en fil klonas får varje halva av klonen en ny nyckel för att godkänna inkommande skrivförfrågningar så att nya data skrivs i mediet med en ny nyckel. Över tid kan filen komma att bestå av olika extent (fragment) som är mappade till olika nycklar. Alla extent som utgör en fil vaktas dock av samma klassnyckel.
När en fil öppnas avkrypteras dess metadata med filsystemnyckeln, vilket öppnar nyckelpaketet och en notering om vilken klass som skyddar filen. Filnyckeln (eller filextentnyckeln) öppnas tillsammans med klassnyckeln och skickas sedan till maskinvarans AES-motor som avkrypterar filen när den läses från flashminnet. All hantering av paketerade filnycklar sker i Secure Enclave. Filnyckeln hanteras aldrig direkt av approcessorn. Vid start förhandlar Secure Enclave fram en tillfällig nyckel med AES-motorn. När Secure Enclave öppnar filens nycklar paketeras de om med den tillfälliga nyckeln och skickas tillbaka till approcessorn.
Metadata för alla filer i datavolymens filsystem krypteras med en slumpmässig volymnyckel som skapas när operativsystemet installeras första gången eller när enheten raderas av en användare. Den här nyckeln krypteras och paketeras för långtidslagring av en nyckelpaketeringsnyckel som endast Secure Enclave känner till. Nyckelpaketeringsnyckeln ändras varje gång en användare raderar sin enhet. På A9 (och senare) med SoC använder Secure Enclave entropi, förstärkt med anti-replay-system, till att uppnå raderingsbarhet och för att skydda sin nyckelpaketeringsnyckel och andra tillgångar. Mer information finns i Säker icke-flyktig lagring.
I likhet med filnycklar eller filextentnycklar är datavolymens metadatanyckel aldrig exponerad mot approcessorn eftersom Secure Enclave tillhandahåller en tillfällig version varje gång enheten startas. Vid lagring är den krypterade systemfilsnyckeln dessutom paketerad med en tillfällig nyckel som lagras i det raderingsbara lagringsutrymmet eller med en medienyckelpaketeringsnyckel som skyddas av Secure Enclaves anti-replay-mekanism. Den här nyckeln ger inget extra dataskydd. Den är istället utformad för att kunna raderas snabbt (antingen av användaren med hjälp av alternativet Radera allt innehåll och inst. eller av en användare eller administratör med hjälp av ett fjärraderingskommando från en MDM-lösning, Microsoft Exchange ActiveSync eller iCloud). Om du tar bort nyckeln på det sättet blir alla filer kryptografiskt oåtkomliga.
Innehållet i en fil kan krypteras med en eller flera filnycklar (eller filextentnycklar) som sparas tillsammans med klassnyckeln i filens metadata, vilka i sin tur krypteras med filsystemnyckeln. Klassnyckeln skyddas av maskinvarans UID och, för vissa klasser, av användarens lösenkod. Den här hierarkin ger både flexibilitet och prestanda. Att till exempel ändra klass för en fil kräver bara att filnyckeln ompaketeras, och ett byte av lösenkod ompaketerar bara klassnyckeln.