Fonctionnalités de sécurité Android

Utilisez les fonctionnalités décrites dans cette section pour sécuriser au maximum les appareils Android que vous développez.

Bac à sable de l'application

La plate-forme Android tire parti de la protection Linux basée sur l'utilisateur pour identifier et isoler les ressources de l'application. 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 App 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 mettre à jour leur application sans créer d'interfaces et d'autorisations compliquées. Chaque application qui s'exécute sur la plate-forme Android doit être signée par le développeur.

Authentification

Android utilise le concept de clés cryptographiques sécurisées par l'authentification de l'utilisateur qui nécessite un stockage de clé cryptographique et des authentificateurs de fournisseur de services et d'utilisateurs.

Sur les appareils dotés d'un capteur d'empreintes digitales, les utilisateurs peuvent enregistrer une ou plusieurs empreintes digitales et utiliser ces empreintes digitales pour déverrouiller l'appareil et effectuer d'autres tâches. Le sous-système Gatekeeper effectue l'authentification par modèle de périphérique/mot de passe dans un environnement d'exécution sécurisé (TEE).

Android 9 et versions ultérieures incluent la confirmation protégée, qui permet aux utilisateurs de confirmer formellement les transactions critiques, telles que les paiements.

Biométrie

Android 9 et versions ultérieures incluent une API BiometricPrompt 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 une biométrie forte peut s'intégrer à BiometricPrompt .

Chiffrement

Une fois qu'un appareil est chiffré, toutes les données créées par l'utilisateur sont automatiquement chiffrées avant de les enregistrer sur le disque et toutes les lectures déchiffrent automatiquement les données avant de les renvoyer au processus appelant. Le cryptage garantit que même si une partie non autorisée tente d'accéder aux données, elle ne pourra pas les lire.

Magasin de clés

Android propose un magasin de clés basé sur le matériel qui permet la génération de clés, l'importation et l'exportation de clés asymétriques, l'importation de clés symétriques brutes, le chiffrement et le déchiffrement asymétriques avec des modes de remplissage appropriés, etc.

Linux à sécurité renforcée

Dans le cadre du modèle de sécurité Android, Android utilise Security-Enhanced Linux (SELinux) pour appliquer le contrôle d'accès obligatoire (MAC) sur tous les processus, même les processus exécutés avec des privilèges root/superuser (fonctionnalités Linux).

Environnement d'exécution fiable (TEE)

Trusty est un système d'exploitation (OS) sécurisé qui fournit un environnement d'exécution fiable (TEE) pour Android. Le système d'exploitation Trusty fonctionne sur le même processeur que le système d'exploitation Android, mais Trusty est isolé du reste du système par le matériel et les logiciels.

Démarrage vérifié

Verified Boot s'efforce de garantir que tout le code exécuté provient d'une source fiable (généralement des OEM d'appareils), plutôt que d'un attaquant ou d'une corruption. Il établit une chaîne de confiance complète, à partir d'une racine de confiance protégée par le matériel jusqu'au chargeur de démarrage, à la partition de démarrage et aux autres partitions vérifiées.