Thèse soutenue

Sécurisation de l’exécution des applications contre les attaques par injection de fautes par une contre-mesure intégrée au processeur

FR  |  
EN
Auteur / Autrice : Thomas Chamelot
Direction : Karine HeydemannDamien Couroussé
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 28/11/2022
Etablissement(s) : Sorbonne université
Ecole(s) doctorale(s) : École doctorale Informatique, télécommunications et électronique de Paris
Partenaire(s) de recherche : Laboratoire : Laboratoire d'intégration des systèmes et des technologies (Gif-sur-Yvette, Essonne ; 2001-....)
Jury : Président / Présidente : Roselyne Chotin-Avot
Examinateurs / Examinatrices : Vincent Beroulle
Rapporteurs / Rapporteuses : Lilian Bossuet, Guy Gogniat

Résumé

FR  |  
EN

Les systèmes embarqués numériques sont omniprésents dans notre environnement quotidien. Ces systèmes embarqués, par leur caractère nomade, sont particulièrement sensibles aux attaques dites par injection de fautes. Par exemple, un attaquant peut injecter une perturbation physique dans un circuit électronique pour compromettre les fonctionnalités de sécurité du système. Originellement utilisées pour compromettre des systèmes cryptographiques, ces attaques permettent aujourd'hui de cibler n'importe quel type de système. Ces attaques permettent notamment de compromettre l'exécution d'un programme. Dans ce manuscrit, nous introduisons une nouvelle propriété de sécurité pour protéger l'exécution des instructions dans la microarchitecture: l'intégrité d'exécution. À partir de cette propriété, nous décrivons le concept de SCI-FI, une contre-mesure qui assure la protection de l'intégralité du chemin d'instructions en assurant l'intégrité du code, du flot de contrôle et d'exécution. Pour cela, nous construisons un vecteur de bits que nous appelons pipeline state à partir de signaux de contrôle dans la microarchitecture. À partir du pipeline state, deux modules s'articulent pour assurer les propriétés de sécurité. Le premier module calcule une signature à partir du pipeline state assurant ainsi l'intégrité du code, du flot de contrôle et une partie de l'intégrité d'exécution. Le second module complète l'intégrité d'exécution dans la microarchitecture en utilisant un mécanisme de redondance. Nous proposons également le support et la sécurisation des branchements indirects et des interruptions, nécessaires pour la conception de systèmes embarqués. Nous réalisons deux imPlémentations de SCI-FI, l'une construite sur une primitive cryptographique assurant un niveau de sécurité maximal et l'autre plus légère construite sur une fonction CRC privilégiant les performances. Pour cela, nous intégrons SCI-FI dans un processeur RISC-V 32 bits et modifions la chaîne de compilation LLVM. Nous réalisons une analyse de sécurité des différents éléments qui composent SCI-FI dans chaque implémentation. Nous montrons ainsi que SCI-FI, même avec l'implémentation privilégiant les performances, est robuste face à un attaquant disposant de moyens d'injection de fautes à l'état de l'art. Enfin, nous évaluons les performances de nos implémentations par une synthèse dans un flot de conception ASIC et par l'exécution en simulation de la suite de test Embench-IOT. Nous montrons ainsi que SCI-FI a des performances équivalentes aux contre-mesures de l'état de l'art tout en assurant une propriété de sécurité supplémentaire, l'intégrité d'exécution.