Biometría

La biometría ofrece una forma más conveniente, pero potencialmente menos segura, de confirmar su identidad con un dispositivo. Según 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 y ofrece un equilibrio entre comodidad y seguridad. El CDD de Android define tres clases de fortaleza biométrica: Clase 3 (anteriormente Fuerte), Clase 2 (anteriormente Débil) y 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 admite.

Autenticador Bloquear pantalla Integración biométrica rápida Almacén de claves (clave basada en tiempo) Almacén de claves (clave basada en operaciones)
BIOMETRIC_STRONG (Clase 3)
BIOMÉTRICO_DÉBIL (Clase 2) No No
CONVENIENCIA_BIOMÉTRICA
(Clase 1)
No No No
DISPOSITIVO_CREDENCIAL

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 obtener más detalles sobre las especificaciones de seguridad biométrica, consulte Medición de la seguridad de desbloqueo biométrico .

Fuente

androide 12

  • Presenta la API BiometricManager.Strings , que proporciona cadenas localizadas para aplicaciones que utilizan BiometricPrompt para la autenticación. Estas cadenas están destinadas a reconocer el dispositivo y proporcionar más especificidad sobre qué tipo(s) de autenticación se pueden usar.
  • Incluye soporte para sensor de huellas dactilares debajo de la pantalla (UDFPS).

androide 11

  • Presenta la interfaz BiometricManager.Authenticators , que proporciona constantes que los desarrolladores pueden usar para especificar los tipos de autenticación aceptados por sus aplicaciones.
  • Agrega laacción de intención ACTION_BIOMETRIC_ENROLL , que los desarrolladores pueden usar para indicarle al usuario que registre un método de autenticación que cumpla con los requisitos de sus aplicaciones.
  • Agrega el método AuthenticationResult #getAuthenticationType () , que los desarrolladores pueden usar para verificar si el usuario se autenticó mediante una credencial biométrica o una credencial de dispositivo.
  • Proporciona soporte adicional para claves de autenticación por uso dentro de la clase BiometricPrompt.

androide 10

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

androide 9

  • Incluye integración de huellas dactilares solo para BiometricPrompt .
  • Desaproba la clase FingerprintManager. Si sus aplicaciones incluidas y del sistema usan esta clase, actualícelas para usar BiometricPrompt y BiometricManager en su lugar.
  • Se actualizaron las pruebas del verificador CTS de FingerprintManager para probar BiometricPrompt usando BiometricPromptBoundKeysTest .

Implementación

Para garantizar que los usuarios y desarrolladores tengan una experiencia biométrica perfecta, integre su pila biométrica con las API BiometricPrompt , BiometricManager y ACTION_BIOMETRIC_ENROLL . Los dispositivos con sensores biométricos deben cumplir con estos requisitos de resistencia . Además, todas las implementaciones deben pasar el módulo CtsBiometricsTestCases CTS.

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

  1. Modifique BiometricEnrollActivity para presentar su flujo de inscripción. Tenga en cuenta que su biometría sólo se puede presentar si cumple con la solidez solicitada. Si su dispositivo admite más de uno, esta acción debería presentar una lista entre la que el usuario puede elegir.
Arquitectura biométrica rápida
Figura 1. Arquitectura BiometricPrompt

Directrices de implementación de HAL

Siga estas pautas biométricas de HAL para garantizar que los datos biométricos no se filtren y se eliminen cuando se elimina a un usuario de un dispositivo:

  • Asegúrese de que los datos biométricos sin procesar o sus derivados (como las plantillas) nunca sean accesibles desde fuera del entorno aislado seguro (como el TEE o el Elemento Seguro). Todos los datos almacenados deben cifrarse con una clave específica del dispositivo conocida únicamente por el TEE (Trusted Execution Environment). Si el hardware lo admite, limite el acceso al hardware al entorno aislado seguro y protéjalo con una política SELinux. Haga que el canal de comunicación (por ejemplo, SPI, I2C) sea accesible solo para el entorno aislado seguro con una política SELinux explícita en todos los archivos del dispositivo.
  • La adquisición, el registro y el reconocimiento biométricos deben realizarse dentro de un entorno seguro y aislado para evitar filtraciones de datos y otros ataques. Este requisito solo se aplica a los datos biométricos de Clase 3 (anteriormente Fuerte) y Clase 2 (anteriormente Débil) .
  • Para protegerse contra 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 el ID biométrico, de modo 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, evitar copiar datos biométricos de un usuario diferente en el mismo dispositivo o desde otro dispositivo.
  • Si necesita almacenar datos fuera del TEE, utilice la ruta del sistema de archivos proporcionada por el setActiveUser() HIDL method o proporcione otra forma de borrar todos los datos de la plantilla de usuario cuando se elimine el usuario. El motivo es proteger la filtración de datos del usuario. Los dispositivos que no utilizan esta ruta deben limpiarse después de eliminar al usuario. CDD exige 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 seguro y aislado, agregue enlaces para garantizar la eliminación de los datos cuando se elimine el usuario o el dispositivo. está borrado. 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 implementación BiometricPrompt debe preferir los datos biométricos de Clase 3 (anteriormente Fuerte) como predeterminados, a menos que el usuario lo anule explícitamente, entonces se debe mostrar un mensaje de advertencia que explique los riesgos asociados con los datos biométricos (por ejemplo, Una foto suya puede desbloquear su dispositivo). )

