Utilisez les fonctionnalités décrites dans cette section pour sécuriser au maximum les appareils Android que vous développez.
Bac à sable d'application
La plate-forme Android tire parti de la protection Linux basée sur les utilisateurs pour identifier et isoler les ressources des applications. Pour ce faire, Android attribue un ID utilisateur unique (UID) à chaque application Android et l'exécute dans son propre processus. Android utilise cet UID pour configurer une Application Sandbox 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 exécutées sur la plate-forme Android doivent être signées par le développeur.
Authentification
Android utilise 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 Weaver facultatif effectue l'authentification du code PIN, du schéma ou du mot de passe de l'appareil dans un composant sécurisé distinct ou dans un TEE.
- La politique de limitation du débit d'authentification par code PIN, schéma ou mot de passe de l'appareil d'Android est appliquée principalement dans un composant 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'empreinte digitale permettent d'utiliser les empreintes enregistrées.
- Les appareils peuvent être compatibles avec l'authentification faciale.
Android est également compatible avec les clés cryptographiques intégrées au matériel qui ne peuvent être utilisées que si l'utilisateur s'est authentifié à l'aide de l'un de ces mécanismes.
Biométrie
Android 9 et versions ultérieures incluent une classe BiometricPrompt que les développeurs d'applications peuvent utiliser pour intégrer l'authentification biométrique à 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 un appareil chiffré, toutes les données créées par l'utilisateur sont automatiquement chiffrées avant d'être écrites sur le disque, et 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 peut pas les lire.
Keystore
Android propose un Keystore intégré au matériel qui fournit des fonctionnalités cryptographiques où le matériel 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 avec 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 des accès obligatoire (MAC) à tous les processus, y compris ceux qui s'exécutent avec des privilèges racine ou superutilisateur (capacités Linux).
Trusty TEE
Trusty TEE
Trusty est un système d'exploitation (OS) sécurisé qui fournit un TEE pour Android. L'OS Trusty s'exécute sur le même processeur que l'OS Android, mais il est isolé du reste du système par le matériel et le logiciel.
Démarrage vérifié
Le démarrage validé est conçu pour s'assurer que tout le code exécuté provient d'une source fiable (généralement les OEM des appareils) et non d'un pirate informatique ou d'une corruption. Le démarrage validé établit une chaîne de confiance complète, en commençant par une racine de confiance protégée par le matériel, puis en passant par le bootloader, la partition de démarrage et d'autres partitions validées.