• Aucun résultat trouvé

Les perturbations en pratique

Depuis l’introduction des attaques par perturbation, `a la fin des ann´ees 90, de nombreuses m´ethodes pour injecter des fautes ont ´et´e d´evelopp´ees. Dans cette section, nous allons d´etailler les m´ethodes parmi les plus utilis´ees, mais aussi apparaissant le plus souvent dans la litt´erature.

2.2.1 Attaques par impulsions ´electriques

Le principe consiste `a appliquer une variation br`eve sur la tension d’alimentation de la carte `a microprocesseur ou sur la fr´equence d’horloge. Ces attaques sont commun´ement appel´ees Glitch Attack dans la litt´erature [AK96, ABF+02, BECN+04].

Les attaques sur la tension d’alimentation peuvent ˆetre r´ealis´ees en provoquant soit un pic d’alimentation (sup´erieur `a la tension Vcc), soit une micro-coupure (tension comprise entre 0V et Vcc). De mani`ere g´en´erale, la perturbation de la tension d’alimentation peut provoquer une mauvaise interpr´etation, voire le saut d’une instruction de la part du microprocesseur.

Les variations de la fr´equence d’horloge, quant `a elles, peuvent provoquer un cadencement d’une partie de la logique sans que l’entr´ee ne soit encore stabilis´ee ou d´efinie. La sortie sera donc fauss´ee. Ainsi, les attaques sur la fr´equence d’horloge peuvent perturber des lectures de donn´ees en m´emoire comme l’ex´ecution de micro-instructions.

La mise en oeuvre de ce type d’attaque est peu coˆuteuse. En effet, les attaques par impul- sions ´electriques peuvent ˆetre r´ealis´ees avec un simple g´en´erateur de signal. Cependant, il est

2.2. Les perturbations en pratique relativement difficile d’utiliser cette m´ethode pour ne perturber qu’une partie sp´ecifique du com- posant ou ne cibler que certaines op´erations pendant l’ex´ecution d’une fonction cryptographique. D’autre part les cartes actuelles embarquent des contre-mesures mat´erielles, telles que des fil- tres ou des d´etecteurs de surtension, permettant de les prot´eger contre des signaux pouvant provoquer des erreurs. Notons enfin que les composants modernes fonctionnent sur une horloge interne d´ecorr´el´ee de l’horloge externe, ce qui rend les Glitch Attacks sur l’horloge quasiment inexploitables.

2.2.2 Attaques par illumination

Une autre m´ethode d’attaque consiste `a tirer profit de la sensibilit´e `a la lumi`ere des circuits ´electroniques. Une exposition br`eve d’un circuit ´electronique `a une source lumineuse puissante peut induire des courants additifs provoquant des erreurs dans les portes logiques illumin´ees. Ces attaques furent notamment introduites en 2002 par S. Skorobogatov et R. Anderson [SA02] en utilisant le flash d’un appareil photo pour basculer la valeur d’un bit d’une cellule de m´emoire. Cependant, les attaques par illumination ont ´et´e mises en pratique et utilis´ees concr`etement d`es le d´ebut des ann´ees 1990, dans le cadre d’´evaluations ITSEC, par Rapha¨el Bauduin au CNET de Caen.

De nos jours, les attaques par illuminations sont sans doute les plus utilis´ees pour perturber les composants. Mais, bien que, comme dans l’exemple pr´ec´edent, ces attaques puissent ˆetre r´ealis´ees avec des moyens peu on´ereux, on pr´ef`ere utiliser en pratique des lasers [BECN+04].

D’une part car la lumi`ere d’un flash peut ˆetre facilement d´etect´ee par des d´etecteurs int´egr´es `a la puce. Mais surtout car l’utilisation de tirs lasers permet une grande pr´ecision spatiale (zone de la puce `a perturber) et temporelle (instant et dur´ee d’une impulsion). L’utilisation de sources lumineuses offre un large spectre de perturbations possibles puisque les principaux effets associ´es sont la modification de donn´ees en m´emoire (ou d’adresses, ou de codes d’op´erations) ainsi que le d´eroutement de processus. De r´ecents travaux ont montr´e que la r´ealisation de tirs lasers sur la m´emoire RAM pouvaient permettre de modifier la configuration de certains FPGAs, induisant les effets pr´e-cit´es [CMV+09, Can09].

Bien que ce type d’attaque soit tr`es efficace, certains inconv´enients peuvent la rendre inutil- isable pour un novice. D’une part, les attaques par illumination n´ecessitent de mettre la puce `a nu afin que le rayon lumineux ´emis puisse atteindre le composant et provoquer les perturbations escompt´ees. Par ailleurs le coˆut d’un banc laser peut repr´esenter un obstacle financier pour cer- tains attaquants. Enfin, si la puissance ´emise par le laser est mal dos´ee, l’attaquant peut tout simplement d´etruire le composant cryptographique, ou le rendre inutilisable.

2.2.3 Attaques par impulsions magn´etiques

Cette attaque imagin´ee par J.-J. Quisquater et D. Samyde consiste `a ´emettre un champ magn´etique intense `a proximit´e du composant dont on souhaite perturber le bon fonction- nement [QS02]. Le champ magn´etique cr´ee des courants locaux (connus sous le nom de courants de Foucault) sur la surface du composant pouvant provoquer des fautes. De tels effets peuvent ˆetre obtenus en approchant une sonde charg´ee (i.e. un fil ´electrique aliment´e et enroul´e autour d’une aiguille pourra faire l’affaire) `a proximit´e de la surface du circuit.

L’efficacit´e de cette attaque pourra ˆetre am´elior´ee si le composant est d´ebarrass´e de la couche plastique le recouvrant. En effet, plus le champ magn´etique est appliqu´e pr`es du silicium et plus les courants induits seront intenses. Cette pr´eparation rend l’attaque semi-invasive. Enfin, la puissance du champ magn´etique comme sa dur´ee et la localisation de ces effets semblent ˆetre

Chapitre 2. Les attaques par perturbation relativement difficiles `a maˆıtriser en pratique.

D’autres m´ethodes d’attaques sont list´ees dans la litt´erature. C’est le cas de la variation de la temp´erature du composant [BECN+04]. Le principe consiste `a r´echauffer/refroidir le composant

de fa¸con `a l’utiliser au-del`a des temp´eratures de fonctionnement pr´econis´ees. Dans ce cas, deux effets sont principalement observ´es : modification al´eatoire des donn´ees en RAM et perturbations des op´erations de lecture/´ecriture. Une autre m´ethode consiste `a ´emettre un faisceau de rayons X ou d’ions lourds sur le composant [BECN+04].