• Aucun résultat trouvé

Optimisation et sécurisation du STR-TRNG

5.4.3 Moniteur de jetons

Même si le mode phase covering est évité en choisissant un nombre premier pour dimensionner le nombre d’étages, la modification du nombre d’évènements circulant dans le STR peut encore diminuer la limite basse d’entropie. Ce sera le cas si la résolution de phase est suffisamment affectée par le changement du nombre d’évènements et tout particulièrement si un mode burst est provoqué. Cependant, en fonctionnement normal, le nombre d’évènements circulant dans unSTRne peut pas fluctuer11. Ce nombre est fixé lors de l’initialisation de l’anneau.

Figure 5.5 – Architecture du moniteur de jetons.

Une troisième contremesure peut être construite sur la base de ce principe. Elle consiste à ajouter un bloc vérifiant en temps réel (ou à la demande) que le nombre de jetons dans

8. Par exemple, en diminuant la tension ce qui aura tendance à réduire la fréquence de l’anneau. 9. S’il n’y avait pas de bruit du tout, la sortie du générateur serait toujours à la même valeur. 10. On peut néanmoins noter que, dans le cas de circuits avec des exigences de sécurité moindres, le pseudo-aléa lié à la dérive entre leSTRet l’horloge d’échantillonage pourrait être considéré comme une contremesure intéressante et à faible coût.

11. Il n’y a pas de collision entre les évènements grâce au protocole de poignée-de-main implémenté par chaque étage

5.4. Contremesures l’anneau est bien celui escompté. La figure 5.5 présente l’architecture de ce moniteur. D’après le modèle d’abstraction jetons/bulles 2 phases, un évènement est présent dans un étage si sa valeur est différente de celle contenue dans l’étage suivant. Il est donc possible de détecter les jetons en comparant deux à deux, à l’aide d’une simple porte XOR, les valeurs de sortie de chaque étage. Si un jeton est présent dans l’étage, le XOR associé délivre un 1. Le nombre d’évènements peut alors être extrait en calculant le poids de Hamming du vecteur composé des sorties des L portesXOR.

Un tel moniteur émet une alarme dès que le nombre de jetons comptabilisé Nj est différent de la consigne Nref. Cette condition peut être interprétée comme une tentative d’intrusion. Une réaction appropriée12 peut alors être prise au niveau système. C’est le cas si le nombre de jetons sort de la plage permettant d’obtenir un mode evenly-spaced

du STR. Cette plage peut être caractérisée au préalable et les valeurs Nmin et Nmax, les bornes basse et haute de cette plage, peuvent être données en paramètres au moniteur. Or suivant le cas d’utilisation, une réinitialisation peut être excessive. Par exemple, lorsqu’un bloc de post-traitement cryptographique est utilisé, les séquences aléatoires du générateur peuvent encore être utilisées à condition que le temps de défaillance de la source d’entropie n’excède pas la périodicité du bloc de post-traitement. Mais si l’alarme de bas niveau est déclenchée pendant un laps de temps trop important, celle-ci doit être transformée en une alarme de Total Failure (TF).

Le concept de jetons n’est pas spécifique aux STR. Il est en réalité à la base de tout circuit asynchrone. Ceux-ci sont donc susceptibles à des attaques très similaires à celles visant le STR-TRNG. En particulier, dans les circuits BD, la cohérence entre les jetons circulant dans le circuit de contrôle et les données se propageant dans la logique est primordiale. L’ajout ou la suppression d’un jeton est une attaque qui, même si elle mènera souvent à un blocage du circuit, pourra aussi générer des fautes « utiles » à un agresseur. Ainsi, il semble intéressant de sécuriser n’importe quel circuit asynchrone en vérifiant que le nombre de jetons en circulation est bien celui attendu.

Figure 5.6 – Principe de fonctionnement d’un compteur de jetons générique pour circuits asynchrones.

Contrairement aux anneaux auto-séquencés qui sont des circuits rebouclés et qui ont donc un fonctionnent « iso-jetons », la plupart de ces circuits sont ouverts. Leur nombre de jetons fluctue dans le temps suivant l’arrivée ou non de données. Pour adapter le détecteur à ce cas général, il est nécessaire de lui associer un bloc permettant de comptabiliser le

