Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Biometria

La biometría ofrece una forma más conveniente, pero potencialmente menos segura, de confirmar su identidad con un dispositivo. Bajo el modelo de autenticación por niveles, la autenticación primaria (es decir, modalidades basadas en factores de conocimiento como PIN, patrón y contraseña) proporciona el nivel más alto de seguridad. La biometría se encuentra en el nivel secundario de autenticación, lo que ofrece un equilibrio entre comodidad y seguridad. El CDD Android define tres clases de fuerza biométrica: Clase 3 (anteriormente Strong), Clase 2 (anteriormente débil), y de la Clase 1 (anteriormente conveniencia). Cada clase tiene un conjunto de requisitos previos, privilegios y restricciones; consulte el CDD anterior para obtener más detalles. Las tres clases pueden integrarse con la pantalla de bloqueo, pero solo los autenticadores fuertes y débiles pueden integrarse con las API de android.hardware.biometrics. Esta tabla describe cada autenticador y la funcionalidad que admiten.

Autenticador Bloquear pantalla Integración BiometricPrompt Almacén de claves (clave basada en el tiempo) Almacén de claves (clave basada en operaciones)
BIOMETRIC_STRONG (Clase 3)
BIOMETRIC_WEAK (Clase 2) No No
BIOMETRIC_CONVENIENCE
(Clase 1)
No No No
DEVICE_CREDENTIAL Sí (1)
  1. Esta funcionalidad se ha añadido en Android 11, ver este para más detalles

El marco de Android incluye soporte para autenticación biométrica facial y de huellas dactilares. Android se puede personalizar para admitir otras modalidades biométricas (como Iris). Sin embargo, la integración biométrica dependerá de la seguridad biométrica, no de la modalidad. Para más detalles sobre las especificaciones de seguridad biométrica, consulte medición biométrica de desbloqueo de seguridad .

Fuente

Android 11

  • Presenta la interfaz BiometricManager.Authenticators , que proporciona constantes que los desarrolladores pueden utilizar para especificar los tipos de autenticación aceptados por sus aplicaciones.
  • Agrega el ACTION_BIOMETRIC_ENROLLacción intención , que los desarrolladores pueden utilizar para dirigir al usuario a inscribir a un método de autenticación que cumpla con los requisitos de sus aplicaciones.
  • Añade el AuthenticationResult #getAuthenticationType () método , que los desarrolladores pueden utilizar para comprobar si el usuario autenticado mediante una credencial biométrico o una credencial de dispositivo.
  • Proporciona soporte adicional para autenticación por uso claves dentro de la clase BiometricPrompt.

Android 10

  • Presenta la BiometricManager clase que los desarrolladores pueden utilizar para consultar la disponibilidad de autenticación biométrica.
  • Incluye la huella digital y la cara integración de autenticación para BiometricPrompt

Android 9

  • Incluye la integración de huellas dactilares sólo para BiometricPrompt .
  • Desactiva la clase FingerprintManager. Si sus aplicaciones empaquetadas y sistema utilizan esta clase, actualizarlos para utilizar BiometricPrompt y BiometricManager lugar.
  • Actualizado el FingerprintManager CTS verificador pruebas para probar BiometricPrompt utilizando BiometricPromptBoundKeysTest .

Implementación

Para garantizar que los usuarios y los desarrolladores tienen una experiencia sin fisuras biométrica, integrar su pila biométrica con BiometricPrompt , BiometricManager y ACTION_BIOMETRIC_ENROLL API. Los dispositivos con sensores biométricos deben adherirse a estos requisitos de resistencia .
Para integrar su pila biométrica con los BiometricPrompt y BiometricManager APIs :

  1. Asegúrese de que su <Modality>Service está correctamente registrado en el BiometricService a través del método IBiometricService # registerAuthenticator e implementa el IBiometricAuthenticator interfaz. Modalidades comunes (huella digital, cara) se extienden desde un común superclase . Si necesita integrar una modalidad no compatible, seguir la huella digital / cara de ejemplo y las directrices de DDC para la biometría.
  2. Asegúrese de que su nueva modalidad se apoya adecuadamente en SystemUI . Hay por defecto BiometricPrompt interfaces de usuario para la huella dactilar y la cara. Esto debe incluir cualquier cambio de diseño o tema necesario para su dispositivo. Es decir, los cambios de diseño correspondientes para un sensor de huellas dactilares en pantalla.

