Dataskydd i översikt
Apple använder en teknik som kallas dataskydd till att skydda data som lagras i enhetens flashminne på enheter med en av Apples SoC:er, som iPhone, iPad, Apple Watch, Apple TV och Mac-datorer med Apple Silicon. Med dataskyddet kan en enhet svara på vanliga händelser, som inkommande telefonsamtal, samtidigt som man tillhandahåller en hög nivå när det gäller kryptering av användardata. Några systemappar (som Meddelanden, Mail, Kalender, Kontakter och Bilder) och datavärden för Hälsa använder dataskydd som förval. Tredjepartsappar får automatiskt detta skydd.
Implementering
Dataskyddet implementeras genom att skapa och hantera en hierarki av nycklar. Det bygger på den teknik för maskinvarukryptering som finns inbyggd i Apple-enheter. Dataskyddet styrs på filnivå genom att tilldela varje fil till en klass. Tillgängligheten avgörs sedan baserat på om klassnycklarna har låsts upp eller ej. Med APFS (Apple File System) kan filsystemet dela nycklarna i mindre delar på extentgrund (där delar av en fil kan ha olika nycklar).
Varje gång en fil skapas på datavolymen skapar dataskyddet en ny 256-bitarsnyckel (filnyckeln) och överlämnar den till maskinvarans AES-motor som använder nyckeln till att kryptera filen när den sparas i flashminnet. På enheter med A14 till A17 och M1 till M3 använder krypteringen AES-256 i XTS-läge där 256-bitarsfilnyckeln genomgår en nyckelhärledningsfunktion (NIST Special Publication 800-108) för att härleda en 256-bitars förvrängningsnyckel och en 256-bitars kodnyckel. På enheter med A9 till A13 och S5 till S9 använder krypteringen AES-128 i XTS-läge där 256-bitarsfilnyckeln delas upp för att tillhandahålla en 128-bitars förvrängningsnyckel och en 128-bitars kodnyckel.
På Mac-datorer med Apple Silicon är förvalet för dataskydd klass C (se Dataskyddsklasser), men en volymnyckel används istället för en extentnyckel eller filnyckel – vilket i praktiken återskapar FileVault-säkerhetsmodellen för användardata. Användarna måste fortfarande välja FileVault för att få det kraftigare skydd som att knyta krypteringsnyckelhierarkin till ett lösenord innebär. Utvecklare kan också välja en högre skyddsklass som använder filnycklar eller extentnycklar.