Funciones de seguridad de Android

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 para aplicaciones

La plataforma de Android aprovecha la protección basada en el usuario de Linux para identificar y aislar los recursos de la app. Para ello, Android asigna un ID de usuario único (UID) 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 a los desarrolladores identificar al autor de la app y actualizarla sin crear interfaces ni permisos complicados. El desarrollador debe firmar cada app que se ejecuta en la plataforma de Android.

Autenticación

Android tiene el concepto de autenticador de usuarios que puede desbloquear el dispositivo y realizar otras tareas:

  • El subsistema de Gatekeeper realiza la autenticación de contraseña o patrón 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 un sensor de huellas dactilares admiten el uso de huellas dactilares registradas.
  • 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 las 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 confirmarlos en el disco, y todas las operaciones de lectura desencriptan los datos automáticamente 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 en un entorno seguro. El Almacenamiento de claves de Android 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, Android 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 superusuario (funciones de Linux).

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 del dispositivo), en lugar de un atacante o una corrupción. El inicio verificado establece una cadena completa de confianza, que comienza desde una raíz de confianza protegida por hardware hasta el bootloader, la partición de inicio y otras particiones verificadas.