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 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 schéma ou mot de passe dans un élément sécurisé distinct.
- 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 matérielles 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 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, ainsi qu'avec les 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, y compris 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 (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 validé
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.