• Aucun résultat trouvé

Optimisation et sécurisation du STR-TRNG

5.5.1 Simulations mixtes

Les attaques sont dans un premier temps simulées en utilisant un modèle SPICE de la source d’entropie. L’extracteur, le moniteur de jetons ainsi que les blocs réalisant les différentes attaques sont développés en langage de description de matériel (Hardware

13. Dans l’environnement développé, les tests sont effectué séparément à l’aide d’un petit programme élaboré en langage C.

Description Language) (HDL). Ainsi les différentes attaques peuvent être facilement sé-quencées au niveauRTLet leurs impacts précisément évalués au niveau transistors. Pour les besoins de la démonstration, un STR de 125 étages est construit et initialisé avec 62 jetons.

5.5.1.1 Suppression de jetons

Le principe de fonctionnement de la simulation de suppression de jetons est illustré par lafigure 5.9. Elle se base sur l’hypothèse qu’un attaquant est capable à la fois d’observer les différentes phases du STR et de contrôler la réinitialisation de quelques-uns de ses étages. Ainsi, les quatre derniers étages de l’anneau (121 à 124) sont observés. Dès que la séquence ‘1001’ est détectée, une impulsion est générée sur le signal d’initialisation de ces quatre étages pour transformer ce motif en ‘1111’14. Les éléments de retard δ1 et δ2 permettent respectivement de contrôler la position de l’attaque et la largeur de l’impulsion générée.

Figure 5.9 – Principe de fonctionnement du bloc de suppression de jetons.

La figure 5.10 présente les traces de la simulation de cette attaque. Nous pouvons voir son impact sur les phases du STR. Suite à l’impulsion sur le signal d’initialisation init, la sortie du compteur de jetons passe comme attendu de 62 à 60. L’attaque est donc bien fonctionnelle. La fenêtre pendant laquelle elle peut être réalisée – lorsque W = 1 (identifiée en rouge sur la figure) – est très courte. Elle s’avère être large de 80 ps dans notre cas. Une fois l’ensemble des parasites Résistance et Capacité (RC) pris en compte, cette fenêtre devrait s’élargir quelque peu car la fréquence duSTRsera légèrement plus faible. En réduisant la température ou la tension d’alimentation cette fenêtre doit pouvoir être encore agrandie. Il semble cependant complexe et coûteux pour un agresseur d’observer simultanément plusieurs étages et de synchroniser l’impulsion d’initialisation sur une si courte fenêtre.

Des attaques plus simples, ne nécessitant pas de synchronisation avec les phases de l’an-neau, sont possibles. Celles-ci sont par contre moins précises. En effet, suivant le nombre de jetons en circulation dans l’anneau certains motifs sont plus ou moins probables. Lorsque

14. Ce qui correspond, vis-à-vis du modèle d’abstraction 2 phases, au retrait d’une bulle et à une sup-pression indirecte d’un jetonsection 5.3.1.

5.5. Simulations de nombreux évènements circulent, les motifs ‘0101010’15et ‘0110011’16sont majoritaires. Une attaque initialisant le contenu de quatre étages successifs aura dans ce cas tendance à supprimer des jetons, en transformant ces motifs en ‘0111110’. Mais lorsque le nombre de jetons diminue, les motifs ‘111111’ et ‘000000’ deviennent petit à petit prédominants. La même attaque sera alors sans effet (le motif ‘111111’ reste inchangé) ou aura l’effet contraire et réintroduira des jetons dans l’anneau (le motif ‘000000’ est transformé en ‘011110’). De manière générale, le nombre d’étages impactés par l’attaque définit la confi-guration de l’anneau qui sera en moyenne atteinte après un certain nombre d’attaques successives. Plus le nombre d’étages impactés est petit plus on aura tendance à injecter des jetons. A l’inverse plus le nombre d’étages impactés est grand plus on aura tendance à retirer des jetons17.

# Jetons C124 C123 C122 C121 Set[124:121] W=1 1001 1111 ∆φ δ2 δ1

Figure 5.10 – Traces d’une attaque par suppression de jetons.

Dans le cas de l’attaque présentée en figure 5.10, une impulsion de 50 ps (δ2) est injectée. Cette largeur est suffisante pour que l’initialisation soit effective dans les quatre étages visés. Il n’y a cependant pas de limite haute à la taille de cette impulsion. Lors de nos différents essais, nous avons constaté qu’une impulsion plus large permet de réaliser l’attaque tout en bloquant temporairement la propagation des jetons. Le STR reprend son fonctionnement normal (avec un jeton de moins) dès que le signal d’initialisation est relâché.

Ce constat révèle une autre vulnérabilité du STR-TRNG particulièrement critique. Il est possible de bloquer temporairement leSTRen forçant la valeur d’un de ses étages, et d’ainsi prendre le contrôle de la sortie du générateur. Pour se prémunir d’une telle manipu-lation il est donc primordial de vérifier que leSTRoscille correctement. Le fréquencemètre répond à cette problématique.

15. Le nombre maximum, N/2, de jetons 4 phases est atteint. 16. Le nombre de jetons est proche de N/4.

17. Ce constat prend pour postulat qu’une attaque produit le même effet avec chacun des étages (soit forcer la valeur à 1, soit à 0).

5.5.1.2 Modification de délai

Afin de simuler l’attaque par modification du temps de propagation, nous avons inséré une cellule de délai sur le chemin de requête entre le dernier et le premier étage duSTR (voirfigure 5.11). Ce type de cellule est habituellement utilisé pour corriger des violations dehold dans les circuits numériques.

Figure 5.11 – Principe de fonctionnement de l’attaque par modification de temps de propagation.

D’autres approches basées sur l’ajout de capacités parasites ou la modification du modèle d’une des portes de Muller peuvent être adoptées. Mais la cellule de délai est la méthode donnant les résultats les plus prédictibles car la caractérisation des temps de propagations est accessible directement dans les modèlesLiberty. Nous avons implémenté deux attaques. Pour la première, nous utilisons un retard équivalent au temps de propa-gation d’une porte de Muller. Comme attendu, ce premier cas ne modifie pas le mode d’oscillation duSTR : même si la fréquence est légèrement réduite, l’anneau conserve sa distribution uniforme des évènements. L’effet Charlie de chaque étage contribue à com-penser le délai ajouté. Pour la deuxième, un délai approximativement 5 fois plus grand est ajouté. L’effetCharlie de chacun des étages n’étant plus suffisant pour compenser le retard introduit dans l’anneau, cette attaque provoque avec succès un fonctionnement en

bottleneck. Comme nous pouvons le voir sur les traces de cette simulation (figure 5.12), les évènements se propagent de deux manières différentes lorsque ce mode de fonctionnement est déclenché. Une partie des jetons font la queue devant le goulot d’étranglement : les étages 66 à 124 présentent des oscillations avec un rapport cyclique proche de 50 %, et une alternance de jetons et de bulles avec une taille minimale (un étage) peut être observée. Dans le reste de l’anneau, entre les étages 0 et 65, les jetons se propagent de manière libre jusqu’à atteindre le dernier élément de la file.