Qu'est-ce que TrustZone ?

Mécanisme de sécurité des processeurs Arm. Il bascule entre monde sécurisé et monde normal et distingue et restreint les accès à la mémoire et aux périphériques grâce à des signaux de bus.

Nom japonais: TrustZone

« TrustZone » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Sécurité matérielle.

Domaine: Sécurité matérielle

Deux mondes sur un seul processeur

TrustZone donne à un cœur Arm deux états de sécurité : le monde sécurisé et le monde normal. Le système d'exploitation riche et les applications ordinaires s'exécutent dans le monde normal, tandis qu'un petit OS de confiance et ses applications de confiance s'exécutent dans le monde sécurisé. Sur les processeurs Cortex-A, le passage de l'un à l'autre transite par un moniteur sécurisé, appelé par l'instruction SMC (secure monitor call), qui sauvegarde le contexte d'un monde et restaure celui de l'autre. Le même cœur, les mêmes caches et le même système mémoire sont partagés dans le temps entre les deux ; une zone sécurisée est ainsi créée au sein d'un seul système sur puce (SoC), sans ajouter de processeur de sécurité séparé.

Comment le bus impose l'isolation

L'état de sécurité n'est pas une simple convention logicielle. Chaque transaction que le cœur place sur le bus interne porte un signal indiquant si elle est sécurisée ou non sécurisée. Des contrôleurs d'espace d'adressage placés devant la DRAM, la SRAM sur puce et les périphériques vérifient ce signal et rejettent les accès non sécurisés aux régions attribuées au monde sécurisé. Des périphériques comme l'interface d'un capteur d'empreintes digitales ou un moteur cryptographique peuvent de même être réservés au logiciel sécurisé, et les caches étiquettent les lignes par monde. Ainsi, même un noyau du monde normal entièrement compromis ne peut pas lire la mémoire sécurisée, car c'est le matériel lui-même qui bloque l'accès.

TrustZone comme environnement d'exécution de confiance

Un environnement d'exécution de confiance (TEE) est un petit environnement isolé matériellement, destiné aux traitements qui doivent survivre à une compromission de l'OS principal. TrustZone est la base de TEE la plus répandue sur les smartphones et appareils similaires. Les tâches typiques du monde sécurisé sont la comparaison biométrique, la gestion des identifiants de paiement, le stockage des clés de gestion des droits numériques (DRM) et les étapes de vérification lors du démarrage sécurisé. Tout l'intérêt est de garder réduite la base de code de confiance : un OS volumineux ne peut pas être rendu exempt de vulnérabilités, alors qu'un OS de confiance compact doté d'une interface étroite est bien plus facile à auditer et à durcir.

TrustZone ou élément sécurisé séparé

TrustZone isole le logiciel de façon logique mais partage avec le monde normal des ressources physiques comme les cœurs, les caches et les rails d'alimentation. Cela maintient un coût faible, mais laisse une exposition aux attaques par canaux auxiliaires et par injection de fautes, auxquelles une puce dédiée résiste mieux. Un élément sécurisé (secure element) est une puce séparée et résistante à l'effraction, dotée de son propre processeur et de sa propre mémoire, souvent utilisée en complément d'un TEE pour les clés les plus précieuses. Les cœurs Armv8-M de classe microcontrôleur implémentent une variante allégée de TrustZone, dans laquelle le code sécurisé et le code non sécurisé s'appellent directement par des points d'entrée définis, sans moniteur.

S'entraîner : questions sur TrustZone

Quel est le mécanisme de base de TrustZone d'Arm ?

  1. ATous les traitements sécurisés sont effectués sur un autre ordinateur
  2. BLes programmes du monde normal peuvent lire librement la mémoire du monde sécurisé
  3. CLe CPU dispose d'états monde sécurisé et monde normal, et des signaux de bus ou analogues permettent de distinguer de quel monde proviennent les accès à la mémoire et aux périphériques pour les restreindre
Afficher la réponse et l'explication

Réponse : C. Le CPU dispose d'états monde sécurisé et monde normal, et des signaux de bus ou analogues permettent de distinguer de quel monde proviennent les accès à la mémoire et aux périphériques pour les restreindre

Avec TrustZone, les cœurs du CPU basculent entre deux états, sécurisé et normal, et un signal indiquant l'état courant accompagne chaque accès sur le bus. Les circuits côté mémoire et périphériques examinent ce signal et refusent les accès du monde normal aux zones attribuées au monde sécurisé. Cela permet de créer une zone sûre au sein d'un même SoC sans puce dédiée supplémentaire, d'où sa large adoption dans les smartphones.

Questions fréquentes

À quoi sert Arm TrustZone ?

Il sert à exécuter du code critique pour la sécurité, comme la comparaison biométrique, le traitement des paiements, le stockage de clés et les vérifications du démarrage sécurisé, dans un monde sécurisé isolé matériellement. Même si le système d'exploitation normal est compromis, la mémoire et les clés du monde sécurisé restent inaccessibles.

Quelle est la différence entre TrustZone et un TEE ?

Un TEE est le concept général d'environnement d'exécution isolé et protégé par le matériel. TrustZone est le mécanisme matériel d'Arm qui fournit l'isolation sur laquelle sont construits l'OS de confiance et les applications d'un TEE.

Comment TrustZone empêche-t-il le monde normal de lire la mémoire sécurisée ?

Chaque transaction de bus porte un signal indiquant si elle provient de l'état sécurisé ou normal. Des contrôleurs placés devant la mémoire et les périphériques vérifient ce signal et refusent les accès du monde normal aux régions sécurisées.

« TrustZone » dans les explications

Questions mentionnant « TrustZone » (2)

  1. Quel est le mécanisme de base de TrustZone d'Arm ?
  2. Quelle est la définition d'un TEE (environnement d'exécution de confiance) ?

Termes associés

SoC (système sur puce) TEE (environnement d'exécution de confiance) Attaque par analyse de consommation Attaque par canal auxiliaire Attaque par démarrage à froid (cold boot) Attaque par injection de fautes Attaque temporelle (timing attack) Attestation à distance Cheval de Troie matériel Démarrage mesuré (measured boot)

Retour au glossaire