Inicialização verificada

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.