• Aucun résultat trouvé

Description de la cible matérielle et du banc d’attaque

Amélioration des attaques par canaux auxiliaires contre les

Théorème 9. Sous l’hypothèse :

4.3 Réalisation pratique des attaques

4.3.1 Description de la cible matérielle et du banc d’attaque

Nous décrivons d’abord le dispositif qui sert de cible tout au long de la thèse ainsi que le banc d’acquisition qui sert pour les attaques par canaux auxiliaires.

Dispositif sous tests

La cible est un microcontrôleur 32 bits, implémenté en technologie CMOS130 nm, qui

peut être utilisée dans de nombreuses applications. Ce circuit intégré de base ne possède pas de protections matérielles. L’utilisation de ce dispositif doit se faire avec précaution

pour les applications cryptographiques. Il s’agit d’un ARM Cortex-M3 [Arm] sur une

carte de développement STM32F100 Value Line [STM], le processeur est cadencé à 24

MHz. La carte est présentée sur la figure 4.4.

L’opération ciblée par canaux auxiliaires dans les algorithmes de couplage est une multiplication modulaire. La méthode pour faire la multiplication modulaire va tou-jours impliquer des multiplications entre les mots machine des opérandes. C’est l’ins-truction assembleur UMULL qui a été utilisée à cet effet. Plus précisément, UMULL permet de faire une multiplication non signée avec des opérandes de 32 bits, et le résultat est renvoyé sur 64 bits.

Figure 4.4 – Carte de développement STM32F100 utilisée pour nos tests

Banc d’attaque

L’exécution de l’implémentation de l’algorithme crée les fuites physiques, elles ont ensuite exploitées par les attaques par canaux auxiliaires. Plus exactement, nos

ex-périences et celles d’autres chercheurs [NFM+17, FMN+14, ITK+16, BDGN14],

per-mettent d’assurer que les fuites d’informations sur les données manipulées sont liées aux accès dans les registres du dispositif. Un accès à un registre, qu’il soit en lecture ou en écriture, est le résultat d’une donnée qui transite à travers les Bus horizontaux du circuit. La donnée qui transite est un courant électrique : il crée un champ électro-magnétique autour de sa direction. Une des possibilités pour capter un tel champ est de placer une bobine au-dessus de celui-ci. Le champ électromagnétique causé par le

courant doit traverser les spires de la bobine (celui-ci est illustré en figure 4.5a). Ceci

explique la position horizontale de la bobine, la vue de dessus en figure4.5bmontre la

situation, la bobine est orthogonale à la direction du courant.

x y z Direction du courant Champ éléctromagnétique crée par le courant

Bobine

(a) Champ électromagnétique généré par le courant et capté par la bobine

z x y

Bobine Direction

du courant

(b) La bobine est orthogonale à la direction du courant (vue de dessus)

Figure4.5 – Illustration du champ électromagnétique généré par le courant et capté par la bobine

Une sonde électromagnétique est un outil qui embarque une bobine et donne une valeur analogique au champ mesuré. Une sonde qui permet de répondre aux besoins

explicités ci-dessus est la Langer EMV-Technik LF-U 5. Nous plaçons la sonde

au-dessus du circuit intégré sans décapsuler la puce. La position locale de la sonde permet d’être précis et de se positionner directement sur le capot de protection du circuit intégré.

La position de la sonde a son importance. Au vu de la description ci-dessus, des champs électromagnétiques mesurés, pour capter les transitements sur les Bus de don-nées, la bobine doit être placée au-dessus des Bus concernés. Nous essayons quelques positions au-dessus du circuit, puis, visuellement on cherche à observer des motifs qui se répètent. Par exemple, pour une multiplication modulaire de deux entiers sur 8 mots de 32 bits, il y a une boucle qui parcourt 8 mots, on cherche donc à identifier 8 motifs similaires. La cartographie est un travail minutieux de placement de la sonde et de test afin de déterminer quelle position de la sonde nous donnera les meilleurs résultats.

La sonde est reliée à un amplificateur Langer Amplifier PA303 BNC (30dB). Les

signaux reçus par l’amplificateur sont acquis à l’aide de l’oscilloscope Lecroy

Wave-Runner 640Zi.

Le banc d’attaque, avec le matériel précisé ci-dessus, est représenté en figure4.6.

Ordinateur Oscilloscope + Amplificateur Sonde + Carte

Figure 4.6 – Banc d’attaque par analyse des émissions électromagnétiques Les connexions entre les différents éléments sont les suivantes :

• Ordinateur–Carte : pour l’alimentation de la carte (USB), et pour que l’ordina-teur envoie les données que la carte va traiter (RS-232).

