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 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 exécutées 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 Weaver facultatif effectue l'authentification par code PIN, schéma ou mot de passe de l'appareil dans un composant sécurisé distinct ou dans un TEE.
- 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 intégrées au matériel 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é. Seule la biométrie forte peut s'intégrer à 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 peut pas les lire.
Keystore
Android propose un keystore intégré au 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 des 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 TEE
Trusty est un système d'exploitation sécurisé qui fournit un TEE pour Android. Le système d'exploitation Trusty s'exécute sur le même processeur que l'OS Android, mais il est isolé du reste du système par du matériel et des logiciels.
Démarrage vérifié
Le démarrage vérifié est conçu pour garantir que tout le code exécuté provient d'une source de confiance (généralement des 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.