Le désassemblage par canaux auxiliaires (ou Side Channel Based Disassembling, SCBD) consiste à retrouver le code exécuté par un microprocesseur à partir de phénomènes physiques produits par le circuit lors de son fonctionnement. La consommation de courant ou encore le rayonnement électro-magnétique sont particulièrement exploitables par ce type d’attaques.
À ce jour, le désassemblage par canaux auxiliaires a été démontré faisable sur des microcontrôleurs 8 bits. Cependant, la faisabilité du désassemblage par canaux auxiliaires sur des processeurs complexes (comme ceux que l’on peut trouver sur des smartphones) reste un problème peu traité dans l’état de l’art. Pourtant, il est essentiel de bien caractériser ce paradigme d’attaque qui peut fortement nuire à la sécurité d’un système.
Comparé à un microcontroleur 8-bit, un processeur moderne va embarquer une microarchitecture beaucoup plus évoluée : un pipeline profond, des mémoires caches, des prédicteurs de branchements ou d’accès mémoires. Ces cœurs sont même souvent capables d’exécuter plusieurs instructions en parallèle (processeur superscalaire) voire même de réordonnancer les instructions (exécution Out-of-Order): tous ces éléments ajoutent énormément d’aléa au comportement du circuit.

Cet exposé sera axé autour de deux questions principales:
1. Est-il possible d’effectuer du désassemblage par canaux auxiliaires sur des
processeurs complexes et via quelles techniques ?
2. Comment est-il possible de protéger un programme contre le SCBD ?
 

Commence le
Finit le
Europe/Paris