Utilisez les fonctionnalités décrites dans cette section pour rendre les appareils Android que vous développez aussi sécurisés que possible.
Bac à sable d'application
La plate-forme Android tire parti de la protection Linux basée sur l'utilisateur pour identifier et isoler les ressources des applications. Pour ce faire, Android attribue un ID utilisateur unique à chaque application Android et l'exécute dans son propre processus. Android utilise cet ID utilisateur pour configurer un bac à sable d'application au niveau du noyau.
Signature d'application
La signature d'application permet aux développeurs d'identifier l'auteur de l'application et de la mettre à jour sans créer d'interfaces ni d'autorisations complexes. Toutes les applications qui s'exécutent sur la plate-forme Android doivent être signées par le développeur.
Authentification
Android propose le concept d'authentificateurs utilisateur qui peuvent déverrouiller l'appareil et effectuer d'autres tâches :
- Le sous-système Gatekeeper effectue l'authentification par code, schéma ou mot de passe de l'appareil dans un environnement d'exécution sécurisé (TEE).
- Le composant facultatif Weaver effectue l'authentification par code, schéma ou mot de passe de l'appareil dans un élément sécurisé distinct ou dans un TEE.
- La règle de limitation du débit d'authentification par code, schéma ou mot de passe de l'appareil Android est appliquée principalement dans un élément sécurisé ou un TEE par Gatekeeper et Weaver. Un limiteur de débit logiciel secondaire facultatif est également disponible.
- Les appareils équipés d'un lecteur d'empreintes digitales sont compatibles avec l'utilisation des empreintes enregistrées.
- Les appareils peuvent être compatibles avec l'authentification faciale.
Android est également compatible avec les clés cryptographiques matérielles qui ne peuvent être utilisées que si l'authentification de l'utilisateur a eu lieu avec l'un de ces mécanismes.
Biométrie
Android 9 et versions ultérieures incluent une BiometricPrompt
classe
que les développeurs d'applications peuvent utiliser pour intégrer l'authentification biométrique dans leurs
applications de manière indépendante de l'appareil et de la modalité. Seules les données biométriques fortes peuvent être intégrées à BiometricPrompt.
Chiffrement
Une fois l'appareil chiffré, toutes les données créées par l'utilisateur sont automatiquement chiffrées avant d'être enregistrées sur le disque. Toutes les lectures déchiffrent automatiquement les données avant de les renvoyer au processus appelant. Le chiffrement garantit que même si une partie non autorisée tente d'accéder aux données, elle ne pourra pas les lire.
Keystore
Android propose un keystore matériel qui fournit des fonctionnalités cryptographiques dans lesquelles le matériel de clé est contenu dans un environnement sécurisé. Android Keystore est compatible avec la génération et l'importation de clés symétriques et asymétriques, combinées à des primitives de chiffrement, de déchiffrement, de signature et d'accord de clé.
Security-Enhanced Linux
Dans le cadre du modèle de sécurité Android, Android utilise Security-Enhanced Linux (SELinux) pour appliquer un contrôle d'accès obligatoire (MAC) à tous les processus, même ceux qui s'exécutent avec des privilèges racine ou superutilisateur (fonctionnalités Linux).
Trusty TEE
Trusty est un système d'exploitation sécurisé qui fournit un environnement d'exécution sécurisé (TEE) pour Android. Le système d'exploitation Trusty s'exécute sur le même processeur que le système d'exploitation Android, mais il est isolé du reste du système par le matériel et le logiciel.
Démarrage vérifié
Le démarrage vérifié est conçu pour s'assurer que tout le code exécuté provient d'une source de confiance (généralement les OEM d'appareils), plutôt que d'un pirate informatique ou d'une corruption. Le démarrage vérifié établit une chaîne de confiance complète, en commençant par une racine de confiance protégée par le matériel, en passant par le bootloader, la partition de démarrage et d'autres partitions vérifiées.