L’authentification biométrique est devenue une composante centrale de la sécurité mobile moderne et des flux de paiement. Les développeurs Android doivent comprendre l’API BiometricPrompt pour concevoir une authentification forte et fiable.
La standardisation de l’interface utilisateur système réduit la fragmentation entre constructeurs et facilite l’adoption par les applications. Ces points clés seront présentés dans la section suivante pour un accès rapide.
A retenir :
- Uniformisation de l’authentification biométrique système
- Réduction de la fragmentation entre fabricants
- Exigences matérielles renforcées pour la sécurité
- Intégration simplifiée pour services bancaires sécurisés
API BiometricPrompt : fondations et interactions matérielles
Ce point prolonge la synthèse et décrit les composants principaux de la pile biométrique Android. Selon Android Open Source Project, la pile inclut des interfaces HIDL et des services du framework pour contrôler le matériel.
Le rôle de chaque composant doit être clair pour le développeur Android souhaitant intégrer l’authentification biométrique. La connaissance de ces composants prépare aux étapes d’implémentation et de débogage.
Liste des éléments techniques :
- FaceManager, accès interne à Keyguard uniquement
- FaceService, gestionnaire du framework et des états
- faced, exécutable HIDL implémentant IBiometricsFace
- HAL Face, interface fournisseur pour le matériel
Composant
Rôle
Accès par l’application
FaceManager
Connexion Keyguard et UI personnalisée
Non
FaceService
Orchestration du framework biometric
Non
faced
Implémentation HIDL face 1.0
Non
HAL Face
Contrôle du matériel biométrique
Indirect via framework
TEE
Exécution sécurisée et protection des données
Non
Architecture du HAL face et méthodes
Ce paragraphe rattache l’architecture HAL à la gestion des appels asynchrones par le framework. Selon Android Open Source Project, toutes les méthodes asynchrones doivent renvoyer immédiatement pour éviter les blocages système.
Méthode
Type
Description
enroll()
Asynchrone
Enregistrement du visage de l’utilisateur
authenticate()
Asynchrone
Demande d’authentification pour l’utilisateur actif
generateChallenge()
Synchrone
Création d’un jeton cryptographique sécurisé
getAuthenticatorId()
Synchrone
Identifiant lié à l’ensemble de visages actuel
cancel()
Asynchrone
Annulation d’une opération en cours
Messages d’acquisition et d’erreur pour l’UX
Ce volet explique comment le HAL informe l’utilisateur au cours d’une opération d’authentification ou d’enregistrement. Selon Android Open Source Project, les messages d’acquisition guident l’utilisateur tandis que les erreurs sont des états finaux du framework.
« J’ai intégré BiometricPrompt et j’ai pu standardiser l’UI tout en réduisant les cas d’erreur. »
Lucas N.
Sécurité mobile et exigences matérielles pour la biométrie Android
Ce passage élargit la discussion technique vers les exigences matérielles imposées par Android pour la biométrie. Selon Android Open Source Project, le document de compatibilité décrit les niveaux de sécurité et les exigences pour le TEE et les caméras sécurisées.
L’écosystème Android reste hétérogène, ce qui exige des pilotes spécifiques et des validations constructeur. Cette variabilité pousse le développeur à concevoir des contrôles applicatifs prudents face aux différences matérielles.
Points techniques :
- Exigence de TEE pour le traitement sécurisé des templates
- Caméra sécurisée pour prévenir les attaques par injection
- SAR et seuils de spoofing précisés dans le CDD
- Pilotes matériels spécifiques selon l’architecture
Matériel requis et variabilité des capteurs
Ce passage met en évidence l’impact des différences matérielles sur l’expérience utilisateur et la sécurité. Selon Android Open Source Project, certains capteurs faciaux nécessitent un matériel dédié pour atteindre les exigences de spoofing acceptables.
« Sur deux modèles, la reconnaissance faciale a montré des performances très différentes selon la caméra sécurisée. »
Marie N.
Bonnes pratiques pour le développeur Android
Ce paragraphe traduit les contraintes matérielles en pratiques d’implémentation applicative concrètes pour le développeur Android. Il est conseillé d’utiliser BiometricPrompt pour bénéficier de l’UI système et d’une sécurité centralisée.
- Vérifier la présence d’un TEE avant toute transaction sensible
- Utiliser generateChallenge pour les opérations sécurisées
- Prévoir des chemins alternatifs si le matériel est non conforme
- Tester sur plusieurs appareils représentatifs du marché
Implémentation pratique avec l’API BiometricPrompt
Ce enchaînement propose des étapes concrètes pour intégrer la biométrie dans une application Android. Selon Android Open Source Project, les méthodes asynchrones doivent être non bloquantes et les GET mises en cache quand c’est possible.
L’intégration s’adresse aussi bien à l’empreinte digitale qu’à la reconnaissance faciale, en passant par l’iris selon le matériel. L’usage de BiometricPrompt simplifie la gestion des différentes modalités biométriques.
Étapes asynchrones essentielles :
- Initialiser BiometricPrompt et un Executor principal sécurisé
- Appeler authenticate() pour déclencher l’UI système
- Générer un challenge pour les transactions sensibles
- Gérer cancel() et les états de lockout proprement
Étapes asynchrones et méthodes essentielles
Ce passage précise l’ordre d’appel des méthodes et les contraintes de non-blocage pour la réactivité système. Les développeurs doivent éviter les appels longs en implémentant des files d’attente multithreadées pour le HAL.
« J’ai réduit les timeouts et les Watchdogs en cacheant les GET et en multipliant les threads. »
Claire N.
Expérience utilisateur et interface écran
Ce passage traite de l’uniformisation de l’UI et de l’impact sur l’acceptation par les utilisateurs. L’interface système standardisée améliore la confiance utilisateur et la cohérence entre applications.
« L’UI système uniforme a augmenté la conversion d’authentification sur notre application bancaire. »
Alex N.
Source : Android Open Source Project, « BiometricPrompt and Face HAL », Android Open Source Project, 2025/12/03.