Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Sécurité du système et du noyau

Au niveau du système d'exploitation, la plate-forme Android fournit la sécurité du noyau Linux, ainsi qu'une fonction de communication inter-processus sécurisée (IPC) pour permettre une communication sécurisée entre les applications exécutées dans différents processus. Ces fonctionnalités de sécurité au niveau du système d'exploitation garantissent que même le code natif est contraint par l'application Sandbox. Que ce code soit le résultat d'un comportement d'application inclus ou d'une exploitation d'une vulnérabilité d'application, le système est conçu pour empêcher l'application malveillante de nuire à d'autres applications, au système Android ou à l'appareil lui-même. Voir Configuration du noyau pour les mesures que vous pouvez prendre pour renforcer le noyau sur vos appareils. Consultez le document de définition de compatibilité Android (CDD) pour les paramètres requis.

Sécurité Linux

La base de la plate-forme Android est le noyau Linux. Le noyau Linux est largement utilisé depuis des années et est utilisé dans des millions d'environnements sensibles à la sécurité. Grâce à son histoire de recherches, d'attaques et de réparations constantes par des milliers de développeurs, Linux est devenu un noyau stable et sécurisé auquel font confiance de nombreuses entreprises et professionnels de la sécurité.

En tant que base d'un environnement informatique mobile, le noyau Linux fournit à Android plusieurs fonctionnalités de sécurité clés, notamment:

  • Un modèle d'autorisations basé sur l'utilisateur
  • Isolation des processus
  • Mécanisme extensible pour IPC sécurisé
  • La possibilité de supprimer les parties inutiles et potentiellement non sécurisées du noyau

En tant que système d'exploitation multi-utilisateur, un objectif de sécurité fondamental du noyau Linux est d'isoler les ressources utilisateur les unes des autres. La philosophie de sécurité Linux est de protéger les ressources des utilisateurs les unes des autres. Ainsi, Linux:

  • Empêche l'utilisateur A de lire les fichiers de l'utilisateur B
  • S'assure que l'utilisateur A n'épuise pas la mémoire de l'utilisateur B
  • S'assure que l'utilisateur A n'épuise pas les ressources CPU de l'utilisateur B
  • S'assure que l'utilisateur A n'épuise pas les appareils de l'utilisateur B (par exemple, téléphonie, GPS et Bluetooth)

Le bac à sable d'application

La sécurité des applications d'Android est renforcée par le sandbox d'application, qui isole les applications les unes des autres et protège les applications et le système des applications malveillantes. Pour plus de détails, consultez Application Sandbox .

Partition système et mode sans échec

La partition système contient le noyau d'Android ainsi que les bibliothèques du système d'exploitation, le moteur d'exécution de l'application, le cadre d'application et les applications. Cette partition est définie en lecture seule. Lorsqu'un utilisateur démarre l'appareil en mode sans échec, des applications tierces peuvent être lancées manuellement par le propriétaire de l'appareil mais ne sont pas lancées par défaut.

Autorisations du système de fichiers

Dans un environnement de style UNIX, les autorisations du système de fichiers garantissent qu'un utilisateur ne peut pas modifier ou lire les fichiers d'un autre utilisateur. Dans le cas d'Android, chaque application s'exécute comme son propre utilisateur. À moins que le développeur ne partage explicitement des fichiers avec d'autres applications, les fichiers créés par une application ne peuvent pas être lus ou modifiés par une autre application.

Linux à sécurité renforcée

Android utilise Security-Enhanced Linux (SELinux) pour appliquer des politiques de contrôle d'accès et établir un contrôle d'accès obligatoire (mac) sur les processus. Voir Linux amélioré pour la sécurité dans Android pour plus d'informations.

Démarrage vérifié

Android 6.0 et versions ultérieures prennent en charge le démarrage vérifié et la verité du mappeur de périphérique. Le démarrage vérifié garantit l'intégrité du logiciel du périphérique à partir d'une racine matérielle de confiance jusqu'à la partition système. Pendant le démarrage, chaque étape vérifie cryptographiquement l'intégrité et l'authenticité de l'étape suivante avant de l'exécuter.

Android 7.0 et versions ultérieures prennent en charge le démarrage vérifié strictement appliqué, ce qui signifie que les appareils compromis ne peuvent pas démarrer.

Voir Démarrage vérifié pour plus de détails.

Cryptographie

Android fournit un ensemble d'API cryptographiques à utiliser par les applications. Celles-ci incluent des implémentations de primitives cryptographiques standard et couramment utilisées telles que AES, RSA, DSA et SHA. De plus, des API sont fournies pour les protocoles de niveau supérieur tels que SSL et HTTPS.

Android 4.0 a introduit la classe KeyChain pour permettre aux applications d'utiliser le stockage des informations d'identification système pour les clés privées et les chaînes de certificats.

Enracinement des appareils

