• Aucun résultat trouvé

Les mod`eles de perturbation

Dans la section pr´ec´edente, nous avons d´ecrit les m´ethodes de perturbation les plus util- is´es en pratique et nous avons d´etaill´e les effets induits pour chacune d’entre elles. `A partir de cette description, il est possible d’´elaborer des mod`eles de perturbation qui d´ecriront, plus ou moins pr´ecis´ement, les effets que l’on peut esp´erer obtenir en perturbant un composant cryp- tographique.

2.3.1 Types de perturbation

Classiquement, on distingue deux grands types de perturbations. Comme leur nom l’indique, les perturbations permanentes consistent `a r´ealiser une modification d´efinitive d’une cellule m´e- moire ou d’un circuit. Cette modification peut concerner des variables en m´emoire et du code contenus dans de la m´emoire non volatile, ou encore le cablage du circuit (d´ecoupage d’un fil). Un exemple d’utilisation de ce mod`ele est pr´esent´e dans une attaque contre l’implantation de la signature RSA (cf. Section 2.4.2).

Cependant, les perturbations peuvent aussi avoir des effets ´eph´em`eres. On parle alors de perturbations transitoires . Ces perturbations ont pour effets de modifier temporairement l’ex´e- cution de code ou d’une op´eration. En particulier, le composant retrouve son comportement original apr`es une r´einitialisation, ou lorsque la source de la perturbation n’´emet plus de sig- naux compromettants. La perturbation de donn´ees en RAM, persistant tant que la donn´ee n’est pas ´ecras´ee ou effac´ee (e.g. par une r´einitialisation du composant), est un exemple typique de perturbation transitoire. Ce type de faute est certainement le plus ´etudi´e et le plus utilis´e pour attaquer les implantations d’algorithmes cryptographiques [BDJ+98, BDL97, Gir05a].

2.3.2 Mod´elisation des effets de perturbations

Suivant les moyens choisis par l’attaquant pour injecter des fautes sur un composant cryp- tographique, diff´erents mod`eles de perturbations pourront ˆetre consid´er´es. La mod´elisation for- malise les effets qu’il est possible d’obtenir sur un composant cryptographique (i.e. perturbation al´eatoire ou ´ecrasement d’une donn´ee, d´eroutement) et permet d’exploiter les sorties erron´ees. Le mod`ele doit, en outre, tenir compte des aptitudes de l’attaquant `a contrˆoler les perturbations (localisation spatiale et temporelle, nombre de bits perturb´es). Plusieurs mod`eles apparaissent dans la litt´erature [Gir05c, BO06, Ott04], en nous inspirant de ces derniers, avons donc choisi d’opter pour la classification suivante. Tous les mod`eles de perturbation que nous allons pr´esenter formalisent des effets observ´es exp´erimentalement.

2.3. Les mod`eles de perturbation 2.3.2.1 Modification de la valeur d’un bit

Dans ce mod`ele, on suppose qu’un attaquant a la possibilit´e de modifier la valeur d’un bit. Cette modification peut ind´ependamment basculer la valeur du bit17 ou ´ecraser la valeur pour la fixer `a 0 ou 118. Dans le mod`ele le plus contraint, la localisation du bit perturb´e peut ˆetre maˆıtris´ee par l’attaquant. Ce mod`ele de perturbation est le plus ancien et a ´et´e consid´er´e pour at- taquer de nombreuses implantations d’algorithmes cryptographiques [BDL97, BMM00, Gir05a], et particuli`erement dans le cadre des algorithmes de chiffrement `a flot [BS97, BCC+09, KY09]. Cependant, ce mod`ele semble aujourd’hui d´epass´e par rapport `a l’´evolution des m´ethodes de protections incluses dans les composants r´ecents (chiffrement des m´emoires, d´etection/corrections d’erreurs). Il est donc relativement difficile `a mettre en pratique sur les composants actuels. Malgr´e tout, ce mod`ele reste int´eressant car il permet de d´ecrire assez simplement les principes d’attaques qui pourront ˆetre ensuite ´etendus `a des mod`eles moins contraints.

2.3.2.2 Modification de quelques bits

Un autre mod`ele consiste `a consid´erer que plusieurs bits peuvent ˆetre modifi´es par l’injec- tion d’une seule perturbation. Ce mod`ele prend en compte le fait que les composants actuels sauvegardent et chargent les donn´ees par blocs, dont la taille correspond aux sp´ecificit´es de leur architecture. Typiquement, on consid`ere que les perturbations alt`erent la valeur d’un octet entier mais ceci pourra tout `a fait ˆetre ´etendu `a des composants bas´es sur des architectures 16 bits, voire 32 bits. Le spectre de ce mod`ele couvre ´egalement les fautes visant un bit sp´ecifique de la m´emoire mais dont les effets se propagent sur les bits voisins. Ce ph´enom`ene est particuli`erement courant dans la pratique. Le nombre de bits perturb´es devra ˆetre born´e pour permettre `a un attaquant de retrouver l’erreur induite par une recherche exhaustive.

