
Sicurezza del processo di attestazione
Sicurezza del processo di attestazione
Quando la configurazione ACME specifica una chiave legate all’hardware o quando il servizio di gestione dei dispositivi richiede un’attestazione DeviceInformation, il dispositivo usa i seguenti passaggi:
Il sistema operativo richiede una chiave legata all’hardware da Secure Enclave, chiamata chiave attestata. Per l’attestazione ACME, questa chiave fa parte dell’identità certificato emessa. Per l’attestazione
DeviceInformation, la chiave è generata dal sistema operativo e riusata per tutte le successive attestazioniDeviceInformationper tutta la durata della registrazione.Il sistema operativo richiede un’attestazione hardware da Secure Enclave. Specifica la chiave attestata, il codice di attualità e quali proprietà vuole attestare.
Secure Enclave genera e restituisce una nuova attestazione hardware.
Il sistema operativo invia l’attestazione hardware ai server Apple che si occupano dell’attestazione.
Questi server convalidano la richiesta e possono rifiutare di emettere un certificato di attestazione oppure possono generare un’attestazione contenente solo le proprietà e i valori che è stato possibile confermare. La chiave pubblica del certificato di attestazione corrisponde alla chiave attestata.
Il sistema operativo fornisce il certificato di attestazione risultante al servizio di gestione dei dispositivi o alla soluzione ACME.
Per ulteriori informazioni sulla convalida del certificato di attestazione fornito, consulta Validating a Managed Device Attestation sul sito web di Apple Developer
Informazioni sull’attestazione hardware
Quando Secure Enclave genera un’attestazione hardware, include i seguenti elementi, insieme ad altri:
Identificativi della scheda madre principale.
La chiave pubblica della chiave attestata.
Hash dei seguenti componenti software che sono calcolati durante il processo di avvio e archiviati in registri hardware (simile a SKP):
Il firmware di Secure Enclave (sepOS).
Il manifesto Image4 allegato al bootloader di livello inferiore, che contiene anche una misurazione di tutti gli altri firmware abbinati al sistema.
Il manifesto Image4 del sistema operativo che contiene misurazioni di tutto il firmware abbinato al sistema operativo.
Altri valori specifici per il dispositivo come ECID e ChipID.
Sui Mac, dettagli di LocalPolicy.
Il codice di attualità.
Se Secure Enclave non è in grado di decifrare la chiave attestata, esso rifiuta di generare un’attestazione hardware. Ciò garantisce che la chiave attestata sia legata a quello specifico Secure Enclave e che tutte le altre proprietà attestate siano associate a tale chiave.
Tutti questi elementi sono raggruppati in una struttura binaria apposita e firmati con la chiave UIK. Questo lega l’attestazione hardware a un’identità specifica che l’attestazione Apple può verificare, consentendo di associare la richiesta con un registro di attivazione specifico e quindi con un registro di produzione specifico.
Generazione del certificato di attestazione
Quando i server per l’attestazione di Apple ricevono una richiesta di attestazione:
Convalidano la firma della chiave UIK dell’attestazione hardware. Se la firma non è valida, non viene generata nessuna attestazione.
Cercano il certificato
ucrtnei registri di attivazione di Apple, che corrisponde alla chiave pubblica della chiave UIK. Se il certificatoucrtnon viene trovato, non viene generata nessuna attestazione.Cercano il certificato
scrt, che corrisponde al certificatoucrtdel dispositivo. Il certificatoscrtviene emesso dai server Apple durante la produzione in base alla chiave SIK (Silicon Identity Key). La chiave SIK è generata da Secure Enclave e la sua chiave pubblica viene raccolta dal dispositivo durante la produzione. Essa è usata durante l'attivazione per verificare che il Secure Enclave del dispositivo interessato sia in possesso della chiave privata. La chiave SIK persiste durante tutto il ciclo di vita di un dispositivo e funge da identificativo unico. Usando il certificatoscrt, viene ricevuto il registro di produzione del dispositivo. Se non viene trovato nessun registro, non viene generata nessuna attestazione.Verificano che gli identificativi dei componenti hardware corrispondano ai registri di produzione. Se gli identificativi dei componenti hardware non corrispondano ai registri di produzione, non viene generata nessuna attestazione.
Copiano il codice di attualità nell’attestazione, se presente.
Se richiesto dall’attestazione:
Confrontano gli hash calcolati dei componenti software con gli hash noti dei registri di compilazione. Se viene trovata una corrispondenza, il numero di versione ufficiale viene inserito nell’attestazione; in caso contrario, l’OID è omesso e il valore viene lasciato vuoto.
Quando le immagini per il bootloader di livello inferiore, per Secure Enclave o per il sistema operativo principale vengono compilate, vengono calcolati degli hash che vengono inseriti in un database di registri di compilazione, insieme ai numeri di versione ufficiali di tali immagini.
Calcolano l’UDID dall’ECID e dal ChipID.
Copiano i valori per gli OID richiesti da LocalPolicy nell’attestazione, se il dispositivo è un Mac.
Il risultato pratico di queste convalide è che non viene generata nessuna attestazione se gli appositi server non riconoscono il dispositivo come hardware Apple originale. Ciascuna proprietà nel certificato di attestazione viene inclusa solo se i server di attestazione sono in grado di verificare il valore della proprietà, a eccezione del codice di attualità, che è incluso senza alcuna convalida.