Para integrar su pila biométrica con la API ACTION_BIOMETRIC_ENROLL:

  1. Modificar el BiometricEnrollActivity para presentar su flujo de inscripción. Tenga en cuenta que su biométrico se puede presentar solo si cumple con la fuerza solicitada. Si su dispositivo admite más de uno, esta acción debe presentar una lista de la que el usuario puede elegir.
Arquitectura BiometricPrompt
Arquitectura Figura 1. BiometricPrompt

Directrices de implementación de HAL

Siga estas pautas HAL biométricos para garantizar que los datos biométricos no se filtra y se elimina cuando se quita un usuario de un dispositivo:

  • Asegúrese de que los datos biométricos sin procesar o los derivados (como las plantillas) nunca sean accesibles desde fuera del entorno seguro y aislado (como el TEE o el elemento seguro). Todos los datos almacenados deben estar cifrados con una clave de dispositivo específico conocido sólo por el TEE (Trusted Execution Environment) Si los soportes de hardware de TI, el acceso al hardware límite en el entorno aislado segura y protegerlo con una política de SELinux. Haga que el canal de comunicación (por ejemplo, SPI, I2C) sea accesible solo para el entorno seguro aislado con una política SELinux explícita en todos los archivos del dispositivo.
  • La adquisición, inscripción y reconocimiento biométricos deben ocurrir dentro del entorno seguro y aislado para evitar filtraciones de datos y otros ataques. Este requisito sólo se aplica a la clase 3 (anteriormente Strong) y la clase 2 (anteriormente débiles) biometría.
  • Para protegerse contra los ataques de repetición, firme plantillas biométricas con una clave privada específica del dispositivo. Para el estándar de cifrado avanzado (AES), como mínimo, firme una plantilla con la ruta absoluta del sistema de archivos, el grupo y la identificación biométrica de manera que los archivos de la plantilla no puedan funcionar en otro dispositivo o para cualquier otra persona que no sea el usuario que los inscribió en el mismo dispositivo. . Por ejemplo, evite copiar datos biométricos de un usuario diferente en el mismo dispositivo o de otro dispositivo.
  • Si necesita almacenar los datos fuera del TEE, utilice la ruta del sistema de archivos proporcionada por el setActiveUser() HIDL method o proporcionar otra forma de borrar todos los datos de la plantilla de usuario cuando se quita el usuario. La razón es proteger la filtración de datos del usuario. Los dispositivos que no utilizan este camino deben limpiar después se retira el usuario. El CDD requiere que los datos biométricos y los archivos derivados se almacenen cifrados, especialmente si no están en TEE.Si esto no es factible debido a los requisitos de almacenamiento del entorno aislado seguro, agregue ganchos para garantizar la eliminación de los datos cuando se elimine el usuario o el dispositivo. se limpia. Consulte LockSettingsService.removeBiometricsForUser ()

Personalización

Si su dispositivo admite múltiples datos biométricos, el usuario debería poder especificar un valor predeterminado en la configuración. Su BiometricPrompt aplicación debe preferir la clase 3 (anteriormente Fuerte) biométrica como predeterminada a menos que el usuario anula explícitamente, un mensaje de advertencia se debe mostrar explicando los riesgos asociados con los datos biométricos (por ejemplo, una foto de usted puede desbloquear el dispositivo )

Validación

Su implementación biométrica debe pasar las siguientes pruebas:

  • CTS BiometricManager
  • CTS BiometricPrompt (cordura, en profundidad prueba se basa en verificador)
  • CtsVerifier prueba biométrica sección : debe pasar individualmente con cada modalidad que los soportes de dispositivos

Además, si el dispositivo es compatible con una biométrica que tiene una HIDL AOSP ( fingerprint@2.1 , fingerprint@2.2 , face1.0 ), debe pasar su prueba relevante VTS ( huella digital , cara )