Projet de recherche doctoral numero :4520

Description

Date depot: 1 janvier 1900
Titre: Analyse de robustesse et sécurisation de code assembleur soumis à des attaques physiques
Directrice de thèse: Karine HEYDEMANN (LIP6)
Directrice de thèse: Emmanuelle ENCRENAZ (LIP6)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini

Resumé: {{{Contexte}}} La sécurité des systèmes intégrés est une préoccupation de plus en plus importante. Les systèmes intégrés sur puce se développent pour de très nombreuses applications de la vie courante, et manipulent de plus en plus de données sensibles voire confidentielles. Ces systèmes sont la cible d’attaques, ces attaques sont actives ou passives, ou une combinaison des deux. Les attaques actives, dites en faute, ont pour but de modifier le comportement du système afin d’inférer des informations sur des données sensibles (clé cryptographique, éléments personnels et confidentiels, …). Les attaques passives, dites aussi par observation ou par canaux cachés, reposent sur l’analyse statistique d’une quantité (puissance, temps) mesurée lors de l’exécution du programme pour en déduire des informations. De nombreuses attaques ont pu être réalisées, et ce par différents moyens. Concernant les attaques en faute, cela peut être par modification du signal d’horloge [1] ou de la tension du système, par injection d’impulsion laser ou electro-magnétique [2]. Certains circuits présentent des mécanismes de protection permettant de résister à certains types d’attaque (power reduction / clock glitch) ; néanmoins ils restent vulnérables aux attaques par impulsion laser ou électro-magnétique. Coté attaque par canaux cachés, les circuits ou implémentations logicielles peuvent intégrer des contremesures basées sur l’équilibrage ou la randomisation [3]. La problématique est de s’assurer que les protections sont efficaces tout en limitant leur impact sur l’ensemble du système (performance, coût, etc.). La sécurisation des systèmes est une problématique actuelle et majeure qui gagne en importance autant dans le monde académique qu’industriel avec l’accroissement des objets connectés et en conséquence de la surface d’attaque. En pratique, la vulnérabilité des systèmes est analysée expérimentalement, ou à partir de modèles exécutables. L’analyse consiste à simuler les attaques et à estimer leurs effets. Il s’agit ici d’analyser le comportement macroscopique du système soumis à des fautes ou à modéliser ce qu’un attaquant par observation pourrait mesurer. Cette approche nécessite la mise en œuvre de très lourdes campagnes d’expérimentation (sur banc physique ou par prototypage virtuel). Elle permet toutefois de déduire les zones sensibles du système (registres ou portion de code à protéger en priorité), les chemins de propagation des fautes, les variables à masquer… Cette approche reste largement empirique, même si des approches statistiques permettent d’estimer la marge de confiance des résultats partiels obtenus par simulation [3]. Par ailleurs, les exigences de certification augmentent, ce qui induit une demande croissante d’utilisation de méthodes formelles pour donner des garanties sur la sécurité des systèmes développés. Les approches formelles peuvent être utilisées à différents niveaux pour évaluer la robustesse d’un système soumis à des attaques. Par exemple, au niveau circuit [5], [6], [7] et [8] ont proposé des méthodes complémentaires basées sur le model-checking [9] pour caractériser les comportements d’un système fauté. Au niveau programme source ou assembleur, des fautes de type « saut d’instruction » et « corruption de données » ont pu être analysées [10, 18, 21]. Les techniques de model-checking ont également été utilisées pour évaluer la robustesse d’un programme source vis-à-vis d’attaques par observation [11], [12]. Au niveau protocole cryptographique, la plate-forme ORCHID [13] et l’outil TOOKAN [14] permettent d’identifier des failles pour des attaques logiques (différentes des attaques en faute). D’autres approches formelles ont proposé des analyses conjointes matériel/logiciel ou des méthodes et outils pour estimer la vulnérabilité d’algorithmes ou implémentations cryptographiques [15, 16, 17]. La combinaison de protections pour se prémunir des deux types d’attaques mais aussi de leur combinaison reste peu étudiée alors que les approches combinées sont considérées comme réalisables et s’avèrent puissantes.

Doctorant.e: Ben El Ouahma Ines