
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 iPad, iPhone, en Mac med Apple Silicon, Apple TV, Apple Vision Pro och Apple Watch. 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. Vissa systemappar (som Kalender, Kontakter, Mail, Meddelanden 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 A18 och M1 eller senare 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 ett 256-bitars värde och en 256-bitars kodnyckel.
På enheter med A13 och S5 eller senare använder krypteringen AES-128 i XTS-läge där 256-bitarsfilnyckeln delas upp för att tillhandahålla ett 128-bitars värde 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.