Processo de inicialização de dispositivos iPhone e iPad
Cada etapa do processo de inicialização contém componentes assinados criptograficamente pela Apple para permitir a verificação da integridade, para que a inicialização prossiga somente após a verificação da cadeia de confiança. Esses componentes incluem gerenciadores de inicialização, kernel, extensões do kernel e firmware de banda base celular. Essa cadeia de inicialização é projetada para verificar que os níveis mais baixos do software não foram adulterados.
Quando um dispositivo iPhone ou iPad é ligado, o Processador de Aplicativos executa imediatamente o código da memória somente leitura, chamada de ROM de Inicialização. Esse código imutável, conhecido como raiz de confiança do hardware, é colocado durante a fabricação do chip e é implicitamente confiável. O código da ROM de Inicialização contém a chave pública da autoridade de certificação (AC) de Raiz da Apple, usada para verificar se o gerenciador de inicialização iBoot está assinado pela Apple antes de permitir que ele seja carregado. Esse é o primeiro passo na cadeia de confiança, na qual cada passo verifica que o próximo esteja assinado pela Apple. Ao terminar suas tarefas, o iBoot verifica e executa o kernel do iOS ou iPadOS. Em dispositivos com processador A9 ou anterior da série A, um estágio adicional do Gerenciador de Inicialização de Baixo Nível (LLB) é carregado e verificado pela ROM de Inicialização, que por sua vez, carrega e verifica o iBoot.
Problemas de carregamento ou verificação dos estágios seguintes são tratados de modo diferente conforme o hardware:
O ROM de Inicialização não consegue carregar LLB (dispositivos mais antigos): modo de Atualização do Firmware do Dispositivo (DFU)
LLB ou iBoot: modo de Recuperação
Nos dois casos, o dispositivo deve estar conectado ao Finder (macOS 10.15 ou posterior) ou iTunes (no macOS 10.14 ou anterior) via USB e ser restaurado aos ajustes padrão de fábrica.
O Registro de Progresso de Inicialização (BPR) é usado pelo Secure Enclave para limitar o acesso a dados de usuário em diversos modos e é atualizado antes de entrar nos modos a seguir:
Modo DFU: definido pela ROM de Inicialização em dispositivos com o A12 ou SoCs posteriores da Apple
Modo de recuperação: definido pelo iBoot em dispositivos com o A10, S2 ou SoCs posteriores da Apple
Em dispositivos com acesso celular, um subsistema de banda base celular também realiza uma inicialização segura adicional ao usar software e chaves assinadas verificadas pelo processador de banda base.
O Secure Enclave também realiza uma inicialização segura que verifica que seu software (sepOS) está verificado e assinado pela Apple.