Biométrie

La biométrie offre un moyen plus pratique, mais potentiellement moins sûr, de confirmer votre identité avec un appareil. Dans le cadre du modèle d'authentification à plusieurs niveaux, l'authentification principale (c'est-à-dire les modalités basées sur des facteurs de connaissance telles que le code PIN, le modèle et le mot de passe) fournit le niveau de sécurité le plus élevé. La biométrie se situe au niveau secondaire de l'authentification, offrant un équilibre entre commodité et sécurité. Le CDD Android définit trois classes de force biométrique : la classe 3 (anciennement forte), la classe 2 (anciennement faible) et la classe 1 (anciennement pratique). Chaque classe a un ensemble de prérequis, de privilèges et de contraintes - veuillez consulter le CDD ci-dessus pour plus de détails. Les trois classes sont autorisées à s'intégrer à l'écran de verrouillage, mais seuls les authentificateurs forts et faibles sont autorisés à s'intégrer aux API android.hardware.biometrics. Ce tableau décrit chaque authentificateur et les fonctionnalités qu'il prend en charge.

Authentificateur Écran verrouillé Intégration BiometricPrompt Keystore (clé basée sur le temps) Keystore (clé basée sur les opérations)
BIOMETRIC_STRONG (Classe 3) Oui Oui Oui Oui
BIOMETRIC_WEAK (Classe 2) Oui Oui Non Non
COMMODITÉ_BIOMÉTRIQUE
(Classe 1)
Oui Non Non Non
DEVICE_CREDENTIAL Oui Oui Oui Oui

Le cadre Android inclut la prise en charge de l'authentification biométrique du visage et des empreintes digitales. Android peut être personnalisé pour prendre en charge d'autres modalités biométriques (telles que Iris). Cependant, l'intégration biométrique dépendra de la sécurité biométrique et non de la modalité. Pour plus de détails sur les spécifications de sécurité biométrique, voir Mesurer la sécurité de déverrouillage biométrique .

La source

Android 12

  • Présente l'API BiometricManager.Strings , qui fournit des chaînes localisées pour les applications qui utilisent BiometricPrompt pour l'authentification. Ces chaînes sont conçues pour être sensibles à l'appareil et fournir plus de précisions sur le ou les types d'authentification pouvant être utilisés.
  • Inclut la prise en charge du capteur d'empreintes digitales sous l'écran (UDFPS).

Android 11

  • Présente l' interface BiometricManager.Authenticators , qui fournit des constantes que les développeurs peuvent utiliser pour spécifier les types d'authentification acceptés par leurs applications.
  • Ajoute l'action d'intention ACTION_BIOMETRIC_ENROLL , que les développeurs peuvent utiliser pour demander à l'utilisateur d'inscrire une méthode d'authentification qui répond aux exigences de leurs applications.
  • Ajoute la méthode AuthenticationResult #getAuthenticationType () , que les développeurs peuvent utiliser pour vérifier si l'utilisateur s'est authentifié à l'aide d'un identifiant biométrique ou d'un identifiant de périphérique.
  • Fournit une prise en charge supplémentaire pour les clés d' authentification par utilisation dans la classe BiometricPrompt.

Android 10

  • Présente la classe BiometricManager que les développeurs peuvent utiliser pour interroger la disponibilité de l'authentification biométrique.
  • Inclut l'intégration de l'authentification des empreintes digitales et du visage pour BiometricPrompt

Androïde 9

  • Inclut l'intégration des empreintes digitales uniquement pour BiometricPrompt .
  • Obsolète la classe FingerprintManager. Si vos applications groupées et système utilisent cette classe, mettez-les à jour pour utiliser à la place BiometricPrompt et BiometricManager .
  • Mise à jour des tests du vérificateur FingerprintManager CTS pour tester BiometricPrompt à l'aide de BiometricPromptBoundKeysTest .

Mise en œuvre

Pour vous assurer que les utilisateurs et les développeurs bénéficient d'une expérience biométrique transparente, intégrez votre pile biométrique aux API BiometricPrompt , BiometricManager et ACTION_BIOMETRIC_ENROLL . Les appareils dotés de capteurs biométriques doivent respecter ces exigences de résistance . De plus, toutes les implémentations doivent réussir le module CTSBiometricsTestCases.

Pour intégrer votre pile biométrique à l'API ACTION_BIOMETRIC_ENROLL :

  1. Modifiez le BiometricEnrollActivity pour présenter votre flux d'inscription. Notez que votre biométrie ne peut être présentée que si elle répond à la force demandée. Si votre appareil en prend en charge plusieurs, cette action doit présenter une liste dans laquelle l'utilisateur peut choisir.
Architecture BiometricPrompt
Figure 1. Architecture BiometricPrompt

Directives de mise en œuvre de HAL

Suivez ces directives HAL biométriques pour vous assurer que les données biométriques ne sont pas divulguées et sont supprimées lorsqu'un utilisateur est supprimé d'un appareil :

  • Assurez-vous que les données biométriques brutes ou dérivées (telles que les modèles) ne sont jamais accessibles depuis l'extérieur de l'environnement isolé sécurisé (tel que le TEE ou Secure Element). Toutes les données stockées doivent être cryptées avec une clé spécifique à l'appareil connue uniquement du TEE (Trusted Execution Environment). Si le matériel le prend en charge, limitez l'accès matériel à l'environnement isolé sécurisé et protégez-le avec une politique SELinux. Rendez le canal de communication (par exemple, SPI, I2C) accessible uniquement à l'environnement isolé sécurisé avec une politique SELinux explicite sur tous les fichiers de périphérique.
  • L'acquisition, l'inscription et la reconnaissance biométriques doivent avoir lieu à l'intérieur de l'environnement isolé sécurisé pour empêcher les violations de données et autres attaques. Cette exigence s'applique uniquement à la biométrie de classe 3 (anciennement forte) et de classe 2 (anciennement faible) .
  • Pour vous protéger contre les attaques par répétition, signez les modèles biométriques avec une clé privée spécifique à l'appareil. Pour Advanced Encryption Standard (AES), signez au minimum un modèle avec le chemin absolu du système de fichiers, le groupe et l'ID biométrique de sorte que les fichiers de modèle soient inopérants sur un autre appareil ou pour toute personne autre que l'utilisateur qui les a inscrits sur le même appareil . Par exemple, empêchez la copie des données biométriques d'un autre utilisateur sur le même appareil ou depuis un autre appareil.
  • Si vous avez besoin de stocker des données en dehors du TEE, utilisez le chemin du système de fichiers fourni par la setActiveUser() HIDL method ou fournissez un autre moyen d'effacer toutes les données du modèle utilisateur lorsque l'utilisateur est supprimé. La raison est de protéger les fuites de données utilisateur. Les appareils qui n'utilisent pas ce chemin doivent être nettoyés après la suppression de l'utilisateur. Le CDD exige que les données biométriques et les fichiers dérivés soient stockés chiffrés - en particulier s'ils ne sont pas dans TEE Si cela est impossible en raison des exigences de stockage de l'environnement isolé sécurisé, ajoutez des crochets pour garantir la suppression des données lorsque l'utilisateur est supprimé ou l'appareil est essuyé. Voir LockSettingsService.removeBiometricsForUser()

Personnalisation

Si votre appareil prend en charge plusieurs données biométriques, l'utilisateur doit pouvoir spécifier une valeur par défaut dans les paramètres. Votre implémentation BiometricPrompt doit préférer la biométrie de classe 3 (anciennement forte) par défaut, sauf si l'utilisateur la remplace explicitement, puis un message d'avertissement doit être affiché expliquant les risques associés à la biométrie (par exemple, une photo de vous peut déverrouiller votre appareil )

Chaînes d'authentification spécifiques à l'appareil

À partir d'Android 12, les chaînes d'authentification contextuelles sont mises à la disposition des développeurs via l'API BiometricManager.Strings . Vous pouvez personnaliser les valeurs de ressource renvoyées par cette API pour implémenter des chaînes spécifiques à l'appareil. Si vous le faites, assurez-vous que toutes les nouvelles chaînes sont traduites pour tous les paramètres régionaux pris en charge par le périphérique. De plus, assurez-vous que les propriétés suivantes sont conservées :


Méthode

Objectif de la chaîne

Type(s) d'authentification à inclure

Si les données biométriques et le verrouillage de l'écran sont tous deux possibles

getButtonLabel()

Libellé d'un bouton qui déclenche BiometricPrompt

Types inscrits uniquement (si possible) qui satisfont aux exigences de l'authentificateur

Utiliser une chaîne biométrique uniquement (par exemple, "Utiliser l'empreinte digitale")

getPromptMessage()

Message affiché sur BiometricPrompt lors de l'authentification

Types inscrits uniquement (si possible) qui satisfont aux exigences de l'authentificateur

Utilisez une chaîne biométrique et de verrouillage d'écran combinée (par exemple "Utilisez votre empreinte digitale ou votre code PIN pour continuer")

getSettingName()

Nom d'un paramètre qui active BiometricPrompt pour l'authentification

Tous les types pris en charge par l'appareil (même s'ils ne sont pas inscrits) qui satisfont aux exigences de l'authentificateur

