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.

Application Sandbox

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 de clés cryptographiques contrôlées par l'authentification de l'utilisateur, qui nécessite le stockage de clés cryptographiques, ainsi que des authentificateurs de fournisseur de services et d'utilisateur.

Sur les appareils équipés d'un lecteur d'empreinte digitale, les utilisateurs peuvent enregistrer une ou plusieurs empreintes digitales et les utiliser pour 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).

Android 9 et versions ultérieures incluent la confirmation de protection, qui permet aux utilisateurs de confirmer officiellement 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 à leurs applications de manière indépendante de l'appareil et de la modalité. Seules les solutions biométriques sécurisées peuvent 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 d'être validées sur le disque. Toutes les lectures déchiffrent automatiquement les données avant de les renvoyer au processus d'appel. 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 permet de générer, d'importer et d'exporter des clés asymétriques, d'importer des clés symétriques brutes, de procéder au chiffrement et au déchiffrement asymétriques avec des modes de remplissage appropriés, etc.

Security-Enhanced Linux

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) à tous les processus, même ceux exécutés avec des privilèges racine ou super-utilisateur (fonctionnalités Linux).

Environnement d'exécution sécurisé (TEE) Trusty

Trusty est un système d'exploitation (OS) sécurisé qui fournit un environnement d'exécution sécurisé (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 du matériel et par du logiciel.

démarrage validé

Le démarrage validé s'efforce de 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. Il é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 à d'autres partitions validées.