Figura 1: Pantalla de Confirmación de protección
En esta página, se describe la implementación de ConfirmationUI y las instrucciones de confirmación en KeyMint.
La Confirmación de protección de Android usa una interfaz de usuario protegida por hardware llamada Trusted UI para que las transacciones críticas sean altamente confiables. La Confirmación de protección de Android está disponible para dispositivos compatibles que ejecutan Android 9 (nivel de API 28) o versiones posteriores.
Cuando una app invoca la Confirmación de protección, Trusted UI le solicita al usuario que confirme. Trusted UI afirma que el usuario aprobó el mensaje solicitado con un alto grado de confianza, incluso si Android o su kernel de Linux se vieron comprometidos. Junto con KeyMint (antes Keymaster), esta aserción se transmite a una parte remota.
Los desarrolladores pueden consultar la documentación para desarrolladores de la Confirmación de protección de Android en developer.android.com.
Alcance
La implementación de la Confirmación de protección de Android se puede dividir en dos partes, ambas ubicadas en el Entorno de ejecución confiable (TEE). Una parte es una
extensión de KeyMint. Permite la generación de claves con el requisito de uso Tag::TRUSTED_CONFIRMATION_REQUIRED.
La segunda parte es una app llamada ConfirmationUI, que
genera tokens de confirmación. Estos tokens son instrucciones criptográficas y se transmiten a KeyMint cuando el usuario confirma un mensaje determinado.