Utiliser une chaîne biométrique et de verrouillage d'écran combinée (telle que "Utiliser une empreinte digitale ou un verrouillage d'écran")

Prenons l'exemple d'un appareil doté d'un capteur facial de classe 2 avec un visage enregistré , d'un code PIN enregistré et d'un capteur d' empreintes digitales de classe 3 sans empreintes digitales enregistrées . Le tableau suivant fournit des exemples de chaînes pour chaque combinaison d'authentificateurs autorisés et de méthode BiometricManager.Strings invoquée :


Authentificateurs autorisés

getButtonLabel()

getPromptMessage()

getSettingName()

Biométrie de classe 3 ( BIOMETRIC_STRONG )

"Utiliser l'empreinte digitale"
(Seule l'empreinte digitale satisfait aux exigences de l'authentificateur)

"Utilisez votre empreinte digitale pour continuer"
(Seule l'empreinte digitale satisfait aux exigences de l'authentificateur)

"Utiliser l'empreinte digitale"
(Seule l'empreinte digitale satisfait aux exigences de l'authentificateur)

Biométrie de classe 2 ( BIOMETRIC_WEAK )

"Utiliser le visage"
(Le visage et les empreintes digitales satisfont aux exigences ; seul le visage est enregistré)

"Utilisez votre visage pour continuer"
(Le visage et les empreintes digitales satisfont aux exigences ; seul le visage est enregistré)