nombre de jetons théoriquement contenu dans le circuit, ou la partie de circuit, à protéger. Lafigure 5.6 présente l’architecture générale d’un tel détecteur. Le bloc d’extraction cor-respond au compteur de jetons proposé plus haut. Il doit être adapté au schéma de circuit asynchrone (4 phases ou 2 phases). Ensuite, le bloc compteur analyse les transactions sur les canaux d’entrée et de sortie. Il permet de calculer le nombre de jetons dans le circuit en faisant la différence entre le nombre de jetons entrant et ceux sortant du circuit (il doit aussi avoir la connaissance du nombre de jetons initialement présent). La comparaison des sorties de ces deux blocs permet de générer des alarmes dans le cas où une différence est constatée. Le principe illustré par cette figure a fait l’objet d’un dépôt de brevet [Fes+18] couvrant ce cas générique et le cas particulier dédié auSTR-TRNG.

5.4.4 Fréquencemètre

Si le compteur de jetons permet de protéger le STR-TRNGcontre une partie des me-naces, ce détecteur est incapable de déceler les attaques par insertion de délai. Pour nous prémunir de ce type d’attaque, il faut nous assurer que le STR oscille et qu’il conserve la fréquence attendue. Pour cela, nous proposons d’utiliser le fréquencemètre décrit en fi-gure 5.7. Celui-ci est basé sur le comptage des oscillations de l’anneau pendant une période W donnée. Le ratio C/W donne la fréquence mesurée par ce bloc. Suivant ces mesures, différentes alarmes peuvent être déclenchées. Une comparaison avec des seuils minimum et maximum permet de délimiter une plage de fonctionnement correcte du générateur. Pour simplifier ce circuit, les comparaisons peuvent être faites directement sur la valeur du compteur C. Dans ce cas, les seuils sont dépendants de la valeur de W .

Figure 5.7 – Architecture d’un fréquencemètre élémentaire.

Quelques points doivent être pris en compte lors du développement d’un tel détecteur : — La précision de la mesure de fréquence dépend de la taille de la fenêtre de mesure : l’erreur de mesure  = TST R/W est d’autant plus petite que la fenêtre de mesure est grande.

— Pour pouvoir détecter une attaque ayant un faible impact sur la fréquence, il faut mesurer la fréquence sur une large période. Cela peut augmenter considérablement la latence de détection et il faut donc veiller à ce que cette fenêtre ne dépasse pas la taille de défaillance acceptable de la source d’entropie (au regard de la périodicité du traitement algorithmique qui serait utilisé).

— Du fait des disparités de fabrication, la fréquence d’oscillation duSTRpeut être très différente d’un circuit à un autre. Pour que la détection d’attaque soit efficace, une étape de calibration du système et de définition des seuils est indispensable.

5.5. Simulations — Les variations des conditions d’opération introduisent aussi des variations dans la

fréquence du STR. Le dimensionnement du circuit et la définition des seuils devra nécessairement prendre en compte ce phénomène.

5.5 Simulations

De manière à évaluer la pertinence des attaques et des contremesures proposées, nous avons développé un environnement de simulation mixte en technologie ULP 55 nm de UMCet basé sur l’outil SMASH de Dolphin Integration. Cet environnement, présenté en lafigure 5.8peut être utilisé de deux manières. Dans un premier temps un modèle analo-gique duSTRest utilisé pour émuler précisément les attaques. Ensuite, le modèle logiciel de simulation de circuits électroniques analogiques (Simulation Program with Integrated Circuit Emphasis) (SPICE) du STR peut être remplacé par un modèle comportemental basé sur la bibliothèqueTALdéveloppées au sein de mon laboratoire d’accueil. Ces biblio-thèques modélisent les effets Charlie et drafting [Ham+08] et permettent de reproduire, dans des simulations numériques, les différents modes de propagation d’un STR. Elles prennent aussi en compte l’influence du bruit thermique en faisant varier, au cours de l’exécution et de manière indépendante, le temps de propagation de chaque porte logique constituant la source d’entropie. L’aléa injecté suit une loi normale dont la valeur moyenne et la déviation standard sont paramétrables. En utilisant ce modèle haut-niveau, le com-portement duSTR-TRNG peut être simulé très rapidement et un grand nombre de bits aléatoires peuvent être extraits pour alimenter les tests statistiques13et évaluer l’influence des différentes attaques.

Figure 5.8 – Environnement de simulation développé pour évaluer les attaques et les contremesures.