Brevet FR2936624A1 — publié le 20100402

Dispositif de sécurisation d'un composant électronique L'invention concerne un dispositif de sécurisation d'un composant électronique. L'invention trouve une utilité particulière dans les microprocesseurs intégrant un module espion. Ce type de module est connu dans la littérature anglo-saxonne sous le nom de � debug module �. Lorsque ce module est intégré à l'intérieur d'un composant, il est appelé � on chip debug �. Il est courant de faire réaliser des composants personnalisés formant un réseau de portes programmables et connus dans la littérature anglo-saxonne sous le nom de FPGA pour � field-programmable gate array, �. Ces composants personnalisés comprennent généralement un processeur et un module espion permettant d'accéder aux registres du processeur, afin de lire leur contenu pendant l'exécution d'un programme. Cet accès permet de s'assurer du bon fonctionnement du programme et de le débuguer. II est bien entendu que l'invention n'est pas limitée aux composants de type FPGA, D'autres types de composants électroniques sont équipés de modules espions et peuvent mettre en oeuvre l'invention. Les composants intégrant un module espion sont équipés de moyens de connexion permettant de raccorder le module vers l'extérieur du composant, par exemple pour y raccorder un ordinateur à partir duquel on effectuera le débugage du programme. En fonctionnement opérationnel, le module espion est inactif et l'ordinateur raccordé au module permet de l'activer en cas de besoin. Cette activation a lieu essentiellement en phase d'élaboration de programmes mis en oeuvre par le processeur. Les moyens de connexion permettent à la fois d'activer le module espion et de dialoguer avec lui soit pour lire les informations contenues dans les registres du processeur soit pour envoyer des instructions au module espion. Les moyens de connexion suivent par exemple le standard JTAG pour : � Join Test Action Group �. Ce standard a été mis au point par de grands constructeurs informatiques et électroniques en 1985 et repris dans la norme IEEE 1149.1. Lors de l'activation du module espion, le programme en cours dans le processeur est interrompu par un programme spécifique stocké à une adresse d'une mémoire du composant. Généralement la mémoire dans laquelle est stocké le programme spécifique est interne au module espion. L'adressage de cette mémoire peut se faire dans la continuité de l'adressage de la mémoire principale du processeur dans laquelle est stocké le programme principal formant les taches normales que le processeur effectue. Une défaillance des moyens de connexion peut activer de façon intempestive le module espion et donc interrompre le programme principal en cours dans le processeur. Le fonctionnement nominal du processeur est alors perturbé. L'invention vise à pallier ce problème en évitant l'accès intempestif 10 au programme spécifique utilisé par le module espion. A cet effet, l'invention a pour objet un dispositif de sécurisation d'un composant électronique comprenant un processeur, un module espion permettant d'interroger des registres du processeur, des moyens de connexion permettant de raccorder le module espion à des moyens 15 d'activation du module espion, les moyens d'activation étant externes au composant, le module espion exécutant, lors de son activation, un programme spécifique stocké à une adresse d'une mémoire du composant, caractérisé en ce qu'il comprend une mémoire de sécurisation pouvant contenir des instructions permettant un saut vers le programme spécifique. 20 L'invention n'évite pas l'activation du module espion mais seulement l'exécution du programme spécifique. L'invention sera mieux comprise et d'autres avantages apparaîtront à la lecture de la description détaillée d'un mode de réalisation 25 donné à titre d'exemple, description illustrée par le dessin joint dans lequel : la figure 1 représente une première variante d'un dispositif conforme à l'invention, dans laquelle le composant contient une mémoire de sécurisation ; la figure 2 représente une seconde variante d'un dispositif 3o conforme à l'invention, dans laquelle la mémoire de sécurisation est extérieure au composant. Par souci de clarté, les mêmes éléments porteront les mêmes repères dans les différentes figures. La figure 1 représente un composant électronique 10 comprenant un processeur 11, un module espion 12 et de moyens de connexion 13 permettant de raccorder le module espion 12 vers l'extérieur du composant 10. Les moyens de connexion 13 sont par exemple de type JTAG. Le composant électronique 10 comprend bien entendu d'autres moyens de connexion vers l'extérieur qui n'ont pas été représentées pour ne pas surcharger la figure 1. Le composant électronique 10 est par exemple un microprocesseur de type FPGA. Les moyens de connexion 13 permettent de raccorder le composant 10, par exemple à un ordinateur individuel 14, au moyen duquel on peut débuguer un programme exécuté par le processeur 11. Ce programme appelé par la suite programme principal, est stocké dans une mémoire du composant 10 non représentée sur la figure 1. Le programme principal est exécuté lorsque le composant 10 est en fonctionnement opérationnel. Lorsque le programme principal fonctionne normalement, le module espion 12 est inactif. L'ordinateur individuel 14 permet d'activer le module espion 12 au travers des moyens de connexion 13. Le module espion 12 comprend une mémoire 15 contenant un programme spécifique exécutable par le processeur 11 lorsque le module espion 12 est activé. Le programme spécifique peut être chargé dans la mémoire 15 à partir de l'ordinateur individuel 14. Lors de l'activation du module espion 12, une interruption du processeur 11 est générée par le module espion 12. Cette interruption stoppe le programme principal en cours dans le processeur 11 pour lancer le programme spécifique permettant par exemple de lire les registres du processeur 11. Selon l'invention, pour éviter un lancement intempestif du programme spécifique, même si une interruption est générée par le module espion 12 après activation de celui-ci, le composant 10 comprend une mémoire de sécurisation 16 pouvant contenir des instructions permettant un saut vers le programme spécifique. Avantageusement, la mémoire de sécurisation 16 est distincte de la mémoire 15 et de la mémoire contenant le programme principal. La mémoire de sécurisation 16 vient en complément des moyens mis en oeuvre par l'interruption générée par le module espion 12. En l'absence de la mémoire de sécurisation 16, l'interruption entraîne un saut direct vers le programme spécifique. Selon l'invention, l'interruption générée par le module espion 12 entraîne un saut 17 vers la mémoire de sécurisation 16. Autrement dit, lors de l'activation du module espion 12, le programme principal en cours dans le processeur 11 est dérouté vers les instructions contenues dans la mémoire de sécurisation 16. Lors d'une phase d'élaboration du programme principal ou plus généralement lors d'une opération de test du composant 10, on est amené à utiliser le module espion 12 et la mémoire de sécurisation 16 contient un saut 18 vers le programme spécifique. Par contre, lors d'une phase de mise en oeuvre courante du programme principal, ou plus généralement lors du fonctionnement opérationnel du composant, le recours au module espion 12 est inutile et on peut supprimer de la mémoire de sécurisation le saut 18. Ainsi, même en cas de défaillance des moyens de connexion 13, défaillance entraînant l'activation du module espion 12, l'interruption reste générée mais le programme spécifique n'est plus lancé. On conserve ainsi un module espion 12 standard sans sécurisation particulière. La sécurisation est faite au moyen de la mémoire de sécurisation 16 dans laquelle on peut stocker des instructions différentes selon que l'on se trouve en phase d'élaboration du programme principal ou en phase d'utilisation opérationnelle de ce programme principal. La présence de la mémoire de sécurisation 16 permet également de ne pas modifier le programme principal entre sa phase d'élaboration et sa phase d'utilisation opérationnelle. En effet, dans certains domaines, tel que par exemple le domaine aéronautique, des organismes de certification peuvent imposer, après la phase d'élaboration, de vérifier la conception du programme principal, par exemple en vérifiant la couverture structurelle de ce programme. Cette vérification se fait en utilisant le module espion 12. Les organismes de certification peuvent ne pas accepter une modification ultérieure du programme principal, modification supprimant tout saut vers la mémoire 15 contenant le programme spécifique. Grace à l'invention, il n'est plus nécessaire de modifier le programme principal pour supprimer le saut vers le programme spécifique, on peut simplement modifier le contenu de la mémoire de sécurisation 16 pour supprimer le saut vers le programme spécifique.35 On peut mettre en oeuvre deux variantes pour la mémoire de sécurisation 16. Dans la première variante, représentée figure 1, le composant 10 comprend la mémoire de sécurisation 16. Dans la seconde variante, représentée figure 2, la mémoire de sécurisation 16 est externe au composant 10 et est reliée au composant 10 au travers de moyens de connexions 20 amovibles. Ces moyens de connexion 20 permettent par exemple de ne pas modifier le contenu de la mémoire de sécurisation 16 après la certification du programme principal. Il suffit de déconnecter la mémoire de sécurisation 16 pour éviter tout saut vers le programme spécifique lors de l'utilisation opérationnelle du composant 10. Avantageusement, lors du fonctionnement opérationnel du composant 10, la mémoire de sécurisation 16 contient des instructions signalant qu'une erreur est survenue. Ainsi on peut alerter un utilisateur que le module espion 12 a été activé, par exemple par un défaut dans les moyens de connexion 13 puis reprendre le cours normal du programme principal. Cela évite de perturber le fonctionnement opérationnel du composant 10 tout en informant de la présence d'une anomalie. REVENDICATIONS1. Dispositif de sécurisation d'un composant électronique (10) comprenant un processeur (11), un module espion (12) permettant d'interroger des registres du processeur (Il), des moyens de connexion (13) permettant de raccorder le module espion (12) à des moyens d'activation (14) du module espion (12), les moyens d'activation (14) étant externes au composant (10), le module espion (12) exécutant, lors de son activation, un programme spécifique stocké à une adresse d'une mémoire (15) du composant (10), caractérisé en ce qu'il comprend une mémoire de sécurisation (16) pouvant contenir des instructions permettant un saut vers le programme spécifique. 2. Dispositif selon la revendication 1, caractérisé en ce que la mémoire de sécurisation (16) est distincte de la mémoire (15) contenant le programme spécifique et d'une mémoire destinée à contenir un programme principal exécuté par le processeur (11) lorsque le composant (10) est en fonctionnement opérationnel. 3. Dispositif selon l'une des revendications précédentes, 20 caractérisé en ce que le composant (10) comprend la mémoire de sécurisation (16). 4. Dispositif selon l'une quelconques des revendications 1 ou 2, caractérisé en ce que la mémoire de sécurisation (16) est externe au 25 composant (10) et est reliée au composant (10) au travers de seconds moyens de connexions (20) amovibles. 5. Procédé mettant en oeuvre un dispositif selon l'une des revendications précédentes, caractérisé en ce que lors de l'activation du 30 module espion (12), un programme principal en cours dans le processeur (11) est dérouté vers des instructions contenus dans la mémoire de sécurisation (16). 6. Procédé selon la revendication 5, caractérisé en ce que lors d'une opération de test du composant la mémoire de sécurisation (16) contient les instructions permettant le saut, et en ce que lors de son fonctionnement opérationnel, la mémoire de sécurisation (16) ne contient pas les instructions permettant le saut. 7. Procédé selon l'une quelconque des revendications 5 ou 6, caractérisé en ce que lors du fonctionnement opérationnel du composant (10), la mémoire de sécurisation (16) contient des instructions signalant ~o qu'une erreur est survenue.