• Aucun résultat trouvé

Les perturbations peuvent être provoquées de différentes manières, que ce soit par des variations de l’environnement ou encore par des injections électromagnétiques ou laser. Dans cette section, des méthodes de perturbation sont décrites.

3.1.1 Violation de contraintes temporelles

Les circuits sont cadencés par une horloge interne qui donne une référence temporelle, à intervalle régulier, aux différents composants du circuit. Les données des registres sont mises à jour à chaque front montant (ou descendant) de l’horloge. Pour assurer le bon déroulement de l’exécution, la période d’horloge doit être plus longue que le temps du chemin critique (che- min le plus long avec une marge pour les variations de fabrication et de fonctionnement). Le front d’horloge arrive toujours après la fin de la propagation des données les plus lentes. La modification cette cadence peut occasionner des perturbations.

Une diminution de la période modifie la cadence interne du circuit, pouvant entraîner une mauvaise sauvegarde des données. Avec cette méthode, un attaquant peut réaliser des at- taques, dites, d’Overclocking et de Glitch d’horloge. Une diminution de la tension d’alimentation est une autre source de modification de la cadence d’horloge. Elle a pour conséquence l’aug- mentation du chemin critique. Ainsi le cycle d’horloge peut devenir trop court pour sauvegarder les données. Une hausse de la température ou une variation électromagnétique peut avoir les mêmes implications qu’une diminution de la tension d’alimentation.

FIGURE3.2 – Configuration d’attaque [39]

(a) Sur un dispositif ouvert (b) Sur un dispositif non altéré

FIGURE3.3 – Sonde d’injection électromagnétique [39]

3.1.2 Injection électromagnétique

Une injection électromagnétique (EM), en plus de causer une violation de contraintes tem- porelles, peut permettre de modifier des valeurs dans le circuit. La faute engendrée est gé- néralement temporaire et peut être locale. Le matériel nécessaire pour une telle perturbation, illustré à la figure 3.2, est principalement constitué : d’un générateur d’impulsion, d’une an- tenne d’injection, d’un microcontrôleur. Le générateur d’impulsion est utilisé pour envoyer des impulsions à travers l’antenne, illustré à la figure 3.3. L’antenne d’injection, généralement un solénoïde1, peut fournir un champ électromagnétique fort.

1. « Un solénoïde est un dispositif constitué d’un fil électrique en métal enroulé régulièrement en hélice de façon à former une bobine longue. Parcouru par un courant, le solénoïde produit un champ magnétique dans son voisinage, et plus particulièrement à l’intérieur de l’hélice où ce champ est quasiment uniforme » (définition FuturaSciences)

FIGURE3.4 – Augmentation de la chaleur [65]

Cette méthode a été utilisée dans [39], sur un microcontrôleur 8 bits AVR, où un AES était implanté. Dans cette expérimentation, une faute a pu être effectuée sur un octet précis. De plus, cet octet a pu être sélectionné en choisissant le moment où la perturbation a été injectée. Avec des injections EM, l’attaque peut améliorer sa précision. En effet, il est possible de ne fauter qu’un seul bit. C’est ce que démontre [60], sur un FPGA, où un AES-128 est implanté. L’expérimentation est réalisée sur 340 000 textes clairs aléatoires différents. Finalement, sur ces 340 000 fautes, les auteurs arrivent à générer 13 497 sorties faussées d’un seul bit.

3.1.3 Variation environnement

Un circuit fonctionne correctement sous certaines conditions prévues par le concepteur. La variation des paramètres externes du circuit peut entraîner des perturbations. Ces paramètres externes peuvent être la température, la tension d’alimentation ou encore le rayonnement élec- tromagnétique. Comme expliqué dans la sous-section 3.1.1, une variation de la tension d’ali- mentation peut provoquer des violations de contraintes temporelles. Une baisse de la tension d’alimentation peut provoquer l’incapacité d’une bascule à mémoriser une nouvelle donnée. A contrario, une augmentation de la tension d’alimentation peut occasionner une accélération des éléments du circuit. Par conséquent, certaines instructions finissent plus tôt.

Lorsque la température du circuit varie en dehors des plages de fonctionnement prévues, une altération du circuit peut avoir lieu. Une modification aléatoire des bits de mémoire RAM, ou encore une impossibilité de la lecture de la mémoire non volatile sont des exemples d’altéra- tions possibles. Cette méthode fut utilisée dans [65], sur un microcontrôleur ATmega162 où un RSA est implanté, pour réaliser des fautes temporaires et permanentes. Pour cela, une plaque chauffante est utilisée, comme illustré à la figure 3.4 où le circuit est placé sur la plaque. Lors de l’expérimentation, les auteurs ont constaté qu’au-dessus de 160 degrés, l’ATmega162 ne répond plus aux requêtes. De plus, ils ont également remarqué que le dispositif effectue plus de fautes lorsque la température est comprise entre 152 et 158 degrés.

FIGURE3.5 – Attaques par injection de lumière [104]

3.1.4 Injection laser et par lumière blanche

Quand un photon, avec une énergie plus grande que 1.1eV, frappe un électron d’une plaque métallique, il est absorbé par ce dernier. L’électron est alors éjecté de sa position initiale créant un trou. Une paire « électron - trou » se forme. Si un courant électrique est présent à cet instant, alors l’électron et le trou se séparent. De plus, si cela se produit plus d’une fois, le courant in- jecté peut devenir suffisant pour qu’un transistor change d’état, provoquant une faute par tir(s) laser. Ce type de perturbation permet d’avoir une faute local sur le circuit. Une perturbation par lumière blanche peut permettre d’obtenir une faute plus globale. Par exemple, dans l’ar- ticle [104], un flash d’appareil photo est utilisé, par les auteurs, dans ce but, comme illustré à la figure 3.5.