Biométrie

Les facteurs biométriques permettent une authentification sécurisée sur la plate-forme Android. Le framework Android inclut l'authentification biométrique du visage et des empreintes digitales. Android peut être personnalisé pour prendre en charge d'autres formes d'authentification biométrique (comme Iris). Toutes les implémentations biométriques doivent répondre aux spécifications de sécurité et ont une forte cote afin de participer à la BiometricPrompt classe . Biométrie sont mesurés avec le Imposter Taux d' acceptation (IAR) et Spoof Taux d' acceptation (SAR) .

Pour plus de détails sur les spécifications de sécurité biométriques, voir Mesure biométrique de sécurité Unlock .

La source

Android 10

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

Android 9

  • Inclut l' intégration d'empreintes digitales seulement pour BiometricPrompt .
  • Déprécie la classe FingerprintManager. Si vos applications compactés et système utilisent cette classe, les mettre à jour à utiliser BiometricPrompt et BiometricManager à la place.
  • Mise à jour le FingerprintManager CTS vérificateur des tests à tester BiometricPrompt en utilisant BiometricPromptBoundKeysTest .

Mise en œuvre

Pour faire en sorte que les utilisateurs et les développeurs ont une expérience biométrique transparente, intégrer votre pile biométrique avec BiometricPrompt . Les dispositifs qui permettent BiometricPrompt de toute modalité, y compris le visage, les empreintes digitales et l' iris, doivent se conformer à ces exigences de résistance . S'ils ne répondent pas aux exigences de résistance, ils ne peuvent pas implémenter cette classe.
Pour intégrer votre pile biométrique avec BiometricPrompt et BiometricManager :

  • Assurez -vous que votre <Modality> Service est correctement relié à BiometricService et crochets la authenticate() méthode. Modalités communes (empreintes digitales, visage) étendent à partir d' un courant superclasse . Si vous avez besoin d'intégrer une modalité non prise en charge, suivre l' empreinte / visage exemple et les directives CDD pour la biométrie.
  • Assurez -vous que votre nouvelle modalité est correctement pris en charge SystemUI . Il y a défaut BiometricPrompt interfaces utilisateur pour les empreintes digitales et du visage
  • Mettre à jour le cadre d'honneur KEYGUARD_DISABLE_* drapeaux pour la biométrie ajouté.
  • Assurez -vous que votre appareil passe les tests CTS et CtsVerifier pour chaque modalité que vous avez intégré dans BiometricPrompt / BiometricManager . Par exemple, si vous avez à la fois une empreinte digitale et un visage, les tests doivent réussir individuellement pour chacun d'eux.
Architecture d'invite biométrique
Figure 1. Architecture BiometricPrompt

Directives de mise en œuvre de HAL

Suivez ces instructions biométriques de HAL pour assurer que les données biométriques ne fuit pas et est retiré lors de la suppression d' un utilisateur à partir d' un appareil:

  • Assurez-vous que les données biométriques brutes ou dérivés (tels que les modèles) ne sont jamais accessibles depuis l'extérieur du pilote de capteur ou d'un environnement isolé sécurisé (tel que le TEE ou l'élément sécurisé).
  • Si le matériel le prend en charge, limitez l'accès au 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 l'appareil.
  • L'acquisition, l'inscription et la reconnaissance biométriques doivent avoir lieu dans l'environnement isolé sécurisé pour empêcher les violations de données et autres attaques. Cette exigence ne s'applique qu'aux risques biométriques.
  • Stockez uniquement la forme cryptée des données biométriques ou des dérivés sur le système de fichiers, même si le système de fichiers lui-même est crypté.
  • Pour vous protéger contre les attaques par rejeu, signez des 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 d'accès 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 à partir d'un autre appareil.
  • Utiliser le chemin de système de fichiers fourni par le set_active_group() fonction ou un autre moyen pour effacer toutes les données de modèle d'utilisateur lors du retrait de l'utilisateur. Il est fortement recommandé de stocker les fichiers de modèle biométrique sous forme chiffrée dans le chemin fourni. Si cela est impossible en raison des exigences de stockage de l'environnement isolé sécurisé, ajoutez des crochets pour assurer la suppression des données lorsque l'utilisateur est supprimé ou que l'appareil est effacé.

Personnalisation

Si votre appareil prend en charge plusieurs biométries, l'utilisateur doit pouvoir spécifier une valeur par défaut dans les paramètres. Votre BiometricPrompt mise en œuvre devrait préférer les données biométriques forte que la valeur par défaut , sauf si l'utilisateur remplace explicitement, puis a besoin de message d'avertissement à afficher expliquant les risques liés à la biométrie (par exemple, une photo de vous pouvez déverrouiller votre appareil)

Validation

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

En outre, si votre appareil prend en charge des données biométriques qui a un PSBA HIDL ( fingerprint@2.1 , face1.0 ), il doit passer son test VTS concerné ( empreintes digitales , visage )