Trust Nothing: RTOS Security without Run-Time Software TCB (Extended Version)

Cet article présente une architecture de capacité novatrice et une implémentation FPGA d'un système d'exploitation temps réel (basé sur Zephyr) qui élimine la nécessité d'un noyau logiciel de confiance à l'exécution en isolant strictement tous les composants logiciels et périphériques, même sur du matériel hérité.

Eric Ackermann, Sven Bugiel

Publié Tue, 10 Ma
📖 5 min de lecture🧠 Analyse approfondie

Each language version is independently generated for its own context, not a direct translation.

Imaginez que votre appareil électronique (un routeur, un drone, une voiture connectée) est comme une grande maison de sécurité.

Dans le monde actuel, cette maison a un gros problème : elle repose sur un seul gardien de confiance (le système d'exploitation, ou "noyau"). Si ce gardien s'endort, se fait voler son badge, ou si un cambrioleur (un virus) réussit à le tromper, toute la maison est ouverte. De plus, les objets connectés dans la maison (les périphériques comme la carte Wi-Fi ou le contrôleur de mémoire) sont souvent laissés sans surveillance, prêts à faire n'importe quoi.

Les auteurs de cet article, Eric Ackermann et Sven Bugiel, proposent une solution radicale : "Ne faites confiance à rien".

Voici comment ils ont réinventé la sécurité, expliqué simplement :

1. Le concept : La "Clé Universelle" (L'architecture Northcape)

Au lieu d'avoir un gardien unique qui contrôle tout, imaginez que chaque pièce, chaque tiroir et chaque objet de la maison possède sa propre clé magique.

  • L'ancienne méthode : Vous avez un gardien (le noyau) qui a le plan de la maison. Si le gardien est corrompu, il peut vous dire : "Allez, entrez partout".
  • La méthode Skadi/Bredi : Chaque composant logiciel (le gestionnaire de réseau, le lecteur de disque, l'application) ne possède que la clé exacte de la petite pièce dont il a besoin.
    • Si le gestionnaire de réseau essaie d'ouvrir la porte de la chambre à coucher, la serrure refuse, car il n'a pas la bonne clé.
    • Même si le gestionnaire de réseau est piraté, il ne peut pas aller plus loin que sa petite pièce.

C'est ce qu'on appelle une architecture de capacités. Chaque "droit d'accès" est une clé physique et mathématique impossible à contrefaire.

2. Le Hardware (Bredi) : Le Gardien de la Porte

Pour que ces clés magiques fonctionnent, il faut un nouveau type de serrure dans le matériel (le processeur). Les auteurs ont construit un prototype appelé Bredi.

  • L'analogie du Douanier : Imaginez que chaque fois qu'une personne (un programme) ou un objet (un périphérique comme une carte réseau) essaie de traverser une porte (accéder à la mémoire), un douanier ultra-rigoureux vérifie la clé.
  • Le point crucial : Ce douanier vérifie la clé avant même que la personne n'entre. Si la clé est fausse, la porte ne s'ouvre pas.
  • La sécurité contre les périphériques : Souvent, les pirates utilisent des périphériques (comme une carte Wi-Fi) pour attaquer la mémoire. Ici, le douanier vérifie aussi les périphériques. Même si la carte Wi-Fi est malveillante, elle ne peut pas accéder à la mémoire de l'application bancaire, car elle n'a pas la clé.

3. Le Logiciel (Skadi) : La Maison en Lego

Le système d'exploitation, appelé Skadi, est construit comme une maison de Lego plutôt que comme un bloc de béton.

  • Pas de "Super-Gardien" : Dans un système classique, le noyau est le "Super-Gardien" qui a tous les pouvoirs. Dans Skadi, le noyau n'existe plus ! Il a été découpé en petits morceaux indépendants.
  • Des pièces isolées : Le gestionnaire de fichiers, le réseau, le planificateur de tâches sont tous des "sub-systèmes" séparés. Ils ne se font pas confiance. Ils doivent se passer des clés (des capacités) pour communiquer.
  • Le Boot (Démarrage) : Au démarrage, un petit programme de confiance (le chargeur) distribue les clés, puis s'autodétruit. Une fois le déménagement terminé, il n'y a plus aucun gardien de confiance en place. Tout le monde est surveillé par les serrures matérielles.

4. Pourquoi c'est génial (et un peu lent) ?

Les avantages :

  • Sécurité absolue : Même si un hacker prend le contrôle d'une partie du système (par exemple, le pilote de la carte réseau), il est coincé dans sa petite pièce. Il ne peut pas toucher au reste.
  • Pas de "Zone de Confiance" : Vous n'avez plus besoin de faire confiance à un énorme morceau de code complexe. Vous ne faites confiance qu'au matériel (les serrures), qui est beaucoup plus simple et vérifiable.

Les inconvénients (le prix à payer) :

  • La lenteur des échanges : Comme chaque fois qu'un composant veut parler à un autre, il doit passer par un processus de vérification de clé (comme un douanier qui vérifie le passeport), cela prend un peu plus de temps.
  • L'analogie du trafic : C'est comme si chaque voiture devait s'arrêter à un péage pour vérifier son ticket à chaque changement de voie. C'est plus sûr, mais il y a un peu plus de bouchons.
  • Résultat : Pour des tâches simples (calculer), c'est aussi rapide qu'avant. Pour des tâches lourdes (réseau), c'est un peu plus lent, mais toujours utilisable pour la plupart des appareils du quotidien.

En résumé

Les auteurs ont créé un système où la confiance est supprimée.
Au lieu de dire : "Je fais confiance à mon système d'exploitation pour protéger mes données", ils disent : "Je ne fais confiance à personne. Le matériel vérifie chaque mouvement, et chaque logiciel n'a que les clés strictement nécessaires à sa tâche."

C'est comme passer d'une maison avec une seule grosse clé maîtresse (que n'importe qui peut voler) à une maison où chaque tiroir a sa propre serrure électronique, et où la clé est un mot de passe mathématique impossible à deviner. C'est le futur de la sécurité pour les objets connectés critiques (comme les réseaux 5G ou les infrastructures vitales).