Thèse soutenue

Garantir l’isolation microarchitecturale des processeurs

FR  |  
EN
Auteur / Autrice : Mathieu Escouteloup
Direction : Christophe BidanJacques Fournier
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 16/12/2021
Etablissement(s) : Rennes 1
Ecole(s) doctorale(s) : MATHSTIC
Partenaire(s) de recherche : Laboratoire : Institut de recherche en informatique et systèmes aléatoires (Rennes) - CIDRE
Jury : Président / Présidente : Régis Leveugle
Examinateurs / Examinatrices : Guy Gogniat, David Monniaux, Karine Heydemann, Clémentine Maurice, Ronan Lashermes
Rapporteurs / Rapporteuses : Guy Gogniat, David Monniaux

Résumé

FR  |  
EN

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.