FR2936624A1 - Dispositif de securisation d'un composant electronique - Google Patents

Dispositif de securisation d'un composant electronique Download PDF

Info

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
Application number
FR0805313A
Other languages
English (en)
Other versions
FR2936624B1 (fr
Inventor
Christophe Izard
Franck Jeulin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR0805313A priority Critical patent/FR2936624B1/fr
Priority to PCT/EP2009/062505 priority patent/WO2010034831A1/fr
Publication of FR2936624A1 publication Critical patent/FR2936624A1/fr
Application granted granted Critical
Publication of FR2936624B1 publication Critical patent/FR2936624B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional 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)

  1. 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. 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. 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. 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. 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. 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. 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.
FR0805313A 2008-09-26 2008-09-26 Dispositif de securisation d'un composant electronique Active FR2936624B1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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