Cadenas de autenticación específicas del dispositivo

A partir de Android 12, las cadenas de autenticación contextual están disponibles para los desarrolladores a través de la API BiometricManager.Strings . Puede personalizar los valores de recursos devueltos por esta API para implementar cadenas específicas del dispositivo. Si lo hace, asegúrese de que las cadenas nuevas se traduzcan para todas las configuraciones regionales compatibles con el dispositivo. Además, asegúrese de que se conserven las siguientes propiedades:


Método

Propósito de la cadena

Tipos de autenticación a incluir

Si los datos biométricos y el bloqueo de pantalla son posibles

obtenerEtiquetaBotón()

Etiqueta para un botón que activa BiometricPrompt

Solo tipos registrados (si es posible) que cumplan los requisitos del autenticador

Utilice una cadena solo biométrica (como "Usar huella digital")

obtener mensaje rápido()

Mensaje mostrado en BiometricPrompt durante la autenticación

Solo tipos registrados (si es posible) que cumplan los requisitos del autenticador

Utilice una cadena combinada de bloqueo de pantalla y datos biométricos (por ejemplo, "Use su huella digital o PIN para continuar")

getConfiguraciónNombre()

Nombre de una configuración que habilita BiometricPrompt para la autenticación

Todos los tipos admitidos por el dispositivo (incluso si no están registrados) que satisfacen los requisitos del autenticador

Utilice una cadena combinada de bloqueo de pantalla y datos biométricos (como "Usar huella digital o bloqueo de pantalla")

Por ejemplo, considere un dispositivo que tiene un sensor facial de Clase 2 con un rostro registrado , un PIN registrado y un sensor de huellas dactilares de Clase 3 sin huellas dactilares registradas . La siguiente tabla proporciona cadenas de ejemplo para cada combinación de autenticadores permitidos y método BiometricManager.Strings invocado:


Autenticadores permitidos

obtenerEtiquetaBotón()

obtener mensaje rápido()

getConfiguraciónNombre()

Biométrico de clase 3 ( BIOMETRIC_STRONG )

"Usar huella digital"
(Sólo la huella digital satisface los requisitos del autenticador)

"Usa tu huella digital para continuar"
(Sólo la huella digital satisface los requisitos del autenticador)

"Usar huella digital"
(Sólo la huella digital satisface los requisitos del autenticador)

Biométrico de clase 2 ( BIOMETRIC_WEAK )

"Usar cara"
(El rostro y las huellas dactilares satisfacen los requisitos; solo se registra el rostro)

"Usa tu cara para continuar"
(El rostro y las huellas dactilares satisfacen los requisitos; solo se registra el rostro)

"Usar rostro o huella digital"
(La cara y las huellas dactilares satisfacen los requisitos; el dispositivo admite ambas)

Bloqueo de pantalla ( DEVICE_CREDENTIAL )

"Usar PIN"
(Cualquier bloqueo de pantalla cumple con los requisitos; el PIN está registrado)

"Ingrese su PIN para continuar"
(Cualquier bloqueo de pantalla cumple con los requisitos; el PIN está registrado)

"Usar bloqueo de pantalla"
(Cualquier bloqueo de pantalla cumple con los requisitos)

Bloqueo biométrico o de pantalla de clase 3

"Usar PIN"
(La huella digital y cualquier bloqueo de pantalla cumplen con los requisitos; solo se registra el PIN)

"Ingrese su PIN para continuar"
(La huella digital y cualquier bloqueo de pantalla cumplen con los requisitos; solo se registra el PIN)

"Usar huella digital o bloqueo de pantalla"
(La huella digital y cualquier bloqueo de pantalla cumplen con los requisitos)

Bloqueo biométrico o de pantalla de clase 2

"Usar cara"
(El rostro, la huella digital y cualquier bloqueo de pantalla cumplen con los requisitos; el rostro está registrado y reemplaza el PIN)

"Usa tu cara o PIN para continuar"
(El rostro, la huella digital y cualquier bloqueo de pantalla cumplen con los requisitos; el rostro y el PIN están registrados)

"Usar datos biométricos o bloqueo de pantalla"
(El rostro, la huella digital y cualquier bloqueo de pantalla cumplen con los requisitos)

Validación

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

Además, si su dispositivo admite un dispositivo biométrico que tenga un AOSP HIDL ( huella digital@2.1 , huella digital@2.2 , cara1.0 ), deberá pasar su prueba VTS correspondiente ( huella digital , rostro )