iPhone- ja iPad-laitteiden käynnistysprosessi
Käynnistysprosessin jokainen vaihe sisältää elementtejä, jotka Apple on allekirjoittanut kryptografisesti eheyden tarkistuksen mahdollistamiseksi, ja käynnistys etenee vasta luottamusketjun tarkistamisen jälkeen. Näitä elementtejä ovat käynnistyslataajat, kernel, kernelin laajennukset ja mobiiliyhteyden kantataajuusalijärjestelmän laiteohjelmisto. Suojattu käynnistysketju on suunniteltu varmistamaan, että ohjelmiston alimpia tasoja ei ole peukaloitu.
Kun iPhone- tai iPad-laite käynnistetään, sen appeja suorittava prosessori suorittaa välittömästi ROM-muistissa olevan Boot ROM -koodin. Siruun asennetaan valmistuksen aikana muuttumatonta laitetason RoT (Root of Trust) ‑koodia, johon luotetaan implisiittisesti. Boot ROM -koodi sisältää Applen juurivarmentajan julkisen avaimen, jolla varmistetaan, että iBoot-käynnistyslataaja on Applen allekirjoittama, ennen kuin sen lataaminen sallitaan. Tämä on ensimmäinen vaihe luottamusketjussa, jonka jokainen vaihe tarkistaa, että seuraava on Applen allekirjoittama. Kun iBoot päättää tehtävänsä, se varmistaa ja suorittaa iOS- tai iPadOS-kernelin. Laitteissa, joissa on A9 tai aiempi A-sarjan prosessori, Boot ROM lataa ja varmistaa ylimääräisen Low-Level Bootloader (LLB) -tason, ja se puolestaan lataa ja varmistaa iBootin.
Seuraavien vaiheiden lataamisen tai varmentamisen virhe käsitellään eri tavalla laitteistosta riippuen:
Boot ROM ei pysty lataamaan LLB:tä (vanhemmat laitteet): DFU-tila
LLB tai iBoot: Palautustila
Kummassakin tapauksessa laite täytyy yhdistää Finderiin (macOS 10.15:ssä tai uudemmissa) tai iTunesiin (macOS 10.14 tai aiemmissa) USB:llä, ja se täytyy palauttaa tehdasoletusasetuksiin.
Secure Enclave käyttää käynnistymisen edistymisrekisteriä (Boot Progress Register, BPR) rajoittamaan pääsyä käyttäjätietoihin eri tiloissa, ja se päivitetään ennen siirtymistä seuraaviin tiloihin:
DFU-tila: Boot ROM asettaa laitteissa, joissa on Apple A12 tai uudempi järjestelmäpiiri.
Palautustila: iBoot asettaa laitteissa, joissa on Apple A10, S2 tai uudempi järjestelmäpiiri.
Laitteissa, joissa on mobiiliyhteys, sen kantataajuusalijärjestelmä suorittaa lisäksi suojatun käynnistyksen, jossa käytetään kantataajuusprosessorin varmistamia allekirjoitettuja ohjelmistoa ja avaimia.
Secure Enclave suorittaa myös suojatun käynnistyksen, joka tarkistaa, että sen ohjelmisto (sepOS) on Applen tarkistama ja allekirjoittama.