Oversikt over databeskyttelse
Apple bruker en teknologi som kalles databeskyttelse for å beskytte data lagret i flashlagring på enhetene som har en Apple SoC, for eksempel iPhone, iPad, Apple Watch, Apple TV og Macer med Apple-chip. Med databeskyttelse kan enheten svare på vanlige aktiviteter, som for eksempel innkommende telefonsamtaler, samtidig som teknologien gjør det mulig med kryptering av brukerdata på høyt nivå. Enkelte systemapper (for eksempel Meldinger, Mail, Kalender, Kontakter, Bilder) og Helse-dataverdier bruker databeskyttelse som standard. Tredjepartsapper får denne beskyttelsen automatisk.
Implementering
Databeskyttelse implementeres ved å lage og administrere et hierarki av nøkler og er basert på maskinvarekrypteringen som er innebygd i Apple-enheter. Databeskyttelse styres ved at hver enkelt fil tilordnes en klasse, og tilgjengeligheten bestemmes av om klassenøklene er låst opp. Med APFS (Apple File System) kan filsystemet ytterligere dele inn nøklene på et per-utstrekning-grunnlag (der deler av en fil kan ha forskjellige nøkler).
Hver gang det opprettes en fil på datavolumet, lager databeskyttelsen en ny 256-bit-nøkkel (den «filspesifikke» nøkkelen) og gir den til den maskinvarebaserte AES-motoren, som bruker nøkkelen til å kryptere filen mens den skrives til flashlagring. På A14- til A17- og M1- til M3-enheter bruker krypteringen AES-256 i XTS-modus der 256-bit per-fil-nøkkelen går gjennom en nøkkelavledingsfunksjon (NIST Special Publication 800-108) for å avlede en 256-bit-«tweak» og en 256-bit-kodenøkkel. På A9- til A13- og S5- til S9-enheter bruker krypteringen AES-128 i XTS-modus der 256-bit per-fil-nøkkelen deles for å gi en 128-bit-«tweak» og en 128-bit-kodenøkkel.
På Macer med Apple-chip bruker databeskyttelse som standard klasse C (se Databeskyttelsesklasser), men med en volumnøkkel i stedet for en filspesifikk nøkkel eller per-fil-nøkkel. Dette gjenskaper sikkerhetsmodellen til FileVault for brukerdata. Brukerne må fortsatt velge FileVault for få den fullstendige beskyttelsen med å integrere krypteringsnøkkelhierarkiet med passordet. Utviklere kan også velge en høyere beskyttelsesklasse som benytter en filspesifikk nøkkel eller per-fil-nøkkel.