Protezione SKP (Sealed Key Protection)
Sui dispositivi Apple che supportano la protezione dei dati, la chiave di codifica delle chiavi è protetta da misurazioni del software sul sistema ed è legata all’UID fornito solo da Secure Enclave. Sui Mac dotati di chip Apple, la protezione della chiave di codifica delle chiavi è ulteriormente rafforzata incorporando informazioni sulla politica di sicurezza presente sul sistema. Ciò dipende dal fatto che macOS supporta l’applicazione di modifiche a politiche di sicurezza importanti (come la disattivazione dell’avvio protetto o della protezione dell’integrità del sistema) che non sono supportate su altre piattaforme. Sui Mac dotati di chip Apple, questa protezione include anche le chiavi di FileVault, dal momento che FileVault è implementato utilizzando la classe C di protezione dei dati.
La chiave risultante dalla combinazione tra la password dell’utente, la chiave SKP a lungo termine e la chiave hardware 1 (l’UID da Secure Enclave) viene chiamata chiave derivata dalla password. Questa chiave è utilizzata per proteggere la keybag dell’utente (sulle piattaforme supportate) e la chiave di codifica delle chiavi (solo su macOS), quindi consente lo sblocco tramite i sensori biometrici o lo sblocco automatico tramite altri dispositivi come Apple Watch.
Il monitor di avvio di Secure Enclave rileva le misurazioni del sistema operativo di Secure Enclave caricato. Quando la ROM di avvio del processore per le applicazioni misura il manifesto Image4 collegato al bootloader di livello inferiore, tale manifesto contiene anche una misurazione di qualsiasi altro firmware abbinato al sistema caricato. LocalPolicy contiene le configurazioni di sicurezza centrali caricate per macOS. LocalPolicy contiene anche il campo nsih
, che è un hash del manifesto Image4 di macOS. Il manifesto Image4 di macOS contiene le misurazioni di tutti i firmware abbinati a macOS e gli oggetti di avvio principali come la raccolta del kernel di avvio e l’hash root del volume di sistema firmato.
Se un hacker è in grado di modificare in modo inatteso uno qualsiasi di tali componenti firmware, software o di configurazione di sicurezza misurati, modifica le misurazioni archiviate nei registri hardware. La modifica delle misurazioni fa in modo che la chiave root per le misurazioni del sistema derivata dall’hardware crittografico risulti in un valore diverso, rompendo il sigillo sulla gerarchia delle chiavi. Ciò rende inaccessibile la chiave del dispositivo per le misurazioni del sistema, che a sua volta rende inaccessibile la chiave per la codifica delle chiavi e, di conseguenza, i dati.
Tuttavia, quando il sistema non è sotto attacco, esso deve consentire gli aggiornamenti software legittimi che modificano le misurazione del firmware e il campo nsih
in LocalPolicy affinché punti a nuove misurazioni di macOS. In altri sistemi che tentano di incorporare le misurazioni del firmware, ma non hanno una sorgente di attendibilità sicura, l’utente deve disabilitare la sicurezza, aggiornare il firmware e quindi riabilitarla perché le nuove misurazioni di base possano essere rilevate. Ciò aumenta considerevolmente il rischio che un hacker possa manomettere il firmware durante un aggiornamento software. Il sistema è aiutato dal fatto che il manifesto Image4 contiene tutte le misurazioni necessarie. L’hardware che decrittografa la chiave del dispositivo per le misurazioni del sistema con la chiave root per le misurazioni del sistema quando è presente una corrispondenza durante un avvio normale, può anche crittografare la chiave del dispositivo in una chiave root da proporre in futuro. Specificando le misurazioni previste dopo un aggiornamento software, l’hardware può codificare una chiave root accessibile in un sistema operativo attuale, in modo che rimanga accessibile in un sistema operativo futuro. In modo analogo, quando un utente modifica in modo legittimo le impostazioni di sicurezza in LocalPolicy, la chiave del dispositivo per le misurazioni del sistema deve essere codificata in una chiave root per le misurazioni del sistema futura in base alle misurazioni per LocalPolicy che il bootloader di livello inferiore calcolerà al prossimo riavvio.