Google s'est engagé à promouvoir l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Trusty TEE

Trusty est un système d'exploitation (OS) sécurisé qui fournit un environnement d'exécution sécurisé (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 le logiciel. Trusty et Android fonctionnent en parallèle. Trusty a accès à toute la puissance du processeur principal et de la mémoire d'un appareil, mais est complètement isolé. L'isolement de Trusty le protège des applications malveillantes installées par l'utilisateur et des vulnérabilités potentielles qui pourraient être découvertes dans Android.

Trusty est compatible avec les processeurs ARM et Intel. Sur les systèmes ARM, Trusty utilise Trustzone ™ d'ARM pour virtualiser le processeur principal et créer un environnement d'exécution sécurisé et fiable. Une prise en charge similaire est également disponible sur les plates-formes Intel x86 utilisant la technologie de virtualisation d'Intel.

Graphique 1 . Diagramme de vue d'ensemble fiable.

Trusty se compose de:

  • Un petit noyau OS dérivé de Little Kernel
  • Un pilote de noyau Linux pour transférer des données entre l'environnement sécurisé et Android
  • Une bibliothèque d'espace utilisateur Android pour communiquer avec des applications de confiance (c'est-à-dire des tâches / services sécurisés) via le pilote du noyau

Remarque: Trusty et l'API Trusty sont susceptibles d'être modifiés. Pour plus d'informations sur l'API Trusty, consultez la référence API .

Pourquoi Trusty?

D'autres systèmes d'exploitation TEE sont traditionnellement fournis sous forme d'objets blob binaires par des fournisseurs tiers ou développés en interne. Le développement de systèmes TEE internes ou l'octroi de licences à un TEE auprès d'un tiers peut être coûteux pour les fournisseurs de systèmes sur puce (SoC) et les OEM. Le coût monétaire combiné à des systèmes tiers peu fiables crée un écosystème instable pour Android. Trusty est fourni à ses partenaires comme une alternative open source fiable et gratuite pour leur environnement d'exécution de confiance. Trusty offre un niveau de transparence qui n'est tout simplement pas possible avec les systèmes à source fermée.

Android prend en charge diverses implémentations TEE, vous n'êtes donc pas limité à l'utilisation de Trusty. Chaque TEE OS a sa propre façon de déployer des applications de confiance. Cette fragmentation peut être un problème pour les développeurs d'applications de confiance qui essaient de s'assurer que leurs applications fonctionnent sur tous les appareils Android. L'utilisation de Trusty en standard aide les développeurs d'applications à créer et déployer facilement des applications sans tenir compte de la fragmentation de plusieurs systèmes TEE. Trusty TEE offre aux développeurs et partenaires la transparence, la collaboration, l'inspectabilité du code et la facilité de débogage. Les développeurs d'applications de confiance peuvent converger autour d'outils et d'API communs pour réduire le risque d'introduire des vulnérabilités de sécurité. Ces développeurs auront la certitude de pouvoir développer une application et de la réutiliser sur plusieurs appareils sans développement supplémentaire.

Applications et services

Une application Trusty est définie comme une collection de fichiers binaires (exécutables et fichiers de ressources), un manifeste binaire et une signature cryptographique. Au moment de l'exécution, les applications Trusty s'exécutent en tant que processus isolés en mode non privilégié sous le noyau Trusty. Chaque processus s'exécute dans son propre sandbox de mémoire virtuelle en utilisant les capacités de l'unité de gestion de mémoire du processeur TEE. La construction du matériel modifie le processus exact suivi par Trusty, mais par exemple, le noyau planifie ces processus à l'aide d'un planificateur à tour de rôle basé sur la priorité, piloté par un tick de minuterie sécurisé. Toutes les applications Trusty partagent la même priorité.

Graphique 2 . Aperçu de l'application fiable.

Applications de confiance tierces

Actuellement, toutes les applications Trusty sont développées par une seule partie et empaquetées avec l'image du noyau Trusty. L'image entière est signée et vérifiée par le chargeur de démarrage lors du démarrage. Le développement d'applications tierces n'est pas pris en charge dans Trusty pour le moment. Bien que Trusty permette le développement de nouvelles applications, cela doit être exercé avec un soin extrême; chaque nouvelle application augmente la surface de la base informatique de confiance (TCB) du système. Les applications approuvées peuvent accéder aux secrets de l'appareil et effectuer des calculs ou des transformations de données à l'aide de ceux-ci. La possibilité de développer de nouvelles applications qui s'exécutent dans le TEE ouvre de nombreuses possibilités d'innovation. Cependant, en raison de la définition même d'un TEE, ces applications ne peuvent pas être distribuées sans une forme de confiance attachée. Cela se présente généralement sous la forme d'une signature numérique par une entité approuvée par l'utilisateur du produit sur lequel l'application s'exécute.

Utilisations et exemples

Les environnements d'exécution fiables sont en passe de devenir une norme sur les appareils mobiles. Les utilisateurs comptent de plus en plus sur leurs appareils mobiles pour leur vie quotidienne et le besoin de sécurité ne cesse de croître. Les appareils mobiles avec un TEE sont plus sûrs que les appareils sans TEE.

Sur les appareils dotés d'une implémentation TEE, le processeur principal est souvent qualifié de «non approuvé», ce qui signifie qu'il ne peut pas accéder à certaines zones de la RAM, des registres matériels et des fusibles à écriture unique où des données secrètes (telles que des clés cryptographiques spécifiques à l'appareil) sont stocké par le fabricant. Le logiciel exécuté sur le processeur principal délègue toutes les opérations qui nécessitent l'utilisation de données secrètes au processeur TEE.

L'exemple le plus connu de cela dans l'écosystème Android est le framework DRM pour le contenu protégé. Les logiciels exécutés sur le processeur TEE peuvent accéder aux clés spécifiques à l'appareil nécessaires pour déchiffrer le contenu protégé. Le processeur principal ne voit que le contenu crypté, offrant un haut niveau de sécurité et de protection contre les attaques logicielles.

Il existe de nombreuses autres utilisations d'un TEE, telles que les paiements mobiles, les opérations bancaires sécurisées, l'authentification multifacteur, la protection contre la réinitialisation de l'appareil, le stockage persistant protégé contre la relecture, le traitement sécurisé des codes PIN et des empreintes digitales, et même la détection de logiciels malveillants.