Sécurisation à la compilation de logiciels contre les attaques en fautes - CEA - Commissariat à l’énergie atomique et aux énergies alternatives Access content directly
Theses Year : 2017

SECURING SOFTWARE AGAINST FAULT ATTACKS AT COMPILE TIME

Sécurisation à la compilation de logiciels contre les attaques en fautes

Abstract

Embedded systems are increasingly present in our daily lives (e.g. credit cards, smartphones and biometric passports). Given the sensitivity of the data they handle, the safety of these systems has become a major concern for industry and state organizations. It is established that a fault injection in an embedded system can compromise the security of the data it contains, for example obtaining a secret key or bypassing an authentication mechanism.The goal of this thesis is the automatic generation of software protections against fault injection attacks on embedded systems. The source and binary approaches consist in inserting the protections respectively in the source and binary code of the application; this thesis explores the use of a compilation approach that consists in integrating the protections in the compiler.We propose an LLVM-based compiler allowing the automated application of several protection schemes during compilation: (1) a tolerance scheme against instruction-skip, (2) a control flow integrity scheme (CFI) to ensure the validity of the followed execution path and (3) and a scheme that combines CFI and instruction integrity, guaranteeing both the validity of followed execution path but also that no instruction along this path has been skipped or altered. Our approach based on a modified compiler allows making code protection and code optimization coexist, thus enabling the generation of a secure and optimized binary code in terms of memory footprint and execution time. We developed a fault simulator to validate the robustness of our protection schemes with respect to the considered fault models.This thesis shows that the compilation approach is a good compromise between the source approach that does not guarantee the integrity of security properties in the final binary code due to optimizations performed by the compiler, and the binary approach that considerably impacts the performance of the secure application due to the various necessary transformations.
Les systèmes embarqués sont de plus en plus présents dans notre quotidien (e.g. cartes de crédits, smartphones, passeports biométriques). Compte tenu de la sensibilité́ des données qu’ils manipulent, la sécurité́ de ces systèmes est aujourd’hui une préoccupation majeure pour les industrielles et les organismes étatiques. Il est établi qu’une injection de faute dans un système embarqué permet de compromettre la sécurité́ des données qu’il contient, par exemple obtenir une clé́ secrète ou outrepasser un mécanisme d’authentification.L’objet de cette thèse est la génération automatisée de protections logicielles contre les attaques par injection de fautes sur les systèmes embarqués. Les approches source et binaire consistent à insérer les protections respectivement dans le code source et binaire de l’application. Cette thèse explore l’utilisation d’une approche compilation consistant à intégrer les protections dans le compilateur.Nous proposons un compilateur basé sur LLVM permettant l’application de plusieurs schémas de protection : (1) un schéma de tolérance aux sauts d’instructions, (2) un schéma d’intégrité́ de flot de contrôle (CFI) permettant de garantir la validité́ du chemin d’exécution suivi et (3) un schéma combinant CFI et intégrité́ des instructions, garantissant à la fois la validité́ du chemin d’exécution suivi et aussi qu’aucune instruction le long de ce chemin n’a été́ sautée ou altérée. Notre approche, basée sur un compilateur modifié, permet de faire coexister protection de code et optimisation de code, permettant ainsi de générer un code binaire sécurisé́ et optimisé en termes d’empreinte mémoire et de temps d’exécution. Nous avons développé́ un simulateur de faute afin de valider la robustesse de nos implémentations vis-à-vis des modèles de fautes considérés.Cette thèse montre que l’approche compilation est un bon compromis entre l’approche source qui ne garantit pas la conservation des propriétés de sécurité́ dans le code binaire dû aux optimisations réalisées par le compilateur et l’approche binaire qui impacte considérablement les performances de l’application sécurisée dû aux différentes transformations nécessaires.
Fichier principal
Vignette du fichier
barry-thierno-diff.pdf (2.93 Mo) Télécharger le fichier
Origin : Version validated by the jury (STAR)

Dates and versions

tel-01783995 , version 1 (02-05-2018)
tel-01783995 , version 2 (24-11-2021)

Identifiers

  • HAL Id : tel-01783995 , version 2

Cite

Thierno Barry. Sécurisation à la compilation de logiciels contre les attaques en fautes. Autre. Université de Lyon, 2017. Français. ⟨NNT : 2017LYSEM037⟩. ⟨tel-01783995v2⟩
443 View
493 Download

Share

Gmail Facebook X LinkedIn More