Suite au développement des objets connectés, les systèmes électroniques embarqués deviennent de plus en plus complexes et intelligents. Ils contiennent pour la plupart des informations personnelles comme les données bancaires, biométriques ou de santé.
Dans le but d’assurer la confidentialité et l’intégrité de ces données, les informations sensibles sont protégées par des systèmes cryptographiques. Paradoxalement, si l’implémentation logicielle et matérielle du système cryptographique n’est pas effectuée avec une grande prudence, l’utilisation d’algorithmes de chiffrement rend les composants embarqués sensibles à de nombreuses attaques.Parmi ces attaques, une famille d’attaques appelée attaques par canaux auxiliaires, aussi connues sous leur appellation anglaise Side-Channel Attacks (littéralement, attaques par canaux cachés), exploite les grandeurs physiques (consommation de courant, émissions électromagnétiques, émissions lumineuses, etc.) observables lors de l’exécution d’un algorithme cryptographique par le circuit intégré afin d’en extraire de l’information sur le secret manipulé.
Cette approche offensive de la sécurité permet de retrouver les clefs secrètes utilisées par des cryptosystèmes pourtant prouvés mathématiquement sûrs et réputés incassables. Les implémentations sur circuits intégrés induisent des fuites liées au traitement des données. Ainsi, les portes logiques telles qu’elles sont actuellement conçues (technologie CMOS) dissipent de l’énergie, de façon corrélée avec la séquence de données manipulées. Afin d’exploiter ce phénomène et de mesurer cette dissipation, les attaques par canaux auxiliaires nécessitent un minimum de matériel pour l’acquisition des signaux et la minimisation de l’impact des bruits parasites sur les grandeurs physiques. La figure ci-dessous montre les différents éléments pour réaliser une attaque par analyse de consommation :
Illustration de l’attaque par analyse de consommation sur un cryptoprocesseur non-protégé
Ces attaques peuvent être invasives, par l’isolation du composant électronique et la mise à nu du circuit physiquement, semi-invasives, par la perturbation temporaire de la cible embarquée durant son fonctionnement, ou non-invasives, par la mesure de paramètres physiques extérieurs au matériel pendant son activité, sans toucher à son intégrité physique. Ces attaques physiques se basent généralement sur une connaissance approfondie de l’architecture du matériel et portent sur différents types de données :
De cette façon, il existe un grand nombre d’attaques par canaux auxiliaires et donc d’autres sources d’information qu’un acteur malveillant est susceptible d’exploiter. Les attaques physiques peuvent être divisées en deux catégories : profilées et non-profilées, selon qu’elles requièrent une phase d’apprentissage sur un échantillon de courbes afin de caractériser le circuit cible (comme les attaques par templates, les attaques stochastiques, les attaques utilisant des techniques d’apprentissage automatique…) ou qu’elles ne nécessitent pas une telle étape (comme les attaques temporelles, les analyses simples de consommation, les analyses différentielles de consommation, les analyses par corrélation, les attaques par analyse de l’information mutuelle…).
Les contre-mesures qui permettent de lutter contre les SCA avancées peuvent être divisées en deux catégories principales :
Les contre-mesures de la première catégorie peuvent agir à différents niveaux : directement au niveau matériel par l’utilisation de circuits limitant les fuites par leur conception telle que la logique dual-rail, ou simplement par l’ajout de bruit. Au niveau logiciel, le rapport signal-bruit peut-être également diminué par l’implémentation de techniques visant à désynchroniser les observations des grandeurs physiques dans le domaine temporel. Cela est habituellement implémenté sous forme de délais aléatoires, ou bien, si le contexte le permet, l’exécution des instructions dans un ordre aléatoire. Cette dernière technique peut éventuellement être utilisée en conjonction avec des opérations factices pour cacher une vraie opération parmi n fausses.
En revanche, les méthodes de masquage des données consistent à partager le secret en plusieurs morceaux. Ceci oblige l’attaquant à obtenir de l’information sur plusieurs variables s’il veut retrouver le secret et puisque les informations sur chaque variable sont bruitées, il devient plus difficile d’identifier le secret manipulé par le système-cible.
Pour conclure, même si la sécurité d’un système cryptographique est mathématiquement prouvée, son implémentation matérielle peut être sujette à des fuites d’information. D’où l’importance d’avoir une bonne connaissance de l’ensemble des attaques qui pourraient menacer les algorithmes cryptographiques et ce, dans le but de renforcer la sécurité du système embarqué en combinant intelligemment plusieurs contre-mesures.
Réda, Consultant Sécurité chez Akerva