TEE fidèle

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. 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 peuvent ê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 fiable et sécurisé. Une prise en charge similaire est également disponible sur les plates-formes Intel x86 utilisant la technologie de virtualisation d'Intel.

Figure 1 . Schéma de présentation fiable.

Trusty se compose de :

  • Un petit noyau de système d'exploitation 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 de l'API .

Pourquoi fidèle?

D'autres systèmes d'exploitation TEE sont traditionnellement fournis sous forme de blobs binaires par des fournisseurs tiers ou développés en interne. Le développement de systèmes TEE internes ou la licence d'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 en tant qu'alternative open source fiable et gratuite pour leur environnement d'exécution sécurisé. 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 système d'exploitation TEE a sa propre manière unique 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 comme 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 aux partenaires transparence, collaboration, inspectabilité du code et 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'introduction de failles de sécurité. Ces développeurs auront la certitude qu'ils peuvent développer une application et la réutiliser sur plusieurs appareils sans autre développement.

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. Lors 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 bac à sable de mémoire virtuelle en utilisant les capacités de l'unité de gestion de la 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 circulaire basé sur la priorité et piloté par un tick de minuterie sécurisé. Toutes les applications Trusty partagent la même priorité.

Figure 2 . Présentation de l'application fiable.

Applications Trusty tierces

Actuellement, toutes les applications Trusty sont développées par une seule partie et fournies 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 fait avec une extrême prudence ; chaque nouvelle application augmente la surface de la base informatique de confiance (TCB) du système. Les applications de confiance peuvent accéder aux secrets de l'appareil et peuvent effectuer des calculs ou des transformations de données en les utilisant. 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 certaine forme de confiance. 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 deviennent rapidement une norme dans 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 avec une implémentation TEE, le processeur principal est souvent qualifié de "non fiable", ce qui signifie qu'il ne peut pas accéder à certaines zones de la RAM, aux registres matériels et aux fusibles à écriture unique où les données secrètes (telles que les clés cryptographiques spécifiques à l'appareil) sont stocké par le fabricant. Le logiciel s'exécutant sur le processeur principal délègue toutes les opérations nécessitant l'utilisation de données secrètes au processeur TEE.

L'exemple le plus connu de cela dans l'écosystème Android est le cadre 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 requises 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 pour 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 des logiciels malveillants.