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 el factor de conocimiento, como el PIN, el patrón y la 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

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 12

  • Presenta la API BiometricManager.Strings , que proporciona cadenas localizadas para aplicaciones que usan BiometricPrompt para la autenticación. Estas cadenas están diseñadas para ser conscientes del dispositivo y proporcionar más especificidad sobre qué tipo de autenticación se puede usar.
  • Incluye compatibilidad con 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 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 . Además, todas las implementaciones deben aprobar el módulo CTS de CtsBiometricsTestCases.

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 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 )

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 que admita el dispositivo. Además, asegúrese de que se conserven las siguientes propiedades:


Método

Propósito de la cadena

Tipo(s) de autenticación a incluir

Si la(s) biometría(s) y el bloqueo de pantalla son posibles

getButtonLabel()

Etiqueta para un botón que activa BiometricPrompt

Solo tipos inscritos (si es posible) que cumplen los requisitos del autenticador

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

getPromptMessage()

Mensaje que se muestra en BiometricPrompt durante la autenticación

Solo tipos inscritos (si es posible) que cumplen los requisitos del autenticador

Utilice una cadena de bloqueo de pantalla y datos biométricos combinados (p. ej., "Use su huella digital o PIN para continuar")

getSettingName()

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

Todos los tipos admitidos por el dispositivo (incluso si no está registrado) que cumplan con los requisitos del autenticador

Utilice una cadena de bloqueo de pantalla y datos biométricos combinados (por ejemplo, "Usar huella digital o bloqueo de pantalla")

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


Autenticadores permitidos

getButtonLabel()

getPromptMessage()

getSettingName()

Biométrico de clase 3 ( BIOMETRIC_STRONG )

"Usar huella digital"
(Solo la huella dactilar satisface los requisitos del autenticador)

"Usa tu huella digital para continuar"
(Solo la huella dactilar satisface los requisitos del autenticador)

"Usar huella digital"
(Solo la huella dactilar satisface los requisitos del autenticador)

Biométrico de clase 2 ( BIOMETRIC_WEAK )

"Usar cara"
(El rostro y la huella dactilar satisfacen los requisitos; solo se registra el rostro)

"Usa tu cara para continuar"
(El rostro y la huella dactilar satisfacen los requisitos; solo se registra el rostro)

"Usar rostro o huella dactilar"
(El rostro y la huella digital cumplen con los requisitos; el dispositivo es compatible con ambos)

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 de pantalla biométrico O 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 satisfacen los requisitos)

Bloqueo de pantalla biométrico O de clase 2

"Usar cara"
(El rostro, la huella digital y cualquier bloqueo de pantalla satisfacen 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 satisfacen los requisitos)

Validación

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

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 )

,

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 el factor de conocimiento, como el PIN, el patrón y la 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

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 12

  • Presenta la API BiometricManager.Strings , que proporciona cadenas localizadas para aplicaciones que usan BiometricPrompt para la autenticación. Estas cadenas están diseñadas para ser conscientes del dispositivo y proporcionar más especificidad sobre qué tipo de autenticación se puede usar.
  • Incluye compatibilidad con 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 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 . Además, todas las implementaciones deben aprobar el módulo CTS de CtsBiometricsTestCases.

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 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 )

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 que admita el dispositivo. Además, asegúrese de que se conserven las siguientes propiedades:


Método

Propósito de la cadena

Tipo(s) de autenticación a incluir

Si la(s) biometría(s) y el bloqueo de pantalla son posibles

getButtonLabel()

Etiqueta para un botón que activa BiometricPrompt

Solo tipos inscritos (si es posible) que cumplen los requisitos del autenticador

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

getPromptMessage()

Mensaje que se muestra en BiometricPrompt durante la autenticación

Solo tipos inscritos (si es posible) que cumplen los requisitos del autenticador

Utilice una cadena de bloqueo de pantalla y datos biométricos combinados (p. ej., "Use su huella digital o PIN para continuar")

getSettingName()

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

Todos los tipos admitidos por el dispositivo (incluso si no está registrado) que cumplan con los requisitos del autenticador

Utilice una cadena de bloqueo de pantalla y datos biométricos combinados (por ejemplo, "Usar huella digital o bloqueo de pantalla")

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


Autenticadores permitidos

getButtonLabel()

getPromptMessage()

getSettingName()

Biométrico de clase 3 ( BIOMETRIC_STRONG )

"Usar huella digital"
(Solo la huella dactilar satisface los requisitos del autenticador)

"Usa tu huella digital para continuar"
(Solo la huella dactilar satisface los requisitos del autenticador)

"Usar huella digital"
(Solo la huella dactilar satisface los requisitos del autenticador)

Biométrico de clase 2 ( BIOMETRIC_WEAK )

"Usar cara"
(El rostro y la huella dactilar satisfacen los requisitos; solo se registra el rostro)

"Usa tu cara para continuar"
(El rostro y la huella dactilar satisfacen los requisitos; solo se registra el rostro)

"Usar rostro o huella dactilar"
(El rostro y la huella digital cumplen con los requisitos; el dispositivo es compatible con ambos)

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 de pantalla biométrico O 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 satisfacen los requisitos)

Bloqueo de pantalla biométrico O de clase 2

"Usar cara"
(El rostro, la huella digital y cualquier bloqueo de pantalla satisfacen 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 satisfacen los requisitos)

Validación

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

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 )