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 d'application

La plate-forme Android exploite la protection basée sur l'utilisateur Linux 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 un Application Sandbox au niveau du kernel.

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 et d'autorisations complexes. Chaque application exécutée sur la plate-forme Android doit être signée 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 par 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 par mot de passe dans un composant sécurisé distinct.
  • Les appareils équipés d'un lecteur d'empreinte digitale permettent d'utiliser des empreintes enregistrées.
  • Les appareils peuvent prendre en charge l'authentification faciale.

Android est également compatible avec les clés cryptographiques basées sur du matériel qui ne peuvent être utilisées que si l'authentification de l'utilisateur avec l'un de ces mécanismes a eu lieu.

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 sécurisées peuvent s'intégrer à 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 un tiers non autorisé tente d'accéder aux données, il ne peut pas les lire.

Keystore

Android propose un keystore basé sur le matériel qui fournit des fonctionnalités cryptographiques dans lesquelles le matériel de clé est contenu dans un environnement sécurisé. Android Keystore permet de générer et d'importer des clés symétriques et asymétriques, ainsi que 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 le contrôle des accès obligatoire (MAC) à tous les processus, même ceux exécutés avec des privilèges racine ou super-utilisateur (fonctionnalités Linux).

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 Trusty est isolé du reste du système à la fois par matériel et par logiciel.

Démarrage validé

Le démarrage validé est conçu pour s'assurer que tout 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, à partir d'une racine de confiance protégée par matériel jusqu'au bootloader, à la partition de démarrage et aux autres partitions validées.