Sécurisation systématique d'applications embarquées contre les attaques physiques / Julien Proy ; sous la direction de Albert Henri Cohen et de Karine Heydemann

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : français / French

Informatique

Classification Dewey : 005.8

Cohen, Albert Henri (1973-....) (Directeur de thèse / thesis advisor)

Heydemann, Karine (19..-....) (Directeur de thèse / thesis advisor)

Dutertre, Jean-Max (1972-....) (Président du jury de soutenance / praeses)

Goubin, Louis (1970-....) (Rapporteur de la thèse / thesis reporter)

Rohou, Erven (19..-....) (Rapporteur de la thèse / thesis reporter)

Couroussé, Damien (1979-....) (Membre du jury / opponent)

Berzati, Alexandre (1984-....) (Membre du jury / opponent)

Université de Recherche Paris Sciences et Lettres (2015-2019) (Organisme de soutenance / degree-grantor)

École doctorale Sciences mathématiques de Paris centre (Paris ; 2000-....) (Ecole doctorale associée à la thèse / doctoral school)

École normale supérieure (Paris ; 1985-....). Département d'informatique (Laboratoire associé à la thèse / thesis associated laboratory)

École normale supérieure (Paris ; 1985-....) (Autre partenaire associé à la thèse / thesis associated third party)

Résumé / Abstract : La sécurité des systèmes embarqués contenant des données sensibles est un enjeu crucial. La disponibilité de ces objets en fait une cible privilégiée pour les attaques physiques, nécessitant l'ajout de protections matérielles et logicielles. La recherche de réduction des coûts de développement pousse les industriels à opter pour du déploiement automatique de protections. L'objet de la thèse consiste à étudier l'intégration de contre-mesures logicielles contre les attaques par faute dans les outils de développement, en particulier dans le compilateur, afin d'automatiser l'application de contre-mesures variées. Pour cela, nous proposons deux schémas de protection génériques et automatiquement déployables contre ces attaques : un dédié à la sécurisation des boucles et le deuxième à la sécurisation du graphe d'appel. Ces schémas spécifiques, intégrés dans un même compilateur (LLVM) permettent la sécurisation de parties sensibles et choisies du code limitant ainsi leur surcoût en performances. Les fautes exploitables variant d'un composant à l'autre, nous proposons également une caractérisation des effets des fautes au niveau du jeu d'instructions sur une plateforme intégrant un processeur superscalaire typique des téléphones mobiles. Ces travaux montrent la nécessité d'étudier les injections de faute sur des plateformes complexes, de concevoir de nouveaux schémas de protection adaptés, et de continuer à intégrer dans un même compilateur plus de schémas de sécurisation.

Résumé / Abstract : The security of embedded systems containing sensitive data has become a main concern. These widely deployed devices are subject to physcial attacks, requiring protections both in hardware and software. The race for higher productivity and shorter time to market in the deployment of secure systems pushes for automatic solutions. This thesis studies the integration of software countermeasures against fault attacks in development tools, with a special focus on the compiler. The goal is to enable the automatic application, at compilation time, of a wide range of countermeasures. We propose two protection schemes against these attacks which can be automatically deployed: one scheme dedicated to loop control flow and the second dedicated to the protection of the call graph. These schemes, integrated in the LLVM compiler framework, allow to focus security application on sensitive areas of the targeted code, thus limitating the overhead. Faults that can be exploited are different from a device to another, we thus also provide an ISA-level characterization of fault effects on a superscalar processor representative of mobile phones. This work highlights the need of studying fault effects on more complex platforms, leading to the design of new protection schemes and automating their compilation-time application.