Usa las funciones que se describen en esta sección para que los dispositivos Android que desarrolles sean lo más seguros posible.
Zona de pruebas de la aplicación
La plataforma de Android aprovecha la protección basada en el usuario de Linux para identificar y aislar los recursos de las apps. Para ello, Android asigna un ID de usuario (UID) único a cada app para Android y la ejecuta en su propio proceso. Android usa este UID para configurar una zona de pruebas de aplicaciones a nivel del kernel.
Firma de apps
La firma de apps permite que los desarrolladores identifiquen al autor de la app y la actualicen sin crear interfaces y permisos complicados. Todas las apps que se ejecutan en la plataforma de Android deben estar firmadas por el desarrollador.
Autenticación
Android tiene el concepto de autenticadores de usuario que pueden desbloquear el dispositivo y realizar otras tareas:
- El subsistema Gatekeeper realiza la autenticación de patrones o contraseñas del dispositivo en un entorno de ejecución confiable (TEE).
- El componente Weaver opcional realiza la autenticación con patrón o contraseña en un elemento seguro independiente.
- Los dispositivos con sensor de huellas dactilares admiten el uso de huellas dactilares inscritas.
- Los dispositivos pueden admitir la autenticación facial.
Android también admite claves criptográficas con copia de seguridad en hardware que solo se pueden usar si se produjo la autenticación del usuario con uno de estos mecanismos.
Datos biométricos
Android 9 y versiones posteriores incluyen una clase BiometricPrompt
que los desarrolladores de apps pueden usar para integrar la autenticación biométrica en sus apps de manera agnóstica en cuanto al dispositivo y la modalidad. Solo los datos biométricos seguros se pueden integrar con BiometricPrompt
.
Encriptación
Una vez que se encripta un dispositivo, todos los datos creados por el usuario se encriptan automáticamente antes de escribirse en el disco, y todas las lecturas desencriptan automáticamente los datos antes de devolverlos al proceso de llamada. La encriptación garantiza que, incluso si una parte no autorizada intenta acceder a los datos, no pueda leerlos.
Almacén de claves
Android ofrece un almacén de claves respaldado por hardware que proporciona funcionalidad criptográfica en la que el material de la clave se encuentra dentro de un entorno seguro. Android Keystore admite la generación y la importación de claves simétricas y asimétricas, combinadas con primitivas de encriptación, desencriptación, firma y acuerdo de claves.
Security-Enhanced Linux
Como parte del modelo de seguridad de Android, este sistema operativo usa Security-Enhanced Linux (SELinux) para aplicar el control de acceso obligatorio (MAC) en todos los procesos, incluso en los que se ejecutan con privilegios de raíz o de superusuario (capacidades de Linux).
Trusty TEE
Trusty TEE
Trusty es un sistema operativo (SO) seguro que proporciona un TEE para Android. El SO Trusty se ejecuta en el mismo procesador que el SO Android, pero Trusty está aislado del resto del sistema por hardware y software.
Inicio verificado
El inicio verificado está diseñado para garantizar que todo el código ejecutado provenga de una fuente confiable (por lo general, los OEM de dispositivos), en lugar de un atacante o una corrupción. El inicio verificado establece una cadena completa de confianza, que comienza con una raíz de confianza protegida por hardware y se extiende al bootloader, la partición de inicio y otras particiones verificadas.