FR2936624A1 - Dispositif de securisation d'un composant electronique - Google Patents
Dispositif de securisation d'un composant electronique Download PDFInfo
- Publication number
- FR2936624A1 FR2936624A1 FR0805313A FR0805313A FR2936624A1 FR 2936624 A1 FR2936624 A1 FR 2936624A1 FR 0805313 A FR0805313 A FR 0805313A FR 0805313 A FR0805313 A FR 0805313A FR 2936624 A1 FR2936624 A1 FR 2936624A1
- Authority
- FR
- France
- Prior art keywords
- component
- memory
- module
- spy
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
L'invention concerne un dispositif de sécurisation d'un composant électronique comprenant un processeur (11), un module espion (12) permettant d'interroger des registres du processeur (11 ), 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). Selon l'invention, le composant (10) comprend une mémoire de sécurisation (16) pouvant contenir des instructions permettant un saut vers le programme spécifique. Ce saut est présent lors d'opération de test du composant et est supprimé lors du fonctionnement opérationnel du composant (10). Ainsi même en cas d'activation intempestive du module espion (12), le programme spécifique n'est pas lancé.
Description
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.
Claims (7)
- 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.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0805313A FR2936624B1 (fr) | 2008-09-26 | 2008-09-26 | Dispositif de securisation d'un composant electronique |
PCT/EP2009/062505 WO2010034831A1 (fr) | 2008-09-26 | 2009-09-28 | Dispositif de securisation d'un composant electronique |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0805313A FR2936624B1 (fr) | 2008-09-26 | 2008-09-26 | Dispositif de securisation d'un composant electronique |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2936624A1 true FR2936624A1 (fr) | 2010-04-02 |
FR2936624B1 FR2936624B1 (fr) | 2010-10-29 |
Family
ID=40561901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0805313A Active FR2936624B1 (fr) | 2008-09-26 | 2008-09-26 | Dispositif de securisation d'un composant electronique |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2936624B1 (fr) |
WO (1) | WO2010034831A1 (fr) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5678048A (en) * | 1993-08-02 | 1997-10-14 | Advanced Micro Devices, Inc. | Interrupt vector method and apparatus for loading a slot memory address counter |
US6145123A (en) * | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
US20020194540A1 (en) * | 2001-05-04 | 2002-12-19 | Hugo Cheung | Method and system for non-intrusive dynamic memory mapping |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094730A (en) * | 1997-10-27 | 2000-07-25 | Hewlett-Packard Company | Hardware-assisted firmware tracing method and apparatus |
US6289300B1 (en) * | 1998-02-06 | 2001-09-11 | Analog Devices, Inc. | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
DE10116862A1 (de) * | 2001-04-04 | 2002-10-17 | Infineon Technologies Ag | Programmgesteuerte Einheit |
-
2008
- 2008-09-26 FR FR0805313A patent/FR2936624B1/fr active Active
-
2009
- 2009-09-28 WO PCT/EP2009/062505 patent/WO2010034831A1/fr active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5678048A (en) * | 1993-08-02 | 1997-10-14 | Advanced Micro Devices, Inc. | Interrupt vector method and apparatus for loading a slot memory address counter |
US6145123A (en) * | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
US20020194540A1 (en) * | 2001-05-04 | 2002-12-19 | Hugo Cheung | Method and system for non-intrusive dynamic memory mapping |
Also Published As
Publication number | Publication date |
---|---|
FR2936624B1 (fr) | 2010-10-29 |
WO2010034831A1 (fr) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8086910B1 (en) | Monitoring software thread execution | |
EP1386230A2 (fr) | Procede et systeme pour gerer des executables a bibliotheques partagees | |
CA2697726A1 (fr) | Procede de debogage d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef et dispositif de mise en oeuvre | |
CN105183654A (zh) | 一种脱离PC的Android自动化测试录屏机制及录屏系统 | |
FR2596595A1 (fr) | Porte logique mos du type domino | |
EP2372595B1 (fr) | Dispositif permettant de sécuriser un bus de type JTAG | |
EP3044679B1 (fr) | Procédé de mise à jour d'un logiciel de démarrage d'un dispositif multiprocesseur | |
FR2969334A1 (fr) | Module materiel de securite et procede de debogage d'un tel module | |
FR2918188A1 (fr) | Procede et systeme de gestion de coupures d'alimentation electrique a bord d'un aeronef | |
CN105700973A (zh) | 一种命令行cli故障重启方法及装置 | |
FR2936624A1 (fr) | Dispositif de securisation d'un composant electronique | |
JP2010092306A (ja) | データ処理装置 | |
WO2008009609A2 (fr) | Coeur processeur a frequence pilotee et procede de demarrage dudit coeur processeur dans un mode programme | |
EP3392773B1 (fr) | Circuit integre numerique protege contre les erreurs transitoires | |
EP3651021B1 (fr) | Procédé de surveillance d'une tâche, en particulier une tâche graphique, pour un module électronique, en particulier d'interface multimédia, et dispositif correspondant | |
EP3460664A1 (fr) | Procédé de gestion de modules logiciels embarqués pour un calculateur électronique d'un appareil électrique de coupure | |
FR3045881A1 (fr) | Procede de verification de fonctionnalites d'un logiciel destine a etre embarque dans un composant cryptographique, systeme | |
WO2012052080A1 (fr) | Procede de controle d'un circuit integre | |
EP0020931B1 (fr) | Dispositif exécutant des opérations d'interruption de programme pour processeur du type à appel anticipé des instructions | |
JP2006031501A (ja) | 電子機器および電子機器におけるプログラムダウンロード方法 | |
FR2656127A1 (fr) | Circuit de protection contre une operation d'ecriture incorrecte pour un dispositif de memoire. | |
EP1698973A2 (fr) | Dispositif de génération de suivi de branchement pour microprocesseur et microprocesseur doté d'un tel dispositif | |
FR2458844A1 (fr) | Procede et dispositif de traitement des signaux d'interruption pour un systeme de traitement de donnees a microprogramme | |
FR3119689A1 (fr) | Procédé de gestion du fonctionnement d’un terminal de lecture de contenus multimédias. | |
JP2007525740A (ja) | イベントサイン装置、システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 9 |
|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 13 |
|
PLFP | Fee payment |
Year of fee payment: 14 |
|
PLFP | Fee payment |
Year of fee payment: 15 |
|
PLFP | Fee payment |
Year of fee payment: 16 |