
Convalida dei dispositivi gestiti per i dispositivi Apple
La convalida dei dispositivi gestiti è disponibile in iOS 16, iPadOS 16, macOS 14, tvOS 16, visionOS 1.1, watchOS 9 o versioni successive. Utilizza Secure Enclave per garantire l’identità e la sicurezza di un dispositivo tramite strumenti crittografici. iPad, iPhone e Apple TV richiedono il chip A11 Bionic o modelli successivi e i Mac sono supportati solo se dotati di chip Apple. La convalida dei dispositivi gestiti aiuta a proteggere dalle seguenti minacce:
Un dispositivo compromesso che dichiara proprietà fittizie
Un dispositivo compromesso che fornisce una convalida scaduta
Un dispositivo compromesso che invia identificativi di un dispositivo diverso
L’estrazione di una chiave privata per l’uso su un dispositivo non autorizzato
Un utente malintenzionato che tenta di appropriarsi di una richiesta di certificato per ingannare l’autorità di certificazione e farsi rilasciare un certificato
Con la convalida dei dispositivi gestiti, un dispositivo può richiedere una convalida dai server Apple, che restituiscono un array di dati contenente un certificato leaf e intermedio, che ha il proprio root nell’autorità di certificazione Apple Enterprise Attestation Root. A seconda del tipo d dispositivo, il certificato leaf può contenere proprietà specifiche, come illustrato nella seguente tabella.
OID e valore | Versioni minime dei sistemi operativi supportate | Descrizione | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
1.2.840.113635.100.8.9.1 Numero di serie | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Rappresenta il numero di serie del dispositivo e può essere usato per identificare un dispositivo. Per aiutare a proteggere la privacy dell’utente, questo valore non viene incluso quando si usa la convalida dei dispositivi gestiti con la registrazione utente. | |||||||||
1.2.840.113635.100.8.9.2 UDID | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Rappresenta l’identificativo hardware univoco del dispositivo e può essere usato per identificare un dispositivo. Sul Mac, corrisponde all’UDID usato per il provisioning del dispositivo. Per aiutare a proteggere la privacy dell’utente, questo valore non viene incluso quando si usa la convalida dei dispositivi gestiti con la registrazione utente. | |||||||||
1.2.840.113635.100.8.10.2 Versione sepOS | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Rappresenta la versione del firmware di Secure Enclave. | |||||||||
1.2.840.113635.100.8.11.1 Codice di attualità | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Un codice univoco e non prevedibile che identifica una particolare convalida. Indica che la convalida è stata generata dopo la creazione del codice. | |||||||||
1.2.840.113635.100.8.13.1 Stato della protezione dell’integrità del sistema | macOS 14 | Rappresenta lo stato della protezione dell’integrità del sistema su un Mac con chip Apple. | |||||||||
1.2.840.113635.100.8.13.2 Stato dell’avvio protetto | macOS 14 | Rappresenta la configurazione per l’avvio protetto selezionata su un Mac con chip Apple. | |||||||||
1.2.840.113635.100.8.13.3 Estensioni del kernel di terze parti consentite | macOS 14 | Indica se le estensioni del kernel di terze parti sono consentite o meno su un Mac con chip Apple. | |||||||||
1.2.840.113635.100.8.10.3 Versione del bootloader di livello inferiore | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Rappresenta la versione del bootloader di livello inferiore. | |||||||||
1.2.840.113635.100.8.10.1 Versione del sistema operativo | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Rappresenta la versione del sistema operativo e di iBoot. | |||||||||
1.2.840.113635.100.8.9.4 ID dispositivo per l’aggiornamento software | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Attesta il valore | |||||||||
La richiesta di attestazione è avviata da una richiesta DeviceInformation inviata dal servizio di gestione dei dispositivi oppure installando una configurazione ACME. In entrambi i casi, il dispositivo riceve un codice di attualità per il servizio di gestione dei dispositivi o per la soluzione ACME. Quando viene usata un’attestazione DeviceInformation, il codice di attualità è il valore di DeviceAttestationNonce specificato nella richiesta. Quando viene usata un’attestazione ACME, il codice di attualità è l’hash SHA-256 del token della richiesta device-attest-01. Il valore risultante viene incluso come proprietà nel certificato leaf e consente al servizio di gestione dei dispositivi o alla soluzione ACME di verificare che la convalida corrisponda alla richiesta.
Una volta ricevuta la convalida, un servizio backend deve eseguire accurati controlli di verifica. Tali controlli comprendono assicurarsi che il certificato leaf sia stato emesso dall’autorità di certificazione Apple Enterprise Attestation Root, confrontare l’hash del codice di attualità con il valore previsto ed esaminare altre proprietà nella convalida.
A seconda dei modelli di distribuzione di un’organizzazione, la convalida dei dispositivi gestiti può essere un meccanismo fondamentale di una distribuzione moderna e sicura e può essere usata in vari modi:
Utilizzare un certificato rilasciato da ACME per autenticare la connessione dal client al servizio di gestione dei dispositivi e usare l’attestazione
DeviceInformationper verificare le proprietà di un dispositivo in modo continuativo.Verificare l’identità e la sicurezza di un dispositivo e far eseguire una valutazione dell’attendibilità alla soluzione ACME prima di emettere un certificato. In questo modo, si ha la garanzia che solo i dispositivi che soddisfano gli standard richiesti ottengano un certificato.
Incorporare le proprietà del dispositivo usate per la convalida in un certificato ACME ed eseguire la valutazione dell’attendibilità sulle parti affidate.
Chiavi legate all’hardware
Durante l’emissione di un certificato con il protocollo ACME, a un dispositivo può essere chiesto di fornire una convalida, che a sua volta fa sì che la coppia di chiavi associata venga protetta da Secure Enclave, usufruendo così delle sue forti protezioni hardware e prevenendo l’esportazione della chiave privata.
Per creare una chiave legata all’hardware, la configurazione ACME deve utilizzare l’algoritmo ECSECPrimeRandom con una chiave di 256 o 384 bit. Questo specifica una coppia di chiavi sulle curve P-256 o P-384, come definito in NIST SP 800-186.
Per generare la chiave privata, Secure Enclave inizia utilizzando i seguenti elementi per creare un segreto crittografico cifrato:
Una combinazione del suo generatore di numeri veramente casuali
Entropia archiviata all’interno dello spazio di archiviazione non volatile sicuro di Secure Enclave
Una chiave di protezione dei dati
Il sistema operativo archivia il segreto cifrato, tuttavia quest’ultimo è inutile da solo. Per ricavare la chiave privata, Secure Enclave deve usare lo stesso segreto, la stessa entropia archiviata e la stessa chiave di protezione dei dati. Poiché l’entropia archiviata e la chiave di protezione dei dati sono uniche per quello specifico Secure Enclave, solo tale Secure Enclave è in grado di generare la chiave privata che lega effettivamente la chiave legata all’hardware a tale Secure Enclave.
Quando il dispositivo viene inizializzato, Secure Enclave cancella l’entropia archiviata. Quindi una chiave legata all’hardware non può essere rigenerata dopo un backup e un ripristino, nemmeno se il ripristino avviene sullo stesso dispositivo.
Qualsiasi configurazione contenente un payload ACME con una chiave legata all’hardware viene rimossa durante il ripristino. Se una chiave legata all’hardware è utilizzata come identità del client del servizio di gestione dei dispositivi, la registrazione del dispositivo viene annullata. In questo scenario, se il dispositivo era stato registrato tramite la registrazione automatizzata, esso scarica di nuovo il profilo di registrazione e ripete la registrazione.