A Inicialização verificada se esforça para garantir que todo o código executado venha de uma fonte confiável
(geralmente OEMs de dispositivo), e não de um invasor ou de um arquivo corrompido. Ele
estabelece uma cadeia completa de confiança, começando com uma raiz de confiança protegida por
hardware para o carregador de inicialização, para a partição de inicialização e outras partições verificadas,
incluindo system
, vendor
e, opcionalmente,
oem
. Durante a inicialização do dispositivo, cada etapa verifica a
integridade e a autenticidade da próxima etapa antes de passar a execução.
Além de garantir que os dispositivos estejam executando uma versão segura do Android, a Inicialização verificada verifica a versão correta do Android com proteção de reversão. A proteção contra reversão ajuda a impedir que uma possível exploração se torne persistente, garantindo que os dispositivos sejam atualizados apenas para versões mais recentes do Android.
Além de verificar o SO, a inicialização verificada também permite que os dispositivos Android comuniquem o estado de integridade ao usuário.
Contexto
O Android 4.4 adicionou suporte à inicialização verificada e ao recurso de kernel dm-verity. Essa combinação de recursos de verificação serviu como inicialização verificada 1.
Enquanto as versões anteriores do Android alertavam os usuários sobre a corrupção do dispositivo, mas ainda permitiam a inicialização, o Android 7.0 começou a aplicar estritamente a inicialização verificada para impedir a inicialização de dispositivos comprometidos. O Android 7.0 também adicionou suporte à correção de erros de encaminhamento para melhorar a confiabilidade contra corrupção de dados não maliciosa.
O Android 8.0 e versões mais recentes incluem a Inicialização verificada do Android (AVB), uma implementação de referência da Inicialização verificada que funciona com o Project Treble. Além de trabalhar com o Treble, o AVB padronizou o formato do rodapé da partição e adicionou recursos de proteção contra reversão.