Figura 1. Tela de confirmação protegida.
Esta página descreve a implementação da ConfirmationUI e as declarações de confirmação no KeyMint.
A Confirmação protegida pelo Android usa uma interface do usuário protegida por hardware chamada Trusted UI para facilitar a alta confiabilidade para transações críticas. A Confirmação protegida pelo Android está disponível para dispositivos compatíveis que executam o Android 9 (nível da API 28) ou versões mais recentes.
Quando um app invoca a Confirmação protegida, a Trusted UI consulta o usuário para confirmação. A Trusted UI afirma a aprovação da mensagem solicitada pelo usuário com um alto grau de confiança, mesmo que o Android ou o kernel do Linux tenham sido comprometidos. Junto com o KeyMint (antigo Keymaster), essa declaração é transmitida a uma parte remota.
Os desenvolvedores podem consultar a documentação da Confirmação protegida pelo Android em developer.android.com.
Escopo
A implementação da Confirmação protegida pelo Android pode ser dividida em duas partes, ambas residentes no ambiente de execução confiável (TEE). Uma parte é uma
extensão do KeyMint. Ela permite a geração de chaves com o requisito de uso Tag::TRUSTED_CONFIRMATION_REQUIRED.
A segunda parte é um app chamado ConfirmationUI, que
gera tokens de confirmação. Esses tokens são declarações criptográficas e transmitem ao KeyMint quando o usuário confirma uma determinada mensagem.