Par défaut, sur Android, seuls le noyau et un petit sous-ensemble des applications principales s'exécutent avec les autorisations root. Android n'empêche pas un utilisateur ou une application disposant d'autorisations root de modifier le système d'exploitation, le noyau ou toute autre application. En général, root a un accès complet à toutes les applications et à toutes les données d'application. Les utilisateurs qui modifient les autorisations sur un appareil Android pour accorder un accès root aux applications augmentent l'exposition de sécurité aux applications malveillantes et aux failles potentielles des applications.

La possibilité de modifier un appareil Android dont ils sont propriétaires est importante pour les développeurs travaillant avec la plate-forme Android. Sur de nombreux appareils Android, les utilisateurs ont la possibilité de déverrouiller le chargeur de démarrage afin de permettre l'installation d'un autre système d'exploitation. Ces systèmes d'exploitation alternatifs peuvent permettre à un propriétaire d'obtenir un accès root à des fins de débogage d'applications et de composants système ou d'accéder à des fonctionnalités non présentées aux applications par les API Android.

Sur certains appareils, une personne ayant le contrôle physique d'un appareil et un câble USB est en mesure d'installer un nouveau système d'exploitation qui fournit des privilèges root à l'utilisateur. Pour protéger les données utilisateur existantes contre toute compromission, le mécanisme de déverrouillage du chargeur de démarrage nécessite que le chargeur de démarrage efface toutes les données utilisateur existantes dans le cadre de l'étape de déverrouillage. L'accès root obtenu en exploitant un bogue du noyau ou une faille de sécurité peut contourner cette protection.

Le chiffrement des données avec une clé stockée sur l'appareil ne protège pas les données d'application des utilisateurs root. Les applications peuvent ajouter une couche de protection des données à l'aide du chiffrement avec une clé stockée hors de l'appareil, par exemple sur un serveur ou un mot de passe utilisateur. Cette approche peut fournir une protection temporaire tant que la clé n'est pas présente, mais à un moment donné, la clé doit être fournie à l'application et elle devient alors accessible aux utilisateurs root.

Une approche plus robuste pour protéger les données des utilisateurs root consiste à utiliser des solutions matérielles. Les OEM peuvent choisir de mettre en œuvre des solutions matérielles qui limitent l'accès à des types de contenu spécifiques, tels que DRM pour la lecture vidéo ou le stockage de confiance lié à NFC pour le portefeuille Google.

Dans le cas d'un appareil perdu ou volé, le cryptage complet du système de fichiers sur les appareils Android utilise le mot de passe de l'appareil pour protéger la clé de cryptage, donc la modification du chargeur de démarrage ou du système d'exploitation n'est pas suffisante pour accéder aux données de l'utilisateur sans le mot de passe de l'appareil de l'utilisateur.

Fonctions de sécurité utilisateur

Chiffrement du système de fichiers

Android 3.0 et les versions ultérieures fournissent un cryptage complet du système de fichiers, de sorte que toutes les données utilisateur peuvent être cryptées dans le noyau.

Android 5.0 et versions ultérieures prend en charge le chiffrement complet du disque . Le chiffrement complet du disque utilise une clé unique - protégée par le mot de passe de l'appareil de l'utilisateur - pour protéger l'ensemble de la partition de données utilisateur d'un appareil. Au démarrage, les utilisateurs doivent fournir leurs informations d'identification avant qu'une partie du disque ne soit accessible.

Android 7.0 et versions ultérieures prennent en charge le cryptage basé sur des fichiers . Le chiffrement basé sur les fichiers permet de chiffrer différents fichiers avec différentes clés qui peuvent être déverrouillées indépendamment.

Plus de détails sur la mise en œuvre du chiffrement du système de fichiers sont disponibles dans la section Chiffrement .

Mot de passe de protection

Android peut être configuré pour vérifier un mot de passe fourni par l'utilisateur avant de fournir l'accès à un appareil. En plus d'empêcher l'utilisation non autorisée de l'appareil, ce mot de passe protège la clé cryptographique pour un cryptage complet du système de fichiers.

L'utilisation d'un mot de passe et / ou de règles de complexité de mot de passe peut être exigée par un administrateur de périphérique.

Administration des appareils

Android 2.2 et versions ultérieures fournissent l'API d'administration des appareils Android, qui fournit des fonctionnalités d'administration des appareils au niveau du système. Par exemple, l'application de messagerie Android intégrée utilise les API pour améliorer la prise en charge d'Exchange. Grâce à l'application de messagerie, les administrateurs Exchange peuvent appliquer des stratégies de mot de passe - y compris des mots de passe alphanumériques ou des codes PIN numériques - sur tous les appareils. Les administrateurs peuvent également effacer à distance (c'est-à-dire rétablir les paramètres d'usine par défaut) des combinés perdus ou volés.

En plus d'être utilisées dans les applications incluses avec le système Android, ces API sont disponibles pour les fournisseurs tiers de solutions de gestion des appareils. Les détails sur l'API sont fournis dans Administration des appareils .