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é.
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.
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.