Biometría

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, las 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 fuerza 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 admiten.

Autenticador Bloquear pantalla Integración de aviso biométrico Almacén de claves (clave basada en el 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 Sí (1)
  1. Esta funcionalidad se ha agregado en Android 11, vea esto para más detalles

El marco de trabajo de Android incluye compatibilidad con la 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 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 la acción deintención ACTION_BIOMETRIC_ENROLL , que los desarrolladores pueden usar para indicar al usuario que inscriba 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ó usando 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 usar para consultar la disponibilidad de la autenticación biométrica.
  • Incluye integración de autenticación de huellas dactilares y rostro para BiometricPrompt

androide 9

  • Incluye integración de huellas dactilares solo para BiometricPrompt .
  • Deja en desuso la clase FingerprintManager. Si sus aplicaciones integradas 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 mediante BiometricPromptBoundKeysTest .

Implementación

Para asegurarse de 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 .
Para integrar su pila biométrica con las BiometricManager APIs BiometricPrompt y BiometricManager:

  1. Asegúrese de que su <Modality>Service esté correctamente registrado con BiometricService a través del método IBiometricService#registerAuthenticator e implemente la interfaz IBiometricAuthenticator . Las modalidades comunes (huella digital, cara) se extienden desde una superclase común. Si necesita integrar una modalidad no admitida, siga el ejemplo de huellas dactilares / rostro y las pautas de CDD para datos biométricos.
  2. Asegúrese de que su nueva modalidad sea compatible correctamente con SystemUI . Hay interfaces de usuario predeterminadas de BiometricPrompt para huellas dactilares y cara. Esto debe incluir cualquier cambio de diseño o tema requerido 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. Modifique 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 debería presentar una lista que el usuario puede elegir.
Arquitectura de aviso biométrico
Figura 1. Arquitectura BiometricPrompt

Pautas de implementación de HAL

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

  • Asegúrese de que los datos biométricos sin procesar o derivados (como plantillas) nunca sean accesibles desde fuera del entorno aislado seguro (como TEE o Secure Element). Todos los datos almacenados deben cifrarse con una clave específica del dispositivo conocida solo por el TEE (entorno de ejecución confiable). Si el hardware lo admite, limite el acceso del hardware al entorno aislado seguro y protéjalo con una política de 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 ocurrir dentro del entorno seguro y aislado para evitar filtraciones de datos y otros ataques. Este requisito solo se aplica a la biometría de Clase 3 (anteriormente Fuerte) y Clase 2 (anteriormente Débil) .
  • Para protegerse contra los ataques de reproducción, firme las 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 del sistema de archivos, el grupo y la identificación biométrica absolutos, de modo que los archivos de la plantilla no funcionen 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 desde otro dispositivo.
  • Si necesita almacenar datos fuera del TEE, use 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 fuga de datos del usuario. Los dispositivos que no usan esta ruta deben limpiarse después de eliminar al usuario. La 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 aislado seguro, agregue enlaces para garantizar la eliminación de los datos cuando se elimine el usuario o el dispositivo. se borra Ver 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 de BiometricPrompt debería preferir la biometría de Clase 3 (anteriormente Strong) como predeterminada, a menos que el usuario la anule explícitamente, luego se debe mostrar un mensaje de advertencia que explique los riesgos asociados con la biometría (por ejemplo, una foto suya puede desbloquear su dispositivo )

Validación

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

  • Administrador biométrico de CTS
  • CTS BiometricPrompt (cordura, las pruebas en profundidad se basan en el verificador)
  • Sección de prueba biométrica de CtsVerifier : debe pasar individualmente con cada modalidad que admita el dispositivo

Además, si su dispositivo es compatible con un biométrico que tiene un AOSP HIDL ( huella digital @ 2.1, huella digital @ 2.2, rostro 1.0 ), debe pasar su prueba VTS relevante ( huella digital , rostro )