Protezione dei dati nei dispositivi Apple
Sui dispositivi Apple che utilizzano la protezione dei dati, ogni file è protetto da una chiave per file (o per entità) unica. La chiave, cifrata tramite l’algoritmo NIST AED, è ulteriormente cifrata con una delle varie chiavi di classe, a seconda del modo in cui si prevede di accedere al file. La chiave per file cifrata è quindi memorizzata nei metadati del file.
I dispositivi con il formato APFS possono supportare la clonazione dei file (copie a costo zero utilizzando la tecnologia copy-on-write). Se un file viene clonato, ciascuna metà del clone ottiene una nuova chiave per accettare le scritture in arrivo, in modo tale che i nuovi dati vengano scritti sul supporto con una nuova chiave. Con il tempo, il file può diventare composto da varie entità (o frammenti), ognuna associata a una chiave diversa. Tuttavia, tutte le entità che compongono un file vengono protette dalla stessa chiave di classe.
Quando viene aperto un file, i suoi metadati sono decrittografati con la chiave del file system, rivelando la chiave per file cifrata e una nota sulla classe che la protegge. La cifratura della chiave per file (o per entità) viene tolta con la chiave di classe e quindi fornita al motore AES hardware che a sua volta decrittografa il file mentre viene letto dalla memoria flash. La gestione delle chiavi dei file cifrate avviene interamente in Secure Enclave; la chiave per i file non viene mai esposta direttamente al processore per le applicazioni. All’avvio, Secure Enclave negozia una chiave effimera con il motore AES. Quando Secure Enclave rimuove la cifratura dalle chiavi di un file, queste vengono di nuovo cifrate con la chiave effimera e inviate di nuovo al processore per le applicazioni.
I metadati di tutti i file nel file system del volume di dati sono codificati con una chiave di volume casuale, creata quando il sistema operativo viene installato per la prima volta o quando il dispositivo viene cancellato dall’utente. Tale chiave è codificata e cifrata tramite una chiave di cifratura della chiave conosciuta solo da Secure Enclave per l’archiviazione a lungo termine. La chiave di cifratura della chiave cambia ogni volta che l’utente inizializza il dispositivo. Sui SoC A9 (o successivi), Secure Enclave si affida all’entropia, rafforzata da sistemi anti-replay, per raggiungere la cancellabilità e proteggere la sua chiave di cifratura della chiave, tra altre risorse. Per ulteriori informazioni, consulta Archiviazione non volatile protetta.
Proprio come avviene per le chiavi per file o per entità, la chiave dei metadati del volume di dati non viene mai esposta direttamente al processore per le applicazioni; Secure Enclave ne fornisce invece una versione effimera diversa a ogni avvio. Quando è archiviata, la chiave del file system codificata viene ulteriormente cifrata tramite una chiave effimera archiviata in Effaceable Storage o tramite una chiave multimediale, protetta del meccanismo anti-replay di Secure Enclave. Tale chiave non è stata progettata per garantire maggiore riservatezza dei dati, ma piuttosto per poter essere cancellata velocemente su richiesta (dall’utente, tramite l’opzione “Inizializza contenuto e impostazioni”, oppure da un utente o un amministratore, inviando il comando di cancellazione remota da una soluzione di gestione dei dispositivi mobili (MDM), Microsoft Exchange ActiveSync o iCloud). La cancellazione della chiave secondo questa modalità rende tutti i file inaccessibili a causa della codifica.
Il contenuto di un file può essere codificato con una o più chiavi per file (o per entità), cifrate con una chiave di classe e archiviate nei metadati di un file, a sua volta codificato con la chiave del file system. La chiave di classe è protetta con l’UID dell’hardware e, per alcune classi, con il codice dell’utente. Questa gerarchia fornisce flessibilità e prestazioni ottimali. Ad esempio, per modificare la classe di un file occorre solo cifrare nuovamente la sua chiave per file; la modifica del codice di accesso cifra di nuovo la chiave di classe.