• Carte–Oscilloscope : signal de déclenchement.

• Sonde–Oscilloscope : les données mesurées transitent vers l’oscilloscope.

• Oscilloscope–Ordinateur : les traces de fuites sont formatées pour les traiter avec l’ordinateur (RJ45).

Le signal de déclenchement (communément appelé trigger), est un signal carré, qui prend sa valeur haute à un moment souhaité par le programmeur. Dans le cadre des attaques par canaux auxiliaires, le signal de déclenchement permet « d’encadrer » les opérations ciblées. Ici, nous souhaitons caractériser l’implémentation des couplages dont nous possédons le code source, donc nous pouvons facilement placer des instruc-tions dans le code C pour déclencher le signal haut et bas.

Procédure d’acquisition

Lors de la programmation de la carte, il faut réserver deux broches pour la

communica-tion avec l’ordinateur. En effet, la communicacommunica-tion parUniversal Asynchronous Receiver

Transmitter (UART) se fait généralement avec deux canaux : la transmission et la

ré-ception de données, souvent identifiées par Tx/Rx. La carte est connectée à l’ordinateur via RS-232. En pratique, un câble RS-232/USB est branché en USB à l’ordinateur, et le RS-232 à un convertisseur Pmod. Quatre broches du Pmod sont utilisées, deux pour le Tx/Rx, et deux pour alimenter le convertisseur Pmod.

La figure4.7 montre les différentes connexions avec la carte.

• L’ellipse jaune discontinue montre les deux broches de la carte qui sont connectées au Pmod, ce sont les Tx/Rx.

• Les ellipses en orange continu désignent l’alimentation du convertisseur Pmod. • Les pointillés verts désignent le signal de déclenchement, ces broches sont

connec-tées à l’oscilloscope.

• Le bleu discontinu désigne l’alimentation de la carte via USB.

Sonde

Cœur ARM Cortex-M3

Tx/Rx

Alimentation du Pmod

Signal de déclenchement

Alimentation via USB

Contrôle de la carte Le code C embarqué sur la carte contient des données en dur, c’est le cas par exemple pour les paramètres de la courbe elliptique. D’autres données sont transmises par l’ordinateur. Nous avons utilisé un script de contrôle MatLab pour remplir cette tâche. C’est aussi ce script qui récupère les courbes de l’oscilloscope.

Prenons l’exemple où l’on cible simplement une multiplication modulaire a × b

mod p. Le modulo p est stocké en dur dans la carte. Le secret, disons b, est lui aussi

directement mis dans une variable dans le code C. On va donc envoyer des a(i) et

récupérer les mesures d’émanations électromagnétiques.

La première étape est de lancer le programme sur la carte. Le programme va s’exé-cuter jusqu’à atteindre l’instruction d’attente de réception d’un entier, il est dans une

boucle qui terminera lorsque les bits de l’entier a(i) seront reçus. Les premières

instruc-tions du script de contrôle MatLab concernent l’ouverture de la communication avec

l’oscilloscope. Ensuite, dans une boucle sur ion fait les instructions suivantes :

1. Mettre l’oscilloscope dans son état « prêt à acquérir », il démarrera l’acquisition d’une courbe dès que le signal de déclenchement sera haut.

2. Envoyer a(i) à la carte, elle renvoie ensuite cet entier et le script de contrôle fait

un test d’égalité pour vérifier qu’il n’y a pas eu d’erreur lors des transmissions.

3. Attendre un drapeau (flag) venant de la carte qui arrivera dès que l’opération

a×b modp aura été exécutée par le dispositif.

4. Attendre un drapeau venant de l’oscilloscope pour prévenir qu’il a fini d’acquérir la mesure.

5. Sauvegarde de la trace dans l’ordinateur. La trace est transférée jusqu’à l’ordi-nateur, puis sauvegardée.

Exemple de courbe acquise La procédure précédente permet d’acquérir les traces

d’émissions électromagnétiques d’une multiplication modulaire a ×b mod p avec b

secret et a qui est maîtrisé. La figure 4.8 permet de visualiser une telle mesure. Une

attaque de typeCPA verticale contre cette opération a été détaillée dans le chapitre 3,

elle sera utilisée et améliorée tout au long du chapitre4. La fréquence d’échantillonnage

de l’oscilloscope est de 4 GS/s (Giga Sample per second), c’est-à-dire qu’une mesure

acquise sur une seconde sera composée de 4 milliards de points. Dans l’exemple ci-dessous, la multiplication prend 5 ms, elle est donc échantillonnée sur 20 millions de points.

Documents relatifs