Une attaque par canal auxiliaire (side-channel) exploite non pas une faiblesse mathématique d'un algorithme, mais les fuites d'information de son implémentation : temps d'exécution, consommation électrique, rayonnement électromagnétique, bruit, comportement du cache processeur. La cible est le secret manipulé — clé, code PIN, gabarit biométrique.
Les principales familles
- Temporelle : la durée d'une comparaison ou d'une multiplication dépend des données traitées ;
- Analyse de consommation : simple ou différentielle, elle corrèle la puissance appelée aux opérations exécutées, méthode classique contre les cartes à puce ;
- Électromagnétique : même principe, à distance et sans contact ;
- Micro-architecturale : caches partagés, exécution spéculative, prédiction de branchement ;
- Attaques par faute : perturbation volontaire — tension, horloge, laser — pour provoquer un calcul erroné et en déduire le secret.
Les contre-mesures, et leur coût
On répond par des implémentations à temps constant, du masquage des valeurs intermédiaires, l'introduction de bruit ou d'aléa, des composants durcis et la détection de fautes. Ces protections sont coûteuses et doivent être maintenues : une optimisation de compilateur peut réintroduire une dépendance aux données.
Une autre voie consiste à retirer sa valeur à l'observation. Si les paramètres du calcul changent d'une exécution à l'autre — logique de Moving Target Defense et de polymorphisme fonctionnel —, les mesures accumulées ne portent plus sur un même secret stable, et l'analyse statistique perd sa prise.
Aller plus loin : le MTD contre les attaques side-channel · définition du Moving Target Defense · certificat et carte à puce face au side-channel · l'authentification cognitive