"Utilisez le visage ou l'empreinte digitale"
(Le visage et les empreintes digitales satisfont aux exigences ; l'appareil prend en charge les deux)

Verrouillage de l'écran ( DEVICE_CREDENTIAL )

"Utiliser le NIP"
(Tout verrouillage d'écran satisfait aux exigences ; le code PIN est inscrit)

"Entrez votre code PIN pour continuer"
(Tout verrouillage d'écran satisfait aux exigences ; le code PIN est inscrit)

"Utiliser le verrouillage de l'écran"
(Tout verrouillage d'écran répond aux exigences)

Verrouillage de l'écran OU biométrique de classe 3

"Utiliser le NIP"
(Les empreintes digitales et tout verrouillage d'écran satisfont aux exigences ; seul le code PIN est enregistré)

"Entrez votre code PIN pour continuer"
(Les empreintes digitales et tout verrouillage d'écran satisfont aux exigences ; seul le code PIN est enregistré)

"Utiliser l'empreinte digitale ou le verrouillage de l'écran"
(Les empreintes digitales et tout verrouillage d'écran satisfont aux exigences)

Verrouillage de l'écran OU biométrique de classe 2

"Utiliser le visage"
(Le visage, les empreintes digitales et tout verrouillage d'écran satisfont aux exigences ; le visage est enregistré et remplace le code PIN)

"Utilisez votre visage ou votre code PIN pour continuer"
(Le visage, les empreintes digitales et tout verrouillage d'écran satisfont aux exigences ; le visage et le code PIN sont enregistrés)

"Utiliser la biométrie ou le verrouillage de l'écran"
(Le visage, les empreintes digitales et tout verrouillage d'écran satisfont aux exigences)

Validation

Votre implémentation biométrique doit réussir les tests suivants :

  • CTS BiometricManager
  • CTS BiometricPrompt (la santé mentale, les tests approfondis reposent sur le vérificateur)
  • Section Test biométrique CtsVerifier : Doit réussir individuellement avec chaque modalité prise en charge par l'appareil

De plus, si votre appareil prend en charge une biométrie qui a un AOSP HIDL ( empreinte digitale@2.1 , empreinte digitale@2.2 , face1.0 ), il doit réussir son test VTS correspondant ( empreinte digitale , visage )