Processo di avvio per i dispositivi iPhone e iPad
Ogni passo del processo di avvio contiene componenti che sono stati firmati digitalmente da Apple attraverso opportuna codifica per verificarne l’integrità e in modo tale che l’avvio proceda solo dopo aver verificato la catena di affidabilità. Tali componenti includono i bootloader, il kernel, le estensioni del kernel e il firmware del processore baseband per la connessione cellulare. Questa procedura di avvio protetto è progettata per verificare che i livelli più bassi del software non vengano alterati.
Quando un iPhone o iPad viene acceso, il processore per le applicazioni esegue immediatamente il codice dalla memoria di sola lettura conosciuta come ROM di avvio. Questo codice immutabile, conosciuto come RoT (Root of Trust) hardware, viene configurato durante la fabbricazione del chip ed è considerato implicitamente affidabile. Il codice della ROM di avvio contiene la chiave pubblica dell’autorità di certificazione root di Apple, utilizzata per verificare che il bootloader iBoot sia stato firmato da Apple prima di consentirne il caricamento. Questo è il primo passo della catena di affidabilità, in cui ogni passo verifica che quello successivo sia firmato da Apple. Dopo aver concluso le proprie attività, iBoot controlla ed esegue il kernel iOS o iPadOS. Per i dispositivi con processori A9 o serie A precedenti, viene caricata un’ulteriore fase bootloader di livello inferiore (LLB, Low‑Level Bootloader) che viene verificata dalla ROM di avvio e che a sua volta carica e verifica iBoot.
Un mancato caricamento o una mancata verifica delle seguenti fasi vengono gestiti diversamente a seconda dell’hardware:
La ROM di avvio non riesce a caricare il bootloader di livello inferiore (dispositivi meno recenti): modalità DFU (Device Firmware Upgrade)
LLB o iBoot: modalità di recupero
In entrambi i casi, il dispositivo deve essere collegato al Finder (macOS 10.15 o versioni successive) o ad iTunes (macOS 10.14 o versioni precedenti) tramite USB e riportato alle impostazioni di fabbrica.
Il registro di avanzamento dell’avvio (BPR, Boot Progress Register) è utilizzato da Secure Enclave per limitare l’accesso ai dati dell’utente in diverse modalità e viene aggiornato prima di entrare nelle seguenti modalità:
modalità DFU: impostata dalla ROM di avvio sui dispositivi con processori Apple A12 o SoC successivi.
modalità di recupero: impostata da iBoot sui dispositivi con processori Apple A10, S2 o SoC successivi.
Sui dispositivi con accesso cellulare, un sottosistema baseband cellulare esegue un processo di avvio protetto aggiuntivo, usando software firmato e chiavi verificate dal processore baseband.
Anche Secure Enclave esegue un avvio protetto che verifica che il proprio software (sepOS) sia verificato e firmato da Apple.