Contrairement au mod`ele pr´ec´edent, celui-ci est consid´er´e comme r´ealiste car il refl`ete v´eri- tablement des effets de perturbations observ´es et permet d’exploiter des cas r´eels de pertur- bations [DLV03, Gir05a, GK04]. Comme nous l’avons dit pr´ec´edemment, ce mod`ele est partic- uli`erement adapt´e aux perturbations intervenant pendant la lecture ou le chargement de don- n´ees. D’autre part, lorsque la m´emoire est chiffr´ee ou cod´ee par blocs, la modification d’un ou de quelques bits du bloc se propagera sur l’ensemble du bloc au moment du d´echiffre- ment/d´ecodage. Par ailleurs, suivant les contre-mesures utilis´ees pour prot´eger les m´emoires (brouillage des adresses), la localisation spatiale de la faute sera plus ou moins difficile.

Pour ces diff´erentes raisons, nous avons choisi ce mod`ele, pour r´ealiser diff´erentes attaques contre les cl´es publiques d’implantations d’algorithmes de signature ´electronique.

2.3.2.3 Modification al´eatoire

Dans le dernier mod`ele consid´er´e, les fautes sont inject´ees de telle sorte que l’attaquant ne puisse pas identifier la nature de la perturbation induite. Dans ce cas, ni la localisation spatio-temporelle de la perturbation, ni le nombre de bits modifi´es ne peuvent ˆetre identifi´es par l’attaquant. ´Evidemment, ce mod`ele de perturbation est le plus facile `a r´ealiser en pratique mais, bien souvent, il est aussi le plus difficile `a exploiter. Cependant, il a d´ej`a ´et´e suffisant pour d´emontrer la vuln´erabilit´e de certaines implantations [YKLM01].

L’utilisation de ce mod`ele est motiv´ee par la multitude de m´ethodes de protections qui peu- vent ˆetre d´eploy´ees sur des composants s´ecuris´es modernes. En effet, le chiffrement de la m´emoire,

17. bit-flip fault model dans la litt´erature 18. Stuck-at fault model dans la litt´erature

Chapitre 2. Les attaques par perturbation

le brouillage d’adresse ou encore l’utilisation d’horloges asynchrones et al´eatoires sont autant de facteurs limitant le contrˆole des fautes inject´ees. Bien qu’il soit tr`es int´eressant d’imaginer des attaques suivant ce mod`ele, les concepteurs de solutions s´ecuris´ees devront, en revanche se m´efier d’un attaquant aussi faible. En effet, la s´ecurit´e de l’implantation d’un algorithme ne devra pas seulement reposer sur des mesures empˆechant le contrˆole des perturbations.

2.3.2.4 Perturbations multiples

L’id´ee de perturber plusieurs fois l’ex´ecution d’un composant a ´et´e publi´ee pour la premi`ere fois par C.H. Kim et J.-J. Quisquater [KQ07]. Dans cette application contre une implantation prot´eg´ee de RSA-CRT, le principe consiste `a r´ep´eter une attaque par impulsion ´electrique de mani`ere `a sauter des instructions `a deux moments distincts de l’ex´ecution. Dans ce cas pr´ecis, on peut parler d’analyse de perturbations de second-ordre [DGRS09]. Bien qu’il soit admis qu’un composant puisse ˆetre perturb´e plusieurs fois de la mˆeme mani`ere (e.g. attaque par impulsion ´electrique dans l’exemple pr´ec´edent), il est, en revanche, plus difficile d’imaginer un attaquant panachant diff´erentes m´ethodes pour perturber plusieurs fois la mˆeme ex´ecution. D’autre part, mˆeme si l’attaquant choisit d’utiliser la mˆeme m´ethode pour perturber un composant `a diff´erents instants, les effets induits sur le composant `a chaque injection de faute seront diff´erents en g´en´eral. Les perturbations multiples de composant, que ce soit spatiales ou temporelles, ont d´ej`a ´et´e r´ealis´ees avec succ`es dans certains laboratoires de tests et d’´evaluations.

Dans la suite de la th`ese, nous nous limiterons `a l’´etude des perturbations au premier ordre. Cependant, la possibilit´e de r´ealiser des fautes multiples devra ˆetre consid´er´ee pour la conception de composants s´ecuris´es.