Compilation for the Composition of Software Protections for Embedded Systems

De nos jours, les algorithmes de chiffrement ont atteint un niveau de maturite sans precedent, et leur surete s'avere mathematiquement prouvee. Cependant, une fois implementes sur un composant embarque, ces algorithmes font face a des attaques d’une autre nature appelees attaques physiques. Ces attaques sont classees en deux grands groupes : Celles qui sont basees sur l’observation du circuit en cours de fonctionnement, on parle d’attaque par canaux auxiliaires et celles qui consistent a analyser l’effet d’une perturbation intentionnelle du fonctionnement du circuit, on parle d’attaque par injection de faute. Dans l’etat de l’art actuel, on trouve des contre-mesures logicielles pour la plupart des attaques connues. Mais d'une part, ces contremesures sont a la fois appliquees manuellement, mais aussi au cas par cas. Et d'autre part, une etude recente a montre qu’une contremesure logicielle contre les attaques en fautes par exemple peut accroitre les chances de reussite d’une attaque de type mesure de consommation sur la meme implementation. D'ou la motivation de nos travaux qui consistent a etudier la possibilite de pouvoir articuler et composer de maniere automatique plusieurs contremesures logicielles au sein d’une chaine de compilation statique. Dans le cadre de cette presentation, nous presenterons l'etat de l'art des contremesures logicielles contre les attaques physiques. Nous presenterons le compilateur LLVM et les possibilites de transformation de code offertes par cet outil ainsi que les applications possibles a la securite logicielle. Et en fin nous presenterons nos premiers resultats sur l'application automatisee de protections contre les attaques en fautes.