Description
Est-ce que votre dernier programme fonctionnerait si je sautais une ligne de code ? Deux ? Si je corrompais une variable aléatoirement ? Alors il ne résiste pas aux _attaques par injection de faute_, qui ciblent le matériel et produisent ce type d'effets. Pour être honnête, rien n'y résiste vraiment. Les efforts pour s'en protéger ont malgré tout bien progressé, principalement (et c'est peut-être contre-intuitif) en durcissant le code, qui se déploie bien plus facilement que le matériel. Naturellement, modéliser l'effet d'une interférence matérielle au niveau d'abstraction d'un programme est fondamentalement une approximation, et des travaux récents ont montré que même les protections contre des modèles au niveau assembleur (les plus courants) peuvent être contournées en abusant des effets micro-architecturaux perdus dans l'approximation.
Dans cette présentation non-experte, je parlerai des attaques en faute du point de vue langages de programmation, pour montrer comment les fautes et contremesures affectent les programmes. Je déroulerai comment la construction d'un modèle sémantique pour un saut d'instruction vicieux nous amène à une contremesure mixte logicielle/matérielle que l'on peut formellement prouver correcte. Je discuterai brièvement des défis d'implémenter des transformations de sécurité dans la compilateur LLVM, qui comprend à peu près aussi bien la sécurité que le C (i.e., pas du tout). Cette petite histoire contiendra à la fois des règles d'inférence et des relocalisations à l'édition des liens.
Infos pratiques
Prochains exposés
-
HDL simulation for Masked Software Verification
Orateur : Quentin Meunier - Sorbonne Univ. Lip6
Masking is a countermeasure against Side-Channel Attacks (SCA) that aims to ensure that intermediate computations in an algorithm have secret-independent distributions through the use of random variables. This theoretically prevents SCAs, as power consumption is directly linked to the values manipulated by the program or hardware device. Designing a masking scheme is often non-trivial, and a[…]-
SemSecuElec
-
Side-channel
-
-
Étude, caractérisation et détection de verrouillage d'anneaux oscillants utilisés dans les générateurs de nombres aléatoires.
Orateur : Eloise Delolme - LabHC
Les générateurs de nombres aléatoires matériels basés sur des oscillateurs en anneau (RO-TRNGs) exploitent le jitter d’horloge comme source d’aléa afin de produire des séquences de bits aléatoires. Parmi ces architectures, le MURO-TRNG repose sur un modèle stochastique complexe qui suppose notamment l’indépendance des oscillateurs. Toutefois, dans la pratique, les oscillateurs en anneau sont[…]-
SemSecuElec
-
TRNG
-
-
Chamois: Formally verified compilation for optimisation and security
Orateur : David MONNIAUX - CNRS - Verimag
Embedded programs (including those on smart cards) are often developed in C and then compiled for the embedded processor. Sometimes they are modified by hand to incorporate countermeasures (fault attacks, etc.), but care must be taken to ensure that this does not disrupt normal program execution and that the countermeasure is actually adequate for blocking the attacks.In the process, it is[…]-
SemSecuElec
-
Fault injection
-
Formal methods
-
-
Securing processor's microarchitecture against SCA in a post-quantum cryptography setting
Orateur : Vincent MIGLIORE - LAAS-CNRS
Hardware microarchitecture is a well-known source of side-channel leakages, providing a notable security reduction of standard cryptographic algorithms (e.g. AES) if not properly addressed by software or hardware. In this talk, we present new design approaches to harden processor's microarchitecture against power-based side-channel attacks, relying on configurable and cascadable building blocks[…]-
SemSecuElec
-
Side-channel
-
Micro-architectural vulnerabilities
-