Garantir l’isolation microarchitecturale des processeurs

par Mathieu Escouteloup

Thèse de doctorat en Informatique

Sous la direction de Christophe Bidan et de Jacques Fournier.

Soutenue le 16-12-2021

à Rennes 1 , dans le cadre de MATHSTIC , en partenariat avec Institut de recherche en informatique et systèmes aléatoires (Rennes) (laboratoire) et de CIDRE (laboratoire) .

Le président du jury était Régis Leveugle.

Le jury était composé de Guy Gogniat, David Monniaux, Karine Heydemann, Clémentine Maurice, Ronan Lashermes.

Les rapporteurs étaient Guy Gogniat, David Monniaux.


  • Résumé

    Les processeurs sont des composants électroniques omniprésents dans notre quotidien. On en retrouve dans nos téléphones, nos ordinateurs, les serveurs internet etc. Ils sont notamment responsables de l'exécution des calculs et ont donc accès aux données du système. Depuis de nombreuses années, des travaux ont montré des problèmes d'isolation entre les utilisateurs d'un même processeur. En exécutant du code, il devient possible pour un attaquant d'influer sur l'exécution ou de retrouver des informations d'un autre utilisateur. Cette menace s'est amplifiée jusqu'à la découverte en 2018 de Spectre et Meltdown, des attaques complexes et affectant une grande majorité des processeurs modernes. Cette thèse vise à repenser la conception des processeurs pour mettre en place efficacement de nouvelles contraintes de sécurité. Elle s'intéresse plus particulièrement à la mise en place de protections contre les attaques par variations temporelles. Le premier axe exploré est le rôle du jeu d'instructions. Initialement, celui-ci a principalement un rôle fonctionnel: il définit les instructions utilisables par le logiciel et réalisées par le matériel. Il représente l'interface entre ces deux mondes. En le modifiant, il devient donc possible pour le logiciel d'indiquer ses contraintes de sécurité au matériel qui doit alors s'adapter. La stratégie adoptée dans cette thèse est la contextualisation, qui permet d'associer temporellement et spatialement chaque information à un domaine de sécurité. Le second axe exploré est la modification de la microarchitecture du processeur elle-même. À partir des informations reçues, le matériel doit être capable de respecter les contraintes de sécurité. Des principes de conception génériques ont donc été définis pour modifier les mécanismes internes du processeur, et notamment la gestion des ressources partagées. Ils s'articulent autour de trois méthodes: allocation statique des ressources, partitionnement et effacement des traces. Pour évaluer ces principes, deux processeurs ont été modifiés. Ils implémentent différents mécanismes susceptibles de générer des fuites d'informations. Les résultats montrent que cette approche est efficace pour isoler des exécutions différentes sur un processeur. Dans le cas du partage simultané du processeur, on observe un compromis au niveau des implémentations possibles entre les performances visées et le coût des mécanismes utilisés. La suite de ces travaux concerne l'étude de ce compromis au niveau matériel, mais aussi l'adaptation du logiciel à ce nouveau jeu d'instructions.

  • Titre traduit

    Ensuring microarchitectural isolation in processors


  • Résumé

    Processors are electronic components omnipresent in our daily lives. They are in our smartphones, computers, web servers etc. Processors are responsible for executing the different operations and then have access to system data. For many years, studies have shown the isolation issue between users of the same processor. By executing code, it becomes possible for an attacker to influence the execution or recover information from another user. This threat has grown until the discovery in 2018 of Spectre and Meltdown, complex attacks targeting the most modern processors. This thesis aims to rethink processor designs to efficiently implement security constraints. It particularly focuses on the implementation of protections against timing attacks. The first explored axis is the role of the instruction set. Initially, it mainly has a functional role: it defines the instructions usable by the software and implemented by the hardware. It represents the interface between these two worlds. Its modification can allow a communication between hardware and software about security. The strategy developed in this thesis is the use of contextualisation, allowing each piece of information to be associated temporally and spatially to a security domain. The second axis is the modification of the processor microarchitecture itself. Based on the information received, the hardware must be able to respect the security constraints. Generic design principles have been defined to modify the processor's internal mechanisms, and particularly shared resources. They are based on three methods: static allocation, partitioning and flush. To evaluate these principles, two processors are modified. They implement different mechanisms that can generate information leakage. The results show that this approach is efficient to isolate different executions on the same processor. For the simultaneous sharing of the processor, a trade-off must be considered between performances and the cost of the implemented mechanisms. Future works should aim at studying this compromise at the hardware level, but also the adaptation of the software to this new instruction set.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse\u00a0?

  • Bibliothèque : Université de Rennes I. Service commun de la documentation. Bibliothèque de ressources en ligne.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.