Brevet FR2953960A1 — publié le 20110617

Arrière-plan de l'invention La présente invention se situe dans le domaine de la protection des composants électroniques. Elle vise plus particulièrement, un composant électronique apte à détecter une attaque active. Il est habituel de distinguer les attaques actives des actives passives. On rappelle qu'une attaque passive est une attaque dans laquelle l'attaquant se contente d'observer l'activité du composant. Au contraire, une attaque active est une attaque par injection de faute dans laquelle l'attaquant perturbe physiquement le composant pendant l'exécution d'algorithmes ou de commandes sensibles. De telles perturbations se concrétisent au niveau du composant par un apport en énergie (lumineuse ou électromagnétique par exemple). Cet apport en énergie entraîne une augmentation de courant qui place le composant dans un état inattendu et fragilisé. Il est connu d'évaluer la sécurité des cartes à puce en analysant leur comportement en réponse à injection de faute par énergie lumineuse par laser. La figure 1 représente le principe d'une telle évaluation. En référence à la figure 1, on place un composant 10 en série entre deux résistances de valeur R, une reliée à la masse et l'autre à une tension positive Vcc, puis on illumine le composant avec une impulsion laser. Cet apport d'énergie entraîne un surplus de courant en amont (Vcc) et en aval (Gnd) du composant au moment de la perturbation lumineuse pendant la durée de la perturbation. Ce surplus de courant peut avoir deux raisons : - il peut être induit par l'impulsion lumineuse, celle-ci créant autant de trous que d'électrons ; les trous s'écoulent vers la tension positive VCC et les électrons vers la masse, d'où un impact sur les courant il et i2 ; - il peut aussi être provoqué par des courts circuits dans le composant provoqués par l'impulsion lumineuse. 135 Aucune méthode n'est connue à ce jour pour détecter de telles attaques. Le document EP 1 804 199 décrit une méthode pour détecter une attaque consistant à faire varier la tension positive Vcc. Malheureusement, cette méthode ne permet pas de détecter une attaque par apport d'énergie, du type de l'attaque laser décrite ci-dessus, celle-ci n'ayant aucun effet sur la tension Vcc. Objet et résumé de l'invention 10 L'invention vise un composant apte à détecter une attaque par apport d'énergie. Plus précisément l'invention concerne un composant électronique comportant : 15 - des moyens d'obtention d'une grandeur physique, dite de référence, ajustable dynamiquement et représentative de l'activité attendue dudit composant ; - des moyens de comparaison aptes à comparer cette grandeur de référence avec une grandeur de même type représentative de l'activité 20 réelle dudit composant ; et - des moyens aptes à détecter une attaque en fonction du résultat de cette comparaison. Corrélativement, l'invention concerne un procédé de protection d'un composant électronique comportant : 25 - une étape d'obtention d'une grandeur physique, dite de référence, ajustable dynamiquement et représentative de l'activité attendue du composant ; - une étape de comparaison de cette ladite grandeur de référence avec une grandeur de même type représentative de l'activité réelle du 30 composant ; et - une étape de détection d'une attaque en fonction du résultat de cette étape de comparaison. D'une façon générale, l'invention vise à détecter toute hausse anormale de courant dans le composant. 35 L'invention peut par exemple être mise en oeuvre en comparant une intensité représentative de l'intensité réellement consommée par le composant avec une intensité variable de référence, ajustable dynamiquement, et représentative d'une activité attendue du composant. Dans un mode particulier de réalisation, le composant électronique selon l'invention comporte une unité logique apte à générer un courant électrique dont l'intensité est l'intensité variable de référence précitée. Plus précisément, étant donné que lors d'une utilisation normale, la consommation du composant dépend largement de son activité pendant l'exécution d'une commande, l'invention propose d'effectuer un contrôle dynamique, en ajustant l'intensité de référence en fonction de l'activité attendue du composant à un instant donné. Ainsi à chaque instant le composant selon l'invention contrôle si le niveau de consommation de courant ne dépasse pas un seuil, ce seuil variant de façon dynamique en fonction de l'activité de la puce. Si à un instant donné, le seuil est dépassé, cela signifiera que le composant subit une attaque par apport d'énergie et une alarme peut être déclenchée pour y réagir. Dans un mode particulier de réalisation, le composant électronique comporte au moins un module et l'intensité de référence est représentative, à un instant donné, de la consommation maximum attendue des modules actifs à cet instant. Dans un mode particulier de réalisation, l'unité logique comporte autant de résistances en parallèle que le composant comporte de modules, et chaque résistance est reliée à un unique module via un interrupteur et dimensionnée pour que le courant qui traverse cette résistance, lorsque ledit module est actif, représente la consommation maximum attendue de ce module à cet instant. Dans un mode particulier de réalisation, le composant électronique comporte un processeur apte à positionner l'interrupteur associé à une résistance de l'unité logique en fonction du caractère actif ou inactif du module associé à cette résistance. En variante, l'interrupteur peut être positionné par des moyens matériels. Dans un mode particulier de réalisation, les moyens de comparaison sont constitués par un registre à deux états présentant une capacité d'entrée apte à se charger ou à se décharger selon que l'intensité représentative de l'intensité réellement consommée dépasse ou non l'intensité de référence. Dans un mode particulier de réalisation de l'invention, l'intensité représentative de l'intensité réellement consommée est obtenue par un miroir de courant à partir de l'intensité réellement consommée. Dans un mode particulier de réalisation de l'invention, l'intensité du courant miroir utilisé pour la détection est égale à l'intensité réellement consommée par le composant. En variante, elle est inférieure et proportionnelle à l'intensité réellement consommée par le composant, ce qui permet d'utiliser une intensité plus faible pour la détection de faute, afin de limiter le courant consommé par le miroir de courant. Dans un autre mode de réalisation de l'invention, la grandeur physique prise en compte pour qualifier l'activité attendue et réelle du composant est une tension. Ainsi, dans un mode particulier de réalisation, le composant électronique selon l'invention comporte des moyens d'obtention d'une tension, dite de référence, ajustable dynamiquement et représentative de l'activité attendue du composant, et des moyens de comparaison aptes à comparer cette tension de référence avec une tension représentative de la consommation réelle du composant. L'invention vise aussi une carte à puce (ou carte à microcircuit) conforme à la norme ISO-7816 comportant un microcontrôleur constitué par un composant électronique tel que mentionné ci-dessus. Dans un mode particulier de réalisation, les différentes étapes du procédé de protection mentionné ci-dessus sont déterminées par des instructions de programme d'ordinateur. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans une carte à microcircuit, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes du premier procédé de protection tel que mentionné ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 déjà décrite illustre une attaque active pouvant être détectée par l'invention ; et - les figures 2 à 4 représentent trois composants électroniques conformes à des modes particuliers de réalisation de l'invention. Description détaillée d'un premier mode de réalisation La figure 2 représente une carte à puce 150 conforme à l'invention. Cette carte à puce 150 est conforme à la norme ISO 7816. Elle comporte un composant électronique 10 conforme à un premier mode de réalisation de l'invention. La carte à microcircuit 150 ou plus précisément le composant électronique 10 qu'il incorpore peut échanger des données avec une entité extérieure à la carte au moyen d'une interface de communication 300 réalisée sous forme de contacts. Dans ce mode de réalisation l'invention est mise en oeuvre par des moyens matériels. Dans cet exemple, le composant électronique 10 comporte trois modules 11, 12, 13. Conformément à l'invention, le composant électronique 10 comporte une unité logique 20 apte à générer un courant électrique d'intensité variable dite de référence, IREF. Dans cet exemple de réalisation, l'unité logique 20 comporte trois résistances R1, R2, R3 en parallèle. Chacune de ces résistances comporte une borne reliée à une alimentation positive Vcc via un interrupteur PMOS et une borne reliée à la masse. Dans cet exemple de réalisation, chacune des résistances R1 à R3 peut être connectée ou non à l'un desdits modules 11 à 13 par un interrupteur, par exemple de type PMOS, l'interrupteur étant fermé lorsque le module concerné est actif et ouvert dans le cas contraire. Plus précisément, lorsque le module 11 (par exemple) devient actif, il génère un signal d'activité IAn-11 qui entraîne la fermeture de l'interrupteur PMOS relié au module 11 et un courant électrique traverse la résistance R1, dont l'intensité IRl est égale à (Vcc ù 0)/R1. Dans cet exemple de réalisation de l'invention, la résistance R1 est dimensionnée de sorte que l'intensité IRl correspond à la consommation maximum du module 11. De même, les résistances R2 et R3 sont dimensionnées pour que les intensités IR2 et IR3 qui les traversent, en cas d'activité des modules 12 et 13, correspondent à la consommation maximum de ces modules. L'intensité variable de référence IREF correspond donc, à un instant donné, à la consommation maximum des modules 11 à 13 actifs. On appelle IcoNSO l'intensité réellement consommée par le composant électronique 10. Dans l'exemple de réalisation décrit ici, le composant électronique 10 comporte : - un premier miroir de courant composé de deux transistors PMOS Ti, T2 apte à recopier le courant IcoNso traversant la branche du transistor Ti effectivement consommé par le composant électronique 10, dans la branche du transistor T2 ; - un deuxième miroir de courant composé de deux transistors NMOS T3, T4 apte à recopier le courant IREF traversant l'unité logique 20, dans la branche du transistor T4. Dans cet exemple, les transistors NMOS T3 et T4 sont de même taille. Dans l'exemple de réalisation décrit ici, le composant électronique 10 comporte un noeud ND avec : - une branche d'entrée comportant le transistor T2, sur laquelle circule un courant d'intensité ICONSO_MIRROR - une première branche de sortie comportant le transistor T4, sur laquelle circule un courant d'intensité IREF ; et - une deuxième branche de sortie reliée à l'électrode du condensateur 15 d'entrée du registre REG, sur laquelle circule un courant d'intensité IREG. Par application de la loi des noeuds au noeud ND, on obtient : IREG = ICONSO MIRROR - IREF Bien entendu, lorsque les transistors Ti et T2 sont identiques, on obtient : 'REG = ICONSO- IREF Mais les transistors Ti et T2 peuvent aussi être choisis différents. Par exemple, afin de ne pas trop augmenter la consommation, on peut choisir T2 dix fois plus petit que Tl. Dans ce cas, les résistances seront choisies de valeurs 10 fois plus élevées pour que les courants IREF et ICONSO_MIRROR soient comparables. Dans l'exemple de réalisation décrit ici, le composant 10 comporte un registre REG apte à stocker une valeur binaire, cette valeur dépendant du caractère chargé/déchargé du condensateur 15. En régime normal, l'intensité IREG est négative, l'intensité variable de référence IREF ayant été choisie pour correspondre à la consommation maximum des modules 11 à 13 actifs ; le condensateur 15 se décharge et le registre REG est au niveau bas. Au contraire, lorsque le composant électronique 10 est l'objet d'une attaque active induisant un apport d'un surplus de courant au niveau du composant, la consommation réelle de ce composant dépasse la consommation de référence et IREG est positive ; le condensateur 15 se charge et le registre REG est au niveau haut. Par conséquent, la lecture du niveau du registre REG permet de comparer l'intensité de référence IREF avec l'intensité IcoNS réellement consommée par le composant 10. Dans le mode de réalisation décrit ici, la valeur de sortie du registre REG peut générer un signal d'alarme pour le traitement de l'attaque ainsi détectée. Description détaillée d'un deuxième mode de réalisation La figure 3 représente une carte à puce 150 conforme à un deuxième mode de réalisation de l'invention. Dans ce mode de réalisation, l'invention est mise partiellement en oeuvre par des moyens logiciels. Le composant électronique 10 comporte un processeur 17 apte à activer/désactiver chacun des modules 11 à 13. Dans ce mode de réalisation, le composant électronique 10 est associé d'une part à une mémoire vive 600, et d'autre part à une mémoire non volatile 200 (par exemple du type EEPROM) par des bus. La mémoire non volatile 200 de la carte à microcircuit 150 constitue un support d'informations conforme à l'invention. Elle comporte un programme d'ordinateur PG40 conforme à l'invention, ce programme comportant des instructions apte à mettre en oeuvre un procédé de protection conforme à l'invention. Dans ce mode de réalisation, le composant électronique 10 comporte un module de configuration 18 comportant un bit de configuration associé à chacun des modules 11 à 13. La valeur du bit associé à un module est positionnée par le processeur 17 en fonction du caractère actif/non actif de ce module. Dans cet exemple de réalisation, l'interrupteur PMOS associé à chacune des résistances R1 à R3 est ouvert ou fermé en fonction de la valeur du bit associé au module correspondant à cette résistance. Dans ce mode de réalisation, le processeur 17 surveille l'état du registre REG et déclenche un signal lorsque cet état passe au deuxième niveau. Description détaillée d'un troisième mode de réalisation La figure 4 représente une carte à puce 150 conforme à un deuxième mode de réalisation de l'invention. 10 Dans ce mode de réalisation, le composant électronique 10 comporte un noeud ND avec : - une branche d'entrée comportant le transistor T2, sur laquelle circule un courant d'intensité ICONSO_MIRROR ; - une première branche de sortie comportant une résistance R et sur 15 laquelle circule un courant d'intensité ICONSO_MIRROR ; et - une deuxième branche de sortie reliée à l'entrée d'un convertisseur analogique numérique 34 et sur laquelle circule un courant d'intensité nulle. La tension aux bornes de la résistance R est obtenue par la loi 20 d'Ohm : UCONSO MIRROR - R ICONSO MIRROR Dans le mode de réalisation décrit ici, le composant électronique 10 comporte un registre 29 comportant la valeur numérique de la tension UCONSO_MIRROR, représentative de la consommation réelle du composant 25 électronique 10. Dans le mode de réalisation, le composant électronique 10 comporte un registre 28 comportant une valeur représentative de la tension attendue aux bornes du composant électronique 10 en fonction de l'activité de chacun des modules 11 à 13. Ce registre peut par exemple 30 être configuré directement par les modules. Dans le mode de réalisation décrit ici, le composant électronique 10 comporte un soustracteur 35 apte à soustraire le contenu des registres 28 et 29, le signal de retenue étant connecté au registre REG. A un instant donné, la valeur du registre REG est par conséquent 35 égale à 1 si la consommation réelle du composant 10 dépasse la5 consommation attendue cet instant ; le signal d'alarme passe alors au deuxième niveau. Dans chacun des trois modes de réalisation précédemment décrits, différentes actions peuvent être entreprises lorsque le signal d'alarme passe au deuxième niveau, représentatif d'une attaque active. On peut par exemple : - effacer les clefs cryptographiques mémorisées dans une mémoire non volatile de la carte à puce 150 ; - effacer tout ou partie d'une mémoire non volatile de la carte à puce 150 ; - positionner un drapeau logiciel (en anglais « flag ») à 1, ce drapeau étant lu à chaque mise sous tension de la carte à puce 150, la détection de la valeur 1 inhibant toute utilisation de la carte à puce. REVENDICATIONS1. Composant électronique (10) comportant : - des moyens (20) d'obtention d'une grandeur physique (IREF, UCONSO_MIRROR), dite de référence, ajustable dynamiquement et représentative de l'activité attendue dudit composant (10) ; - des moyens de comparaison (REG, 17) aptes à comparer ladite grandeur de référence (IREF , UREF) avec une grandeur de même type (IcONSO_MIRROR, IcONS, UcoNSO_MIRROR) représentative de l'activité réelle dudit composant ; et - des moyens aptes à détecter une attaque en fonction du résultat de ladite comparaison. 2. Composant électronique (10) selon la revendication 1 caractérisé en ce qu'il comporte des moyens de comparaison (REG, 17) aptes à comparer une intensité (ICONSO_MIRROR, 'CONS) représentative de l'intensité réellement consommée (IcONS) par ledit composant avec une intensité variable de référence (IREF) ajustable dynamiquement pour représenter l'activité attendue dudit composant. 3. Composant électronique (10) selon la revendication 2 caractérisé en ce qu'il comporte une unité logique (20) apte à générer un courant électrique dont l'intensité est ladite intensité variable de référence (IREF). 4. Composant électronique selon la revendication 2 ou 3, caractérisé en ce qu'il comporte au moins un module (11, 12, 13), ladite intensité de référence (IREF) étant représentative, à un instant donné, de la consommation maximum attendue des modules actifs à cet instant. 5. Composant électronique selon la revendication 4, caractérisé en ce que ladite unité logique (20) comporte autant de résistances (R1, R2, R3) en parallèle que le composant comporte de dits modules, chaque résistance étant reliée à un unique desdits modules via un interrupteur et dimensionnée pour que le courant qui traverse cette résistance, lorsque ledit module est actif, représente la consommation maximum attendue dudit module à cet instant. 6. Composant électronique selon la revendication 5, caractérisé en ce qu'il comporte un processeur apte à positionner ledit interrupteur en fonction du caractère actif ou inactif dudit module. 7. Composant électronique selon l'une quelconque des revendications 2 à 6, caractérisé en ce que lesdits moyens de comparaison sont constitués par un registre (REG) présentant une capacité d'entrée (15) apte à se charger ou à se décharger selon que ladite intensité (ICONSO_MIRROR, 'CONS) représentative de l'intensité réellement consommée (ICONS) dépasse ou non ladite intensité de référence. 8. Composant électronique selon l'une quelconque des revendications 2 à 7, caractérisé en ce que ladite intensité (IcoNSO_MIRROR, ICONS) représentative de l'intensité réellement consommée (ICONS) est obtenue par un miroir de courant à partir de ladite intensité réellement consommée (IcoNS). 9. Composant électronique (10) selon la revendication 1 caractérisé 20 en ce qu'il comporte : - des moyens (20) d'obtention d'une tension (UREF), dite de référence, ajustable dynamiquement et représentative de l'activité attendue dudit composant (10) ; et en ce que - lesdits moyens de comparaison (REG, 17) sont aptes à comparer ladite 25 tension de référence (UREF) avec une tension (UCONSO_MIRROR) représentative de la consommation réelle dudit composant. 10. Composant électronique (10) selon la revendication 9, caractérisé en ce qu'il comporte au moins un module (11, 12, 13) et un 30 registre (28) comportant une valeur représentative de la tension attendue aux bornes dudit composant (10) en fonction de l'activité de chacun desdits (11, 12, 13). 11. Composant électronique (10) selon la revendication 9 ou 10 35 caractérisé en ce qu'il comporte :- une résistance (R) en parallèle avec ledit composant (10) traversée par un courant dont l'intensité (IcoNso_MIRROR) est représentative de l'intensité réellement consommée (ICONS) par ledit composant ; et - un registre (29) comportant la valeur numérique de la tension (UCONSO_MIRROR) aux bornes de ladite résistance (R) et représentative de la consommation réelle dudit composant (10). 12. Carte à puce (150) conforme à la norme ISO 7816 comportant un microcontrôleur (10) constitué par un composant électronique selon l'une quelconque des revendications 1 à 11. 13. Procédé de protection d'un composant électronique (10) comportant : - une étape d'obtention d'une grandeur physique (IREF, UREF), dite de référence, ajustable dynamiquement et représentative de l'activité attendue dudit composant (10) ; - une étape de comparaison (REG, 17) de ladite grandeur de référence (IREF , UREF) avec une grandeur de même type (IcoNSO_MIRROR, 'CONS, UcoNSO_MIRROR) représentative de l'activité réelle dudit composant ; et - une étape de détection d'une attaque en fonction du résultat de ladite étape de comparaison. 14. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de protection selon la revendication 13 lorsque ledit programme est exécuté par un ordinateur. 15. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de protection selon la revendication 13.30